use busybox funcs to make smaller
authorvapier <vapier@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Sun, 24 Apr 2005 05:39:52 +0000 (05:39 +0000)
committervapier <vapier@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Sun, 24 Apr 2005 05:39:52 +0000 (05:39 +0000)
git-svn-id: svn://busybox.net/trunk/busybox@10175 69ca8d6d-28ef-0310-b511-8ec308f3f277

patches/ed.patch

index cc3d138..6d51830 100644 (file)
@@ -60,8 +60,8 @@ Index: include/applets.h
        APPLET_NOUSAGE("egrep", grep_main, _BB_DIR_BIN, _BB_SUID_NEVER)
  #endif
 --- /dev/null  2005-04-24 01:00:01.350003056 -0400
-+++ editors/ed.c       2005-04-24 01:15:09.000000000 -0400
-@@ -0,0 +1,1447 @@
++++ ed.c       2005-04-24 01:38:51.000000000 -0400
+@@ -0,0 +1,1425 @@
 +/*
 + * Copyright (c) 2002 by David I. Bell
 + * Permission is granted to use, distribute, or modify this source,
@@ -80,49 +80,36 @@ Index: include/applets.h
 +#include <ctype.h>
 +#include <sys/param.h>
 +#include <malloc.h>
-+//#include "sash.h"
++#include "busybox.h"
 +
 +#define       USERSIZE        1024    /* max line length typed in by user */
 +#define       INITBUF_SIZE    1024    /* initial buffer size */
 +
 +typedef       int     BOOL;
-+
-+#define       FALSE   ((BOOL) 0)
-+#define       TRUE    ((BOOL) 1)
-+
-+#define       isBlank(ch)     (((ch) == ' ') || ((ch) == '\t'))
-+#define       isDecimal(ch)   (((ch) >= '0') && ((ch) <= '9'))
-+
-+#define       STDOUT          1
-+
 +typedef       int     NUM;
 +typedef       int     LEN;
 +
-+typedef       struct  LINE    LINE;
-+
-+struct        LINE
-+{
-+      LINE *  next;
-+      LINE *  prev;
++typedef struct LINE LINE;
++struct LINE {
++      LINE *next;
++      LINE *prev;
 +      LEN     len;
-+      char    data[1];
++      char data[1];
 +};
 +
++static LINE lines;
++static LINE *curLine;
++static NUM curNum;
++static NUM lastNum;
++static NUM marks[26];
++static BOOL dirty;
++static char *fileName;
++static char searchString[USERSIZE];
 +
-+static        LINE    lines;
-+static        LINE *  curLine;
-+static        NUM     curNum;
-+static        NUM     lastNum;
-+static        NUM     marks[26];
-+static        BOOL    dirty;
-+static        char *  fileName;
-+static        char    searchString[USERSIZE];
-+
-+static        char *  bufBase;
-+static        char *  bufPtr;
-+static        LEN     bufUsed;
-+static        LEN     bufSize;
-+
++static char *bufBase;
++static char *bufPtr;
++static LEN bufUsed;
++static LEN bufSize;
 +
 +static        void    doCommands(void);
 +static        void    subCommand(const char * cmd, NUM num1, NUM num2);
@@ -139,33 +126,25 @@ Index: include/applets.h
 +static        NUM     searchLines(const char * str, NUM num1, NUM num2);
 +static        LINE *  findLine(NUM num);
 +
-+static        LEN     findString
-+      (const LINE * lp, const char * str, LEN len, LEN offset);
++static LEN findString(const LINE * lp, const char * str, LEN len, LEN offset);
 +
-+
-+void
-+ed_main(int argc, const char ** argv)
++int ed_main(int argc, char **argv)
 +{
 +      if (!initEdit())
-+              return;
++              return EXIT_FAILURE;
 +
-+      if (argc > 1)
-+      {
++      if (argc > 1) {
 +              fileName = strdup(argv[1]);
 +
-+              if (fileName == NULL)
-+              {
-+                      fprintf(stderr, "No memory\n");
++              if (fileName == NULL) {
++                      bb_error_msg("No memory");
 +                      termEdit();
-+
-+                      return;
++                      return EXIT_SUCCESS;
 +              }
 +
-+              if (!readLines(fileName, 1))
-+              {
++              if (!readLines(fileName, 1)) {
 +                      termEdit();
-+
-+                      return;
++                      return EXIT_SUCCESS;
 +              }
 +
 +              if (lastNum)
@@ -177,14 +156,13 @@ Index: include/applets.h
 +      doCommands();
 +
 +      termEdit();
++      return EXIT_SUCCESS;
 +}
 +
-+
 +/*
 + * Read commands until we are told to stop.
 + */
-+static void
-+doCommands(void)
++static void doCommands(void)
 +{
 +      const char *    cp;
 +      char *          endbuf;
@@ -213,7 +191,7 @@ Index: include/applets.h
 +
 +              if (*endbuf != '\n')
 +              {
-+                      fprintf(stderr, "Command line too long\n");
++                      bb_error_msg("Command line too long");
 +
 +                      do
 +                      {
@@ -224,14 +202,14 @@ Index: include/applets.h
 +                      continue;
 +              }
 +
-+              while ((endbuf > buf) && isBlank(endbuf[-1]))
++              while ((endbuf > buf) && isblank(endbuf[-1]))
 +                      endbuf--;
 +
 +              *endbuf = '\0';
 +
 +              cp = buf;
 +
-+              while (isBlank(*cp))
++              while (isblank(*cp))
 +                      cp++;
 +
 +              have1 = FALSE;
@@ -246,7 +224,7 @@ Index: include/applets.h
 +              if (!getNum(&cp, &have1, &num1))
 +                      continue;
 +
-+              while (isBlank(*cp))
++              while (isblank(*cp))
 +                      cp++;
 +
 +              if (*cp == ',')
@@ -288,13 +266,13 @@ Index: include/applets.h
 +                              break;
 +
 +                      case 'f':
-+                              if (*cp && !isBlank(*cp))
++                              if (*cp && !isblank(*cp))
 +                              {
-+                                      fprintf(stderr, "Bad file command\n");
++                                      bb_error_msg("Bad file command");
 +                                      break;
 +                              }
 +
-+                              while (isBlank(*cp))
++                              while (isblank(*cp))
 +                                      cp++;
 +
 +                              if (*cp == '\0')
@@ -311,7 +289,7 @@ Index: include/applets.h
 +
 +                              if (newname == NULL)
 +                              {
-+                                      fprintf(stderr, "No memory for file name\n");
++                                      bb_error_msg("No memory for file name");
 +                                      break;
 +                              }
 +
@@ -326,12 +304,12 @@ Index: include/applets.h
 +                              break;
 +
 +                      case 'k':
-+                              while (isBlank(*cp))
++                              while (isblank(*cp))
 +                                      cp++;
 +
 +                              if ((*cp < 'a') || (*cp > 'a') || cp[1])
 +                              {
-+                                      fprintf(stderr, "Bad mark name\n");
++                                      bb_error_msg("Bad mark name");
 +                                      break;
 +                              }
 +
@@ -347,12 +325,12 @@ Index: include/applets.h
 +                              break;
 +
 +                      case 'q':
-+                              while (isBlank(*cp))
++                              while (isblank(*cp))
 +                                      cp++;
 +
 +                              if (have1 || *cp)
 +                              {
-+                                      fprintf(stderr, "Bad quit command\n");
++                                      bb_error_msg("Bad quit command");
 +                                      break;
 +                              }
 +
@@ -366,7 +344,7 @@ Index: include/applets.h
 +                              fgets(buf, sizeof(buf), stdin);
 +                              cp = buf;
 +
-+                              while (isBlank(*cp))
++                              while (isblank(*cp))
 +                                      cp++;
 +
 +                              if ((*cp == 'y') || (*cp == 'Y'))
@@ -375,18 +353,18 @@ Index: include/applets.h
 +                              break;
 +
 +                      case 'r':
-+                              if (*cp && !isBlank(*cp))
++                              if (*cp && !isblank(*cp))
 +                              {
-+                                      fprintf(stderr, "Bad read command\n");
++                                      bb_error_msg("Bad read command");
 +                                      break;
 +                              }
 +
-+                              while (isBlank(*cp))
++                              while (isblank(*cp))
 +                                      cp++;
 +
 +                              if (*cp == '\0')
 +                              {
-+                                      fprintf(stderr, "No file name\n");
++                                      bb_error_msg("No file name");
 +                                      break;
 +                              }
 +
@@ -406,13 +384,13 @@ Index: include/applets.h
 +                              break;
 +
 +                      case 'w':
-+                              if (*cp && !isBlank(*cp))
++                              if (*cp && !isblank(*cp))
 +                              {
-+                                      fprintf(stderr, "Bad write command\n");
++                                      bb_error_msg("Bad write command");
 +                                      break;
 +                              }
 +
-+                              while (isBlank(*cp))
++                              while (isblank(*cp))
 +                                      cp++;
 +
 +                              if (!have1) {
@@ -425,7 +403,7 @@ Index: include/applets.h
 +
 +                              if (cp == NULL)
 +                              {
-+                                      fprintf(stderr, "No file name specified\n");
++                                      bb_error_msg("No file name specified");
 +                                      break;
 +                              }
 +      
@@ -450,7 +428,7 @@ Index: include/applets.h
 +                      case '.':
 +                              if (have1)
 +                              {
-+                                      fprintf(stderr, "No arguments allowed\n");
++                                      bb_error_msg("No arguments allowed");
 +                                      break;
 +                              }
 +
@@ -480,7 +458,7 @@ Index: include/applets.h
 +                              break;
 +
 +                      default:
-+                              fprintf(stderr, "Unimplemented command\n");
++                              bb_error_msg("Unimplemented command");
 +                              break;
 +              }
 +      }
@@ -512,7 +490,7 @@ Index: include/applets.h
 +
 +      if ((num1 < 1) || (num2 > lastNum) || (num1 > num2))
 +      {
-+              fprintf(stderr, "Bad line range for substitute\n");
++              bb_error_msg("Bad line range for substitute");
 +
 +              return;
 +      }
@@ -528,9 +506,9 @@ Index: include/applets.h
 +      strcpy(buf, cmd);
 +      cp = buf;
 +
-+      if (isBlank(*cp) || (*cp == '\0'))
++      if (isblank(*cp) || (*cp == '\0'))
 +      {
-+              fprintf(stderr, "Bad delimiter for substitute\n");
++              bb_error_msg("Bad delimiter for substitute");
 +
 +              return;
 +      }
@@ -542,7 +520,7 @@ Index: include/applets.h
 +
 +      if (cp == NULL)
 +      {
-+              fprintf(stderr, "Missing 2nd delimiter for substitute\n");
++              bb_error_msg("Missing 2nd delimiter for substitute");
 +
 +              return;
 +      }
@@ -568,7 +546,7 @@ Index: include/applets.h
 +                      break;
 +
 +              default:
-+                      fprintf(stderr, "Unknown option for substitute\n");
++                      bb_error_msg("Unknown option for substitute");
 +
 +                      return;
 +      }
@@ -577,7 +555,7 @@ Index: include/applets.h
 +      {
 +              if (searchString[0] == '\0')
 +              {
-+                      fprintf(stderr, "No previous search string\n");
++                      bb_error_msg("No previous search string");
 +
 +                      return;
 +              }
@@ -665,7 +643,7 @@ Index: include/applets.h
 +
 +              if (nlp == NULL)
 +              {
-+                      fprintf(stderr, "Cannot get memory for line\n");
++                      bb_error_msg("Cannot get memory for line");
 +
 +                      return;
 +              }
@@ -707,7 +685,7 @@ Index: include/applets.h
 +      }
 +
 +      if (!didSub)
-+              fprintf(stderr, "No substitutions found for \"%s\"\n", oldStr);
++              bb_error_msg("No substitutions found for \"%s\"", oldStr);
 +}
 +
 +
@@ -774,7 +752,7 @@ Index: include/applets.h
 +
 +              if (buf[len - 1] != '\n')
 +              {
-+                      fprintf(stderr, "Line too long\n");
++                      bb_error_msg("Line too long");
 +
 +                      do
 +                      {
@@ -817,7 +795,7 @@ Index: include/applets.h
 +
 +      while (TRUE)
 +      {
-+              while (isBlank(*cp))
++              while (isblank(*cp))
 +                      cp++;
 +
 +              switch (*cp)
@@ -839,7 +817,7 @@ Index: include/applets.h
 +
 +                              if ((*cp < 'a') || (*cp > 'z'))
 +                              {
-+                                      fprintf(stderr, "Bad mark name\n");
++                                      bb_error_msg("Bad mark name");
 +
 +                                      return FALSE;
 +                              }
@@ -869,7 +847,7 @@ Index: include/applets.h
 +                              break;
 +
 +                      default:
-+                              if (!isDecimal(*cp))
++                              if (!isdigit(*cp))
 +                              {
 +                                      *retcp = cp;
 +                                      *retHaveNum = haveNum;
@@ -880,7 +858,7 @@ Index: include/applets.h
 +
 +                              num = 0;
 +
-+                              while (isDecimal(*cp))
++                              while (isdigit(*cp))
 +                                      num = num * 10 + *cp++ - '0';
 +
 +                              haveNum = TRUE;
@@ -889,7 +867,7 @@ Index: include/applets.h
 +
 +              value += num * sign;
 +
-+              while (isBlank(*cp))
++              while (isblank(*cp))
 +                      cp++;
 +
 +              switch (*cp)
@@ -928,7 +906,7 @@ Index: include/applets.h
 +
 +      if (bufBase == NULL)
 +      {
-+              fprintf(stderr, "No memory for buffer\n");
++              bb_error_msg("No memory for buffer");
 +
 +              return FALSE;
 +      }
@@ -999,7 +977,7 @@ Index: include/applets.h
 +
 +      if ((num < 1) || (num > lastNum + 1))
 +      {
-+              fprintf(stderr, "Bad line for read\n");
++              bb_error_msg("Bad line for read");
 +
 +              return FALSE;
 +      }
@@ -1059,7 +1037,7 @@ Index: include/applets.h
 +
 +                      if (cp == NULL)
 +                      {
-+                              fprintf(stderr, "No memory for buffer\n");
++                              bb_error_msg("No memory for buffer");
 +                              close(fd);
 +
 +                              return FALSE;
@@ -1121,7 +1099,7 @@ Index: include/applets.h
 +
 +      if ((num1 < 1) || (num2 > lastNum) || (num1 > num2))
 +      {
-+              fprintf(stderr, "Bad line range for write\n");
++              bb_error_msg("Bad line range for write");
 +
 +              return FALSE;
 +      }
@@ -1193,7 +1171,7 @@ Index: include/applets.h
 +
 +      if ((num1 < 1) || (num2 > lastNum) || (num1 > num2))
 +      {
-+              fprintf(stderr, "Bad line range for print\n");
++              bb_error_msg("Bad line range for print");
 +
 +              return FALSE;
 +      }
@@ -1207,7 +1185,7 @@ Index: include/applets.h
 +      {
 +              if (!expandFlag)
 +              {
-+                      write(STDOUT, lp->data, lp->len);
++                      write(1, lp->data, lp->len);
 +                      setCurNum(num1++);
 +                      lp = lp->next;
 +
@@ -1274,7 +1252,7 @@ Index: include/applets.h
 +
 +      if ((num < 1) || (num > lastNum + 1))
 +      {
-+              fprintf(stderr, "Inserting at bad line number\n");
++              bb_error_msg("Inserting at bad line number");
 +
 +              return FALSE;
 +      }
@@ -1283,7 +1261,7 @@ Index: include/applets.h
 +
 +      if (newLp == NULL) 
 +      {
-+              fprintf(stderr, "Failed to allocate memory for line\n");
++              bb_error_msg("Failed to allocate memory for line");
 +
 +              return FALSE;
 +      }
@@ -1330,7 +1308,7 @@ Index: include/applets.h
 +
 +      if ((num1 < 1) || (num2 > lastNum) || (num1 > num2))
 +      {
-+              fprintf(stderr, "Bad line numbers for delete\n");
++              bb_error_msg("Bad line numbers for delete");
 +
 +              return FALSE;
 +      }
@@ -1391,7 +1369,7 @@ Index: include/applets.h
 +
 +      if ((num1 < 1) || (num2 > lastNum) || (num1 > num2))
 +      {
-+              fprintf(stderr, "Bad line numbers for search\n");
++              bb_error_msg("Bad line numbers for search");
 +
 +              return 0;
 +      }
@@ -1400,7 +1378,7 @@ Index: include/applets.h
 +      {
 +              if (searchString[0] == '\0')
 +              {
-+                      fprintf(stderr, "No previous search string\n");
++                      bb_error_msg("No previous search string");
 +
 +                      return 0;
 +              }
@@ -1427,7 +1405,7 @@ Index: include/applets.h
 +              lp = lp->next;
 +      }
 +
-+      fprintf(stderr, "Cannot find string \"%s\"\n", str);
++      bb_error_msg("Cannot find string \"%s\"", str);
 +
 +      return 0;
 +}
@@ -1444,7 +1422,7 @@ Index: include/applets.h
 +
 +      if ((num < 1) || (num > lastNum))
 +      {
-+              fprintf(stderr, "Line number %d does not exist\n", num);
++              bb_error_msg("Line number %d does not exist", num);
 +
 +              return NULL;
 +      }