/*************************************************************************** * * Copyright 2024 by Sean Conner. * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 3 of the License, or (at your * option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library; if not, see . * * Comments, questions and criticisms can be sent to: sean@conman.org * *************************************************************************/ #include #include void env(void) { extern char **environ; FILE *fp = fopen("/tmp/env.txt","w"); if (fp != NULL) { for (size_t i = 0 ; environ[i] != NULL ; i++) { char *p = strchr(environ[i],'='); if (p != NULL) { fputs("export ",fp); fwrite(environ[i],1,(size_t)(p - environ[i]),fp); fputc(*p++,fp); fputc('"',fp); for ( ; *p ; p++) { switch(*p) { case '&': case ';': case '?': case '*': case '[': case ']': case '(': case ')': case '{': case '}': case '<': case '>': case '"': case '\\': fputc('\\',fp); break; default: break; } fputc(*p,fp); } fputc('"',fp); fputc('\n',fp); } } fclose(fp); } } .