f0e5895d5b
* commit 'ooo/DEV300_m101': (500 commits) masterfix DEV300: #i10000# remove hard dep masterfix DEV300: #i10000# usage of L10N build_type masterfix DEV300: #i10000# usage of L10N build_type masterfix DEV300: #i100000# dep. fix masterfix DEV300: #i10000# removed one hard dep masterfix DEV300: #i10000# fixed patch handling masterfix DEV300: #i10000# new configure DEV300 masterfix DEV300: #i10000# nawk -> awk l10nmove: adjust repository handling l10nmove: fixed regex l10nmove: minor fixes l10nmove: add l10n repo to gb_REPOS DEV300 masterfix: gnumake3: subsequenttests requires in environment ab80: Adding changes of cws mib21, ab77, ab77run2, dr77i to dev300 DEV300 masterfix: #i10000#: windows: more bizare hacks ... locales34: have a matching configure as well DEV300 locales34: back out change from autoreconf gnumake3: JunitTest.mk: bizarre hacks to make it work on windows ... Conflicts: configure configure.in instsetoo_native/prj/build.lst instsetoo_native/util/makefile.mk instsetoo_native/util/openoffice.lst instsetoo_native/util/pack.lst ooo.lst scp2/source/canvas/canvascommons.scp scp2/source/canvas/mtfrenderer.scp scp2/source/ooo/common_brand.scp scp2/source/ooo/directory_ooo.scp scp2/source/ooo/file_library_ooo.scp scp2/source/ooo/file_ooo.scp scp2/source/ooo/makefile.mk scp2/source/ooo/module_hidden_ooo.scp scp2/source/ooo/module_langpack.ulf scp2/source/ooo/ure.scp scp2/source/python/file_python.scp scp2/source/sdkoo/sdkoo.scp scp2/source/templates/module_langpack_accessories_templates.sct scp2/source/templates/module_langpack_accessories_templates_root.sct set_soenv.in soldep/bootstrp/appdef.cxx soldep/bootstrp/dep.cxx soldep/bootstrp/hashtbl.cxx soldep/bootstrp/makefile.mk soldep/bootstrp/minormk.cxx soldep/bootstrp/prj.cxx soldep/bootstrp/prodmap.cxx soldep/inc/dep.hxx soldep/inc/minormk.hxx soldep/inc/prodmap.hxx soldep/inc/soldep/appdef.hxx soldep/inc/soldep/connctr.hxx soldep/inc/soldep/depper.hxx soldep/inc/soldep/depwin.hxx soldep/inc/soldep/hashtbl.hxx soldep/inc/soldep/objwin.hxx soldep/inc/soldep/prj.hxx soldep/inc/soldep/sdtresid.hxx soldep/inc/soldep/soldep.hxx soldep/inc/soldep/soldlg.hxx soldep/inc/soldep/tbox.hxx soldep/prj/d.lst soldep/source/connctr.cxx soldep/source/depapp.hxx soldep/source/depper.cxx soldep/source/depwin.cxx soldep/source/makefile.mk soldep/source/objwin.cxx soldep/source/soldep.cxx soldep/source/soldlg.cxx soldep/source/soldlg.src soldep/source/tbox.cxx solenv/bin/build.pl solenv/bin/cws.pl solenv/bin/make_installer.pl solenv/bin/mhids.pl solenv/bin/modules/CwsConfig.pm solenv/bin/modules/RepositoryHelper.pm solenv/bin/modules/installer/regmerge.pm solenv/bin/modules/installer/scriptitems.pm solenv/bin/modules/installer/servicesfile.pm solenv/bin/modules/installer/simplepackage.pm solenv/bin/modules/installer/substfilenamefiles.pm solenv/config/ssolar.cmn solenv/inc/_tg_rslb.mk solenv/inc/extension_post.mk solenv/inc/libs.mk solenv/inc/minor.mk solenv/inc/postset.mk solenv/inc/settings.mk solenv/inc/tg_rslb.mk solenv/inc/unxlng.mk solenv/inc/wntmsc.mk soltools/HIDCompiler/hidclex.l stlport/prj/d.lst stlport/systemstlguards/postextstl.h
191 lines
5.9 KiB
C
191 lines
5.9 KiB
C
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/* $XConsortium: def.h,v 1.25 94/04/17 20:10:33 gildea Exp $ */
|
|
/*
|
|
|
|
Copyright (c) 1993, 1994 X Consortium
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
in the Software without restriction, including without limitation the rights
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
|
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
Except as contained in this notice, the name of the X Consortium shall not be
|
|
used in advertising or otherwise to promote the sale, use or other dealings
|
|
in this Software without prior written authorization from the X Consortium.
|
|
|
|
*/
|
|
|
|
#ifndef NO_X11
|
|
#include <X11/Xosdefs.h>
|
|
#ifdef WIN32
|
|
#include <X11/Xw32defs.h>
|
|
#endif
|
|
#ifndef SUNOS4
|
|
#include <X11/Xfuncproto.h>
|
|
#endif /* SUNOS4 */
|
|
#endif /* NO_X11 */
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
|
|
#include <ctype.h>
|
|
#ifndef X_NOT_POSIX
|
|
#ifndef _POSIX_SOURCE
|
|
#define _POSIX_SOURCE
|
|
#endif
|
|
#endif
|
|
#include <sys/types.h>
|
|
#include <fcntl.h>
|
|
#include <sys/stat.h>
|
|
|
|
#ifndef S_IFDIR
|
|
#define S_IFDIR 0040000
|
|
#endif
|
|
|
|
#ifndef S_IFREG
|
|
#define S_IFREG 0100000
|
|
#endif
|
|
|
|
#define MAXDEFINES 512
|
|
#define MAXFILES 65536
|
|
|
|
#define MAXDIRS 64
|
|
#define SYMHASHSEED 131 /* 131 1313 13131 ... */
|
|
#define SYMHASHMEMBERS 64 /* must be 2^x to work right */
|
|
#define TRUE 1
|
|
#define FALSE 0
|
|
|
|
/* the following must match the directives table in main.c */
|
|
#define IF 0
|
|
#define IFDEF 1
|
|
#define IFNDEF 2
|
|
#define ELSE 3
|
|
#define ENDIF 4
|
|
#define DEFINE 5
|
|
#define UNDEF 6
|
|
#define INCLUDE 7
|
|
#define LINE 8
|
|
#define PRAGMA 9
|
|
#define ERROR 10
|
|
#define IDENT 11
|
|
#define SCCS 12
|
|
#define ELIF 13
|
|
#define EJECT 14
|
|
#define IFFALSE 15 /* pseudo value --- never matched */
|
|
#define ELIFFALSE 16 /* pseudo value --- never matched */
|
|
#define INCLUDEDOT 17 /* pseudo value --- never matched */
|
|
#define IFGUESSFALSE 18 /* pseudo value --- never matched */
|
|
#define ELIFGUESSFALSE 19 /* pseudo value --- never matched */
|
|
|
|
#ifdef DEBUG
|
|
extern int _debugmask;
|
|
/*
|
|
* debug levels are:
|
|
*
|
|
* 0 show ifn*(def)*,endif
|
|
* 1 trace defined/!defined
|
|
* 2 show #include
|
|
* 3 show #include SYMBOL
|
|
* 4-6 unused
|
|
*/
|
|
#define debug(level,arg) { if (_debugmask & (1 << level)) warning arg; }
|
|
#else
|
|
#define debug(level,arg) /**/
|
|
#endif /* DEBUG */
|
|
|
|
// VG: a C++ class for information about directories
|
|
#include "collectdircontent.hxx"
|
|
|
|
typedef unsigned char boolean;
|
|
|
|
struct pair {
|
|
char *p_name;
|
|
char *p_value;
|
|
struct pair *p_next;
|
|
};
|
|
|
|
struct symhash {
|
|
struct pair *s_pairs[SYMHASHMEMBERS];
|
|
};
|
|
|
|
struct inclist {
|
|
char *i_incstring; /* string from #include line */
|
|
char *i_file; /* path name of the include file */
|
|
struct inclist **i_list; /* list of files it itself includes */
|
|
int i_listlen; /* length of i_list */
|
|
boolean i_defchecked; /* whether defines have been checked */
|
|
boolean i_notified; /* whether we have revealed includes */
|
|
boolean i_marked; /* whether it's in the makefile */
|
|
boolean i_searched; /* whether we have read this */
|
|
boolean i_included_sym; /* whether #include SYMBOL was found */
|
|
/* Can't use i_list if TRUE */
|
|
};
|
|
|
|
struct filepointer {
|
|
char *f_p;
|
|
char *f_base;
|
|
char *f_end;
|
|
long f_len;
|
|
long f_line;
|
|
};
|
|
|
|
#ifndef X_NOT_STDC_ENV
|
|
#include <stdlib.h>
|
|
#if defined(macII) && !defined(__STDC__) /* stdlib.h fails to define these */
|
|
char *malloc(), *realloc();
|
|
#endif /* macII */
|
|
#else
|
|
char *malloc();
|
|
char *realloc();
|
|
#endif
|
|
|
|
char *copy();
|
|
char *base_name();
|
|
char *get_line();
|
|
char *isdefined();
|
|
struct filepointer *getfile();
|
|
struct inclist *newinclude();
|
|
struct inclist *inc_path();
|
|
|
|
void define( char *def, struct symhash **symbols );
|
|
void hash_define(char *name, char * val, struct symhash **symbols);
|
|
struct symhash *hash_copy( struct symhash *symbols );
|
|
void hash_free( struct symhash *symbols );
|
|
void freefile( struct filepointer * fp );
|
|
int find_includes(struct filepointer *filep, struct inclist *file,
|
|
struct inclist *file_red, int recursion, boolean failOK,
|
|
struct IncludesCollection* incCollection, struct symhash *symbols);
|
|
void included_by(register struct inclist *ip,
|
|
register struct inclist * newfile);
|
|
int cppsetup(register char *line,
|
|
register struct filepointer *filep, register struct inclist *inc);
|
|
void add_include(struct filepointer *filep, struct inclist *file,
|
|
struct inclist *file_red, char *include, boolean dot, boolean failOK,
|
|
struct IncludesCollection* incCollection, struct symhash *symbols);
|
|
int match(register char *str, register char **list);
|
|
void recursive_pr_include(register struct inclist *head, register char *file,
|
|
register char *base);
|
|
void inc_clean();
|
|
|
|
void fatalerr(char *, ...);
|
|
void warning(char *, ...);
|
|
void warning1(char *, ...);
|
|
|
|
void convert_slashes(char *);
|
|
char *append_slash(char *);
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|