#!mkcmd # $Id: group.m,v 8.3 2004/12/15 22:20:18 ksb Exp $ # Accept a group or gid, look it up as in the group file and deep copy (ksb) # the it for later use. If a (struct group) changes a lot we are going to # loose big. from '' from '' from '' from '' require "util_savegrent.m" require "group.mc" pointer ["struct group"] type "group" { type update "if ((%XxB *)0 != %n) {(void)free((void *)%n);}if ((char *)0 == %N || '\\000' == %N[0]) {%n = (%XxB *)0;} else if ((%XxB *)0 == (%n = %K1v(%N, \"%qL\"))) {exit(1);}" type dynamic type comment "%L specify a group by name or gid" type keep type help "locate %qp as a group" type param "group" } # the key that keeps us in sync with the client code -- ksb key "group_cvt" 1 init { "group_cvt" "%N" '"%qL"' }