diff options
| author | Richard Kistruck | 2007-08-13 16:54:40 +0100 |
|---|---|---|
| committer | Richard Kistruck | 2007-08-13 16:54:40 +0100 |
| commit | d9d4f267df0a1cf0db5c995ff6d799f1faa5f2b7 (patch) | |
| tree | d3527c5ba068931122f6803302e44990014a620d /mps/code/mpm.c | |
| parent | c6663dcbff1c7a33cf26d9729188f04b5941585b (diff) | |
| download | emacs-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.c | 40 |
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 | ||
| 554 | size_t StringLength(const char *s) | 554 | size_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 | |||
| 568 | Bool 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/>. |