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

Reply via email to