Lines Matching refs:einfo
115 static EditInfo einfo;
396 block.ptr = einfo.command;
397 block.length = strlen(einfo.command);
428 if (length >= sizeof(einfo.command)) {
495 if (einfo.state != SubstituteDisabled) {
496 if (einfo.widget != w || strcmp(einfo.command, command)) {
497 einfo.widget = w;
498 einfo.state = SubstituteAsk;
504 if (s_start != einfo.start || s_end != einfo.end)
505 einfo.state = SubstituteAsk;
507 from = einfo.from;
508 to = einfo.to;
509 first = einfo.first;
510 last = einfo.last;
516 strcpy(einfo.command, command);
519 for (ptr = einfo.command; *ptr;) {
753 length >= sizeof(einfo.pattern) - 1)
757 if ((!!(einfo.flags & RE_ICASE) ^ icase) ||
758 einfo.pat_length != length ||
759 memcmp(pstart, einfo.pattern,
760 length > einfo.pat_length ? einfo.pat_length : length)) {
762 memcpy(einfo.pattern, pstart, length);
763 einfo.pattern[length] = '\0';
764 einfo.flags = icase ? RE_ICASE : 0;
799 einfo.slen = rend - rstart;
800 einfo.sref = 0;
801 einfo.soff = offset;
802 for (i = j = 0; i < einfo.slen; i++) {
818 einfo.subst[j++] = '\\';
819 if (rstart[i] - '0' > einfo.sref)
820 einfo.sref = rstart[i] - '0';
827 einfo.subst[j++] = ch;
829 einfo.slen = j;
831 else if (einfo.widget != w) {
833 einfo.from = last;
834 einfo.widget = w;
843 pptr = einfo.subst_pattern;
844 for (eptr = einfo.pattern, ch = *eptr++; ch; ch = *eptr++) {
847 case '0': ch = '\0'; einfo.flags |= RE_PEND; break;
864 refree(&einfo.regex);
866 einfo.regex.re_endp = pptr;
867 ecode = recomp(&einfo.regex, einfo.subst_pattern, einfo.flags);
879 einfo.from = from;
889 einfo.widget = w;
890 einfo.state = SubstituteAsk;
891 einfo.from = from;
892 einfo.to = to;
893 einfo.first = first;
894 einfo.last = last;
897 einfo.state = SubstituteDisabled;
906 if (confirm && einfo.state != SubstituteAsk) {
909 nth = einfo.soff;
910 /* einfo.mats should not have changed */
911 if (einfo.state == SubstituteYes) {
912 einfo.state = SubstituteAsk;
913 line = einfo.text_line;
918 einfo.state = SubstituteAsk;
919 from = einfo.from = einfo.end;
931 if (length > einfo.lsize) {
932 einfo.line = XtRealloc(einfo.line, to - from);
933 einfo.lsize = to - from;
935 memcpy(einfo.line, block.ptr, block.length);
941 memcpy(einfo.line + length, block.ptr, block.length);
944 line = einfo.line;
948 einfo.mats[0].rm_so = 0;
949 einfo.mats[0].rm_eo = to - from;
953 if (to < last || (to > from && line[einfo.mats[0].rm_eo - 1] == '\n'))
954 --einfo.mats[0].rm_eo;
956 ecode = reexec(&einfo.regex, line,
957 einfo.sref + 1, &einfo.mats[0], flags);
959 if (replace && einfo.mats[0].rm_so == einfo.mats[0].rm_eo)
964 (einfo.soff == O_ALL || nth == einfo.soff)) {
965 einfo.end = from + einfo.mats[0].rm_eo;
966 einfo.start = from + einfo.mats[0].rm_so;
967 XawTextSetInsertionPoint(w, einfo.end);
968 XawTextSetSelection(w, einfo.start, einfo.end);
970 einfo.state = SubstituteAsk;
971 einfo.from = from;
972 einfo.to = to;
973 einfo.first = first;
974 einfo.last = last;
975 einfo.text_line = line;
985 from += einfo.mats[0].rm_so;
986 len = einfo.mats[0].rm_eo - einfo.mats[0].rm_so;
992 if (einfo.soff != O_ALL && nth < einfo.soff) {
1001 if (einfo.sref) {
1005 for (i = length = 0; i < einfo.slen; i++) {
1006 if (length + 2 >= einfo.bsize) {
1007 einfo.bsize = einfo.bsize + 1024;
1008 einfo.buffer = XtRealloc(einfo.buffer, einfo.bsize);
1010 if (einfo.subst[i] == '\\') {
1012 if (einfo.subst[i] >= '1' && einfo.subst[i] <= '9') {
1013 ref = einfo.subst[i] - '0';
1014 xlen = einfo.mats[ref].rm_eo -
1015 einfo.mats[ref].rm_so;
1019 if (length + xlen >= einfo.bsize) {
1020 einfo.bsize += xlen + 1024 - (xlen % 1024);
1021 einfo.buffer = XtRealloc(einfo.buffer,
1022 einfo.bsize);
1024 memcpy(einfo.buffer + length,
1025 line + einfo.mats[ref].rm_so, xlen);
1029 einfo.buffer[length++] = einfo.subst[i - 1];
1030 einfo.buffer[length++] = einfo.subst[i];
1034 einfo.buffer[length++] = einfo.subst[i];
1036 block.ptr = einfo.buffer;
1040 block.ptr = einfo.subst;
1041 block.length = length = einfo.slen;
1051 if (einfo.soff != O_ALL) {
1075 if (einfo.from <= first) {
1085 /* Can use einfo.from because replace is only done forward */
1086 einfo.from = from;
1094 einfo.state = SubstituteDisabled;
1133 reerror(ecode, &einfo.regex,
1137 refree(&einfo.regex);
1138 einfo.state = SubstituteDisabled;
1202 einfo.state = SubstituteDisabled;
1212 if (line_edit && einfo.state == SubstituteAsk) {
1215 einfo.state = SubstituteAsk;
1224 einfo.state = SubstituteYes;
1226 einfo.state = SubstituteNo;
1228 einfo.state = SubstituteDisabled;
1230 if (einfo.state != SubstituteDisabled) {
1231 einfo.callback = 1;
1238 einfo.state = SubstituteDisabled;
1240 if (einfo.state == SubstituteDisabled && einfo.callback) {
1241 einfo.callback = 0;
1253 einfo.callback = 0;
1259 block.ptr = einfo.command;
1260 block.length = strlen(einfo.command);
1265 LineEdit(einfo.widget);