sdcc-cf:
authorborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 12 Jun 2007 15:43:05 +0000 (15:43 +0000)
committerborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 12 Jun 2007 15:43:05 +0000 (15:43 +0000)
* packages/build.gpsim/Makefile: use new svn URL scheme

adcc-web:
* index.php, snap_header.php, left_menu.inc:
  use new svn URL scheme

sdcc:
* src/pic16/main.c, src/SDCCargs.h, SDCCmain.c,
  support/regression/Makefile.in, support/scripts/build.mak,
  support/scripts/Makefile.snapshot:
  use new svn URL scheme

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4848 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/SDCCargs.h
src/SDCCmain.c
src/pic16/main.c
support/regression/Makefile.in
support/scripts/Makefile.snapshot
support/scripts/build.mak

index 6d5c3a44e20cd7d7bf11d1a6c42095570d1fc424..6cea3defee4f7cd0dec08159e5e486af742d1f7c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-06-12 Borut Razem <borut.razem AT siol.net>
+
+       * src/pic16/main.c, src/SDCCargs.h, SDCCmain.c,
+         support/regression/Makefile.in, support/scripts/build.mak,
+         support/scripts/Makefile.snapshot:
+         use new svn URL scheme
+
 2007-06-10 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
 
        * src/mcs51/peeph.def: disabled rule 132.d to fix #1734654
index 1a379101356107fe6326e9d21e3a7b90c685decc..dc8c3ff5a64fdb356a4d612611d37352a45282a3 100644 (file)
 #ifndef SDCCARGS_H
 #define SDCCARGS_H
 
+/** Specifies option argument types.  */
+enum cl_opt_arg_type {
+  /*  */
+  CLAT_BOOLEAN,
+  CLAT_INTEGER,
+  CLAT_STRING,
+  CLAT_SET
+};
+
 /** Table of all options supported by all ports.
     This table provides:
       * A reference for all options.
       * An easy way to maintain help for the options.
       * Automatic support for setting flags on simple options.
 */
-typedef struct {
+typedef struct
+  {
     /** The short option character e.g. 'h' for -h.  0 for none. */
     char shortOpt;
     /** Long option e.g. "--help".  Includes the -- prefix.  NULL for
@@ -44,10 +54,12 @@ typedef struct {
     /** Pointer to an int that will be incremented every time the
         option is encountered.  May be NULL.
     */
-    int *pparameter;
+    void *pparameter;
     /** Help text to go with this option.  May be NULL. */
     const char *help;
-} OPTION;
+    /** Optin argument type */
+    enum cl_opt_arg_type arg_type;
+  } OPTION;
 
 char *getStringArg(const char *szStart, char **argv, int *pi, int argc);
 int getIntArg(const char *szStart, char **argv, int *pi, int argc);
index 51218ee797baa4f2c7d08974784cbfc3c58ccb69..d8eb615f943993d63711c2aa41559b00cd918697 100644 (file)
@@ -768,77 +768,114 @@ tryHandleUnsupportedOpt(char **argv, int *pi)
 }
 
 static bool
-scanOptionsTable(const OPTION *optionsTable, char shortOpt, const char *longOpt, char **argv, int *pi)
+scanOptionsTable(const OPTION *optionsTable, char shortOpt, const char *longOpt, char **argv, int *pi, int argc)
 {
   int i;
+
   for (i = 0;
        optionsTable[i].shortOpt != 0 || optionsTable[i].longOpt != NULL
        || optionsTable[i].help != NULL;
        i++)
     {
-      if (optionsTable[i].shortOpt == shortOpt ||
-          (longOpt && optionsTable[i].longOpt &&
-           strcmp(optionsTable[i].longOpt, longOpt) == 0))
+      if (optionsTable[i].shortOpt == shortOpt)
         {
-
-          /* If it is a flag then we can handle it here */
           if (optionsTable[i].pparameter != NULL)
             {
-              if (optionsTable[i].shortOpt == shortOpt)
+              verifyShortOption(argv[*pi]);
+
+              (*(int *)optionsTable[i].pparameter)++;
+            }
+          else
+            {
+              /* Not a flag.  Handled manually later. */
+              return FALSE;
+            }
+        }
+      else
+        {
+          size_t len = strlen(optionsTable[i].longOpt);
+
+          if (longOpt &&
+            (optionsTable[i].arg_type != CLAT_BOOLEAN ||
+            optionsTable[i].arg_type == CLAT_BOOLEAN && len == strlen(longOpt) && optionsTable[i].longOpt) &&
+            strncmp(optionsTable[i].longOpt, longOpt, len) == 0)
+            {
+              /* If it is a flag then we can handle it here */
+              if (optionsTable[i].pparameter != NULL)
                 {
-                  verifyShortOption(argv[*pi]);
+                  switch (optionsTable[i].arg_type)
+                    {
+                    case CLAT_BOOLEAN:
+                      (*(int *)optionsTable[i].pparameter)++;
+                      break;
+
+                    case CLAT_INTEGER:
+                      *(int *)optionsTable[i].pparameter = getIntArg (optionsTable[i].longOpt, argv, pi, argc);
+                      break;
+
+                    case CLAT_STRING:
+                      if (*(char **)optionsTable[i].pparameter)
+                        Safe_free(*(char **)optionsTable[i].pparameter);
+                      *(char **)optionsTable[i].pparameter = Safe_strdup(getStringArg (optionsTable[i].longOpt, argv, pi, argc));
+                      break;
+
+                    case CLAT_SET:
+                      if (*(set **)optionsTable[i].pparameter)
+                        deleteSet((set **)optionsTable[i].pparameter);
+                      setParseWithComma((set **)optionsTable[i].pparameter, getStringArg(optionsTable[i].longOpt, argv, &i, argc));
+                      break;
+                    }
+                  return TRUE;
+                }
+              else
+                {
+                  /* Not a flag.  Handled manually later. */
+                  return FALSE;
                 }
-
-              (*optionsTable[i].pparameter)++;
-              return 1;
             }
-          else {
-            /* Not a flag.  Handled manually later. */
-            return 0;
-          }
         }
     }
   /* Didn't find in the table */
-  return 0;
+  return FALSE;
 }
 
 static bool
-tryHandleSimpleOpt(char **argv, int *pi)
+tryHandleSimpleOpt(char **argv, int *pi, int argc)
 {
-    if (argv[*pi][0] == '-')
-        {
-            const char *longOpt = "";
-            char shortOpt = -1;
+  if (argv[*pi][0] == '-')
+    {
+      const char *longOpt = "";
+      char shortOpt = -1;
 
-            if (argv[*pi][1] == '-')
-                {
-                    /* Long option. */
-                    longOpt = argv[*pi];
-                }
-            else
-                {
-                    shortOpt = argv[*pi][1];
-                }
+      if (argv[*pi][1] == '-')
+        {
+          /* Long option. */
+          longOpt = argv[*pi];
+        }
+      else
+        {
+          shortOpt = argv[*pi][1];
+        }
 
-            if (scanOptionsTable(optionsTable, shortOpt, longOpt, argv, pi))
-              {
-                return 1;
-              }
-            else if (port && port->poptions &&
-                     scanOptionsTable(port->poptions, shortOpt, longOpt, argv, pi))
-              {
-                return 1;
-              }
-            else
-              {
-                return 0;
-              }
+      if (scanOptionsTable(optionsTable, shortOpt, longOpt, argv, pi, argc))
+        {
+          return TRUE;
         }
-    else
+      else if (port && port->poptions &&
+               scanOptionsTable(port->poptions, shortOpt, longOpt, argv, pi, argc))
         {
-            /* Not an option, so can't be handled. */
-            return 0;
+          return TRUE;
         }
+      else
+        {
+          return FALSE;
+        }
+    }
+  else
+    {
+      /* Not an option, so can't be handled. */
+      return FALSE;
+    }
 }
 
 /*-----------------------------------------------------------------*/
@@ -866,7 +903,7 @@ parseCmdLine (int argc, char **argv)
           continue;
         }
 
-      if (tryHandleSimpleOpt(argv, &i) == TRUE)
+      if (tryHandleSimpleOpt(argv, &i, argc) == TRUE)
         {
           continue;
         }
index bf96970237f1d17443d441c4f1317ff6a6ee5005..81ee7110d91d076d8fdf13e44b3c2ff82214ee06 100644 (file)
@@ -599,7 +599,7 @@ _pic16_parseOptions (int *pargc, char **argv, int *i)
     /* check for arguments that have associated an integer variable */
     while(pic16_optionsTable[j].pparameter) {
       if(ISOPT( pic16_optionsTable[j].longOpt )) {
-        (*pic16_optionsTable[j].pparameter)++;
+        (*(int *)pic16_optionsTable[j].pparameter)++;
         return TRUE;
       }
       j++;
index 7bf2b91bf2875909af72945b9d0f7b2475075e19..8037ec130fea5a451b625e2cfa76ebfada370f04 100644 (file)
@@ -16,7 +16,7 @@
 
 # Dependancies:
 #   * The sdcc-extra package, available from svn.
-#       o svn co https://svn.sourceforge.net/svnroot/sdcc/trunk/sdcc-extra
+#       o svn co https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc-extra
 #       o Provides the emulators
 #   * The gbdk-lib package from gbdk.
 #       o cvs -d cvs.gbdk.sourceforge.net:/cvsroot/gbdk co gbdk-lib
index c1bfff4464a65922be3dc70cc3d3ab252ec37504..618d5d0f02d380289237ba7c937502d68f2fbc09 100644 (file)
@@ -1,5 +1,5 @@
 # Simple weekly tarball generator
-SVNROOT = https://svn.sourceforge.net/svnroot/sdcc/trunk/sdcc
+SVNROOT = https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc
 DATE = `date +%Y%m%d`
 WWWROOT = /home/michaelh/www
 SNAP = $(WWWROOT)/snapshots
index 945ac61ac3d76948845354d65ecfe05e34645e1b..d4f0477015f680a854d459abfc40b6bbaee80db7 100644 (file)
@@ -26,7 +26,7 @@ COMPILE_MODE = linux-mingw32
 SDCC_OR_GBDK = sdcc
 
 ROOT_GBDK = :pserver:anonymous@cvs.gbdk.sourceforge.net:/cvsroot/gbdk
-ROOT_SDCC = https://svn.sourceforge.net/svnroot/sdcc
+ROOT_SDCC = https://sdcc.svn.sourceforge.net/svnroot/sdcc
 
 ifeq ($(COMPILE_MODE),linux-linux)
 # For Linux