diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2015-08-04 19:47:48 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2015-08-04 19:47:48 -0700 |
commit | 33d5434aafd847629fc6c70db15d716c77402708 (patch) | |
tree | 107806c760fd1d825a0bb6e8e80d74a69cea682b | |
parent | bfd0947112a317542d77959f0ae224f8e256f9a6 (diff) | |
download | txr-33d5434aafd847629fc6c70db15d716c77402708.tar.gz txr-33d5434aafd847629fc6c70db15d716c77402708.tar.bz2 txr-33d5434aafd847629fc6c70db15d716c77402708.zip |
Remove useless return values and checks.
* stream.c (vformat_align_pre, vformat_align_post): Change to void
return. Do not check return value of put_char.
(vformat_num, vformat_str): Change to void return. Do not check return
value of vformat_align_pre, vformat_aign_post or put_char.
(vformat): Do not check return value of vformat_str or vformat_num.
nilout exit point no longer needed.
(put_string): Do not intercept return value of ops->put_string.
Return t.
(put_char): Do not intercept return value of ops->put_char.
Do not check return value of put_indent. Return t.
* txr.1: Document t return of put-char, put-byte and put-string.
-rw-r--r-- | ChangeLog | 17 | ||||
-rw-r--r-- | stream.c | 119 | ||||
-rw-r--r-- | txr.1 | 5 |
3 files changed, 63 insertions, 78 deletions
@@ -1,5 +1,22 @@ 2015-08-04 Kaz Kylheku <kaz@kylheku.com> + Remove useless return values and checks. + + * stream.c (vformat_align_pre, vformat_align_post): Change to void + return. Do not check return value of put_char. + (vformat_num, vformat_str): Change to void return. Do not check return + value of vformat_align_pre, vformat_aign_post or put_char. + (vformat): Do not check return value of vformat_str or vformat_num. + nilout exit point no longer needed. + (put_string): Do not intercept return value of ops->put_string. + Return t. + (put_char): Do not intercept return value of ops->put_char. + Do not check return value of put_indent. Return t. + + * txr.1: Document t return of put-char, put-byte and put-string. + +2015-08-04 Kaz Kylheku <kaz@kylheku.com> + * eval.c (func_get_name): New function. (bind_args): Include the entire context form in argument mismatch errors. @@ -2005,29 +2005,25 @@ static void detect_format_string(void) enum align { al_left, al_center, al_right }; -static val vformat_align_pre(val stream, enum align align, int slack) +static void vformat_align_pre(val stream, enum align align, int slack) { int i; switch (align) { case al_right: for (i = 0; i < slack; i++) - if (!put_char(chr(' '), stream)) - return nil; + put_char(chr(' '), stream); break; case al_left: break; case al_center: for (i = 0; i < slack/2; i++) - if (!put_char(chr(' '), stream)) - return nil; + put_char(chr(' '), stream); break; } - - return t; } -static val vformat_align_post(val stream, enum align align, int slack) +static void vformat_align_post(val stream, enum align align, int slack) { int i; @@ -2036,22 +2032,18 @@ static val vformat_align_post(val stream, enum align align, int slack) break; case al_left: for (i = 0; i < slack; i++) - if (!put_char(chr(' '), stream)) - return nil; + put_char(chr(' '), stream); break; case al_center: for (i = 0; i < (slack+1)/2; i++) - if (!put_char(chr(' '), stream)) - return nil; + put_char(chr(' '), stream); break; } - - return t; } -static val vformat_num(val stream, const char *str, - int width, enum align align, int zeropad, - int precision, int sign) +static void vformat_num(val stream, const char *str, + int width, enum align align, int zeropad, + int precision, int sign) { int sign_char = (str[0] == '-' || str[0] == '+') ? str[0] : 0; int digit_len = strlen(str) - (sign_char != 0); @@ -2060,13 +2052,11 @@ static val vformat_num(val stream, const char *str, int slack = (total_len < width) ? width - total_len : 0; int i; - if (!vformat_align_pre(stream, align, slack)) - return nil; + vformat_align_pre(stream, align, slack); if (!zeropad) for (i = 0; i < padlen; i++) - if (!put_char(chr(' '), stream)) - return nil; + put_char(chr(' '), stream); if (sign_char) { put_char(chr(sign_char), stream); @@ -2077,18 +2067,16 @@ static val vformat_num(val stream, const char *str, if (zeropad) for (i = 0; i < padlen; i++) - if (!put_char(chr('0'), stream)) - return nil; + put_char(chr('0'), stream); while (*str) - if (!put_char(chr(*str++), stream)) - return nil; + put_char(chr(*str++), stream); - return vformat_align_post(stream, align, slack); + vformat_align_post(stream, align, slack); } -static val vformat_str(val stream, val str, int width, enum align align, - int precision) +static void vformat_str(val stream, val str, int width, enum align align, + int precision) { const wchar_t *cstr = c_str(str); int len = c_num(length_str(str)); @@ -2098,27 +2086,18 @@ static val vformat_str(val stream, val str, int width, enum align align, prot1(&str); - if (!vformat_align_pre(stream, align, slack)) - goto nilout; + vformat_align_pre(stream, align, slack); if (!al_left) for (i = 0; i < slack; i++) - if (!put_char(chr(' '), stream)) - goto nilout; + put_char(chr(' '), stream); for (i = 0; i < truelen; i++) - if (!put_char(chr(cstr[i]), stream)) - goto nilout; - - if (!vformat_align_post(stream, align, slack)) - goto nilout; + put_char(chr(cstr[i]), stream); - rel1(&str); - return t; + vformat_align_post(stream, align, slack); -nilout: rel1(&str); - return nil; } val vformat(val stream, val fmtstr, va_list vl) @@ -2353,9 +2332,7 @@ val vformat(val stream, val fmtstr, va_list vl) sprintf(num_buf, "%.*f", precision, n); } if (!isdigit(num_buf[0]) && !isdigit(num_buf[1])) { - if (!vformat_str(stream, lit("#<bad-float>"), - width, align, 0)) - goto nilout; + vformat_str(stream, lit("#<bad-float>"), width, align, 0); continue; } precision = 0; @@ -2414,9 +2391,7 @@ val vformat(val stream, val fmtstr, va_list vl) } if (!isdigit(num_buf[0]) && !isdigit(num_buf[1])) { - if (!vformat_str(stream, lit("#<bad-float>"), - width, align, 0)) - goto nilout; + vformat_str(stream, lit("#<bad-float>"), width, align, 0); continue; } @@ -2426,8 +2401,7 @@ val vformat(val stream, val fmtstr, va_list vl) if (width != 0 || precision_p) { val str = format(nil, ch == 'a' ? lit("~a") : lit("~s"), obj, nao); - if (!vformat_str(stream, str, width, align, precision)) - goto nilout; + vformat_str(stream, str, width, align, precision); continue; } } @@ -2448,12 +2422,10 @@ val vformat(val stream, val fmtstr, va_list vl) chr(ch), nao); output_num: { - val res = vformat_num(stream, pnum, width, align, - zeropad, precision, sign); + vformat_num(stream, pnum, width, align, + zeropad, precision, sign); if (pnum != num_buf) free(pnum); - if (!res) - goto nilout; continue; } } @@ -2470,9 +2442,6 @@ val vformat(val stream, val fmtstr, va_list vl) rel1(&fmtstr); return t; -nilout: - rel1(&fmtstr); - return nil; premature: internal_error("insufficient arguments for format"); toobig: @@ -2566,7 +2535,6 @@ val put_string(val string, val stream_in) struct strm_base *s = coerce(struct strm_base *, stream->co.handle); cnum col = s->column; const wchar_t *str = c_str(string), *p = str; - val ret; for (; *p; p++) { switch (*p) { @@ -2583,10 +2551,9 @@ val put_string(val string, val stream_in) } } - if ((ret = ops->put_string(stream, string)) != nil) - s->column = col; - - return ret; + ops->put_string(stream, string); + s->column = col; + return t; } val put_char(val ch, val stream_in) @@ -2598,26 +2565,22 @@ val put_char(val ch, val stream_in) switch (cch) { case L'\n': - if (ops->put_char(stream, ch) && - put_indent(stream, ops, s->indent_chars)) { - s->column = s->indent_chars; - return t; - } - return nil; + ops->put_char(stream, ch); + put_indent(stream, ops, s->indent_chars); + s->column = s->indent_chars; + break; case L'\t': - if (ops->put_char(stream, ch)) { - s->column = (s->column + 1) | 7; - return t; - } - return nil; + ops->put_char(stream, ch); + s->column = (s->column + 1) | 7; + break; default: - if (ops->put_char(stream, ch)) { - if (iswprint(cch)) - s->column++; - return t; - } - return nil; + ops->put_char(stream, ch); + if (iswprint(cch)) + s->column++; + break; } + + return t; } val put_byte(val byte, val stream_in) @@ -27671,6 +27671,11 @@ if supports a byte write operation. The byte value is specified as an integer value in the range 0 to 255. +All these runctions return +.codn t . +On failure, they do not return, but throw exceptions of type +.codn file-error . + .coNP Functions @ put-strings and @ put-lines .synb .mets (put-strings < sequence <> [ stream ]]) |