better text generation

svn: r17373
This commit is contained in:
Eli Barzilay 2009-12-21 05:46:16 +00:00
parent 64b11991c1
commit cda2d12914
3 changed files with 22 additions and 23 deletions

View File

@ -2762,9 +2762,9 @@ static void save_errno_values(int kind)
if (kind == 2) { if (kind == 2) {
long v = 0; long v = 0;
#ifdef WINDOWS_DYNAMIC_LOAD # ifdef WINDOWS_DYNAMIC_LOAD
v = GetLastError(); v = GetLastError();
#endif /* WINDOWS_DYNAMIC_LOAD */ # endif /* WINDOWS_DYNAMIC_LOAD */
p->saved_errno = v; p->saved_errno = v;
return; return;
} }
@ -2786,11 +2786,11 @@ static Scheme_Object *foreign_lookup_errno(int argc, Scheme_Object *argv[])
Scheme_Object *v = argv[0]; Scheme_Object *v = argv[0];
if (SCHEME_SYMBOLP(v) && !SCHEME_SYM_WEIRDP(v)) { if (SCHEME_SYMBOLP(v) && !SCHEME_SYM_WEIRDP(v)) {
if (!strcmp("EINTR", SCHEME_SYM_VAL(v))) if (!strcmp("EINTR", SCHEME_SYM_VAL(v)))
return scheme_make_integer(EINTR); return scheme_make_integer(EINTR);
if (!strcmp("EEXIST", SCHEME_SYM_VAL(v))) if (!strcmp("EEXIST", SCHEME_SYM_VAL(v)))
return scheme_make_integer(EEXIST); return scheme_make_integer(EEXIST);
if (!strcmp("EAGAIN", SCHEME_SYM_VAL(v))) if (!strcmp("EAGAIN", SCHEME_SYM_VAL(v)))
return scheme_make_integer(EAGAIN); return scheme_make_integer(EAGAIN);
} }
scheme_wrong_type(MYNAME, "'EINTR, 'EEXIST, or 'EAGAIN",0, argc, argv); scheme_wrong_type(MYNAME, "'EINTR, 'EEXIST, or 'EAGAIN",0, argc, argv);
return NULL; return NULL;

View File

@ -5,8 +5,7 @@ exec mzscheme "$0" > `echo "$0" | sed 's/ssc$/c/'` "$0"
#lang scribble/text #lang scribble/text
@(require "ssc-utils.ss" @(require "ssc-utils.ss")
scheme/string)
@header{foreign.ssc} @header{foreign.ssc}
@ -2123,7 +2122,7 @@ static void save_errno_values(int kind)
if (kind == 2) { if (kind == 2) {
long v = 0; long v = 0;
@@IFDEF{WINDOWS_DYNAMIC_LOAD}{ @@IFDEF{WINDOWS_DYNAMIC_LOAD}{
v = GetLastError(); v = GetLastError();
} }
p->saved_errno = v; p->saved_errno = v;
@ -2145,15 +2144,14 @@ static void save_errno_values(int kind)
(if (null? (cdr errnos)) (if (null? (cdr errnos))
(format "or '~a" (car errnos)) (format "or '~a" (car errnos))
(format "'~a, ~a" (car errnos) (loop (cdr errnos)))))]) (format "'~a, ~a" (car errnos) (loop (cdr errnos)))))])
@string-append{ @list{
if (SCHEME_SYMBOLP(v) && !SCHEME_SYM_WEIRDP(v)) { if (SCHEME_SYMBOLP(v) && !SCHEME_SYM_WEIRDP(v)) {
@(string-join @(add-newlines
(for/list ([e errnos]) (for/list ([e errnos])
@string-append{ @string-append{
if (!strcmp("@symbol->string[e]", SCHEME_SYM_VAL(v))) if (!strcmp("@symbol->string[e]", SCHEME_SYM_VAL(v)))
return scheme_make_integer(@symbol->string[e]); return scheme_make_integer(@symbol->string[e]);
}) }))
"\n")
} }
scheme_wrong_type(MYNAME, "@syms",0, argc, argv); scheme_wrong_type(MYNAME, "@syms",0, argc, argv);
return NULL; return NULL;

View File

@ -7,11 +7,12 @@
(provide maplines) (provide maplines)
(define (maplines #:semicolons? [semi? #t] fun . ls) (define (maplines #:semicolons? [semi? #t] fun . ls)
(add-between (add-between
(apply filter-map (lambda xs (apply filter-map
(let ([r (apply fun xs)]) (lambda xs
(cond [(list? r) (if semi? (append r '(";")) r)] (let ([r (apply fun xs)])
[(or (not r) (void? r)) #f] (cond [(list? r) (if semi? (append r '(";")) r)]
[else (error 'maplines "bad result: ~e" r)]))) [(or (not r) (void? r)) #f]
[else (error 'maplines "bad result: ~e" r)])))
ls) ls)
"\n")) "\n"))