diff options
author | Ondřej Surý <ondrej@sury.org> | 2012-04-06 15:14:11 +0200 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2012-04-06 15:14:11 +0200 |
commit | 505c19580e0f43fe5224431459cacb7c21edd93d (patch) | |
tree | 79e2634c253d60afc0cc0b2f510dc7dcbb48497b /src/cmd/gc/mkbuiltin1.c | |
parent | 1336a7c91e596c423a49d1194ea42d98bca0d958 (diff) | |
download | golang-505c19580e0f43fe5224431459cacb7c21edd93d.tar.gz |
Imported Upstream version 1upstream/1
Diffstat (limited to 'src/cmd/gc/mkbuiltin1.c')
-rw-r--r-- | src/cmd/gc/mkbuiltin1.c | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/src/cmd/gc/mkbuiltin1.c b/src/cmd/gc/mkbuiltin1.c index ad83c0346..f8f61c278 100644 --- a/src/cmd/gc/mkbuiltin1.c +++ b/src/cmd/gc/mkbuiltin1.c @@ -2,15 +2,21 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// +build ignore + // Compile .go file, import data from .6 file, and generate C string version. -#include <u.h> -#include <libc.h> #include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <string.h> +#include <errno.h> +#include <stdarg.h> void esc(char*); +void fatal(char*, ...); -void +int main(int argc, char **argv) { char *name; @@ -19,7 +25,7 @@ main(int argc, char **argv) if(argc != 2) { fprintf(stderr, "usage: mkbuiltin1 sys\n"); - sysfatal("in file $1.6 s/PACKAGE/$1/\n"); + fatal("in file $1.6 s/PACKAGE/$1/"); } name = argv[1]; @@ -27,14 +33,14 @@ main(int argc, char **argv) snprintf(buf, sizeof(buf), "%s.%s", name, getenv("O")); if((fin = fopen(buf, "r")) == NULL) { - sysfatal("open %s: %r\n", buf); + fatal("open %s: %s", buf, strerror(errno)); } // look for $$ that introduces imports while(fgets(buf, sizeof buf, fin) != NULL) if(strstr(buf, "$$")) goto begin; - sysfatal("did not find beginning of imports\n"); + fatal("did not find beginning of imports"); begin: printf("char *%simport =\n", name); @@ -66,11 +72,11 @@ begin: esc(p); printf("\\n\"\n"); } - sysfatal("did not find end of imports\n"); + fatal("did not find end of imports"); end: printf("\t\"$$\\n\";\n"); - exits(0); + return 0; } void @@ -82,3 +88,15 @@ esc(char *p) putchar(*p); } } + +void +fatal(char *msg, ...) +{ + va_list arg; + + va_start(arg, msg); + fprintf(stderr, "fatal: "); + vfprintf(stderr, msg, arg); + fprintf(stderr, "\n"); + exit(2); +} |