summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authordougb <dougb@FreeBSD.org>2001-04-17 09:42:07 +0000
committerdougb <dougb@FreeBSD.org>2001-04-17 09:42:07 +0000
commit7ab9ec933893002f802e7b92a4a2f8a220064cbb (patch)
tree2447c560d9b40a1d2e39ea4538e6c61ae5657e00 /usr.sbin
parent378e561228360a3c0ad7f34be404abec95457c90 (diff)
downloadFreeBSD-src-7ab9ec933893002f802e7b92a4a2f8a220064cbb.zip
FreeBSD-src-7ab9ec933893002f802e7b92a4a2f8a220064cbb.tar.gz
By popular demand, have adduser preserve comments at the top of the
group file. Because of the way the group sorting works while printing out the new file it's not possible at this time to restore comments in other locations, but at least they won't just disappear altogether.
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/adduser/adduser.perl12
1 files changed, 10 insertions, 2 deletions
diff --git a/usr.sbin/adduser/adduser.perl b/usr.sbin/adduser/adduser.perl
index 3ce7b2a..f453207 100644
--- a/usr.sbin/adduser/adduser.perl
+++ b/usr.sbin/adduser/adduser.perl
@@ -70,6 +70,7 @@ sub variables {
$groupname =''; # $groupname{groupname} = gid
$groupmembers = ''; # $groupmembers{gid} = members of group/kommalist
$gid = ''; # $gid{gid} = groupname; gid form group db
+ @group_comments; # Comments in the group file
# shell
$shell = ''; # $shell{`basename sh`} = sh
@@ -265,9 +266,13 @@ sub group_read {
while(<G>) {
chop;
push(@group_backup, $_);
- # ignore comments
+ # Ignore empty lines
next if /^\s*$/;
- next if /^\s*#/;
+ # Save comments to restore later
+ if (/^\s*\#/) {
+ push(@group_comments, $_);
+ next;
+ }
($g_groupname, $pw, $g_gid, $memb) = (split(/:/, $_))[0..3];
@@ -566,6 +571,9 @@ sub new_users_group_update {
# new login group is already in name space
rename($group, "$group.bak");
#warn "$group_login $groupname{$group_login} $groupmembers{$groupname{$group_login}}\n";
+
+ # Restore comments from the top of the group file
+ @a = @group_comments;
foreach $e (sort {$a <=> $b} (keys %gid)) {
push(@a, "$gid{$e}:*:$e:$groupmembers{$e}");
}
OpenPOWER on IntegriCloud