/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/ /* */ /* 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(" "); }