1da2e3ebdSchin /*********************************************************************** 2da2e3ebdSchin * * 3da2e3ebdSchin * This software is part of the ast package * 4*b30d1939SAndy Fiddaman * Copyright (c) 1982-2012 AT&T Intellectual Property * 5da2e3ebdSchin * and is licensed under the * 6*b30d1939SAndy Fiddaman * Eclipse Public License, Version 1.0 * 77c2fbfb3SApril Chin * by AT&T Intellectual Property * 8da2e3ebdSchin * * 9da2e3ebdSchin * A copy of the License is available at * 10*b30d1939SAndy Fiddaman * http://www.eclipse.org/org/documents/epl-v10.html * 11*b30d1939SAndy Fiddaman * (with md5 checksum b35adb5213ca9657e911e9befb180842) * 12da2e3ebdSchin * * 13da2e3ebdSchin * Information and Software Systems Research * 14da2e3ebdSchin * AT&T Research * 15da2e3ebdSchin * Florham Park NJ * 16da2e3ebdSchin * * 17da2e3ebdSchin * David Korn <dgk@research.att.com> * 18da2e3ebdSchin * * 19da2e3ebdSchin ***********************************************************************/ 20da2e3ebdSchin #pragma prototyped 21da2e3ebdSchin /* 2234f9b3eeSRoland Mainz * David Korn 2334f9b3eeSRoland Mainz * AT&T Labs 2434f9b3eeSRoland Mainz * 2534f9b3eeSRoland Mainz * Shell interface private definitions 2634f9b3eeSRoland Mainz * 27da2e3ebdSchin */ 28da2e3ebdSchin 2934f9b3eeSRoland Mainz #ifndef _REGRESS_H 3034f9b3eeSRoland Mainz #define _REGRESS_H 1 31da2e3ebdSchin 3234f9b3eeSRoland Mainz #if SHOPT_REGRESS 33da2e3ebdSchin 3434f9b3eeSRoland Mainz typedef struct Regress_s 35da2e3ebdSchin { 3634f9b3eeSRoland Mainz Shopt_t options; 3734f9b3eeSRoland Mainz } Regress_t; 38da2e3ebdSchin 3934f9b3eeSRoland Mainz #define sh_isregress(r) is_option(&sh.regress->options,r) 4034f9b3eeSRoland Mainz #define sh_onregress(r) on_option(&sh.regress->options,r) 4134f9b3eeSRoland Mainz #define sh_offregress(r) off_option(&sh.regress->options,r) 42da2e3ebdSchin 4334f9b3eeSRoland Mainz #define REGRESS(r,i,f) do { if (sh_isregress(REGRESS_##r)) sh_regress(REGRESS_##r, i, sfprints f, __LINE__, __FILE__); } while (0) 44da2e3ebdSchin 4534f9b3eeSRoland Mainz #define REGRESS_egid 1 4634f9b3eeSRoland Mainz #define REGRESS_euid 2 4734f9b3eeSRoland Mainz #define REGRESS_p_suid 3 4834f9b3eeSRoland Mainz #define REGRESS_source 4 4934f9b3eeSRoland Mainz #define REGRESS_etc 5 50da2e3ebdSchin 5134f9b3eeSRoland Mainz #undef SHOPT_P_SUID 5234f9b3eeSRoland Mainz #define SHOPT_P_SUID sh_regress_p_suid(__LINE__, __FILE__) 5334f9b3eeSRoland Mainz 54*b30d1939SAndy Fiddaman extern int b___regress__(int, char**, Shbltin_t*); 5534f9b3eeSRoland Mainz extern void sh_regress_init(Shell_t*); 5634f9b3eeSRoland Mainz extern void sh_regress(unsigned int, const char*, const char*, unsigned int, const char*); 5734f9b3eeSRoland Mainz extern uid_t sh_regress_p_suid(unsigned int, const char*); 5834f9b3eeSRoland Mainz extern char* sh_regress_etc(const char*, unsigned int, const char*); 5934f9b3eeSRoland Mainz 6034f9b3eeSRoland Mainz #else 6134f9b3eeSRoland Mainz 6234f9b3eeSRoland Mainz #define REGRESS(r,i,f) 6334f9b3eeSRoland Mainz 6434f9b3eeSRoland Mainz #endif /* SHOPT_REGRESS */ 6534f9b3eeSRoland Mainz 6634f9b3eeSRoland Mainz #endif /* _REGRESS_H */ 67