Hi!
13-Июн-2006 02:10 [EMAIL PROTECTED] (Blair Campbell) wrote to
[EMAIL PROTECTED]:
BC> +++ prprompt.c 13 Jun 2006 02:10:19 -0000 1.7
BC> void displayPrompt(const char *pr)
BC> switch (toupper(*++pr)) {
BC> + case 'A': outc('&'); break;
[...]
BC> + case 'S': outc(' '); break;
Optimization: this very long switch may be reduced:
static const char xlat_src [] = "ABC...QS";
static const char xlat_dst [] = "&|(...= ";
char ch; int i;
for (ch = toupper (*++pr), i = 0;;) {
if (ch == xlat_src [i]) {
outc (xlat_dst [i]);
break;
} else
if (++i >= sizeof xlat_src - 1) {
... process other characters ...
break;
} }
BC> +++ cbreak.c 13 Jun 2006 02:10:19 -0000 1.4
BC> #define cprintf mycprintf
BC> - cprintf(fmt, bc->bfnam);
BC> + mycprintf(fmt, bc->bfnam);
Becuse you replace cprintf by mycprintf, you may remove #define.
BC> char *fnam;
BC> if((fnam = getString(TEXT_UNKNOWN_FILENAME)) == 0)
BC> + mycprintf(fmt, "<<unknown>>");
BC> else {
BC> + mycprintf(fmt, fnam);
BC> free(fnam);
BC> }
char *fnam = getString (TEXT_UNKNOWN_FILENAME);
mycprintf (fmt, fnam ? fnam : "<<unknown>>");
free (fnam); /* free (NULL) does nothing */
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel