home *** CD-ROM | disk | FTP | other *** search
/ pc.louisiana.edu/pub/unix/ / Louisiana_UNIX.tar / Louisiana_UNIX / sc621.format.bugfix < prev    next >
Text File  |  1993-03-16  |  2KB  |  79 lines

  1. Article 1365 of comp.sources.bugs:
  2. Newsgroups: comp.sources.bugs
  3. Path: rouge!darwin.sura.net!gatech!swrinde!sdd.hp.com!col.hp.com!news.dtc.hp.com!srgenprp!chrise
  4. From: chrise@PROBLEM_WITH_INEWS_GATEWAY_FILE (Chris Eich)
  5. Subject: Re: SC 6.21 cell format
  6. Sender: news@srgenprp.sr.hp.com (placeholder for future)
  7. Message-ID: <C1u4sw.K0J@srgenprp.sr.hp.com>
  8. Date: Tue, 2 Feb 1993 19:00:31 GMT
  9. References: <1993Feb1.184619.841@cybvax0.uucp>
  10. Organization: HP Santa Rosa Systems Div, CA
  11. X-Newsreader: TIN [version 1.1 PL8.7]
  12. Lines: 63
  13.  
  14.     With SC 6.21 on BSD 4.2, a cell format with a trailing literal character,
  15.     a character preceded by a backslash, the value displayed will be rounded
  16.     down unnecessarily in some cases.
  17.  
  18. Here is a patch, which I'm also mailing to Jeff Buhrt via
  19. uunet!nstar!sawmill!prslnk!buhrt (taken from the README file)
  20.  
  21. Chris
  22.  
  23. *** format.c.orig    Wed Jan 13 13:24:50 1993
  24. --- format.c    Tue Feb  2 10:54:43 1993
  25. ***************
  26. *** 245,250
  27.     width = 0;
  28.     if (decimal)
  29.     {
  30.       *decimal++ = EOS;
  31.       for (cp = decimal; *cp != EOS; cp++)
  32.       {
  33.  
  34. --- 245,251 -----
  35.     width = 0;
  36.     if (decimal)
  37.     {
  38. +     int backslashes = 0;
  39.       *decimal++ = EOS;
  40.       for (cp = decimal; *cp != EOS; cp++)
  41.       {
  42. ***************
  43. *** 252,257
  44.         {
  45.           case '\\':
  46.             cp++;
  47.         break;
  48.   
  49.           case '#':
  50.  
  51. --- 253,259 -----
  52.         {
  53.           case '\\':
  54.             cp++;
  55. +       backslashes++;
  56.         break;
  57.   
  58.           case '#':
  59. ***************
  60. *** 263,269
  61.         break;
  62.         }
  63.       }
  64. !     zero_pad = strlen(decimal) - zero_pad;
  65.     }
  66.     (void) sprintf(prtfmt, "%%.%dlf", width);
  67.     (void) sprintf(mantissa, prtfmt, val);
  68.  
  69. --- 265,271 -----
  70.         break;
  71.         }
  72.       }
  73. !     zero_pad = strlen(decimal) - backslashes - zero_pad;
  74.     }
  75.     (void) sprintf(prtfmt, "%%.%dlf", width);
  76.     (void) sprintf(mantissa, prtfmt, val);
  77.  
  78.  
  79.