mirror of
https://gitea.psi.ch/ELOG/elog.git
synced 2026-09-12 19:33:03 +00:00
Fixed crash on 'm*' regex search
SVN revision: 1315
This commit is contained in:
parent
d83a8e7f11
commit
2594b21e02
57
src/elogd.c
57
src/elogd.c
@ -6,6 +6,9 @@
|
|||||||
Contents: Web server program for Electronic Logbook ELOG
|
Contents: Web server program for Electronic Logbook ELOG
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.622 2005/04/12 07:11:27 ritt
|
||||||
|
Fixed crash on 'm*' regex search
|
||||||
|
|
||||||
Revision 1.621 2005/04/07 20:19:26 ritt
|
Revision 1.621 2005/04/07 20:19:26 ritt
|
||||||
Fixed compiler warning
|
Fixed compiler warning
|
||||||
|
|
||||||
@ -15238,6 +15241,12 @@ void highlight_searchtext(regex_t * re_buf, char *src, char *dst, int hidden)
|
|||||||
if (status != REG_NOMATCH) {
|
if (status != REG_NOMATCH) {
|
||||||
size = pmatch[0].rm_so;
|
size = pmatch[0].rm_so;
|
||||||
|
|
||||||
|
/* abort if zero length match, for example from "m*" */
|
||||||
|
if (size == 0) {
|
||||||
|
status = REG_NOMATCH;
|
||||||
|
strcpy(pt1, pt);
|
||||||
|
break;
|
||||||
|
}
|
||||||
/* copy first part original text */
|
/* copy first part original text */
|
||||||
memcpy(pt1, pt, size);
|
memcpy(pt1, pt, size);
|
||||||
pt1 += size;
|
pt1 += size;
|
||||||
@ -17982,7 +17991,7 @@ void show_elog_entry(LOGBOOK * lbs, char *dec_path, char *command)
|
|||||||
message_id, orig_message_id, format_flags[MAX_N_ATTR], att_hide[MAX_ATTACHMENTS],
|
message_id, orig_message_id, format_flags[MAX_N_ATTR], att_hide[MAX_ATTACHMENTS],
|
||||||
n_attachments, n_lines;
|
n_attachments, n_lines;
|
||||||
char str[1000], ref[256], file_enc[256], thumb_name[256], attrib[MAX_N_ATTR][NAME_LENGTH];
|
char str[1000], ref[256], file_enc[256], thumb_name[256], attrib[MAX_N_ATTR][NAME_LENGTH];
|
||||||
char date[80], text[TEXT_SIZE], menu_str[1000], cmd[256],
|
char date[80], text[TEXT_SIZE], menu_str[1000], cmd[256], cmd_enc[256],
|
||||||
orig_tag[80], reply_tag[MAX_REPLY_TO * 10], display[256],
|
orig_tag[80], reply_tag[MAX_REPLY_TO * 10], display[256],
|
||||||
attachment[MAX_ATTACHMENTS][MAX_PATH_LENGTH], encoding[80], locked_by[256],
|
attachment[MAX_ATTACHMENTS][MAX_PATH_LENGTH], encoding[80], locked_by[256],
|
||||||
att[256], lattr[256], mid[80], menu_item[MAX_N_LIST][NAME_LENGTH], format[80],
|
att[256], lattr[256], mid[80], menu_item[MAX_N_LIST][NAME_LENGTH], format[80],
|
||||||
@ -18193,19 +18202,27 @@ void show_elog_entry(LOGBOOK * lbs, char *dec_path, char *command)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (strieq(cmd, "Copy to") || strieq(cmd, "Move to")) {
|
if (strieq(cmd, "Copy to") || strieq(cmd, "Move to")) {
|
||||||
|
|
||||||
rsprintf(" <input type=submit name=cmd value=\"%s\">\n", loc(cmd));
|
|
||||||
if (strieq(cmd, "Copy to"))
|
|
||||||
rsprintf("<select name=destc>\n");
|
|
||||||
else
|
|
||||||
rsprintf("<select name=destm>\n");
|
|
||||||
|
|
||||||
if (getcfg(lbs->name, cmd, str, sizeof(str))) {
|
if (getcfg(lbs->name, cmd, str, sizeof(str))) {
|
||||||
n_log = strbreak(str, lbk_list, MAX_N_LIST, ",");
|
n_log = strbreak(str, lbk_list, MAX_N_LIST, ",");
|
||||||
|
|
||||||
for (j = 0; j < n_log; j++)
|
for (j = 0; j < n_log; j++) {
|
||||||
rsprintf("<option value=\"%s\">%s\n", lbk_list[j], lbk_list[j]);
|
strcpy(ref, lbk_list[j]);
|
||||||
|
url_encode(ref, sizeof(ref));
|
||||||
|
|
||||||
|
strcpy(cmd_enc, loc(cmd));
|
||||||
|
url_encode(cmd_enc, sizeof(cmd_enc));
|
||||||
|
|
||||||
|
if (strieq(cmd, loc("Copy to")))
|
||||||
|
rsprintf
|
||||||
|
(" <a href=\"../%s/%d?cmd=%s&destc=%s\">%s \"%s\"</a> |\n",
|
||||||
|
lbs->name_enc, message_id, cmd_enc, ref, loc(cmd), lbk_list[j]);
|
||||||
|
else
|
||||||
|
rsprintf
|
||||||
|
(" <a href=\"../%s/%d?cmd=%s&destm=%s\">%s \"%s\"</a> |\n",
|
||||||
|
lbs->name_enc, message_id, cmd_enc, ref, loc(cmd), lbk_list[j]);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
/* put one link for each logbook except current one */
|
||||||
for (j = 0;; j++) {
|
for (j = 0;; j++) {
|
||||||
if (!enumgrp(j, str))
|
if (!enumgrp(j, str))
|
||||||
break;
|
break;
|
||||||
@ -18216,14 +18233,22 @@ void show_elog_entry(LOGBOOK * lbs, char *dec_path, char *command)
|
|||||||
if (strieq(str, lbs->name))
|
if (strieq(str, lbs->name))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
rsprintf("<option value=\"%s\">%s\n", str, str);
|
strlcpy(ref, str, sizeof(ref));
|
||||||
|
url_encode(ref, sizeof(ref));
|
||||||
|
|
||||||
|
strcpy(cmd_enc, loc(cmd));
|
||||||
|
url_encode(cmd_enc, sizeof(cmd_enc));
|
||||||
|
|
||||||
|
if (strieq(cmd, "Copy to"))
|
||||||
|
rsprintf
|
||||||
|
(" <a href=\"../%s/%d?cmd=%s&destc=%s\">%s \"%s\"</a> |\n",
|
||||||
|
lbs->name_enc, message_id, cmd_enc, ref, loc(cmd), str);
|
||||||
|
else
|
||||||
|
rsprintf
|
||||||
|
(" <a href=\"../%s/%d?cmd=%s&destm=%s\">%s \"%s\"</a> |\n",
|
||||||
|
lbs->name_enc, message_id, cmd_enc, ref, loc(cmd), str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rsprintf("</select>\n");
|
|
||||||
|
|
||||||
if (i < n - 1)
|
|
||||||
rsprintf(" |\n");
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
strcpy(str, loc(menu_item[i]));
|
strcpy(str, loc(menu_item[i]));
|
||||||
url_encode(str, sizeof(str));
|
url_encode(str, sizeof(str));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user