cinera.c: Handle overlong "output" attribute
This commit is contained in:
parent
84a35b9ece
commit
e17c3aa78c
|
@ -23,7 +23,7 @@ typedef struct
|
||||||
version CINERA_APP_VERSION = {
|
version CINERA_APP_VERSION = {
|
||||||
.Major = 0,
|
.Major = 0,
|
||||||
.Minor = 10,
|
.Minor = 10,
|
||||||
.Patch = 8
|
.Patch = 9
|
||||||
};
|
};
|
||||||
|
|
||||||
#include <stdarg.h> // NOTE(matt): varargs
|
#include <stdarg.h> // NOTE(matt): varargs
|
||||||
|
@ -10259,12 +10259,6 @@ HMMLToBuffers(buffers *CollationBuffers, template *BespokeTemplate, string BaseF
|
||||||
CollationBuffers->VODPlatform = VODPlatform;
|
CollationBuffers->VODPlatform = VODPlatform;
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer URLPlayer = {};
|
|
||||||
ClaimBuffer(&URLPlayer, BID_URL_PLAYER, MAX_BASE_URL_LENGTH + 1 + MAX_RELATIVE_PAGE_LOCATION_LENGTH + 1 + MAX_BASE_FILENAME_LENGTH);
|
|
||||||
ConstructPlayerURL(&URLPlayer, N->Project, HMML.metadata.output ? Wrap0(HMML.metadata.output) : BaseFilename);
|
|
||||||
CopyString(CollationBuffers->URLPlayer, sizeof(CollationBuffers->URLPlayer), "%s", URLPlayer.Location);
|
|
||||||
DeclaimBuffer(&URLPlayer);
|
|
||||||
|
|
||||||
medium *DefaultMedium = CurrentProject->DefaultMedium;
|
medium *DefaultMedium = CurrentProject->DefaultMedium;
|
||||||
if(HMML.metadata.medium)
|
if(HMML.metadata.medium)
|
||||||
{
|
{
|
||||||
|
@ -10301,6 +10295,21 @@ HMMLToBuffers(buffers *CollationBuffers, template *BespokeTemplate, string BaseF
|
||||||
ClearCopyStringNoFormat(N->WorkingThis.Number, sizeof(N->WorkingThis.Number), Wrap0(HMML.metadata.number));
|
ClearCopyStringNoFormat(N->WorkingThis.Number, sizeof(N->WorkingThis.Number), Wrap0(HMML.metadata.number));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string OutputLocation = {};
|
||||||
|
if(!HMML.metadata.output)
|
||||||
|
{
|
||||||
|
OutputLocation = BaseFilename;
|
||||||
|
}
|
||||||
|
else if(StringLength(HMML.metadata.output) > sizeof(N->WorkingThis.OutputLocation))
|
||||||
|
{
|
||||||
|
IndexingErrorSizing(&FilepathL, 0, "output", Wrap0(HMML.metadata.output), MAX_ENTRY_OUTPUT_LENGTH);
|
||||||
|
Result = RC_ERROR_HMML;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OutputLocation = Wrap0(HMML.metadata.output);
|
||||||
|
}
|
||||||
|
|
||||||
string ProjectTitle = BestTitleForHTML(CurrentProject);
|
string ProjectTitle = BestTitleForHTML(CurrentProject);
|
||||||
|
|
||||||
// TODO(matt): Handle the art and art_variants once .hmml supports them
|
// TODO(matt): Handle the art and art_variants once .hmml supports them
|
||||||
|
@ -10352,18 +10361,14 @@ HMMLToBuffers(buffers *CollationBuffers, template *BespokeTemplate, string BaseF
|
||||||
|
|
||||||
if(Result == RC_SUCCESS)
|
if(Result == RC_SUCCESS)
|
||||||
{
|
{
|
||||||
string OutputLocation = {};
|
|
||||||
if(HMML.metadata.output)
|
|
||||||
{
|
|
||||||
OutputLocation = Wrap0(HMML.metadata.output);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
OutputLocation = BaseFilename;
|
|
||||||
}
|
|
||||||
|
|
||||||
ClearCopyStringNoFormat(N->WorkingThis.OutputLocation, sizeof(N->WorkingThis.OutputLocation), OutputLocation);
|
ClearCopyStringNoFormat(N->WorkingThis.OutputLocation, sizeof(N->WorkingThis.OutputLocation), OutputLocation);
|
||||||
|
|
||||||
|
buffer URLPlayer = {};
|
||||||
|
ClaimBuffer(&URLPlayer, BID_URL_PLAYER, MAX_BASE_URL_LENGTH + SLASH + MAX_RELATIVE_PAGE_LOCATION_LENGTH + SLASH + sizeof(N->WorkingThis.OutputLocation));
|
||||||
|
ConstructPlayerURL(&URLPlayer, N->Project, Wrap0i(N->WorkingThis.OutputLocation, sizeof(N->WorkingThis.OutputLocation)));
|
||||||
|
CopyString(CollationBuffers->URLPlayer, sizeof(CollationBuffers->URLPlayer), "%s", URLPlayer.Location);
|
||||||
|
DeclaimBuffer(&URLPlayer);
|
||||||
|
|
||||||
if(N->This)
|
if(N->This)
|
||||||
{
|
{
|
||||||
string OldOutputLocation = Wrap0i(N->This->OutputLocation, sizeof(N->This->OutputLocation));
|
string OldOutputLocation = Wrap0i(N->This->OutputLocation, sizeof(N->This->OutputLocation));
|
||||||
|
|
Loading…
Reference in New Issue