Fixed bug with ss_find_file under unix

SVN revision: 182
This commit is contained in:
2002-07-25 15:37:26 +00:00
parent 11937112e2
commit 698ae68b02
+44 -39
View File
@@ -6,6 +6,9 @@
Contents: Web server program for Electronic Logbook ELOG
$Log$
Revision 2.48 2002/07/25 15:37:26 midas
Fixed bug with ss_find_file under unix
Revision 2.47 2002/07/25 09:22:05 midas
Removed scandir() for Solaris compatibility
@@ -1397,6 +1400,7 @@ INT ss_file_find(char *path, char *pattern, char **plist)
#ifdef OS_UNIX
DIR *dir_pointer;
struct dirent *dp;
int i;
if ((dir_pointer = opendir(path)) == NULL)
return 0;
@@ -1414,6 +1418,7 @@ INT ss_file_find(char *path, char *pattern, char **plist)
}
}
closedir(dir_pointer);
return i;
#endif
#ifdef OS_WINNT
@@ -1562,7 +1567,7 @@ struct tm tms;
strcpy(str, file_list+index*MAX_PATH_LENGTH);
strcpy(lbs->el_index[*lbs->n_el_index].file_name, str);
el_decode(p, "Date: ", date);
el_decode(p, "In reply to: ", in_reply_to);
@@ -1585,7 +1590,7 @@ struct tm tms;
ltime = mktime(&tms);
lbs->el_index[*lbs->n_el_index].file_time = ltime;
lbs->el_index[*lbs->n_el_index].message_id = atoi(p+8);
lbs->el_index[*lbs->n_el_index].offset = (int) p - (int) buffer;
lbs->el_index[*lbs->n_el_index].thread_head = (in_reply_to[0] == 0);
@@ -1593,8 +1598,8 @@ struct tm tms;
if (lbs->el_index[*lbs->n_el_index].message_id > 0)
{
if (verbose)
printf(" ID %3d in %s, offset %5d, %s\n",
lbs->el_index[*lbs->n_el_index].message_id, str,
printf(" ID %3d in %s, offset %5d, %s\n",
lbs->el_index[*lbs->n_el_index].message_id, str,
lbs->el_index[*lbs->n_el_index].offset,
lbs->el_index[*lbs->n_el_index].thread_head ? "thread head" : "reply");
@@ -1621,8 +1626,8 @@ struct tm tms;
{
printf("After sort:\n");
for (i=0 ; i<*lbs->n_el_index ; i++)
printf(" ID %3d in %s, offset %5d\n",
lbs->el_index[i].message_id, lbs->el_index[i].file_name,
printf(" ID %3d in %s, offset %5d\n",
lbs->el_index[i].message_id, lbs->el_index[i].file_name,
lbs->el_index[i].offset);
}
@@ -1674,7 +1679,7 @@ int i;
for (i=*lbs->n_el_index-1 ; i>=0 ; i--)
if (lbs->el_index[i].thread_head)
return lbs->el_index[i].message_id;
return 0;
}
if (*lbs->n_el_index == 0)
@@ -1699,7 +1704,7 @@ int i;
for (i++ ; i<*lbs->n_el_index ; i++)
if (lbs->el_index[i].thread_head)
return lbs->el_index[i].message_id;
return 0;
}
@@ -1723,7 +1728,7 @@ int i;
for (i-- ; i>=0 ; i--)
if (lbs->el_index[i].thread_head)
return lbs->el_index[i].message_id;
return 0;
}
@@ -1798,7 +1803,7 @@ char message[TEXT_SIZE+1000], attachment_all[64*MAX_ATTACHMENTS];
{
/* file might have been deleted, rebuild index */
el_build_index(lbs, TRUE);
return el_retrieve(lbs, message_id, date, attr_list, attrib, n_attr, text,
return el_retrieve(lbs, message_id, date, attr_list, attrib, n_attr, text,
textsize, in_reply_to, reply_to, attachment, encoding);
}
@@ -1817,7 +1822,7 @@ char message[TEXT_SIZE+1000], attachment_all[64*MAX_ATTACHMENTS];
{
/* file might have been edited, rebuild index */
el_build_index(lbs, TRUE);
return el_retrieve(lbs, message_id, date, attr_list, attrib, n_attr, text,
return el_retrieve(lbs, message_id, date, attr_list, attrib, n_attr, text,
textsize, in_reply_to, reply_to, attachment, encoding);
}
@@ -1926,7 +1931,7 @@ int el_submit(LOGBOOK *lbs, int message_id,
char *date,
char attr_name[MAX_N_ATTR][NAME_LENGTH],
char attr_value[MAX_N_ATTR][NAME_LENGTH],
int n_attr, char *text,
int n_attr, char *text,
char *in_reply_to, char *reply_to,
char *encoding,
char afilename[MAX_ATTACHMENTS][256],
@@ -2065,7 +2070,7 @@ BOOL bedit;
/* file might have been edited, rebuild index */
el_build_index(lbs, TRUE);
return el_submit(lbs, message_id, date, attr_name, attr_value, n_attr, text,
return el_submit(lbs, message_id, date, attr_name, attr_value, n_attr, text,
in_reply_to, reply_to, encoding, afilename, buffer, buffer_size);
}
@@ -2265,7 +2270,7 @@ BOOL bedit;
if (lbs->el_index[i].message_id == message_id)
break;
for (j = i+1 ; j<*lbs->n_el_index &&
for (j = i+1 ; j<*lbs->n_el_index &&
equal_ustring(lbs->el_index[i].file_name, lbs->el_index[j].file_name); j++)
lbs->el_index[j].offset += delta;
}
@@ -2283,7 +2288,7 @@ BOOL bedit;
/* if reply, mark original message */
if (in_reply_to[0] && !bedit && atoi(in_reply_to) > 0)
{
char date[80], attr[MAX_N_ATTR][NAME_LENGTH], enc[80],
char date[80], attr[MAX_N_ATTR][NAME_LENGTH], enc[80],
att[MAX_ATTACHMENTS][256], reply_to[256];
reply_id = atoi(in_reply_to);
@@ -2410,7 +2415,7 @@ char message[TEXT_SIZE+1000], attachment_all[64*MAX_ATTACHMENTS];
if (strncmp(message, "$@MID@$:", 8) != 0)
{
close(fh);
/* file might have been edited, rebuild index */
el_build_index(lbs, TRUE);
return el_delete_message(lbs, message_id, delete_attachments,
@@ -3191,7 +3196,7 @@ int i, j;
{
rsprintf("<font size=3 face=verdana,arial,helvetica,sans-serif style=\"color:%s;background-color:%s\">&nbsp;",
gt("Title fontcolor"), gt("Title BGColor"));
for (j=0 ; j<(int)strlen(str) ; j++)
if (str[j] == ' ')
rsprintf("&nbsp;");
@@ -3215,7 +3220,7 @@ int i, j;
}
}
rsprintf("</td></tr>\n\n");
}
/*---- title row ----*/
@@ -4648,7 +4653,7 @@ int show_download_page(LOGBOOK *lbs, char *path)
{
char file_name[256], str[256];
int index, message_id, fh, i, size;
char message[TEXT_SIZE+1000], *p;
char message[TEXT_SIZE+1000], *p;
time_t now;
struct tm *gmt;
@@ -4721,10 +4726,10 @@ struct tm *gmt;
/*------------------------------------------------------------------*/
void display_line(LOGBOOK *lbs, int message_id, int number, char *mode,
int level, BOOL printable, int n_line, int show_attachments,
void display_line(LOGBOOK *lbs, int message_id, int number, char *mode,
int level, BOOL printable, int n_line, int show_attachments,
char *date, char *reply_to,
int n_attr_disp, char disp_attr[MAX_N_ATTR+4][NAME_LENGTH],
int n_attr_disp, char disp_attr[MAX_N_ATTR+4][NAME_LENGTH],
char attrib[MAX_N_ATTR][NAME_LENGTH],
int n_attr, char *text,
char attachment[MAX_ATTACHMENTS][256], char *encoding)
@@ -4864,7 +4869,7 @@ FILE *f;
{
if (!link_displayed)
{
rsprintf("<font size=%d><a href=\"%s\">%s</a></font>",
rsprintf("<font size=%d><a href=\"%s\">%s</a></font>",
size, ref, lbs->name);
link_displayed = TRUE;
}
@@ -4881,7 +4886,7 @@ FILE *f;
{
if (!link_displayed)
{
rsprintf("<td align=center %s bgcolor=%s><font size=%d><a href=\"%s\">%s</a></font></td>",
rsprintf("<td align=center %s bgcolor=%s><font size=%d><a href=\"%s\">%s</a></font></td>",
nowrap, col, size, ref, lbs->name);
link_displayed = TRUE;
}
@@ -4920,7 +4925,7 @@ FILE *f;
{
if (!link_displayed)
{
rsprintf("<font size=%d><a href=\"%s\">%s</a></font>",
rsprintf("<font size=%d><a href=\"%s\">%s</a></font>",
size, ref, str);
link_displayed = TRUE;
}
@@ -4937,7 +4942,7 @@ FILE *f;
{
if (!link_displayed)
{
rsprintf("<td align=center %s bgcolor=%s><font size=%d><a href=\"%s\">%s</a></font></td>",
rsprintf("<td align=center %s bgcolor=%s><font size=%d><a href=\"%s\">%s</a></font></td>",
nowrap, col, size, ref, str);
link_displayed = TRUE;
}
@@ -5175,10 +5180,10 @@ FILE *f;
/*------------------------------------------------------------------*/
void display_reply(LOGBOOK *lbs, int message_id, int printable, int n_attr_disp,
void display_reply(LOGBOOK *lbs, int message_id, int printable, int n_attr_disp,
char disp_attr[MAX_N_ATTR+4][NAME_LENGTH], int level)
{
char date[80], *text, in_reply_to[80], reply_to[256], encoding[80],
char date[80], *text, in_reply_to[80], reply_to[256], encoding[80],
attachment[MAX_ATTACHMENTS][NAME_LENGTH], attrib[MAX_N_ATTR][NAME_LENGTH];
int status, size;
char *p;
@@ -5198,7 +5203,7 @@ char *p;
}
display_line(lbs, message_id, 0, "threaded", level, printable, 0,
FALSE, date, reply_to, n_attr_disp, disp_attr,
FALSE, date, reply_to, n_attr_disp, disp_attr,
attrib, lbs->n_attr, NULL, NULL, encoding);
if (reply_to[0])
@@ -5640,19 +5645,19 @@ struct tm tms, *ptms;
else
{
rsprintf("<tr>\n");
for (i=0 ; i<n_attr_disp ; i++)
{
if (equal_ustring(disp_attr[i], "#"))
rsprintf("<td width=10%% align=center bgcolor=%s><font size=%d face=verdana,arial,helvetica,sans-serif><b>#</b></td>",
rsprintf("<td width=10%% align=center bgcolor=%s><font size=%d face=verdana,arial,helvetica,sans-serif><b>#</b></td>",
col, size);
if (equal_ustring(disp_attr[i], "Logbook"))
rsprintf("<td align=center bgcolor=%s><font size=%d face=verdana,arial,helvetica,sans-serif><b>Logbook</b></td>",
rsprintf("<td align=center bgcolor=%s><font size=%d face=verdana,arial,helvetica,sans-serif><b>Logbook</b></td>",
col, size);
if (equal_ustring(disp_attr[i], "Date"))
rsprintf("<td align=center bgcolor=%s><font size=%d face=verdana,arial,helvetica,sans-serif><b>Date</b></td>",
rsprintf("<td align=center bgcolor=%s><font size=%d face=verdana,arial,helvetica,sans-serif><b>Date</b></td>",
col, size);
for (j=0 ; j<lbs->n_attr ; j++)
@@ -5904,7 +5909,7 @@ struct tm tms, *ptms;
n_found++;
display_line(lbs, message_id, n_found, mode, 0, printable, n_line,
show_attachments, date, reply_to, n_attr_disp, disp_attr,
show_attachments, date, reply_to, n_attr_disp, disp_attr,
attrib, lbs->n_attr, text, attachment, encoding);
if (threaded)
@@ -6301,7 +6306,7 @@ void copy_to(LOGBOOK *lbs, int src_id, char *dest_logbook, int move)
{
int size, i, status, fh, message_id;
char str[256], file_name[256], attrib[MAX_N_ATTR][NAME_LENGTH];
char date[80], text[TEXT_SIZE], msg_str[32], in_reply_to[80], reply_to[256],
char date[80], text[TEXT_SIZE], msg_str[32], in_reply_to[80], reply_to[256],
attachment[MAX_ATTACHMENTS][256], encoding[80];
LOGBOOK *lbs_dest;
@@ -6713,7 +6718,7 @@ BOOL first;
if (equal_ustring(command, loc("Last")))
message_id = el_search_message(lbs, EL_LAST, 0, FALSE);
if (equal_ustring(command, loc("First")))
message_id = el_search_message(lbs, EL_FIRST, 0, FALSE);
@@ -6737,7 +6742,7 @@ BOOL first;
if (equal_ustring(command, loc("First")))
message_id = el_search_message(lbs, EL_NEXT, message_id, FALSE);
if (equal_ustring(command, loc("Last")))
message_id = el_search_message(lbs, EL_PREV, message_id, FALSE);
}
@@ -7693,7 +7698,7 @@ LOGBOOK *cur_lb;
strcpy(logbook_enc, experiment);
strcpy(logbook, experiment);
url_decode(logbook);
}
}
else
{
strcpy(logbook_enc, lbook);
@@ -9435,7 +9440,7 @@ usage:
printf("Indexing logbook \"%s\"...\n", logbook);
status = el_build_index(&lb_list[n], FALSE);
if (status == EL_EMPTY)
printf("Found empty logbook \"%s\"\n", logbook);
else if (status == EL_UPGRADE)