… | |
… | |
119 | |
119 | |
120 | // temporarily replace the process environment |
120 | // temporarily replace the process environment |
121 | extern char **environ; |
121 | extern char **environ; |
122 | extern char **rxvt_environ; // the original environ pointer |
122 | extern char **rxvt_environ; // the original environ pointer |
123 | |
123 | |
124 | struct temp_environ |
124 | inline void set_environ (stringvec *envv) |
125 | { |
125 | { |
126 | char **prev; |
|
|
127 | |
|
|
128 | temp_environ (const stringvec *envv) |
|
|
129 | : prev(environ) |
|
|
130 | { |
|
|
131 | if (envv) |
126 | if (envv) |
132 | environ = (char **)envv->begin (); |
127 | environ = (char **)envv->begin (); |
133 | } |
128 | } |
134 | |
129 | |
135 | temp_environ (char **env) |
130 | inline void set_environ (char **envv) |
136 | : prev(environ) |
131 | { |
137 | { |
|
|
138 | if (env) |
132 | if (envv) |
139 | environ = env; |
133 | environ = envv; |
140 | } |
134 | } |
141 | |
|
|
142 | ~temp_environ () |
|
|
143 | { |
|
|
144 | environ = prev; |
|
|
145 | } |
|
|
146 | }; |
|
|
147 | |
|
|
148 | #define TEMP_ENV temp_environ temp_environ (envv) |
|
|
149 | |
135 | |
150 | /* |
136 | /* |
151 | ***************************************************************************** |
137 | ***************************************************************************** |
152 | * STRUCTURES AND TYPEDEFS |
138 | * STRUCTURES AND TYPEDEFS |
153 | ***************************************************************************** |
139 | ***************************************************************************** |