=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/make/extern.h,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- src/usr.bin/make/extern.h 2000/11/24 14:36:34 1.36 +++ src/usr.bin/make/extern.h 2001/05/03 13:41:05 1.37 @@ -1,4 +1,5 @@ -/* $OpenBSD: extern.h,v 1.36 2000/11/24 14:36:34 espie Exp $ */ +/* $OpenPackages$ */ +/* $OpenBSD: extern.h,v 1.37 2001/05/03 13:41:05 espie Exp $ */ /* $NetBSD: nonints.h,v 1.12 1996/11/06 17:59:19 christos Exp $ */ /*- @@ -42,126 +43,148 @@ */ /* arch.c */ -extern ReturnStatus Arch_ParseArchive __P((char **, Lst, SymTable *)); -extern void Arch_Touch __P((GNode *)); -extern void Arch_TouchLib __P((GNode *)); -extern TIMESTAMP Arch_MTime __P((GNode *)); -extern TIMESTAMP Arch_MemMTime __P((GNode *)); -extern void Arch_FindLib __P((GNode *, Lst)); -extern Boolean Arch_LibOODate __P((GNode *)); -extern void Arch_Init __P((void)); -extern void Arch_End __P((void)); -extern int Arch_IsLib __P((GNode *)); +extern ReturnStatus Arch_ParseArchive(char **, Lst, SymTable *); +extern void Arch_Touch(GNode *); +extern void Arch_TouchLib(GNode *); +extern TIMESTAMP Arch_MTime(GNode *); +extern TIMESTAMP Arch_MemMTime(GNode *); +extern void Arch_FindLib(GNode *, Lst); +extern Boolean Arch_LibOODate(GNode *); +extern void Arch_Init(void); +extern void Arch_End(void); +extern Boolean Arch_IsLib(GNode *); /* compat.c */ -extern void Compat_Run __P((Lst)); +extern void Compat_Run(Lst); /* cond.c */ -extern int Cond_Eval __P((char *)); -extern void Cond_End __P((void)); +extern int Cond_Eval(char *); +extern void Cond_End(void); #include "error.h" /* for.c */ typedef struct For_ For; -extern For *For_Eval __P((char *)); -extern Boolean For_Accumulate __P((For *, const char *)); -extern void For_Run __P((For *)); +extern For *For_Eval(const char *); +extern Boolean For_Accumulate(For *, const char *); +extern void For_Run (For *); /* main.c */ -extern void Main_ParseArgLine __P((char *)); -extern char *Cmd_Exec __P((char *, char **)); -extern void Error __P((char *, ...)); -extern void Fatal __P((char *, ...)); -extern void Punt __P((char *, ...)); -extern void DieHorribly __P((void)); -extern void PrintAddr __P((void *)); -extern void Finish __P((int)); +extern void Main_ParseArgLine(char *); +extern char *Cmd_Exec(const char *, char **); +extern void Error(char *, ...); +extern void Fatal(char *, ...); +extern void Punt(char *, ...); +extern void DieHorribly(void); +extern void PrintAddr(void *); +extern void Finish(int); /* make.c */ -extern void Make_TimeStamp __P((GNode *, GNode *)); -extern Boolean Make_OODate __P((GNode *)); -extern void Make_HandleUse __P((GNode *, GNode *)); -extern void Make_Update __P((GNode *)); -extern void Make_DoAllVar __P((GNode *)); -extern Boolean Make_Run __P((Lst)); +extern void Make_TimeStamp(GNode *, GNode *); +extern Boolean Make_OODate(GNode *); +extern void Make_HandleUse(GNode *, GNode *); +extern void Make_Update(GNode *); +extern void Make_DoAllVar(GNode *); +extern Boolean Make_Run(Lst); /* parse.c */ -extern void Parse_Error __P((int, char *, ...)); -extern Boolean Parse_AnyExport __P((void)); -extern Boolean Parse_IsVar __P((char *)); -extern void Parse_DoVar __P((char *, GSymT *)); -extern void Parse_AddIncludeDir __P((char *)); -extern void Parse_File __P((char *, FILE *)); -extern void Parse_Init __P((void)); -extern void Parse_End __P((void)); -extern void Parse_FromString __P((char *, unsigned long)); -extern void Parse_MainName __P((Lst)); -extern unsigned long Parse_Getlineno __P((void)); -extern const char *Parse_Getfilename __P((void)); +extern void Parse_Error(int, char *, ...); +extern Boolean Parse_AnyExport(void); +extern Boolean Parse_IsVar(char *); +extern void Parse_DoVar(const char *, GSymT *); +extern void Parse_AddIncludeDir(const char *); +extern void Parse_File(char *, FILE *); +extern void Parse_Init(void); +extern void Parse_End(void); +extern void Parse_FromString(char *, unsigned long); +extern unsigned long Parse_Getlineno(void); +extern const char *Parse_Getfilename(void); +extern void Parse_MainName(Lst); +/* stats.h */ +extern void Init_Stats(void); + /* str.c */ -extern void str_init __P((void)); -extern void str_end __P((void)); -extern char *str_concat __P((const char *, const char *, char)); -extern char **brk_string __P((const char *, int *, Boolean, char **)); -extern const char *iterate_words __P((const char **)); -extern int Str_Match __P((const char *, const char *)); -extern const char *Str_SYSVMatch __P((const char *, const char *, size_t *len)); -extern void Str_SYSVSubst __P((Buffer, const char *, const char *, size_t)); -extern char *interval_dup __P((const char *begin, const char *end)); -extern char *escape_dup __P((const char *, const char *, const char *)); +extern void str_init(void); +extern void str_end(void); +extern char *lastchar(const char *, const char *, int); +extern char *str_concati(const char *, const char *, const char *, int); +#define str_concat(s1, s2, sep) str_concati(s1, s2, strchr(s2, '\0'), sep) +extern char **brk_string(const char *, int *, char **); +extern const char *iterate_words(const char **); +extern Boolean Str_Matchi(const char *, const char *, const char *); +#define Str_Match(string, pattern) \ + Str_Matchi(string, pattern, strchr(pattern, '\0')) +extern const char *Str_SYSVMatch(const char *, const char *, size_t *); +extern void Str_SYSVSubst(Buffer, const char *, const char *, size_t); +extern char *interval_dup(const char *, const char *); +extern char *escape_dup(const char *, const char *, const char *); /* suff.c */ -extern void Suff_ClearSuffixes __P((void)); -extern Boolean Suff_IsTransform __P((char *)); -extern GNode *Suff_AddTransform __P((char *)); -extern void Suff_EndTransform __P((void *)); -extern void Suff_AddSuffix __P((char *)); -extern Lst Suff_GetPath __P((char *)); -extern void Suff_DoPaths __P((void)); -extern void Suff_AddInclude __P((char *)); -extern void Suff_AddLib __P((char *)); -extern void Suff_FindDeps __P((GNode *)); -extern void Suff_SetNull __P((char *)); -extern void Suff_Init __P((void)); -extern void Suff_End __P((void)); -extern void Suff_PrintAll __P((void)); +extern void Suff_ClearSuffixes(void); +extern Boolean Suff_IsTransform(const char *); +extern GNode *Suff_AddTransform(const char *); +extern void Suff_EndTransform(void *); +extern void Suff_AddSuffix(char *); +extern Lst Suff_GetPath(char *); +extern void Suff_DoPaths(void); +extern void Suff_AddInclude(char *); +extern void Suff_AddLib(char *); +extern void Suff_FindDeps(GNode *); +extern void Suff_SetNull(char *); +extern void Suff_Init(void); +extern void Suff_End(void); +extern void Suff_PrintAll(void); /* targ.c */ -extern void Targ_Init __P((void)); -extern void Targ_End __P((void)); -extern GNode *Targ_NewGN __P((const char *, const char *)); -extern GNode *Targ_FindNode __P((const char *, int)); -extern void Targ_FindList __P((Lst, Lst)); -extern Boolean Targ_Ignore __P((GNode *)); -extern Boolean Targ_Silent __P((GNode *)); -extern Boolean Targ_Precious __P((GNode *)); -extern void Targ_SetMain __P((GNode *)); -extern void Targ_PrintCmd __P((void *)); -extern char *Targ_FmtTime __P((TIMESTAMP)); -extern void Targ_PrintType __P((int)); -extern void Targ_PrintGraph __P((int)); +extern void Targ_Init(void); +extern void Targ_End(void); +extern GNode *Targ_NewGN(const char *, const char *); +extern GNode *Targ_FindNode(const char *, const char *, int); +extern void Targ_FindList(Lst, Lst); +extern Boolean Targ_Ignore(GNode *); +extern Boolean Targ_Silent(GNode *); +extern Boolean Targ_Precious(GNode *); +extern void Targ_SetMain(GNode *); +extern void Targ_PrintCmd(void *); +extern char *Targ_FmtTime(TIMESTAMP); +extern void Targ_PrintType(int); +extern void Targ_PrintGraph(int); /* var.c */ -extern void Var_Delete __P((const char *, GSymT *)); -extern void Var_Set __P((const char *, const char *, GSymT *)); -extern void Varq_Set __P((int, const char *, GNode *)); -extern void Var_Append __P((const char *, const char *, GSymT *)); -extern void Varq_Append __P((int, const char *, GNode *)); -extern Boolean Var_Exists __P((const char *, GSymT *)); -extern Boolean Varq_Exists __P((int, GNode *)); -extern char *Var_Value __P((const char *, GSymT *)); -extern char *Varq_Value __P((int, GNode *)); -extern char *Var_Parse __P((char *, SymTable *, Boolean, size_t *, Boolean *)); -extern char *Var_Subst __P((char *, SymTable *, Boolean)); -extern char *Var_SubstVar __P((const char *, const char *, const char *, - size_t)); -extern char *Var_GetTail __P((char *)); -extern char *Var_GetHead __P((char *)); -extern void Var_Init __P((void)); -extern void Var_End __P((void)); -extern void Var_Dump __P((GSymT *)); -extern void SymTable_Init __P((SymTable *)); -extern void SymTable_Destroy __P((SymTable *)); -extern void Var_AddCmdline __P((const char *)); +extern void Var_Delete(const char *); +extern void Var_Set_interval(const char *, const char *, const char *, + GSymT *); +extern void Varq_Set(int, const char *, GNode *); +extern void Var_Append_interval(const char *, const char *, + const char *, GSymT *); +extern void Varq_Append(int, const char *, GNode *); +extern char *Var_Value_interval(const char *, const char *); +extern char *Varq_Value(int, GNode *); +extern char *Var_Parse(const char *, SymTable *, Boolean, size_t *, + Boolean *); +extern size_t Var_ParseSkip(const char *, SymTable *, ReturnStatus *); +extern ReturnStatus Var_ParseBuffer(Buffer, const char *, SymTable *, + Boolean, size_t *); +extern char *Var_Subst(const char *, SymTable *, Boolean); +extern void Var_SubstVar(Buffer, const char *, const char *, const char *); +extern void Var_Init(void); +extern void Var_End(void); +extern void Var_Dump(void); +extern void SymTable_Init(SymTable *); +extern void SymTable_Destroy(SymTable *); +#define Var_Set(n, v, ctxt) Var_Set_interval(n, NULL, v, ctxt) +#define Var_Append(n, v, ctxt) Var_Append_interval(n, NULL, v, ctxt) +#define Var_Value(n) Var_Value_interval(n, NULL) +extern void Var_AddCmdline(const char *); + +/* Used to store temporary names, after $ expansion */ +struct Name { + const char *s; + const char *e; + Boolean tofree; +}; + +extern const char *Var_Name_Get(const char *, struct Name *, SymTable *, + Boolean, const char *(*)(const char *)); +extern void Var_Name_Free(struct Name *);