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