summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/lib/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/lib/main.c')
-rw-r--r--Build/source/texk/web2c/lib/main.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/lib/main.c b/Build/source/texk/web2c/lib/main.c
new file mode 100644
index 00000000000..b699db57b94
--- /dev/null
+++ b/Build/source/texk/web2c/lib/main.c
@@ -0,0 +1,42 @@
+/* main.c -- the main program for everything but TeX & MF. */
+/* Public domain. */
+
+#include "config.h"
+
+
+/* These variables are referenced from the change files. */
+char **argv;
+int argc;
+
+/* The entry point for all the programs except TeX and Metafont, which
+ have more to do. We just have to set up the command line. web2c
+ transforms Pascal's main block into a procedure `main_body'. */
+
+int main P2C(int, ac, string *, av)
+{
+#ifdef __EMX__
+ _wildcard (&ac, &av);
+ _response (&ac, &av);
+#endif
+ extern void mainbody P1H(void);
+
+ argc = ac;
+ argv = av;
+ mainbody ();
+ return EXIT_SUCCESS;
+}
+
+
+/* Return the Nth (counted as in C) argument from the command line. */
+
+string
+cmdline P1C(int, n)
+{
+ if (n >= argc)
+ { /* This error message should never happen, because the callers
+ should always check they've got the arguments they expect. */
+ fprintf (stderr, "%s: Oops; not enough arguments.\n", argv[0]);
+ uexit (1);
+ }
+ return argv[n];
+}