1 // -*- compile-command: "g++ addu.cc -o addu" -*-
2 #include <string>
3 #include <iostream>
4 #include <fstream>
5 #include <unistd.h>
6
7 using namespace std;
8
add1u(string & s)9 void add1u(string & s){
10 if (s.size()>12 && s.substr(0,11)=="mount -f -s")
11 s=s.substr(0,6)+" -f -u "+s.substr(12,s.size()-12);
12 if (s.size()>9 && s.substr(0,8)=="mount -s")
13 s=s.substr(0,6)+" -u "+s.substr(9,s.size()-9);
14 }
15
addu(const std::string & filename,const string & target)16 void addu(const std::string & filename,const string & target){
17 FILE * in=fopen(filename.c_str(),"r");
18 string s1,s2;
19 char ch;
20 for (;!feof(in);){
21 ch=fgetc(in);
22 if (feof(in) or ch=='\n'){
23 add1u(s1);
24 s1+='\n';
25 s2+=s1;
26 s1="";
27 }
28 else
29 s1+=ch;
30 }
31 fclose(in);
32 ofstream of(target.c_str());
33 // of << "del " << filename << endl;
34 // of << "del " << target << endl;
35 of << s2;
36 of.close();
37 }
38
main(int argc,char ** argv)39 int main(int argc,char ** argv){
40 if (argc<3)
41 return 1;
42 addu(argv[1],argv[2]);
43 }
44