summaryrefslogtreecommitdiff
path: root/idlc
diff options
context:
space:
mode:
authorobo <obo@openoffice.org>2010-06-21 15:14:37 +0200
committerobo <obo@openoffice.org>2010-06-21 15:14:37 +0200
commit6efab9139910f65789c441f4c50d257ea319c93b (patch)
tree07802a90253d74355df1147dcadc251b0f7409fc /idlc
parentae01eb92c0eb24f877526eeda2a495a8ac51dab0 (diff)
parentf223e9d9b7a2c9ec1438c83de32bc9616fce6c18 (diff)
CWS-TOOLING: integrate CWS systemlibc
Diffstat (limited to 'idlc')
-rw-r--r--idlc/source/preproc/getopt.c94
-rw-r--r--idlc/source/preproc/makefile.mk7
-rw-r--r--idlc/source/preproc/nlist.c3
-rw-r--r--idlc/source/preproc/unix.c7
4 files changed, 9 insertions, 102 deletions
diff --git a/idlc/source/preproc/getopt.c b/idlc/source/preproc/getopt.c
deleted file mode 100644
index a8ee22a88..000000000
--- a/idlc/source/preproc/getopt.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <stdio.h>
-#include <string.h>
-
-#define EPR fprintf(stderr,
-#define ERR(str, chr) if(opterr) { EPR "%s%c\n", str, chr); }
-
-int opterr = 1;
-int optind = 1;
-int optopt;
-char *optarg;
-
-int
- cppgetopt(int argc, char *const argv[], const 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 -1;
- else
- if (strcmp(argv[optind], "--") == 0)
- {
- optind++;
- return -1;
- }
- }
- 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;
-}
diff --git a/idlc/source/preproc/makefile.mk b/idlc/source/preproc/makefile.mk
index 7347f815a..e6aa457e8 100644
--- a/idlc/source/preproc/makefile.mk
+++ b/idlc/source/preproc/makefile.mk
@@ -43,7 +43,6 @@ LIBSALCPPRT=$(0)
OBJFILES= \
$(OBJ)$/cpp.obj \
$(OBJ)$/eval.obj \
- $(OBJ)$/getopt.obj \
$(OBJ)$/include.obj \
$(OBJ)$/lex.obj \
$(OBJ)$/macro.obj \
@@ -64,6 +63,12 @@ APP1OBJS=$(OBJ)$/cpp.obj
APP1LIBS= $(LB)$/idlcpp.lib
+.IF "$(HAVE_GETOPT)" != "YES"
+.IF "$(GUI)" == "WNT"
+APP1STDLIBS=gnu_getopt.lib
+.ENDIF
+.ENDIF
+
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
diff --git a/idlc/source/preproc/nlist.c b/idlc/source/preproc/nlist.c
index e1b3089e7..1fde3ce43 100644
--- a/idlc/source/preproc/nlist.c
+++ b/idlc/source/preproc/nlist.c
@@ -29,9 +29,6 @@
#include <string.h>
#include "cpp.h"
-extern int cppgetopt(int, char *const *, const char *);
-extern char *optarg;
-extern int optind;
extern int Cplusplus;
Nlist *kwdefined;
char wd[128];
diff --git a/idlc/source/preproc/unix.c b/idlc/source/preproc/unix.c
index fae43597f..922b2a320 100644
--- a/idlc/source/preproc/unix.c
+++ b/idlc/source/preproc/unix.c
@@ -33,15 +33,14 @@
#if (defined(_WIN32) || defined(_MSDOS) || defined(__IBMC__))
#include <io.h>
#include <sys/stat.h>
+#include <external/glibc/getopt.h>
#else
#include <unistd.h>
#endif
#include "cpp.h"
-extern int cppgetopt(int, char *const *, const char *);
-extern char *optarg, rcsid[];
-extern int optind;
+extern char rcsid[];
int Pflag = 0; /* print no line information */
int Iflag = 0; /* print includes */
@@ -62,7 +61,7 @@ void
Tokenrow tr;
setup_kwtab();
- while ((c = cppgetopt(argc, argv, "NOPV:I:D:U:F:A:X:u:l:+")) != -1)
+ while ((c = getopt(argc, argv, "NOPV:I:D:U:F:A:X:u:l:+")) != -1)
switch (c)
{
case 'N':