aboutsummaryrefslogtreecommitdiffstats
path: root/mps/code/mpm.c
diff options
context:
space:
mode:
authorRichard Kistruck2007-08-13 16:54:40 +0100
committerRichard Kistruck2007-08-13 16:54:40 +0100
commitd9d4f267df0a1cf0db5c995ff6d799f1faa5f2b7 (patch)
treed3527c5ba068931122f6803302e44990014a620d /mps/code/mpm.c
parentc6663dcbff1c7a33cf26d9729188f04b5941585b (diff)
downloademacs-d9d4f267df0a1cf0db5c995ff6d799f1faa5f2b7.tar.gz
emacs-d9d4f267df0a1cf0db5c995ff6d799f1faa5f2b7.zip
Mps br/diagtag: give helpful message if diag_end tag does not match.
(tidyup) Move RulesGlobal to head of file; write instructions. (tidyup) Move StringEqual into mpm.c (with StringLength); add AVER. (cosmetic) Correct case of names: module-interface names begin uppercase; local names begin lowercase. Tags should be C identifiers. Copied from Perforce Change: 163112 ServerID: perforce.ravenbrook.com
Diffstat (limited to 'mps/code/mpm.c')
-rw-r--r--mps/code/mpm.c40
1 files changed, 31 insertions, 9 deletions
diff --git a/mps/code/mpm.c b/mps/code/mpm.c
index 9f2e0802037..84c9fdc870b 100644
--- a/mps/code/mpm.c
+++ b/mps/code/mpm.c
@@ -258,7 +258,7 @@ static Res WriteWord(mps_lib_FILE *stream, Word w, unsigned base,
258 buf[i] = pad; 258 buf[i] = pad;
259 } 259 }
260 260
261 r = stream_fputs(&buf[i], stream); 261 r = Stream_fputs(&buf[i], stream);
262 if (r == mps_lib_EOF) 262 if (r == mps_lib_EOF)
263 return ResIO; 263 return ResIO;
264 264
@@ -299,7 +299,7 @@ static Res WriteDouble(mps_lib_FILE *stream, double d)
299 int j = 0; 299 int j = 0;
300 300
301 if (F == 0.0) { 301 if (F == 0.0) {
302 if (stream_fputs("0", stream) == mps_lib_EOF) 302 if (Stream_fputs("0", stream) == mps_lib_EOF)
303 return ResIO; 303 return ResIO;
304 return ResOK; 304 return ResOK;
305 } 305 }
@@ -314,7 +314,7 @@ static Res WriteDouble(mps_lib_FILE *stream, double d)
314 for ( ; F >= 1.0 ; F /= 10.0) { 314 for ( ; F >= 1.0 ; F /= 10.0) {
315 E++; 315 E++;
316 if (E > DBL_MAX_10_EXP) { 316 if (E > DBL_MAX_10_EXP) {
317 if (stream_fputs("Infinity", stream) == mps_lib_EOF) 317 if (Stream_fputs("Infinity", stream) == mps_lib_EOF)
318 return ResIO; 318 return ResIO;
319 return ResOK; 319 return ResOK;
320 } 320 }
@@ -401,7 +401,7 @@ static Res WriteDouble(mps_lib_FILE *stream, double d)
401 } 401 }
402 buf[j] = '\0'; /* arnold */ 402 buf[j] = '\0'; /* arnold */
403 403
404 if (stream_fputs(buf, stream) == mps_lib_EOF) 404 if (Stream_fputs(buf, stream) == mps_lib_EOF)
405 return ResIO; 405 return ResIO;
406 return ResOK; 406 return ResOK;
407} 407}
@@ -460,7 +460,7 @@ Res WriteF_firstformat_v(mps_lib_FILE *stream,
460 460
461 while(*format != '\0') { 461 while(*format != '\0') {
462 if (*format != '$') { 462 if (*format != '$') {
463 r = stream_fputc(*format, stream); /* Could be more efficient */ 463 r = Stream_fputc(*format, stream); /* Could be more efficient */
464 if (r == mps_lib_EOF) return ResIO; 464 if (r == mps_lib_EOF) return ResIO;
465 } else { 465 } else {
466 ++format; 466 ++format;
@@ -494,13 +494,13 @@ Res WriteF_firstformat_v(mps_lib_FILE *stream,
494 494
495 case 'S': { /* string */ 495 case 'S': { /* string */
496 WriteFS s = va_arg(args, WriteFS); 496 WriteFS s = va_arg(args, WriteFS);
497 r = stream_fputs((const char *)s, stream); 497 r = Stream_fputs((const char *)s, stream);
498 if (r == mps_lib_EOF) return ResIO; 498 if (r == mps_lib_EOF) return ResIO;
499 } break; 499 } break;
500 500
501 case 'C': { /* character */ 501 case 'C': { /* character */
502 WriteFC c = va_arg(args, WriteFC); /* promoted */ 502 WriteFC c = va_arg(args, WriteFC); /* promoted */
503 r = stream_fputc((int)c, stream); 503 r = Stream_fputc((int)c, stream);
504 if (r == mps_lib_EOF) return ResIO; 504 if (r == mps_lib_EOF) return ResIO;
505 } break; 505 } break;
506 506
@@ -524,7 +524,7 @@ Res WriteF_firstformat_v(mps_lib_FILE *stream,
524 } break; 524 } break;
525 525
526 case '$': { /* dollar char */ 526 case '$': { /* dollar char */
527 r = stream_fputc('$', stream); 527 r = Stream_fputc('$', stream);
528 if (r == mps_lib_EOF) return ResIO; 528 if (r == mps_lib_EOF) return ResIO;
529 } break; 529 } break;
530 530
@@ -549,7 +549,7 @@ Res WriteF_firstformat_v(mps_lib_FILE *stream,
549} 549}
550 550
551 551
552/* StringLength -- Slow substitute for strlen */ 552/* StringLength -- slow substitute for strlen */
553 553
554size_t StringLength(const char *s) 554size_t StringLength(const char *s)
555{ 555{
@@ -563,6 +563,28 @@ size_t StringLength(const char *s)
563} 563}
564 564
565 565
566/* StringEqual -- slow substitute for (strcmp == 0) */
567
568Bool StringEqual(const char *s1, const char *s2)
569{
570 Index i;
571
572 AVER(s1);
573 AVER(s2);
574
575 for(i = 0; ; i++) {
576 if(s1[i] != s2[i])
577 return FALSE;
578 if(s1[i] == '\0') {
579 AVER(s2[i] == '\0');
580 break;
581 }
582 }
583 return TRUE;
584}
585
586
587
566/* C. COPYRIGHT AND LICENSE 588/* C. COPYRIGHT AND LICENSE
567 * 589 *
568 * Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>. 590 * Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>.