1 2 /* 3 * Copyright � 2001 Novell, Inc. All Rights Reserved. 4 * 5 * You may distribute under the terms of either the GNU General Public 6 * License or the Artistic License, as specified in the README file. 7 * 8 */ 9 10 /* 11 * FILENAME : NWUtil.h 12 * DESCRIPTION : Utility functions for NetWare implementation of Perl. 13 * Author : HYAK, SGP 14 * Date : January 2001. 15 * 16 */ 17 18 19 20 #ifndef __NWUtil_H__ 21 #define __NWUtil_H__ 22 23 24 #include "stdio.h" 25 #include <stdlib.h> 26 #include "win32ish.h" // For "BOOL", "TRUE" and "FALSE" 27 28 29 #ifdef MPK_ON 30 #include <mpktypes.h> 31 #include <mpkapis.h> 32 #else 33 #include <nwsemaph.h> 34 #endif //MPK_ON 35 36 37 // Name of console command to invoke perl 38 #define PERL_COMMAND_NAME "perl" 39 40 // Name of console command to load an NLM 41 #define LOAD_COMMAND "load" 42 43 44 typedef struct tagCommandLineParser 45 { 46 BOOL m_noScreen; 47 BOOL m_AutoDestroy; 48 BOOL m_isValid; 49 50 int m_argc; 51 int m_argv_len; 52 53 #ifdef MPK_ON 54 SEMAPHORE m_qSemaphore; 55 #else 56 long m_qSemaphore; 57 #endif 58 59 char* m_redirInName; 60 char* m_redirOutName; 61 char* m_redirErrName; 62 char* m_redirBothName; 63 char* nextarg; 64 char* sSkippedToken; 65 66 char** m_argv; 67 char** new_argv; 68 69 }COMMANDLINEPARSER, *PCOMMANDLINEPARSER; 70 71 72 73 char* fnSkipWhite(char* cptr); 74 char* fnNwGetEnvironmentStr(char *name, char *defaultvalue); 75 char* fnSkipToken(char *s, char *r); 76 char* fnScanToken(char* x, char *r); 77 char* fnStashString(char *s, char *r, int length); 78 void fnAppendArgument(PCOMMANDLINEPARSER pclp, char * new_arg); 79 void fnDeleteArgument(PCOMMANDLINEPARSER pclp, int index); 80 void fnCommandLineParser(PCOMMANDLINEPARSER pclp, char * commandLine, BOOL preserveQuotes); 81 void fnSystemCommand (char** argv, int argc); 82 void fnInternalPerlLaunchHandler(char* cmdLine); 83 char* fnMy_MkTemp(char* templatestr); 84 85 86 /* NWDEFPERLROOT: 87 * This symbol contains the name of the starting default directory to search 88 * for scripts to run. 89 */ 90 #define NWDEFPERLROOT "sys:\\perl\\scripts" 91 92 /* NWDEFPERLTEMP: 93 * This symbol contains the name of the default temp files directory. 94 */ 95 #define NWDEFPERLTEMP "sys:\\perl\\temp" 96 97 98 #endif // __NWUtil_H__ 99 100