summaryrefslogtreecommitdiff
path: root/src/cmd/gc/mkbuiltin1.c
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2012-04-06 15:14:11 +0200
committerOndřej Surý <ondrej@sury.org>2012-04-06 15:14:11 +0200
commit505c19580e0f43fe5224431459cacb7c21edd93d (patch)
tree79e2634c253d60afc0cc0b2f510dc7dcbb48497b /src/cmd/gc/mkbuiltin1.c
parent1336a7c91e596c423a49d1194ea42d98bca0d958 (diff)
downloadgolang-505c19580e0f43fe5224431459cacb7c21edd93d.tar.gz
Imported Upstream version 1upstream/1
Diffstat (limited to 'src/cmd/gc/mkbuiltin1.c')
-rw-r--r--src/cmd/gc/mkbuiltin1.c34
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);
+}