diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2020-02-21 04:40:45 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2020-02-21 04:40:45 +0000 |
commit | 1fbe82a59b12fb3256cd507a9cd90bb861339694 (patch) | |
tree | 787a77af6399416de7b5dcd82158ae286ebea89a | |
parent | ada0144457396bd228e2d767cf9881293a88b141 (diff) | |
download | netpbm-mirror-1fbe82a59b12fb3256cd507a9cd90bb861339694.tar.gz netpbm-mirror-1fbe82a59b12fb3256cd507a9cd90bb861339694.tar.xz netpbm-mirror-1fbe82a59b12fb3256cd507a9cd90bb861339694.zip |
Fix % in -outstem, -width=0, -height=0
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@3741 9d0c8265-081b-0410-96cb-a4ca84ce46f8
-rw-r--r-- | doc/HISTORY | 5 | ||||
-rw-r--r-- | editor/pamdice.c | 18 |
2 files changed, 15 insertions, 8 deletions
diff --git a/doc/HISTORY b/doc/HISTORY index 5c4cc8b2..e94457d4 100644 --- a/doc/HISTORY +++ b/doc/HISTORY @@ -13,6 +13,11 @@ not yet BJH Release 10.90.00 pamdice: Fix junk output when -width or -height not specified. + pamdice: Fix crash when -width or -height is zero. + + pamdice: Fix incorrect file names when -outstem contains "%s", + etc. + libnetpbm: pm_getline, xvminitoppm, pamtris : Fix bug: crash when reading empty line. diff --git a/editor/pamdice.c b/editor/pamdice.c index 1ae8f114..9063c4bd 100644 --- a/editor/pamdice.c +++ b/editor/pamdice.c @@ -80,7 +80,9 @@ parseCommandLine(int argc, const char ** argv, /* Uses and sets argc, argv, and some of *cmdline_p and others. */ if (cmdlineP->sliceVertically) { - if (hoverlapSpec) { + if (cmdlineP->width < 1) + pm_error("-width value must not be zero"); + else if (hoverlapSpec) { if (cmdlineP->hoverlap > cmdlineP->width - 1) pm_error("-hoverlap value must be less than -width (%u). " "You specified %u.", @@ -89,7 +91,9 @@ parseCommandLine(int argc, const char ** argv, cmdlineP->hoverlap = 0; } if (cmdlineP->sliceHorizontally) { - if (voverlapSpec) { + if (cmdlineP->height < 1) + pm_error("-height value must not be zero"); + else if (voverlapSpec) { if (cmdlineP->voverlap > cmdlineP->height - 1) pm_error("-voverlap value must be less than -height (%u). " "You specified %u.", @@ -217,7 +221,6 @@ ndigits(unsigned int const arg) { static void computeOutputFilenameFormat(int const format, - char const outstem[], unsigned int const nHorizSlice, unsigned int const nVertSlice, const char ** const filenameFormatP) { @@ -232,9 +235,8 @@ computeOutputFilenameFormat(int const format, default: filenameSuffix = ""; break; } - pm_asprintf(filenameFormatP, "%s_%%0%uu_%%0%uu.%s", - outstem, ndigits(nHorizSlice), ndigits(nVertSlice), - filenameSuffix); + pm_asprintf(filenameFormatP, "%%s_%%0%uu_%%0%uu.%s", + ndigits(nHorizSlice), ndigits(nVertSlice), filenameSuffix); if (*filenameFormatP == NULL) pm_error("Unable to allocate memory for filename format string"); @@ -261,13 +263,13 @@ openOutStreams(struct pam const inpam, const char * filenameFormat; unsigned int vertSlice; - computeOutputFilenameFormat(inpam.format, outstem, nHorizSlice, nVertSlice, + computeOutputFilenameFormat(inpam.format, nHorizSlice, nVertSlice, &filenameFormat); for (vertSlice = 0; vertSlice < nVertSlice; ++vertSlice) { const char * filename; - pm_asprintf(&filename, filenameFormat, horizSlice, vertSlice); + pm_asprintf(&filename, filenameFormat, outstem, horizSlice, vertSlice); if (filename == NULL) pm_error("Unable to allocate memory for output filename"); |