Import of revision 19971210+
[mspang/plceo1.git] / misc.pl
1 #
2 # Date                  Name                            Modification
3 # ----          ----                ------------
4 # 94/11/20              Alex Brodsky            Split off from main ceo file
5 #
6
7
8 sub Secure
9 {
10     #system("chmod -w *");
11 }
12
13 sub Unsecure
14 {
15     #system("chmod u+w *");
16 }
17
18 sub VI0
19 {
20     local($fname) = shift;
21     &Secure;
22     system("chmod u+w $fname");
23     system("$EDITOR $fname");
24     &Unsecure;
25 }
26
27 sub VI
28 {
29     &VI0($editfile);
30 }
31
32 sub MORE0
33 {
34     local($fname) = shift;
35     &Secure;
36     system("$PAGER $fname");
37     &Unsecure;
38 }
39
40 sub MORE
41 {
42     &MORE0($editfile);
43 }
44
45 sub Editscreen0
46 {
47     local($fname) = shift;
48     local($text) = shift;
49     open (EDIT, ">$fname") || do
50     {
51         print "Unable to open edit file: $!\n";
52         return;
53     };
54     print EDIT $text;
55     close(EDIT);
56 }
57
58 sub Editscreen
59 {
60     local($text) = shift;
61     &Editscreen0($editfile,$text);
62 }
63
64 sub Filterscreen0
65 {
66     local($fname) = shift;
67     open(EDIT, $fname) || do
68     {
69         print "Unable to open edit file: $!\n";
70         return "\n";
71     };
72     @ret = <EDIT>;
73     close(EDIT);
74     grep(s/[^ -~]//g,@ret);
75     @ret0=grep(s/^[^:]*:\s*//,@ret);
76     return join("\n",@ret0);
77 }
78
79 sub Filterscreen
80 {
81     return &Filterscreen0($editfile);
82 }
83     
84 sub timeout
85 {
86     exit(0);
87 }
88         
89 sub domenu
90 {
91     $domenu_menu = shift;
92     chop $domenu_menu;
93     while(1)
94     {
95         print $domenu_menu;
96 #        alarm($sleeptime);
97         $domenu_choice = <STDIN>;
98         $domenu_choice = substr($domenu_choice,0,1);
99         exit(42) unless defined $domenu_choice;
100 #        alarm(0);
101         @domenu_clist = grep(s/^$domenu_choice//i, @_);
102         if ($#domenu_clist == -1)
103         {
104             print "\n${beep}Illegal choice.\n\n";
105             next;
106         }
107         return($domenu_clist[0]);
108     }
109 }
110
111 sub Backup
112 {
113     return if $ENV{'USER'} eq "csc_disk";
114     #return if fork;
115     local($file) = $_[0];
116     local($bs);
117     ($bs) = $file =~ /([^\/]*)$/;
118     open(IN, "$file");
119     open(OUT, ">$CEOBACKUPDIR/$bs");
120     print OUT <IN>;
121     close(OUT);
122     close(IN);
123     ## system "rcp $file csc_disk@descartes:ceo/$bs";
124 }
125
126 sub GetPass
127 {
128     local($pwin);
129     system("stty -echo");
130     chop($pwin=<STDIN>);
131     system("stty echo");
132     print "\n";
133     return($pwin);
134 }
135
136 1;