about summary refs log tree commit diff
path: root/Src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/main.c')
-rw-r--r--Src/main.c84
1 files changed, 1 insertions, 83 deletions
diff --git a/Src/main.c b/Src/main.c
index dbf1addc5..c9c5fa867 100644
--- a/Src/main.c
+++ b/Src/main.c
@@ -34,87 +34,5 @@
 int
 main(int argc, char **argv)
 {
-    char **t;
-    int t0;
-#ifdef USE_LOCALE
-    setlocale(LC_ALL, "");
-#endif
-
-    init_hackzero(argv, environ);
-
-    /*
-     * Provisionally set up the type table to allow metafication.
-     * This will be done properly when we have decided if we are
-     * interactive
-     */
-    typtab['\0'] |= IMETA;
-    typtab[STOUC(Meta)  ] |= IMETA;
-    typtab[STOUC(Marker)] |= IMETA;
-    for (t0 = (int)STOUC(Pound); t0 <= (int)STOUC(Nularg); t0++)
-	typtab[t0] |= ITOK | IMETA;
-
-    for (t = argv; *t; *t = metafy(*t, -1, META_ALLOC), t++);
-
-    zsh_name = argv[0];
-    do {
-      char *arg0 = zsh_name;
-      if (!(zsh_name = strrchr(arg0, '/')))
-	  zsh_name = arg0;
-      else
-	  zsh_name++;
-      if (*zsh_name == '-')
-	  zsh_name++;
-      if (strcmp(zsh_name, "su") == 0) {
-	  char *sh = zgetenv("SHELL");
-	  if (sh && *sh && arg0 != sh)
-	      zsh_name = sh;
-	  else
-	      break;
-      } else
-	  break;
-    } while (zsh_name);
-
-    fdtable_size = OPEN_MAX;
-    fdtable = zcalloc(fdtable_size);
-
-    createoptiontable();
-    emulate(zsh_name, 1);   /* initialises most options */
-    opts[LOGINSHELL] = (**argv == '-');
-    opts[MONITOR] = 1;   /* may be unset in init_io() */
-    opts[PRIVILEGED] = (getuid() != geteuid() || getgid() != getegid());
-    opts[USEZLE] = 1;   /* may be unset in init_io() */
-    parseargs(argv);   /* sets INTERACTIVE, SHINSTDIN and SINGLECOMMAND */
-
-    SHTTY = -1;
-    init_io();
-    setupvals();
-    init_signals();
-    init_bltinmods();
-    run_init_scripts();
-    init_misc();
-
-    for (;;) {
-	do
-	    loop(1,0);
-	while (tok != ENDINPUT && (tok != LEXERR || isset(SHINSTDIN)));
-	if (tok == LEXERR) {
-	    stopmsg = 1;
-	    zexit(lastval, 0);
-	}
-	if (!(isset(IGNOREEOF) && interact)) {
-#if 0
-	    if (interact)
-		fputs(islogin ? "logout\n" : "exit\n", shout);
-#endif
-	    zexit(lastval, 0);
-	    continue;
-	}
-	noexitct++;
-	if (noexitct >= 10) {
-	    stopmsg = 1;
-	    zexit(lastval, 0);
-	}
-	zerrnam("zsh", (!islogin) ? "use 'exit' to exit."
-		: "use 'logout' to logout.", NULL, 0);
-    }
+    return (zsh_main(argc, argv));
 }