--- /dev/null
+#!/usr/bin/perl
+
+use POSIX;
+
+@ARGV==3 or die;
+($prefs_file, $new_list, $new_search) = @ARGV;
+
+$new_list =~ m/^(\-|\+[imtlfn]+)$/ or die; $new_list= $1;
+$new_search =~ m/^([nuy])$/ or die; $new_search= $1;
+
+$user= $ENV{'USERV_USER'}; length $user or die;
+
+open N, ">$prefs_file.new" or die $!;
+
+if (open P, $prefs_file) {
+ while (<P>) {
+ die unless m/^(\w+) /;
+ next if $1 eq $user;
+ print N or die $!;
+ }
+ close P or die $!;
+} elsif ($! != &ENOENT) {
+ die $!;
+}
+
+print N "$user $new_list $new_search\n" or die $!;
+close N or die $!;
+
+rename "$prefs_file.new", $prefs_file or die $!;