diff options
author | Matthias Huetsch [mhu] <matthias.huetsch@oracle.com> | 2010-12-13 11:06:14 +0100 |
---|---|---|
committer | Matthias Huetsch [mhu] <matthias.huetsch@oracle.com> | 2010-12-13 11:06:14 +0100 |
commit | b480a8b31cfa6e4b24c111c32905b58e33a52138 (patch) | |
tree | 41cc052a715eb7df15cb846bfb26707fffec9f21 /idlc | |
parent | 340b22a09175abb796dc7df234962ef958b1ad6f (diff) | |
parent | e944bed1166d34170eaa6ff3dcabfc73a5d81edf (diff) |
Update from master repository (DEV300_m95).
Diffstat (limited to 'idlc')
-rw-r--r-- | idlc/source/preproc/getopt.c | 94 | ||||
-rw-r--r-- | idlc/source/preproc/makefile.mk | 7 | ||||
-rw-r--r-- | idlc/source/preproc/nlist.c | 3 | ||||
-rw-r--r-- | idlc/source/preproc/tokens.c | 6 | ||||
-rw-r--r-- | idlc/source/preproc/unix.c | 7 |
5 files changed, 13 insertions, 104 deletions
diff --git a/idlc/source/preproc/getopt.c b/idlc/source/preproc/getopt.c deleted file mode 100644 index a6163e75075c..000000000000 --- 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 7347f815a23f..e6aa457e8b3d 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 3f32fd4cca28..f41313c22aac 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/tokens.c b/idlc/source/preproc/tokens.c index 6df35ae1f238..23ab88a5a9e3 100644 --- a/idlc/source/preproc/tokens.c +++ b/idlc/source/preproc/tokens.c @@ -474,7 +474,8 @@ void if (wbp >= &wbuf[OBS]) { - write(1, wbuf, OBS); + if (write(1, wbuf, OBS) != OBS) + error(ERROR, "short write!"); if (wbp > &wbuf[OBS]) memcpy(wbuf, wbuf + OBS, wbp - &wbuf[OBS]); wbp -= OBS; @@ -490,7 +491,8 @@ void { if (wbp > wbuf) { - write(1, wbuf, wbp - wbuf); + if (write(1, wbuf, wbp - wbuf) != wbp - wbuf) + error(ERROR, "short write!"); wbp = wbuf; } } diff --git a/idlc/source/preproc/unix.c b/idlc/source/preproc/unix.c index 2d37fa1eef95..808b1d90dbd3 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': |