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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
/* */
/* P†l Hedne 1990 */
/* */
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
_init (...)
{
int save_key;
global save_key;
save_key=0;
}
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
split_tex (...)
{
int line,col,line1,col1,match,length,
buf_key,nwrite,ind;
string sdum,text,label,fname,bname,ext;
inq_names(fname,ext,bname);
ind = search_string (".",fname,length,0,0);
if (ind>0) fname=substr(fname,1,ind-1);
fname=fname+".sav";
ind=exist(fname);
if (ind != 0)
{
sprintf(text,"File %s exist. Continue (Y/N) ? ",fname);
get_parm (0, sdum, text, 1);
sdum=upper(sdum);
}
else
sdum="Y";
if (sdum == "Y")
{
if (ind!=0) del(fname);
message("Splitter...");
inq_position (line, col);
top_of_buffer();
save_key=create_buffer("Save",fname,0);
buf_key=inq_buffer();
nwrite=0;
match=1;
/* pause_on_error(1);*/
while (match > 0)
{
/* match=search_fwd("{{\\\\}|{\\{}*\\}}|{\\$*\\$}|{\\*$}",-1,0,0,1);*/
/* match=search_fwd("{{\\\\}|{\\{}*\\}}|{\\$*\\$}|{\\\\[~ \t\n]+[ \t\n]}",-1,0,0,1);*/
match=search_fwd("{{\\\\}|{\\{}*\\}}|{\\$*\\$}|{\\\\[~ \t\n]+}",-1,0,0,1);
if (match > 0)
{
++nwrite;
--match;
text = read(match);
/* error("nw %d=%s",nwrite,text);*/
delete_char(match);
sprintf(label,"%c%d ",94,nwrite);
insert(label);
set_buffer(save_key);
insert(label);insert(text);insert("\n");
/* error("Ins: %s %s",label,text);*/
set_buffer(buf_key);
sprintf(text,"Splitter...%d",nwrite);
message(text);
}
}
if (nwrite>0)
{
set_buffer(save_key);
write_buffer();
set_buffer(buf_key);
delete_buffer(save_key);
}
move_abs(line,col);
message(" ");
}
}
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
join_tex (...)
{
int line,col,line1,col1,match,save_match,length,
buf_key,nwrite,ind,fsave;
string text,label,fname,bname,ext,sdum;
inq_names(fname,ext,bname);
ind = search_string (".",fname,length,0,0);
if (ind>0) fname=substr(fname,1,ind-1);
fname=fname+".sav";
fsave=0;
message("Kobler...");
inq_position (line, col);
top_of_buffer();
save_key=create_buffer("Save",fname,0);
buf_key=inq_buffer();
nwrite=0;
match=1;
/* pause_on_error(1);*/
while (match > 0)
{
++nwrite;
sprintf(label,"%c%d ",94,nwrite);
match=search_fwd(label,0,0,0,1);
set_buffer(save_key);
save_match=search_fwd(label,0,0,0,1);
/* error("label=%s,match=%d,smatch=%d",label,match,save_match);*/
if ((match > 0) && (save_match>0))
{
move_rel(0,save_match-1);
text = read();
ind=strlen(text)-1;
text=substr(text,1,ind);
set_buffer(buf_key);
delete_char(match-1);
insert(text);
sprintf(text,"Join...%d",nwrite);
message(text);
}
else
{
if (!((match==0)&&(save_match==0)))
{
sprintf(text,"Warning: ^%d missing !! Continue (Y/N)?",nwrite);
get_parm (0, sdum, text, 1);
sdum=upper(sdum);
if (sdum != "Y")
{
match=0;
fsave=1;
}
else
{
match=1;
set_buffer(buf_key);
}
}
}
}
set_buffer(save_key);
delete_buffer(save_key);
set_buffer(buf_key);
if (fsave==0) del(fname);
move_abs(line,col);
message(" ");
}
|