/
usr
/
share
/
usermin
/
mailcap
/
/usr/share/usermin/mailcap
mkdir
upload
Name
Size
Mode
Actions
images/
-
0755
rm
lang/
-
0755
rm
defaultuconfig
17
0644
edit
dl
rm
delete.cgi
1055
0755
edit
dl
rm
edit.cgi
2044
0755
edit
dl
rm
index.cgi
1292
0755
edit
dl
rm
log_parser.pl
527
0755
edit
dl
rm
mailcap-lib.pl
3949
0755
edit
dl
rm
module.info
139
0644
edit
dl
rm
module.info.af
0
0644
edit
dl
rm
module.info.af.auto
116
0644
edit
dl
rm
module.info.ar
0
0644
edit
dl
rm
module.info.ar.auto
137
0644
edit
dl
rm
module.info.be
0
0644
edit
dl
rm
module.info.be.auto
182
0644
edit
dl
rm
module.info.bg
0
0644
edit
dl
rm
module.info.bg.auto
201
0644
edit
dl
rm
module.info.ca
32
0644
edit
dl
rm
module.info.ca.auto
98
0644
edit
dl
rm
module.info.cs
30
0644
edit
dl
rm
module.info.cs.auto
86
0644
edit
dl
rm
module.info.da
0
0644
edit
dl
rm
module.info.da.auto
120
0644
edit
dl
rm
module.info.de
116
0644
edit
dl
rm
module.info.el
0
0644
edit
dl
rm
module.info.el.auto
227
0644
edit
dl
rm
module.info.es
0
0644
edit
dl
rm
module.info.es.auto
118
0644
edit
dl
rm
module.info.eu
0
0644
edit
dl
rm
module.info.eu.auto
123
0644
edit
dl
rm
module.info.fa
0
0644
edit
dl
rm
module.info.fa.auto
202
0644
edit
dl
rm
module.info.fi
0
0644
edit
dl
rm
module.info.fi.auto
122
0644
edit
dl
rm
module.info.fr
0
0644
edit
dl
rm
module.info.fr.auto
127
0644
edit
dl
rm
module.info.he
0
0644
edit
dl
rm
module.info.he.auto
142
0644
edit
dl
rm
module.info.hr
0
0644
edit
dl
rm
module.info.hr.auto
117
0644
edit
dl
rm
module.info.hu
32
0644
edit
dl
rm
module.info.hu.auto
100
0644
edit
dl
rm
module.info.it
0
0644
edit
dl
rm
module.info.it.auto
118
0644
edit
dl
rm
module.info.ja
0
0644
edit
dl
rm
module.info.ja.auto
162
0644
edit
dl
rm
module.info.ko
0
0644
edit
dl
rm
module.info.ko.auto
154
0644
edit
dl
rm
module.info.lt
0
0644
edit
dl
rm
module.info.lt.auto
111
0644
edit
dl
rm
module.info.lv
0
0644
edit
dl
rm
module.info.lv.auto
134
0644
edit
dl
rm
module.info.ms
0
0644
edit
dl
rm
module.info.ms.auto
113
0644
edit
dl
rm
module.info.mt
0
0644
edit
dl
rm
module.info.mt.auto
121
0644
edit
dl
rm
module.info.nl
30
0644
edit
dl
rm
module.info.no
29
0644
edit
dl
rm
module.info.no.auto
88
0644
edit
dl
rm
module.info.pl
110
0644
edit
dl
rm
module.info.pl.auto
108
0644
edit
dl
rm
module.info.pt
0
0644
edit
dl
rm
module.info.pt.auto
128
0644
edit
dl
rm
module.info.pt_BR
0
0644
edit
dl
rm
module.info.pt_BR.auto
134
0644
edit
dl
rm
module.info.ro
0
0644
edit
dl
rm
module.info.ro.auto
132
0644
edit
dl
rm
module.info.ru
0
0644
edit
dl
rm
module.info.ru.auto
195
0644
edit
dl
rm
module.info.sk
0
0644
edit
dl
rm
module.info.sk.auto
113
0644
edit
dl
rm
module.info.sl
0
0644
edit
dl
rm
module.info.sl.auto
114
0644
edit
dl
rm
module.info.sv
0
0644
edit
dl
rm
module.info.sv.auto
110
0644
edit
dl
rm
module.info.th
0
0644
edit
dl
rm
module.info.th.auto
207
0644
edit
dl
rm
module.info.tr
0
0644
edit
dl
rm
module.info.tr.auto
127
0644
edit
dl
rm
module.info.uk
0
0644
edit
dl
rm
module.info.uk.auto
180
0644
edit
dl
rm
module.info.ur
0
0644
edit
dl
rm
module.info.ur.auto
191
0644
edit
dl
rm
module.info.vi
0
0644
edit
dl
rm
module.info.vi.auto
142
0644
edit
dl
rm
module.info.zh
0
0644
edit
dl
rm
module.info.zh.auto
108
0644
edit
dl
rm
module.info.zh_TW
0
0644
edit
dl
rm
module.info.zh_TW.auto
114
0644
edit
dl
rm
save.cgi
1940
0755
edit
dl
rm
uconfig.info
34
0644
edit
dl
rm
uconfig.info.ca
44
0644
edit
dl
rm
uconfig.info.de
34
0644
edit
dl
rm
uconfig.info.nl
35
0644
edit
dl
rm
uconfig.info.no
40
0644
edit
dl
rm
Edit:
/usr/share/usermin/mailcap/mailcap-lib.pl
(3949B)
# Functions for editing /etc/mailcap BEGIN { push(@INC, ".."); }; use WebminCore; &init_config(); if ($module_info{'usermin'}) { &switch_to_remote_user(); &create_user_config_dirs(); $mailcap_file = $userconfig{'mailcap'}; if ($mailcap_file !~ /^\//) { $mailcap_file = "$remote_user_info[7]/$mailcap_file"; } } else { $mailcap_file = $config{'mailcap'}; } # list_mailcap() # Returns a list of /etc/mailcap entries sub list_mailcap { if (!scalar(@list_mailcap_cache)) { @list_mailcap_cache = ( ); open(CAP, "<", $mailcap_file); local $lnum = 0; while(<CAP>) { local ($slnum, $elnum) = ($lnum, $lnum); s/\r|\n//g; while (/^(.*)\\/) { # Continuation line! Read the next one and append it local $before = $1; local $nxt = <CAP>; $nxt =~ s/\r|\n//g; $_ = $before.$nxt; $elnum++; } if (/^(#*)\s*([a-z0-9\-]+)\/([a-z0-9\-\*]+);\s*([^;]*)(;(.*))?/) { # Found a line local @cmtlines = split(/\n/, $cmt); local $cap = { 'type' => $2."/".$3, 'program' => $4, 'enabled' => !$1, 'cmt' => $cmt, 'args' => { }, 'line' => $slnum-scalar(@cmtlines), 'eline' => $elnum, 'index' => scalar(@list_mailcap_cache), }; # Parse ; separated args after the command local $args = $6; local @args = split(/\s*;\s*/, $args); foreach my $arg (@args) { if ($arg =~ /^\s*(\S+)\s*=\s*(.*)/) { # A name-value arg $cap->{'args'}->{$1} = $2; } elsif ($arg =~ /^\s*(\S+)\s*$/) { $cap->{'args'}->{$1} = ""; } } push(@list_mailcap_cache, $cap); $cmt = undef; } elsif (/^#+(.*)/) { # Found a comment before a rule if ($cmt) { $cmt .= "\n".$1; } else { $cmt = $1; } } else { $cmt = undef; } $lnum++; } close(CAP); } return @list_mailcap_cache; } # create_mailcap(&mailcap) # Adds a mailcap entry sub create_mailcap { local ($mailcap) = @_; &list_mailcap(); # init cache local $lref = &read_file_lines($mailcap_file); local @lines = &mailcap_lines($mailcap); $mailcap->{'line'} = scalar(@$lref); $mailcap->{'eline'} = scalar(@$lref)+scalar(@lines)-1; $mailcap->{'index'} = scalar(@list_mailcap_cache); push(@$lref, @lines); &flush_file_lines($mailcap_file); push(@list_mailcap_cache, $mailcap); } # modify_mailcap(&mailcap) # Updates one mailcap entry in the file sub modify_mailcap { local ($mailcap) = @_; local $lref = &read_file_lines($mailcap_file); local @lines = &mailcap_lines($mailcap); local $oldlen = $mailcap->{'eline'} - $mailcap->{'line'} + 1; splice(@$lref, $mailcap->{'line'}, $oldlen, @lines); &flush_file_lines($mailcap_file); local $diff = scalar(@lines)-$oldlen; foreach my $c (grep { $c ne $mailcap } @list_mailcap_cache) { $c->{'line'} += $diff if ($c->{'line'} > $mailcap->{'line'}); $c->{'eline'} += $diff if ($c->{'eline'} > $mailcap->{'line'}); } } # delete_mailcap(&mailcap) # Removes one mailcap entry from the file sub delete_mailcap { local ($mailcap) = @_; local $lref = &read_file_lines($mailcap_file); local $len = $mailcap->{'eline'} - $mailcap->{'line'} + 1; splice(@$lref, $mailcap->{'line'}, $len); &flush_file_lines($mailcap_file); @list_mailcap_cache = grep { $_ ne $mailcap } @list_mailcap_cache; foreach my $c (@list_mailcap_cache) { $c->{'line'} -= $len if ($c->{'line'} > $mailcap->{'line'}); $c->{'eline'} -= $len if ($c->{'eline'} > $mailcap->{'line'}); $c->{'index'}-- if ($c->{'index'} > $mailcap->{'index'}); } } # mailcap_lines(&mailcap) # Returns an array of lines for a mailcap entry sub mailcap_lines { local ($mailcap) = @_; local @rv; local $args; foreach my $a (keys %{$mailcap->{'args'}}) { local $v = $mailcap->{'args'}->{$a}; if ($v eq '') { $args .= "; $a"; } else { $args .= "; $a=$v"; } } foreach my $l (split(/\n/, $mailcap->{'cmt'})) { push(@rv, "#$l"); } push(@rv, ($mailcap->{'enabled'} ? "" : "#"). "$mailcap->{'type'}; $mailcap->{'program'}".$args); return @rv; } 1;
Save
cmd:
run