After a recent commit (http://marc.info/?l=openbsd-tech&m=133787310204563&w=2)
I realised the *init* buffer could be removed since we went back and updated
modes after scratch was created.

There is a side effect to this diff; theo mode now works from the command
line:

$ mg -f theo

[it had been broken for a while]

Comments/ok

-lum

Index: main.c
===================================================================
RCS file: /cvs/src/usr.bin/mg/main.c,v
retrieving revision 1.65
diff -u -p -r1.65 main.c
--- main.c      25 May 2012 05:05:48 -0000      1.65
+++ main.c      28 May 2012 14:09:51 -0000
@@ -23,7 +23,7 @@ struct mgwin  *curwp;                         /* current windo
 struct mgwin   *wheadp;                        /* MGWIN listhead       */
 char            pat[NPAT];                     /* pattern              */
 
-static void     edinit(PF);
+static void     edinit(struct buffer *);
 static __dead void usage(void);
 
 extern char    *__progname;
@@ -40,11 +40,11 @@ usage()
 int
 main(int argc, char **argv)
 {
-       char    *cp, *init_fcn_name = NULL;
-       PF       init_fcn = NULL;
-       int      o, i, nfiles;
-       int      nobackups = 0;
-       struct buffer *bp;
+       char            *cp, *init_fcn_name = NULL;
+       PF               init_fcn = NULL;
+       int              o, i, nfiles;
+       int              nobackups = 0;
+       struct buffer   *bp = NULL;
 
        while ((o = getopt(argc, argv, "nf:")) != -1)
                switch (o) {
@@ -88,7 +88,7 @@ main(int argc, char **argv)
 
        vtinit();               /* Virtual terminal.            */
        dirinit();              /* Get current directory.       */
-       edinit(init_fcn);       /* Buffers, windows.            */
+       edinit(bp);             /* Buffers, windows.            */
        ttykeymapinit();        /* Symbols, bindings.           */
 
        /*
@@ -98,13 +98,6 @@ main(int argc, char **argv)
         */
        update();
 
-       /*
-        * Create scratch buffer now, killing old *init* buffer.
-        * This causes *scratch* to be created and made curbp.
-        */
-       if ((bp = bfind("*init*", FALSE)) != NULL)
-               killbuffer(bp);
-
        /* user startup file. */
        if ((cp = startupfile(NULL)) != NULL)
                (void)load(cp);
@@ -194,26 +187,23 @@ notnum:
 }
 
 /*
- * Initialize default buffer and window.
- * Initially, buffer is named *init*. This is changed later
- * to *scratch* after the startup files are read.
+ * Initialize default buffer and window. Default buffer is called *scratch*.
  */
 static void
-edinit(PF init_fcn)
+edinit(struct buffer *bp)
 {
-       struct buffer   *bp;
        struct mgwin    *wp;
 
        bheadp = NULL;
-       bp = bfind("*init*", TRUE);             /* Text buffer.          */
+       bp = bfind("*scratch*", TRUE);          /* Text buffer.          */
        if (bp == NULL)
                panic("edinit");
 
        wp = new_window(bp);
        if (wp == NULL)
-               panic("Out of memory");
+               panic("edinit: Out of memory");
 
-       curbp = bp;                             /* Current ones.         */
+       curbp = bp;                             /* Current buffer.       */
        wheadp = wp;
        curwp = wp;
        wp->w_wndp = NULL;                      /* Initialize window.    */

Reply via email to