- extern char **environ;
- int index = 0;
- int varlen = strlen(var);
- int vallen = strlen(value);
-
- for (index = 0; environ[index] != NULL; index++) {
- if (strncmp(environ[index], var, varlen) == 0) {
- /* found it */
- if (!clobber)
- return;
- environ[index] = malloc(varlen + vallen + 1);
- strcpy(environ[index], var);
- strcat(environ[index], value);
- return;
- }
- }
- environ = (char **) realloc(environ, sizeof (char *) * (index + 2));
- if (environ == NULL) {
- fprintf(stderr, "login: malloc out of memory\n");
- exit(1);
- }
- environ[index] = malloc(varlen + vallen + 1);
- strcpy(environ[index], var);
- strcat(environ[index], value);
- environ[++index] = NULL;
+ struct group *getgrnam(), *gr;
+ int gid = default_gid;
+
+ gr = getgrnam(TTYGRPNAME);
+ if (gr != (struct group *) 0)
+ gid = gr->gr_gid;
+
+ endgrent();
+
+ return (gid);