Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 9279 → Rev 9280

/programs/other/man2html/Makefile.kos
1,15 → 1,19
TCC = /kolibrios/develop/tcc/tcc
KTCC_DIR = ../../develop/ktcc/trunk
 
NAME = man2html
 
KTCC = kos32-tcc
KPACK = kpack
 
SRC = man2html.c cgibase.c abbrev.c strdefs.c
 
CFLAGS = -D_KOLIBRI -DNOCGI
CFLAGS = -D_KOLIBRI -DNOCGI -I$(KTCC_DIR)/libc.obj/include -I inc
LFLAGS = -nostdlib -L$(KTCC_DIR)/bin/lib $(KTCC_DIR)/bin/lib/crt0.o
LIBS = -ltcc -lc.obj
 
all:
$(KTCC) $(CFLAGS) $(SRC) $(LIBS) -o $(NAME)
$(KTCC) $(CFLAGS) $(SRC) $(LFLAGS) $(LIBS) -o $(NAME)
$(KPACK) $(NAME)
 
 
clean:
rm $(NAME)
/programs/other/man2html/cgibase.c
13,13 → 13,13
* The default is to use cgibase. With relative html style
* we generate URLs of the form "../manX/page.html".
*/
static int relat_html_style = 0;
//static int relat_html_style = 0;
 
/*
* The default is to use cgibase. With current html style
* we generate URLs of the form "./page.html".
*/
static int current_html_style = 0;
static int current_html_style = 1;
 
/*
* Either the user is non-local (or local, but using httpd),
27,11 → 27,15
* and uses lynx, and we use lynxcgi:/home/httpd/cgi-bin.
*/
 
#if 0
 
static char *man2htmlpath = "/cgi-bin/man/man2html"; /* default */
static char *cgibase_format = "http://%s"; /* host.domain:port */
static char *cgibase_ll_format = "lynxcgi:%s"; /* directory */
static char *cgibase = "http://localhost"; /* default */
 
#endif
 
/*
* Separator between URL and argument string.
*
82,6 → 86,7
else
fprintf(out, "<A HREF=\"./%s.html\">%s</A>",
h, h);
#if 0
} else if (relat_html_style) {
if (!h)
fprintf(out, "<A HREF=\"../index.html\">"
99,9 → 104,11
else
fprintf(out, "<A HREF=\"%s%s%c%s+%s\">%s</A>",
cgibase, man2htmlpath, sep, sec, h, h);
#endif
}
}
 
 
void
ftp_html(char *f) {
fprintf(out, "<A HREF=\"ftp://%s\">%s</A>", f, f);
/programs/other/man2html/man2html.c
18,6 → 18,7
#include <stdarg.h>
#include <string.h>
#include <ctype.h>
#include <libgen.h>
 
#ifdef _KOLIBRI
#include <sys/ksys.h>
46,7 → 47,7
#endif
 
char *fname;
char *directory;
//char *directory;
FILE *idxfile;
 
char eqndelimopen=0, eqndelimclose=0;
1574,7 → 1575,7
*h=0;
if (scaninbuff && buffpos) {
buffer[buffpos]=0;
printf("%s\n", buffer);
fprintf(out, "%s\n", buffer);
}
fprintf(stderr, "%s\n", c+2); /* XXX */
exit(0);
1870,9 → 1871,9
char *t,*s;
t=strrchr(fname, '/');
if (!t) t=fname;
fprintf(stderr, "ln -s %s.html %s.html\n", h, t);
//fprintf(stderr, "ln -s %s.html %s.html\n", h, t);
s=strrchr(t, '.');if (!s) s=t;
printf("<HTML><HEAD><TITLE> Manpage of %s</TITLE>\n"
fprintf(out,"<HTML><HEAD><TITLE> Manpage of %s</TITLE>\n"
"</HEAD><BODY>\n"
"See the manpage for <A HREF=\"%s.html\">%s</A>.\n"
"</BODY></HTML>\n",
3027,23 → 3028,19
STRDEF *foundpages=NULL;
 
#define BUFSMSG 1024
#define MSGLEN 2048
static void
error_page(char *s, char *t, ...) {
va_list p;
char msg[MSGLEN];
char buf[BUFSMSG];
 
sprintf(msg, "'%s\n", s, s);
char notify_buf[BUFSMSG+5];
va_start(p, t);
vsprintf(buf, t, p);
vsnprintf(buf, BUFSMSG, t, p);
va_end(p);
#ifdef _KOLIBRI
sprintf(msg, "%s%s%s", msg, buf, "' -E");
snprintf(notify_buf, BUFSMSG+5, "'%s' -E", buf);
_ksys_exec("/sys/@notify", buf);
#else
sprintf(msg, "%s%s%s", msg, buf, "'");
printf("%s", msg);
printf("%s %s\n", s, buf);
#endif
exit(0);
}
3077,10 → 3074,15
 
static void
usage(void) {
error_page("man2html: bad invocation",
"Usage: man2html in_file [out_file.html]\n");
#ifdef _KOLIBRI
_ksys_exec("/sys/@notify", "'Usage: man2html in_file [out_file.html]' -I");
#else
puts("Usage: man2html in_file [out_file.html]");
#endif
exit(0);
}
 
#if 0
static void
goto_dir(char *path, char **dir, char **name) {
char *s, *t, *u;
3109,15 → 3111,27
}
}
}
#endif
 
/*
* Call: man2html [-l] [filename]
*
* The contents of FILENAME (or STDIN, in case FILENAME is "-" or absent)
* are converted from man-style nroff to html, and printed on STDOUT.
*
* Possible errors are reflected in the output. The return status is 0.
*/
char
*temp_file_name(char* in_path){
char* in_name = basename(in_path);
#define PST_SIZE 5
const char* pst = ".html";
#ifdef _KOLIBRI
#define TMP_PATH_SIZE 9
const char* tmp_path = "/tmp0/1/";
#else
#define TMP_PATH_SIZE 2
const char* tmp_path = "./";
#endif
char* full_name = xmalloc((TMP_PATH_SIZE+strlen(in_name)+PST_SIZE+1)*sizeof(char));
strcpy(full_name, tmp_path);
strcat(full_name, in_name);
strcat(full_name, pst);
return full_name;
}
 
int
main(int argc, char **argv) {
FILE *f;
3125,34 → 3139,29
char *buf, *filename, *fnam = NULL;
char *outfilename;
 
#ifdef _KOLIBRI
outfilename = "/tmp0/1/out.html";
#else
outfilename = "./out.html";
#endif
if (argc < 2){
usage();
}
 
// printf("Content-type: text/html\n\n");
 
 
/* Find filename */
if (argc > 1) {
fnam = argv[1];
outfilename = temp_file_name(fnam);
}
if (argc > 2) {
outfilename = argv[2];
} if (argc > 1) {
fnam = argv[1];
} else {
usage();
}
 
if ((out = fopen(outfilename, "w")) == NULL) {
printf("Cannot open file %s", outfilename);
error_page("Error!", "Cannot open file %s", outfilename);
return 0;
}
 
filename = fnam;
directory = 0;
//directory = 0;
 
/* Open input file */
goto_dir(fnam, &directory, &fnam);
//goto_dir(fnam, &directory, &fnam);
 
f = fopen(fnam, "r");
if (f == NULL)
3203,7 → 3212,7
fprintf(out, "<HR>\n<A NAME=\"index\">&nbsp;</A><H2>Index</H2>\n<DL>\n");
manidx[mip]=0;
fprintf(out, "%s", manidx);
if (subs) printf("</DL>\n");
if (subs) fprintf(out,"</DL>\n");
fprintf(out, "</DL>\n");
print_sig();
fprintf(out, "</BODY>\n</HTML>\n");
3226,5 → 3235,10
fclose(idxfile);
if (buf)
free(buf);
#ifdef _KOLIBRI
if(argc==2){
_ksys_exec("/sys/network/webview", outfilename);
}
#endif
return 0;
}