]> granicus.if.org Git - graphviz/commitdiff
Merge functions missing on Windows into standard source files, so it will be
authorerg <devnull@localhost>
Fri, 9 Mar 2007 20:13:16 +0000 (20:13 +0000)
committererg <devnull@localhost>
Fri, 9 Mar 2007 20:13:16 +0000 (20:13 +0000)
unnecessary to add extra files.

lib/common/utils.c
lib/ingraphs/ingraphs.c

index b2ca7f1e757b381f8713e0ea1c153f7b1f19ecaf..624488d0dddc479d7c016f4167024a3babf4488a 100644 (file)
@@ -1689,3 +1689,46 @@ void setEdgeType (graph_t* g, int dflt)
     GD_flags(g) |= et;
 }
 
+#ifndef HAVE_STRCASECMP
+
+#include <string.h>
+#include <ctype.h>
+
+
+int strcasecmp(const char *s1, const char *s2)
+{
+    while ((*s1 != '\0')
+          && (tolower(*(unsigned char *) s1) ==
+              tolower(*(unsigned char *) s2))) {
+       s1++;
+       s2++;
+    }
+
+    return tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2);
+}
+
+#endif                         /* HAVE_STRCASECMP */
+
+#ifndef HAVE_STRNCASECMP
+
+#include <string.h>
+#include <ctype.h>
+
+int strncasecmp(const char *s1, const char *s2, unsigned int n)
+{
+    if (n == 0)
+       return 0;
+
+    while ((n-- != 0)
+          && (tolower(*(unsigned char *) s1) ==
+              tolower(*(unsigned char *) s2))) {
+       if (n == 0 || *s1 == '\0' || *s2 == '\0')
+           return 0;
+       s1++;
+       s2++;
+    }
+
+    return tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2);
+}
+
+#endif                         /* HAVE_STRNCASECMP */
index fa1506fd1ce2c6cf1d3d52864b8ccaae6d427b46..37aed1993a68a0b8538923d06f160a7a02bc7e95 100644 (file)
@@ -185,3 +185,78 @@ char *fileName(ingraph_state * sp)
     } else
        return "<stdin>";
 }
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifndef HAVE_GETOPT_H
+/*
+public domain AT&T getopt source
+*/
+#include <string.h>
+
+/*LINTLIBRARY*/
+
+#if 0
+#define EOF    (-1)
+#define ERR(s, c)      if(opterr){\
+       char errbuf[2];\
+       errbuf[0] = c; errbuf[1] = '\n';\
+       (void) write(2, argv[0], (unsigned)strlen(argv[0]));\
+       (void) write(2, s, (unsigned)strlen(s));\
+       (void) write(2, errbuf, 2);}
+#endif
+#define ERR(s, c)      if(opterr) fprintf (stderr, "%s%s'%c'\n", argv[0], s, c)
+
+int    opterr = 1;
+int    optind = 1;
+int    optopt;
+char   *optarg;
+
+int
+getopt(int argc, char** argv, char* opts)
+{
+       static int sp = 1;
+       register int c;
+       register char *cp;
+
+       if(sp == 1) {
+               if(optind >= argc ||
+                  argv[optind][0] != '-' || argv[optind][1] == '\0')
+                       return(EOF);
+               else if(strcmp(argv[optind], "--") == 0) {
+                       optind++;
+                       return(EOF);
+               }
+       }
+
+       optopt = c = argv[optind][sp];
+       if(c == ':' || (cp=strchr(opts, c)) == 0) {
+               ERR(": illegal option -- ", c);
+               if(argv[optind][++sp] == '\0') {
+                       optind++;
+                       sp = 1;
+               }
+               return('?');
+       }
+       if(*++cp == ':') {
+               if(argv[optind][sp+1] != '\0')
+                       optarg = &argv[optind++][sp+1];
+               else if(++optind >= argc) {
+                       ERR(": option requires an argument -- ", c);
+                       sp = 1;
+                       return('?');
+               } else
+                       optarg = argv[optind++];
+               sp = 1;
+       } else {
+               if(argv[optind][++sp] == '\0') {
+                       sp = 1;
+                       optind++;
+               }
+               optarg = 0;
+       }
+       return(c);
+}
+#endif