76 |
char dbpath[MAXPATHLEN]; |
char dbpath[MAXPATHLEN]; |
77 |
char distpath[MAXPATHLEN]; |
char distpath[MAXPATHLEN]; |
78 |
char gtagsconf[MAXPATHLEN]; |
char gtagsconf[MAXPATHLEN]; |
79 |
|
char datadir[MAXPATHLEN]; |
80 |
|
|
81 |
char sort_path[MAXFILLEN]; |
char sort_path[MAXFILLEN]; |
82 |
char gtags_path[MAXFILLEN]; |
char gtags_path[MAXFILLEN]; |
113 |
int other_files; /* 1: list other files */ |
int other_files; /* 1: list other files */ |
114 |
int enable_grep; /* 1: enable grep */ |
int enable_grep; /* 1: enable grep */ |
115 |
int enable_idutils; /* 1: enable idutils */ |
int enable_idutils; /* 1: enable idutils */ |
116 |
|
int enable_xhtml; /* 1: enable XHTML */ |
117 |
|
|
118 |
char *action_value; |
char *action_value; |
119 |
char *id_value; |
char *id_value; |
238 |
{"no-map-file", no_argument, &no_map_file, 1}, |
{"no-map-file", no_argument, &no_map_file, 1}, |
239 |
{"statistics", no_argument, &statistics, 1}, |
{"statistics", no_argument, &statistics, 1}, |
240 |
{"style-sheet", required_argument, NULL, 1}, |
{"style-sheet", required_argument, NULL, 1}, |
241 |
|
{"xhtml", no_argument, &enable_xhtml, 1}, |
242 |
{"version", no_argument, &show_version, 1}, |
{"version", no_argument, &show_version, 1}, |
243 |
{"help", no_argument, &show_help, 1}, |
{"help", no_argument, &show_help, 1}, |
244 |
{ 0 } |
{ 0 } |
319 |
char *name; |
char *name; |
320 |
char *value; |
char *value; |
321 |
} tab[] = { |
} tab[] = { |
322 |
{"@html_begin@", html_begin}, |
{"@page_begin@", NULL}, |
323 |
{"@html_end@", html_end}, |
{"@page_end@", NULL}, |
324 |
{"@body_begin@", body_begin}, |
{"@body_begin@", body_begin}, |
325 |
{"@body_end@", body_end}, |
{"@body_end@", body_end}, |
326 |
|
{"@title_begin@", title_begin}, |
327 |
|
{"@title_end@", title_end}, |
328 |
{"@error_begin@", error_begin}, |
{"@error_begin@", error_begin}, |
329 |
{"@error_end@", error_end}, |
{"@error_end@", error_end}, |
330 |
{"@message_begin@", message_begin}, |
{"@message_begin@", message_begin}, |
345 |
}; |
}; |
346 |
int tabsize = sizeof(tab) / sizeof(struct map); |
int tabsize = sizeof(tab) / sizeof(struct map); |
347 |
|
|
348 |
|
tab[0].value = gen_page_begin("Result", 1); |
349 |
|
tab[1].value = gen_page_end(); |
350 |
/* |
/* |
351 |
* construct regular expression. |
* construct regular expression. |
352 |
*/ |
*/ |
363 |
* construct skelton file name in the system datadir directory. |
* construct skelton file name in the system datadir directory. |
364 |
*/ |
*/ |
365 |
strbuf_reset(sb); |
strbuf_reset(sb); |
366 |
if (!getconfs("datadir", sb)) |
strbuf_sprintf(sb, "%s/gtags/%s.tmpl", datadir, file); |
|
die("cannot get datadir directory name."); |
|
|
strbuf_sprintf(sb, "/gtags/%s.tmpl", file); |
|
367 |
ip = fopen(strbuf_value(sb), "r"); |
ip = fopen(strbuf_value(sb), "r"); |
368 |
if (!ip) |
if (!ip) |
369 |
die("skelton file '%s' not found.", strbuf_value(sb)); |
die("skelton file '%s' not found.", strbuf_value(sb)); |
399 |
for (q = tab[i].value; *q; q++) { |
for (q = tab[i].value; *q; q++) { |
400 |
if (*q == '"') |
if (*q == '"') |
401 |
fputc('\\', op); |
fputc('\\', op); |
402 |
|
else if (*q == '\n') |
403 |
|
fputc('\\', op); |
404 |
fputc(*q, op); |
fputc(*q, op); |
405 |
} |
} |
406 |
} |
} |
497 |
op = fopen(makepath(distpath, file, NULL), "w"); |
op = fopen(makepath(distpath, file, NULL), "w"); |
498 |
if (!op) |
if (!op) |
499 |
die("cannot make help file."); |
die("cannot make help file."); |
500 |
fprintf(op, "%s\n", html_begin); |
fprintf(op, "%s\n", gen_page_begin("HELP", 0)); |
|
fprintf(op, "%s", set_header("HELP")); |
|
501 |
fprintf(op, "%s\n", body_begin); |
fprintf(op, "%s\n", body_begin); |
502 |
fprintf(op, "%sUsage of Links%s\n", header_begin, header_end); |
fputs(header_begin, op); |
503 |
fprintf(op, "%s/* ", verbatim_begin); |
fputs("Usage of Links", op); |
504 |
|
fprintf(op, "%s\n", header_end); |
505 |
|
fputs(verbatim_begin, op); |
506 |
|
fputs("/* ", op); |
507 |
for (n = 0; n <= last; n++) { |
for (n = 0; n <= last; n++) { |
508 |
if (icon_list) { |
if (icon_list) { |
509 |
fputs(gen_image(CURRENT, icons[n], label[n]), op); |
fputs(gen_image(CURRENT, icons[n], label[n]), op); |
515 |
} |
} |
516 |
if (show_position) |
if (show_position) |
517 |
fprintf(op, "[+line file]"); |
fprintf(op, "[+line file]"); |
518 |
fprintf(op, " */%s\n", verbatim_end); |
fputs(" */", op); |
519 |
fprintf(op, "<dl>\n"); |
fprintf(op, "%s\n", verbatim_end); |
520 |
|
fprintf(op, "%s\n", define_list_begin); |
521 |
for (n = 0; n <= last; n++) { |
for (n = 0; n <= last; n++) { |
522 |
fprintf(op, "<dt>"); |
fputs(define_term_begin, op); |
523 |
if (icon_list) { |
if (icon_list) { |
524 |
fputs(gen_image(CURRENT, icons[n], label[n]), op); |
fputs(gen_image(CURRENT, icons[n], label[n]), op); |
525 |
} else { |
} else { |
526 |
fprintf(op, "[%s]", label[n]); |
fprintf(op, "[%s]", label[n]); |
527 |
} |
} |
528 |
fprintf(op, "<dd>%s\n", msg[n]); |
fputs(define_term_end, op); |
529 |
|
fputs(define_desc_begin, op); |
530 |
|
fputs(msg[n], op); |
531 |
|
fprintf(op, "%s\n", define_desc_end); |
532 |
} |
} |
533 |
if (show_position) { |
if (show_position) { |
534 |
fprintf(op, "<dt>[+line file]"); |
fputs(define_term_begin, op); |
535 |
fprintf(op, "<dd>Current position (line number and file name).\n"); |
fputs("[+line file]", op); |
536 |
|
fputs(define_term_end, op); |
537 |
|
fputs(define_desc_begin, op); |
538 |
|
fputs("Current position (line number and file name).", op); |
539 |
|
fprintf(op, "%s\n", define_desc_end); |
540 |
} |
} |
541 |
fprintf(op, "</dl>\n"); |
fprintf(op, "%s\n", define_list_end); |
542 |
fprintf(op, "%s\n", body_end); |
fprintf(op, "%s\n", body_end); |
543 |
fprintf(op, "%s\n", html_end); |
fprintf(op, "%s\n", gen_page_end()); |
544 |
fclose(op); |
fclose(op); |
545 |
file_count++; |
file_count++; |
546 |
} |
} |
566 |
strbuf_puts(sb, "SEARCH"); |
strbuf_puts(sb, "SEARCH"); |
567 |
if (Fflag) |
if (Fflag) |
568 |
strbuf_puts(sb, gen_href_end()); |
strbuf_puts(sb, gen_href_end()); |
569 |
strbuf_puts(sb, header_end); |
strbuf_sprintf(sb, "%s\n", header_end); |
570 |
strbuf_putc(sb, '\n'); |
if (!target) { |
571 |
if (!target) |
strbuf_puts(sb, "Please input object name and select [Search]. POSIX's regular expression is allowed."); |
572 |
strbuf_puts(sb, "Please input object name and select [Search]. POSIX's regular expression is allowed.<p>\n"); |
strbuf_puts(sb, br); |
573 |
|
strbuf_putc(sb, '\n'); |
574 |
|
} |
575 |
strbuf_sprintf(sb, "<form method='get' action='%s'", action); |
strbuf_sprintf(sb, "<form method='get' action='%s'", action); |
576 |
if (target) |
if (target) |
577 |
strbuf_sprintf(sb, " target='%s'", target); |
strbuf_sprintf(sb, " target='%s'", target); |
578 |
strbuf_puts(sb, ">\n"); |
strbuf_sprintf(sb, "%s>\n", empty_element); |
579 |
strbuf_puts(sb, "<input name='pattern'>\n"); |
strbuf_sprintf(sb, "<input name='pattern'%s>\n", empty_element); |
580 |
strbuf_puts(sb, "<input type='hidden' name='id' value='"); |
if (id == NULL) |
581 |
if (id) |
id = ""; |
582 |
strbuf_puts(sb, id); |
strbuf_sprintf(sb, "<input type='hidden' name='id' value='%s'%s>\n", id, empty_element); |
583 |
strbuf_puts(sb, "'>\n"); |
strbuf_sprintf(sb, "<input type='submit' value='Search'%s>\n", empty_element); |
584 |
strbuf_puts(sb, "<input type='submit' value='Search'>\n"); |
strbuf_sprintf(sb, "<input type='reset' value='Reset'%s>%s\n", empty_element, br); |
585 |
strbuf_sprintf(sb, "<input type='reset' value='Reset'>%s\n", br); |
strbuf_sprintf(sb, "<input type='radio' name='type' value='definition' checked title='Retrieve the definition place of the specified symbol.'%s>", empty_element); |
|
strbuf_puts(sb, "<input type='radio' name='type' value='definition' checked title='Retrieve the definition place of the specified symbol.'>"); |
|
586 |
strbuf_puts(sb, target ? "Def" : "Definition"); |
strbuf_puts(sb, target ? "Def" : "Definition"); |
587 |
strbuf_puts(sb, "\n<input type='radio' name='type' value='reference' title='Retrieve the reference place of the specified symbol.'>"); |
strbuf_sprintf(sb, "\n<input type='radio' name='type' value='reference' title='Retrieve the reference place of the specified symbol.'%s>", empty_element); |
588 |
strbuf_puts(sb, target ? "Ref" : "Reference"); |
strbuf_puts(sb, target ? "Ref" : "Reference"); |
589 |
if (test("f", makepath(dbpath, dbname(GSYMS), NULL))) { |
if (test("f", makepath(dbpath, dbname(GSYMS), NULL))) { |
590 |
strbuf_puts(sb, "\n<input type='radio' name='type' value='symbol' title='Retrieve the place of the specified symbol is used.'>"); |
strbuf_sprintf(sb, "\n<input type='radio' name='type' value='symbol' title='Retrieve the place of the specified symbol is used.'%s>", empty_element); |
591 |
strbuf_puts(sb, target ? "Sym" : "Other symbol"); |
strbuf_puts(sb, target ? "Sym" : "Other symbol"); |
592 |
} |
} |
593 |
strbuf_puts(sb, "\n<input type='radio' name='type' value='path' title='Look for path name which matches to the specified pattern.'>"); |
strbuf_sprintf(sb, "\n<input type='radio' name='type' value='path' title='Look for path name which matches to the specified pattern.'%s>", empty_element); |
594 |
strbuf_puts(sb, target ? "Path" : "Path name"); |
strbuf_puts(sb, target ? "Path" : "Path name"); |
595 |
if (enable_grep) { |
if (enable_grep) { |
596 |
strbuf_puts(sb, "\n<input type='radio' name='type' value='grep' title='Retrieve lines which matches to the specified pattern.'>"); |
strbuf_sprintf(sb, "\n<input type='radio' name='type' value='grep' title='Retrieve lines which matches to the specified pattern.'%s>", empty_element); |
597 |
strbuf_puts(sb, target ? "Grep" : "Grep pattern"); |
strbuf_puts(sb, target ? "Grep" : "Grep pattern"); |
598 |
} |
} |
599 |
if (enable_idutils && test("f", makepath(dbpath, "ID", NULL))) { |
if (enable_idutils && test("f", makepath(dbpath, "ID", NULL))) { |
600 |
strbuf_puts(sb, "\n<input type='radio' name='type' value='idutils' title='Retrieve lines which matches to the specified pattern using idutils(1).'>"); |
strbuf_sprintf(sb, "\n<input type='radio' name='type' value='idutils' title='Retrieve lines which matches to the specified pattern using idutils(1).'%s>", empty_element); |
601 |
strbuf_puts(sb, target ? "Id" : "Id pattern"); |
strbuf_puts(sb, target ? "Id" : "Id pattern"); |
602 |
} |
} |
603 |
strbuf_sprintf(sb, "%s\n<input type='checkbox' name='icase' value='1' title='Ignore case distinctions in the pattern.'>", br); |
strbuf_sprintf(sb, "%s\n<input type='checkbox' name='icase' value='1' title='Ignore case distinctions in the pattern.'%s>", br, empty_element); |
604 |
strbuf_puts(sb, target ? "Icase" : "Ignore case"); |
strbuf_puts(sb, target ? "Icase" : "Ignore case"); |
605 |
if (other_files) { |
if (other_files) { |
606 |
strbuf_puts(sb, "\n<input type='checkbox' name='other' value='1' title='Files other than the source code are also retrieved.'>"); |
strbuf_sprintf(sb, "\n<input type='checkbox' name='other' value='1' title='Files other than the source code are also retrieved.'%s>", empty_element); |
607 |
strbuf_puts(sb, target ? "Other" : "Other files"); |
strbuf_puts(sb, target ? "Other" : "Other files"); |
608 |
} |
} |
609 |
strbuf_puts(sb, "\n</form>\n"); |
strbuf_puts(sb, "\n</form>\n"); |
625 |
char *index; |
char *index; |
626 |
{ |
{ |
627 |
FILE *op; |
FILE *op; |
628 |
|
char *name = enable_xhtml ? "id" : "name"; |
629 |
|
|
630 |
op = fopen(makepath(distpath, file, NULL), "w"); |
op = fopen(makepath(distpath, file, NULL), "w"); |
631 |
if (!op) |
if (!op) |
632 |
die("cannot make file '%s'.", file); |
die("cannot make file '%s'.", file); |
633 |
|
fprintf(op, "%s\n", gen_page_begin(title, 0)); |
634 |
if (Fflag) { |
if (Fflag) { |
|
fprintf(op, "%s\n", html_begin); |
|
|
fprintf(op, "%s\n", head_begin); |
|
|
fprintf(op, "<title>%s</title>\n", title); |
|
|
fprintf(op, "%s", meta_record()); |
|
|
if (style_sheet) |
|
|
fprintf(op, "%s", style_sheet); |
|
|
fprintf(op, "%s\n", head_end); |
|
635 |
fprintf(op, "<frameset cols='200,*'>\n"); |
fprintf(op, "<frameset cols='200,*'>\n"); |
636 |
if (fflag) { |
if (fflag) { |
637 |
fprintf(op, "<frameset rows='33%%,33%%,*'>\n"); |
fprintf(op, "<frameset rows='33%%,33%%,*'>\n"); |
638 |
fprintf(op, "<frame name='search' src='search.%s'>\n", normal_suffix); |
fprintf(op, "<frame %s='search' src='search.%s'%s>\n", name, normal_suffix, empty_element); |
639 |
} else { |
} else { |
640 |
fprintf(op, "<frameset rows='50%%,*'>\n"); |
fprintf(op, "<frameset rows='50%%,*'>\n"); |
641 |
} |
} |
642 |
fprintf(op, "<frame name='defines' src='defines.%s'>\n", normal_suffix); |
/* |
643 |
fprintf(op, "<frame name='files' src='files.%s'>\n", normal_suffix); |
* id='xxx' for XHTML |
644 |
|
* name='xxx' for HTML |
645 |
|
*/ |
646 |
|
fprintf(op, "<frame name='defines' id='defines' src='defines.%s'%s>\n", normal_suffix, empty_element); |
647 |
|
fprintf(op, "<frame name='files' id='files' src='files.%s'%s>\n", normal_suffix, empty_element); |
648 |
fprintf(op, "</frameset>\n"); |
fprintf(op, "</frameset>\n"); |
649 |
fprintf(op, "<frame name='mains' src='mains.%s'>\n", normal_suffix); |
fprintf(op, "<frame name='mains' id='mains' src='mains.%s'%s>\n", normal_suffix, empty_element); |
650 |
fprintf(op, "<noframes>\n"); |
fprintf(op, "<noframes>\n"); |
651 |
fprintf(op, "%s\n", body_begin); |
fprintf(op, "%s\n", body_begin); |
652 |
fputs(index, op); |
fputs(index, op); |
653 |
fprintf(op, "%s\n", body_end); |
fprintf(op, "%s\n", body_end); |
654 |
fprintf(op, "</noframes>\n"); |
fprintf(op, "</noframes>\n"); |
655 |
fprintf(op, "</frameset>\n"); |
fprintf(op, "</frameset>\n"); |
|
fprintf(op, "%s\n", html_end); |
|
656 |
} else { |
} else { |
|
fprintf(op, "%s\n", html_begin); |
|
|
fprintf(op, "%s", set_header(title)); |
|
657 |
fprintf(op, "%s\n", body_begin); |
fprintf(op, "%s\n", body_begin); |
658 |
fputs(index, op); |
fputs(index, op); |
659 |
fprintf(op, "%s\n", body_end); |
fprintf(op, "%s\n", body_end); |
|
fprintf(op, "%s\n", html_end); |
|
660 |
} |
} |
661 |
|
fprintf(op, "%s\n", gen_page_end()); |
662 |
fclose(op); |
fclose(op); |
663 |
file_count++; |
file_count++; |
664 |
} |
} |
678 |
op = fopen(makepath(distpath, file, NULL), "w"); |
op = fopen(makepath(distpath, file, NULL), "w"); |
679 |
if (!op) |
if (!op) |
680 |
die("cannot make file '%s'.", file); |
die("cannot make file '%s'.", file); |
681 |
fprintf(op, "%s\n", html_begin); |
fprintf(op, "%s\n", gen_page_begin(title, 0)); |
|
fprintf(op, "%s", set_header(title)); |
|
682 |
fprintf(op, "%s\n", body_begin); |
fprintf(op, "%s\n", body_begin); |
683 |
fputs(index, op); |
fputs(index, op); |
684 |
fprintf(op, "%s\n", body_end); |
fprintf(op, "%s\n", body_end); |
685 |
fprintf(op, "%s\n", html_end); |
fprintf(op, "%s\n", gen_page_end()); |
686 |
fclose(op); |
fclose(op); |
687 |
file_count++; |
file_count++; |
688 |
} |
} |
700 |
op = fopen(makepath(distpath, file, NULL), "w"); |
op = fopen(makepath(distpath, file, NULL), "w"); |
701 |
if (!op) |
if (!op) |
702 |
die("cannot create file '%s'.", file); |
die("cannot create file '%s'.", file); |
703 |
fprintf(op, "%s\n", html_begin); |
fprintf(op, "%s\n", gen_page_begin("SEARCH", 0)); |
|
fprintf(op, "%s", set_header("SEARCH")); |
|
704 |
fprintf(op, "%s\n", body_begin); |
fprintf(op, "%s\n", body_begin); |
705 |
fputs(makesearchpart(action, id, "mains"), op); |
fputs(makesearchpart(action, id, "mains"), op); |
706 |
fprintf(op, "%s\n", body_end); |
fprintf(op, "%s\n", body_end); |
707 |
fprintf(op, "%s\n", html_end); |
fprintf(op, "%s\n", gen_page_end()); |
708 |
fclose(op); |
fclose(op); |
709 |
file_count++; |
file_count++; |
710 |
} |
} |
860 |
strbuf_puts(sb, title); |
strbuf_puts(sb, title); |
861 |
strbuf_puts(sb, title_end); |
strbuf_puts(sb, title_end); |
862 |
strbuf_putc(sb, '\n'); |
strbuf_putc(sb, '\n'); |
863 |
strbuf_puts(sb, "<div align='right'>\n"); |
strbuf_puts(sb, gen_div_begin("right")); |
864 |
|
strbuf_putc(sb, '\n'); |
865 |
strbuf_sprintf(sb, "Last updated %s%s\n", now(), br); |
strbuf_sprintf(sb, "Last updated %s%s\n", now(), br); |
866 |
strbuf_sprintf(sb, "This hypertext was generated by %sGLOBAL-%s%s.%s\n", |
strbuf_sprintf(sb, "This hypertext was generated by %sGLOBAL-%s%s.%s\n", |
867 |
gen_href_begin_with_title_target(NULL, www, NULL, NULL, "Go to the GLOBAL project page.", "_top"), |
gen_href_begin_with_title_target(NULL, www, NULL, NULL, "Go to the GLOBAL project page.", "_top"), |
868 |
get_version(), |
get_version(), |
869 |
gen_href_end(), |
gen_href_end(), |
870 |
br); |
br); |
871 |
strbuf_puts(sb, "</div>\n"); |
strbuf_sprintf(sb, "%s\n", gen_div_end()); |
872 |
strbuf_sprintf(sb, "%s\n", hr); |
strbuf_sprintf(sb, "%s\n", hr); |
873 |
if (caution) { |
if (caution) { |
874 |
strbuf_sprintf(sb, "%s\n", caution_begin); |
strbuf_sprintf(sb, "%s\n", caution_begin); |
1019 |
if (*p++ == '=' && *p) |
if (*p++ == '=' && *p) |
1020 |
label = p; |
label = p; |
1021 |
} |
} |
1022 |
|
} else if (!strcmp(argv[i], "--xhtml")) { |
1023 |
|
enable_xhtml = 1; |
1024 |
} |
} |
1025 |
} |
} |
1026 |
if (confpath) { |
if (confpath) { |
1036 |
set_env("GTAGSLABEL", label); |
set_env("GTAGSLABEL", label); |
1037 |
} |
} |
1038 |
/* |
/* |
1039 |
|
* Setup parts. |
1040 |
|
*/ |
1041 |
|
if (enable_xhtml) |
1042 |
|
setup_xhtml(); |
1043 |
|
else |
1044 |
|
setup_html(); |
1045 |
|
/* |
1046 |
* Config variables. |
* Config variables. |
1047 |
*/ |
*/ |
1048 |
|
strbuf_reset(sb); |
1049 |
|
if (!getconfs("datadir", sb)) |
1050 |
|
die("cannot get datadir directory name."); |
1051 |
|
strlimcpy(datadir, strbuf_value(sb), sizeof(datadir)); |
1052 |
if (getconfn("ncol", &n)) { |
if (getconfn("ncol", &n)) { |
1053 |
if (n < 1 || n > 10) |
if (n < 1 || n > 10) |
1054 |
warning("parameter 'ncol' ignored becase the value (=%d) is too large or too small.", n); |
warning("parameter 'ncol' ignored becase the value (=%d) is too large or too small.", n); |
1480 |
|
|
1481 |
arg_dbpath[0] = 0; |
arg_dbpath[0] = 0; |
1482 |
basic_check(); |
basic_check(); |
|
setup_html(); |
|
1483 |
configuration(argc, argv); |
configuration(argc, argv); |
1484 |
setup_langmap(langmap); |
setup_langmap(langmap); |
1485 |
save_environment(argc, argv); |
save_environment(argc, argv); |
1510 |
; /* --gtagslabel is estimated only once. */ |
; /* --gtagslabel is estimated only once. */ |
1511 |
else if (!strcmp("style-sheet", long_options[option_index].name)) |
else if (!strcmp("style-sheet", long_options[option_index].name)) |
1512 |
style_sheet = optarg; |
style_sheet = optarg; |
1513 |
|
else if (!strcmp("xhtml", long_options[option_index].name)) |
1514 |
|
; /* --xhtml is estimated only once. */ |
1515 |
break; |
break; |
1516 |
case 'a': |
case 'a': |
1517 |
aflag++; |
aflag++; |
1736 |
* HTML/S/ ... source files (9) |
* HTML/S/ ... source files (9) |
1737 |
* HTML/I/ ... include file index (9) |
* HTML/I/ ... include file index (9) |
1738 |
* HTML/rebuild.sh ... rebuild script (10) |
* HTML/rebuild.sh ... rebuild script (10) |
1739 |
|
* HTML/style.css ... style sheet (11) |
1740 |
*------------------------------------------------------------------ |
*------------------------------------------------------------------ |
1741 |
*/ |
*/ |
1742 |
/* for clean up */ |
/* for clean up */ |
1936 |
makerebuild("rebuild.sh"); |
makerebuild("rebuild.sh"); |
1937 |
if (chmod(makepath(distpath, "rebuild.sh", NULL), 0640) < 0) |
if (chmod(makepath(distpath, "rebuild.sh", NULL), 0640) < 0) |
1938 |
die("cannot chmod rebuild script."); |
die("cannot chmod rebuild script."); |
1939 |
|
/* |
1940 |
|
* (11) style sheet file (style.css) |
1941 |
|
*/ |
1942 |
|
if (enable_xhtml) { |
1943 |
|
char src[MAXPATHLEN], dst[MAXPATHLEN];; |
1944 |
|
snprintf(src, sizeof(src), "%s/gtags/style.css", datadir); |
1945 |
|
snprintf(dst, sizeof(dst), "%s/style.css", distpath); |
1946 |
|
copyfile(src, dst); |
1947 |
|
} |
1948 |
end_all_time = time(NULL); |
end_all_time = time(NULL); |
1949 |
message("[%s] Done.", now()); |
message("[%s] Done.", now()); |
1950 |
T_all = end_all_time - start_all_time; |
T_all = end_all_time - start_all_time; |