1*10d63b7dSRichard Lowe /* 2*10d63b7dSRichard Lowe * CDDL HEADER START 3*10d63b7dSRichard Lowe * 4*10d63b7dSRichard Lowe * The contents of this file are subject to the terms of the 5*10d63b7dSRichard Lowe * Common Development and Distribution License (the "License"). 6*10d63b7dSRichard Lowe * You may not use this file except in compliance with the License. 7*10d63b7dSRichard Lowe * 8*10d63b7dSRichard Lowe * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*10d63b7dSRichard Lowe * or http://www.opensolaris.org/os/licensing. 10*10d63b7dSRichard Lowe * See the License for the specific language governing permissions 11*10d63b7dSRichard Lowe * and limitations under the License. 12*10d63b7dSRichard Lowe * 13*10d63b7dSRichard Lowe * When distributing Covered Code, include this CDDL HEADER in each 14*10d63b7dSRichard Lowe * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*10d63b7dSRichard Lowe * If applicable, add the following below this CDDL HEADER, with the 16*10d63b7dSRichard Lowe * fields enclosed by brackets "[]" replaced with your own identifying 17*10d63b7dSRichard Lowe * information: Portions Copyright [yyyy] [name of copyright owner] 18*10d63b7dSRichard Lowe * 19*10d63b7dSRichard Lowe * CDDL HEADER END 20*10d63b7dSRichard Lowe */ 21*10d63b7dSRichard Lowe /* 22*10d63b7dSRichard Lowe * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 23*10d63b7dSRichard Lowe * Use is subject to license terms. 24*10d63b7dSRichard Lowe */ 25*10d63b7dSRichard Lowe 26*10d63b7dSRichard Lowe 27*10d63b7dSRichard Lowe /* 28*10d63b7dSRichard Lowe * globals.cc 29*10d63b7dSRichard Lowe * 30*10d63b7dSRichard Lowe * This declares all global variables 31*10d63b7dSRichard Lowe */ 32*10d63b7dSRichard Lowe 33*10d63b7dSRichard Lowe /* 34*10d63b7dSRichard Lowe * Included files 35*10d63b7dSRichard Lowe */ 36*10d63b7dSRichard Lowe #include <mksh/globals.h> 37*10d63b7dSRichard Lowe 38*10d63b7dSRichard Lowe /* 39*10d63b7dSRichard Lowe * Defined macros 40*10d63b7dSRichard Lowe */ 41*10d63b7dSRichard Lowe 42*10d63b7dSRichard Lowe /* 43*10d63b7dSRichard Lowe * typedefs & structs 44*10d63b7dSRichard Lowe */ 45*10d63b7dSRichard Lowe 46*10d63b7dSRichard Lowe /* 47*10d63b7dSRichard Lowe * Global variables 48*10d63b7dSRichard Lowe */ 49*10d63b7dSRichard Lowe char char_semantics[CHAR_SEMANTICS_ENTRIES]; 50*10d63b7dSRichard Lowe wchar_t char_semantics_char[] = { 51*10d63b7dSRichard Lowe ampersand_char, 52*10d63b7dSRichard Lowe asterisk_char, 53*10d63b7dSRichard Lowe at_char, 54*10d63b7dSRichard Lowe backquote_char, 55*10d63b7dSRichard Lowe backslash_char, 56*10d63b7dSRichard Lowe bar_char, 57*10d63b7dSRichard Lowe bracketleft_char, 58*10d63b7dSRichard Lowe bracketright_char, 59*10d63b7dSRichard Lowe colon_char, 60*10d63b7dSRichard Lowe dollar_char, 61*10d63b7dSRichard Lowe doublequote_char, 62*10d63b7dSRichard Lowe equal_char, 63*10d63b7dSRichard Lowe exclam_char, 64*10d63b7dSRichard Lowe greater_char, 65*10d63b7dSRichard Lowe hat_char, 66*10d63b7dSRichard Lowe hyphen_char, 67*10d63b7dSRichard Lowe less_char, 68*10d63b7dSRichard Lowe newline_char, 69*10d63b7dSRichard Lowe numbersign_char, 70*10d63b7dSRichard Lowe parenleft_char, 71*10d63b7dSRichard Lowe parenright_char, 72*10d63b7dSRichard Lowe percent_char, 73*10d63b7dSRichard Lowe plus_char, 74*10d63b7dSRichard Lowe question_char, 75*10d63b7dSRichard Lowe quote_char, 76*10d63b7dSRichard Lowe semicolon_char, 77*10d63b7dSRichard Lowe nul_char 78*10d63b7dSRichard Lowe }; 79*10d63b7dSRichard Lowe Macro_list cond_macro_list; 80*10d63b7dSRichard Lowe Boolean conditional_macro_used; 81*10d63b7dSRichard Lowe Boolean do_not_exec_rule; /* `-n' */ 82*10d63b7dSRichard Lowe Boolean dollarget_seen; 83*10d63b7dSRichard Lowe Boolean dollarless_flag; 84*10d63b7dSRichard Lowe Name dollarless_value; 85*10d63b7dSRichard Lowe Envvar envvar; 86*10d63b7dSRichard Lowe #ifdef lint 87*10d63b7dSRichard Lowe char **environ; 88*10d63b7dSRichard Lowe #endif 89*10d63b7dSRichard Lowe int exit_status; 90*10d63b7dSRichard Lowe wchar_t *file_being_read; 91*10d63b7dSRichard Lowe /* Variable gnu_style=true if env. var. SUN_MAKE_COMPAT_MODE=GNU (RFE 4866328) */ 92*10d63b7dSRichard Lowe Boolean gnu_style = false; 93*10d63b7dSRichard Lowe Name_set hashtab; 94*10d63b7dSRichard Lowe Name host_arch; 95*10d63b7dSRichard Lowe Name host_mach; 96*10d63b7dSRichard Lowe int line_number; 97*10d63b7dSRichard Lowe char *make_state_lockfile; 98*10d63b7dSRichard Lowe Boolean make_word_mentioned; 99*10d63b7dSRichard Lowe Makefile_type makefile_type = reading_nothing; 100*10d63b7dSRichard Lowe char mbs_buffer[(MAXPATHLEN * MB_LEN_MAX)]; 101*10d63b7dSRichard Lowe Name path_name; 102*10d63b7dSRichard Lowe Boolean posix = true; 103*10d63b7dSRichard Lowe Name hat; 104*10d63b7dSRichard Lowe Name query; 105*10d63b7dSRichard Lowe Boolean query_mentioned; 106*10d63b7dSRichard Lowe Boolean reading_environment; 107*10d63b7dSRichard Lowe Name shell_name; 108*10d63b7dSRichard Lowe Boolean svr4 = false; 109*10d63b7dSRichard Lowe Name target_arch; 110*10d63b7dSRichard Lowe Name target_mach; 111*10d63b7dSRichard Lowe Boolean tilde_rule; 112*10d63b7dSRichard Lowe Name virtual_root; 113*10d63b7dSRichard Lowe Boolean vpath_defined; 114*10d63b7dSRichard Lowe Name vpath_name; 115*10d63b7dSRichard Lowe wchar_t wcs_buffer[MAXPATHLEN]; 116*10d63b7dSRichard Lowe Boolean working_on_targets; 117*10d63b7dSRichard Lowe Boolean out_err_same; 118*10d63b7dSRichard Lowe pid_t childPid = -1; // This variable is used for killing child's process 119*10d63b7dSRichard Lowe // Such as qrsh, running command, etc. 120*10d63b7dSRichard Lowe 121*10d63b7dSRichard Lowe /* 122*10d63b7dSRichard Lowe * timestamps defined in defs.h 123*10d63b7dSRichard Lowe */ 124*10d63b7dSRichard Lowe const timestruc_t file_no_time = { -1, 0 }; 125*10d63b7dSRichard Lowe const timestruc_t file_doesnt_exist = { 0, 0 }; 126*10d63b7dSRichard Lowe const timestruc_t file_is_dir = { 1, 0 }; 127*10d63b7dSRichard Lowe const timestruc_t file_min_time = { 2, 0 }; 128*10d63b7dSRichard Lowe const timestruc_t file_max_time = { INT_MAX, 0 }; 129