diff options
Diffstat (limited to 'converter/ppm/sldtoppm.c')
-rw-r--r-- | converter/ppm/sldtoppm.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/converter/ppm/sldtoppm.c b/converter/ppm/sldtoppm.c index 6ba4cb40..550eed5b 100644 --- a/converter/ppm/sldtoppm.c +++ b/converter/ppm/sldtoppm.c @@ -196,7 +196,7 @@ slidefind(const char * const sname, /* Read slide library header and verify. */ if ((fread(libent, 32, 1, slfile) != 1) || - (!streq((char *)libent, "AutoCAD Slide Library 1.0\015\012\32"))) { + (!strneq((char *)libent, "AutoCAD Slide Library 1.0\015\012\32", 32))) { pm_error("not an AutoCAD slide library file."); } pos = 32; @@ -208,29 +208,29 @@ slidefind(const char * const sname, readCt = fread(libent, 36, 1, slfile); if (readCt != 1) eof = true; - else if (strlen((char *)libent) == 0) + else if (strnlen((char *)libent, 32) == 0) eof = true; - } - if (!eof) { - pos += 36; - if (dironly) { - pm_message(" %s", libent); - } else if (streq((char *)libent, uname)) { - long dpos; - - dpos = (((((libent[35] << 8) | libent[34]) << 8) | - libent[33]) << 8) | libent[32]; - - if ((slfile == stdin) || (fseek(slfile, dpos, 0) == -1)) { - dpos -= pos; + + if (!eof) { + pos += 36; + if (dironly) { + pm_message(" %s", libent); + } else if (strneq((char *)libent, uname, 32)) { + long dpos; + + dpos = (((((libent[35] << 8) | libent[34]) << 8) | + libent[33]) << 8) | libent[32]; - while (dpos-- > 0) - getc(slfile); + if ((slfile == stdin) || (fseek(slfile, dpos, 0) == -1)) { + dpos -= pos; + + while (dpos-- > 0) + getc(slfile); + } + found = true; } - found = true; } } - if (!found && !dironly) pm_error("slide '%s' not in library.", sname); } @@ -350,7 +350,7 @@ slider(slvecfn slvec, /* Verify that slide format is compatible with this program. */ - if (streq(slfrof.slh, slhi.slh)) + if (!STRSEQ(slfrof.slh, slhi.slh)) pm_error("this is not an AutoCAD slide file."); /* Verify that the number format and file level in the header are |