summaryrefslogtreecommitdiff
path: root/support/brief-t/remmer.cb
blob: a07a7e8da5606b4156908e94caf0986791975961 (plain)
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(" ");  
}