void free (void *ptr);
char* getenv (char const* s);
int setenv (char const* s, char const* v, int overwrite_p);
+void unsetenv (char const *name);
void *malloc (size_t);
void qsort (void *base, size_t nmemb, size_t size, int (*compar)(void const *, void const *));
void *realloc (void *p, size_t size);
eputs ("__moddi3 stub\n");
return ((int) a %(int)b);
}
+
+// gcc-3.4
+void
+unsetenv (char const *name)
+{
+ int length = strlen (name);
+ char **p = environ;
+ while (*p)
+ {
+ if (!strncmp (name, *p, length) && *(*p + length) == '=')
+ {
+ char **q = p;
+ q[0] = q[1];
+ while (*q++)
+ q[0] = q[1];
+ }
+ p++;
+ }
+}
--- /dev/null
+/* -*-comment-start: "//";comment-end:""-*-
+ * Mes --- Maxwell Equations of Software
+ * Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+ *
+ * This file is part of Mes.
+ *
+ * Mes is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or (at
+ * your option) any later version.
+ *
+ * Mes 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mes. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <libmes.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+ eputs ("setenv\n");
+ setenv ("FOO", "BAR", 1);
+ if (strcmp (getenv ("FOO"), "BAR"))
+ return 1;
+ eputs ("unsetenv\n");
+ unsetenv ("FOO");
+ if (getenv ("FOO"))
+ return 2;
+
+ return 0;
+}