+ assert(s);
+
+ strncpyz (scratchFileName, s, sizeof(scratchFileName));
+ /* strip ".rel" extension */
+ p = strrchr (scratchFileName, '.');
+ if (p)
+ {
+ *p = 0;
+ }
+ }
+ strncatz (scratchFileName,
+ options.out_fmt ? ".S19" : ".ihx",
+ sizeof(scratchFileName));
+ if (strcmp (fullDstFileName, scratchFileName))
+ unlink (fullDstFileName);
+ rename (scratchFileName, fullDstFileName);
+
+ strncpyz (buffer, fullDstFileName, sizeof(buffer));
+ q = strrchr (buffer, '.');
+ if (!q)
+ {
+ /* no extension: append new extensions */
+ q = strlen (buffer) + buffer;
+ }
+
+ *p = 0;
+ strncatz (scratchFileName, ".map", sizeof(scratchFileName));
+ *q = 0;
+ strncatz(buffer, ".map", sizeof(buffer));
+ if (strcmp (scratchFileName, buffer))
+ unlink (buffer);
+ rename (scratchFileName, buffer);
+ *p = 0;
+ strncatz (scratchFileName, ".mem", sizeof(scratchFileName));
+ *q = 0;
+ strncatz(buffer, ".mem", sizeof(buffer));
+ if (strcmp (scratchFileName, buffer))
+ unlink (buffer);
+ rename (scratchFileName, buffer);
+ if (options.debug)
+ {
+ *p = 0;
+ strncatz (scratchFileName, ".cdb", sizeof(scratchFileName));
+ *q = 0;
+ strncatz(buffer, ".cdb", sizeof(buffer));
+ if (strcmp (scratchFileName, buffer))
+ unlink (buffer);
+ rename (scratchFileName, buffer);
+ /* and the OMF file without extension: */
+ *p = 0;
+ *q = 0;
+ if (strcmp (scratchFileName, buffer))
+ unlink (buffer);
+ rename (scratchFileName, buffer);
+ }
+ }
+ if (system_ret)