1 /* Header for environment manipulation library. 2 Copyright 1989, 1992 Free Software Foundation. 3 4 This program is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 2 of the License, or 7 (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with this program; if not, write to the Free Software 16 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 17 18 #if !defined (ENVIRON_H) 19 #define ENVIRON_H 1 20 21 /* We manipulate environments represented as these structures. */ 22 23 struct environ 24 { 25 /* Number of usable slots allocated in VECTOR. 26 VECTOR always has one slot not counted here, 27 to hold the terminating zero. */ 28 int allocated; 29 /* A vector of slots, ALLOCATED + 1 of them. 30 The first few slots contain strings "VAR=VALUE" 31 and the next one contains zero. 32 Then come some unused slots. */ 33 char **vector; 34 }; 35 36 extern struct environ * 37 make_environ PARAMS ((void)); 38 39 extern void 40 free_environ PARAMS ((struct environ *)); 41 42 extern void 43 init_environ PARAMS ((struct environ *)); 44 45 extern char * 46 get_in_environ PARAMS ((const struct environ *, const char *)); 47 48 extern void 49 set_in_environ PARAMS ((struct environ *, const char *, 50 const char *)); 51 52 extern void 53 unset_in_environ PARAMS ((struct environ *, char *)); 54 55 extern char ** 56 environ_vector PARAMS ((struct environ *)); 57 58 #endif /* defined (ENVIRON_H) */ 59