diff options
Diffstat (limited to '')
320 files changed, 33180 insertions, 35624 deletions
diff --git a/.#file.c.1.243 b/.#file.c.1.243 deleted file mode 100644 index 411aa7a..0000000 --- a/.#file.c.1.243 +++ /dev/null @@ -1,8188 +0,0 @@ -/* $Id: file.c,v 1.243 2006/05/29 12:54:26 inu Exp $ */ -#include "fm.h" -#include <sys/types.h> -#include "myctype.h" -#include <signal.h> -#include <setjmp.h> -#if defined(HAVE_WAITPID) || defined(HAVE_WAIT3) -#include <sys/wait.h> -#endif -#include <stdio.h> -#include <time.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <utime.h> -/* foo */ - -#include "html.h" -#include "parsetagx.h" -#include "local.h" -#include "regex.h" - -#ifndef max -#define max(a,b) ((a) > (b) ? (a) : (b)) -#endif /* not max */ -#ifndef min -#define min(a,b) ((a) > (b) ? (b) : (a)) -#endif /* not min */ - -static int frame_source = 0; - -static char *guess_filename(char *file); -static int _MoveFile(char *path1, char *path2); -static void uncompress_stream(URLFile *uf, char **src); -static FILE *lessopen_stream(char *path); -static Buffer *loadcmdout(char *cmd, - Buffer *(*loadproc) (URLFile *, Buffer *), - Buffer *defaultbuf); -#ifndef USE_ANSI_COLOR -#define addnewline(a,b,c,d,e,f,g) _addnewline(a,b,c,e,f,g) -#endif -static void addnewline(Buffer *buf, char *line, Lineprop *prop, - Linecolor *color, int pos, int width, int nlines); -static void addLink(Buffer *buf, struct parsed_tag *tag); - -static JMP_BUF AbortLoading; - -static struct table *tables[MAX_TABLE]; -static struct table_mode table_mode[MAX_TABLE]; - -#ifdef USE_IMAGE -static ParsedURL *cur_baseURL = NULL; -#ifdef USE_M17N -static char cur_document_charset; -#endif -#endif - -static Str cur_title; -static Str cur_select; -static Str select_str; -static int select_is_multiple; -static int n_selectitem; -static Str cur_option; -static Str cur_option_value; -static Str cur_option_label; -static int cur_option_selected; -static int cur_status; -#ifdef MENU_SELECT -/* menu based <select> */ -FormSelectOption *select_option; -static int max_select = MAX_SELECT; -static int n_select; -static int cur_option_maxwidth; -#endif /* MENU_SELECT */ - -static Str cur_textarea; -Str *textarea_str; -static int cur_textarea_size; -static int cur_textarea_rows; -static int cur_textarea_readonly; -static int n_textarea; -static int ignore_nl_textarea; -static int max_textarea = MAX_TEXTAREA; - -static int http_response_code; - -#ifdef USE_M17N -static wc_ces content_charset = 0; -static wc_ces meta_charset = 0; -static char *check_charset(char *p); -static char *check_accept_charset(char *p); -#endif - -#define set_prevchar(x,y,n) Strcopy_charp_n((x),(y),(n)) -#define set_space_to_prevchar(x) Strcopy_charp_n((x)," ",1) - -struct link_stack { - int cmd; - short offset; - short pos; - struct link_stack *next; -}; - -static struct link_stack *link_stack = NULL; - -#define FORMSTACK_SIZE 10 -#define FRAMESTACK_SIZE 10 - -#ifdef USE_NNTP -#define Str_news_endline(s) ((s)->ptr[0]=='.'&&((s)->ptr[1]=='\n'||(s)->ptr[1]=='\r'||(s)->ptr[1]=='\0')) -#endif /* USE_NNTP */ - -#define INITIAL_FORM_SIZE 10 -static FormList **forms; -static int *form_stack; -static int form_max = -1; -static int forms_size = 0; -#define cur_form_id ((form_sp >= 0)? form_stack[form_sp] : -1) -static int form_sp = 0; - -static clen_t current_content_length; - -static int cur_hseq; -#ifdef USE_IMAGE -static int cur_iseq; -#endif - -#define MAX_UL_LEVEL 9 -#define UL_SYMBOL(x) (N_GRAPH_SYMBOL + (x)) -#define UL_SYMBOL_DISC UL_SYMBOL(9) -#define UL_SYMBOL_CIRCLE UL_SYMBOL(10) -#define UL_SYMBOL_SQUARE UL_SYMBOL(11) -#define IMG_SYMBOL UL_SYMBOL(12) -#define HR_SYMBOL 26 - -#ifdef USE_COOKIE -/* This array should be somewhere else */ -/* FIXME: gettextize? */ -char *violations[COO_EMAX] = { - "internal error", - "tail match failed", - "wrong number of dots", - "RFC 2109 4.3.2 rule 1", - "RFC 2109 4.3.2 rule 2.1", - "RFC 2109 4.3.2 rule 2.2", - "RFC 2109 4.3.2 rule 3", - "RFC 2109 4.3.2 rule 4", - "RFC XXXX 4.3.2 rule 5" -}; -#endif - -/* *INDENT-OFF* */ -static struct compression_decoder { - int type; - char *ext; - char *mime_type; - int auxbin_p; - char *cmd; - char *name; - char *encoding; - char *encodings[4]; -} compression_decoders[] = { - { CMP_COMPRESS, ".gz", "application/x-gzip", - 0, GUNZIP_CMDNAME, GUNZIP_NAME, "gzip", - {"gzip", "x-gzip", NULL} }, - { CMP_COMPRESS, ".Z", "application/x-compress", - 0, GUNZIP_CMDNAME, GUNZIP_NAME, "compress", - {"compress", "x-compress", NULL} }, - { CMP_BZIP2, ".bz2", "application/x-bzip", - 0, BUNZIP2_CMDNAME, BUNZIP2_NAME, "bzip, bzip2", - {"x-bzip", "bzip", "bzip2", NULL} }, - { CMP_DEFLATE, ".deflate", "application/x-deflate", - 1, INFLATE_CMDNAME, INFLATE_NAME, "deflate", - {"deflate", "x-deflate", NULL} }, - { CMP_NOCOMPRESS, NULL, NULL, 0, NULL, NULL, NULL, {NULL}}, -}; -/* *INDENT-ON* */ - -#define SAVE_BUF_SIZE 1536 - -static MySignalHandler -KeyAbort(SIGNAL_ARG) -{ - LONGJMP(AbortLoading, 1); - SIGNAL_RETURN; -} - -static void -UFhalfclose(URLFile *f) -{ - switch (f->scheme) { - case SCM_FTP: - closeFTP(); - break; -#ifdef USE_NNTP - case SCM_NEWS: - case SCM_NNTP: - closeNews(); - break; -#endif - default: - UFclose(f); - break; - } -} - -int -currentLn(Buffer *buf) -{ - if (buf->currentLine) - /* return buf->currentLine->real_linenumber + 1; */ - return buf->currentLine->linenumber + 1; - else - return 1; -} - -static Buffer * -loadSomething(URLFile *f, - char *path, - Buffer *(*loadproc) (URLFile *, Buffer *), Buffer *defaultbuf) -{ - Buffer *buf; - - if ((buf = loadproc(f, defaultbuf)) == NULL) - return NULL; - - buf->filename = path; - if (buf->buffername == NULL || buf->buffername[0] == '\0') { - buf->buffername = checkHeader(buf, "Subject:"); - if (buf->buffername == NULL) - buf->buffername = conv_from_system(lastFileName(path)); - } - if (buf->currentURL.scheme == SCM_UNKNOWN) - buf->currentURL.scheme = f->scheme; - buf->real_scheme = f->scheme; - if (f->scheme == SCM_LOCAL && buf->sourcefile == NULL) - buf->sourcefile = path; - return buf; -} - -int -dir_exist(char *path) -{ - struct stat stbuf; - - if (path == NULL || *path == '\0') - return 0; - if (stat(path, &stbuf) == -1) - return 0; - return IS_DIRECTORY(stbuf.st_mode); -} - -static int -is_dump_text_type(char *type) -{ - struct mailcap *mcap; - return (type && (mcap = searchExtViewer(type)) && - (mcap->flags & (MAILCAP_HTMLOUTPUT | MAILCAP_COPIOUSOUTPUT))); -} - -static int -is_text_type(char *type) -{ - return (type == NULL || type[0] == '\0' || - strncasecmp(type, "text/", 5) == 0 || - strncasecmp(type, "message/", sizeof("message/") - 1) == 0); -} - -static int -is_plain_text_type(char *type) -{ - return ((type && strcasecmp(type, "text/plain") == 0) || - (is_text_type(type) && !is_dump_text_type(type))); -} - -static void -check_compression(char *path, URLFile *uf) -{ - int len; - struct compression_decoder *d; - - if (path == NULL) - return; - - len = strlen(path); - uf->compression = CMP_NOCOMPRESS; - for (d = compression_decoders; d->type != CMP_NOCOMPRESS; d++) { - int elen; - if (d->ext == NULL) - continue; - elen = strlen(d->ext); - if (len > elen && strcasecmp(&path[len - elen], d->ext) == 0) { - uf->compression = d->type; - uf->guess_type = d->mime_type; - break; - } - } -} - -static char * -compress_application_type(int compression) -{ - struct compression_decoder *d; - - for (d = compression_decoders; d->type != CMP_NOCOMPRESS; d++) { - if (d->type == compression) - return d->mime_type; - } - return NULL; -} - -static char * -uncompressed_file_type(char *path, char **ext) -{ - int len, slen; - Str fn; - char *t0; - struct compression_decoder *d; - - if (path == NULL) - return NULL; - - slen = 0; - len = strlen(path); - for (d = compression_decoders; d->type != CMP_NOCOMPRESS; d++) { - if (d->ext == NULL) - continue; - slen = strlen(d->ext); - if (len > slen && strcasecmp(&path[len - slen], d->ext) == 0) - break; - } - if (d->type == CMP_NOCOMPRESS) - return NULL; - - fn = Strnew_charp(path); - Strshrink(fn, slen); - if (ext) - *ext = filename_extension(fn->ptr, 0); - t0 = guessContentType(fn->ptr); - if (t0 == NULL) - t0 = "text/plain"; - return t0; -} - -static int -setModtime(char *path, time_t modtime) -{ - struct utimbuf t; - struct stat st; - - if (stat(path, &st) == 0) - t.actime = st.st_atime; - else - t.actime = time(NULL); - t.modtime = modtime; - return utime(path, &t); -} - -void -examineFile(char *path, URLFile *uf) -{ - struct stat stbuf; - - uf->guess_type = NULL; - if (path == NULL || *path == '\0' || - stat(path, &stbuf) == -1 || NOT_REGULAR(stbuf.st_mode)) { - uf->stream = NULL; - return; - } - uf->stream = openIS(path); - if (!do_download) { - if (use_lessopen && getenv("LESSOPEN") != NULL) { - FILE *fp; - uf->guess_type = guessContentType(path); - if (uf->guess_type == NULL) - uf->guess_type = "text/plain"; - if (strcasecmp(uf->guess_type, "text/html") == 0) - return; - if ((fp = lessopen_stream(path))) { - UFclose(uf); - uf->stream = newFileStream(fp, (void (*)())pclose); - uf->guess_type = "text/plain"; - return; - } - } - check_compression(path, uf); - if (uf->compression != CMP_NOCOMPRESS) { - char *ext = uf->ext; - char *t0 = uncompressed_file_type(path, &ext); - uf->guess_type = t0; - uf->ext = ext; - uncompress_stream(uf, NULL); - return; - } - } -} - -#define S_IXANY (S_IXUSR|S_IXGRP|S_IXOTH) - -int -check_command(char *cmd, int auxbin_p) -{ - static char *path = NULL; - Str dirs; - char *p, *np; - Str pathname; - struct stat st; - - if (path == NULL) - path = getenv("PATH"); - if (auxbin_p) - dirs = Strnew_charp(w3m_auxbin_dir()); - else - dirs = Strnew_charp(path); - for (p = dirs->ptr; p != NULL; p = np) { - np = strchr(p, PATH_SEPARATOR); - if (np) - *np++ = '\0'; - pathname = Strnew(); - Strcat_charp(pathname, p); - Strcat_char(pathname, '/'); - Strcat_charp(pathname, cmd); - if (stat(pathname->ptr, &st) == 0 && S_ISREG(st.st_mode) - && (st.st_mode & S_IXANY) != 0) - return 1; - } - return 0; -} - -char * -acceptableEncoding() -{ - static Str encodings = NULL; - struct compression_decoder *d; - TextList *l; - char *p; - - if (encodings != NULL) - return encodings->ptr; - l = newTextList(); - for (d = compression_decoders; d->type != CMP_NOCOMPRESS; d++) { - if (check_command(d->cmd, d->auxbin_p)) { - pushText(l, d->encoding); - } - } - encodings = Strnew(); - while ((p = popText(l)) != NULL) { - if (encodings->length) - Strcat_charp(encodings, ", "); - Strcat_charp(encodings, p); - } - return encodings->ptr; -} - -/* - * convert line - */ -#ifdef USE_M17N -Str -convertLine(URLFile *uf, Str line, int mode, wc_ces * charset, - wc_ces doc_charset) -#else -Str -convertLine0(URLFile *uf, Str line, int mode) -#endif -{ -#ifdef USE_M17N - line = wc_Str_conv_with_detect(line, charset, doc_charset, InnerCharset); -#endif - if (mode != RAW_MODE) - cleanup_line(line, mode); -#ifdef USE_NNTP - if (uf && uf->scheme == SCM_NEWS) - Strchop(line); -#endif /* USE_NNTP */ - return line; -} - -/* - * loadFile: load file to buffer - */ -Buffer * -loadFile(char *path) -{ - Buffer *buf; - URLFile uf; - init_stream(&uf, SCM_LOCAL, NULL); - examineFile(path, &uf); - if (uf.stream == NULL) - return NULL; - buf = newBuffer(INIT_BUFFER_WIDTH); - current_content_length = 0; -#ifdef USE_M17N - content_charset = 0; -#endif - buf = loadSomething(&uf, path, loadBuffer, buf); - UFclose(&uf); - return buf; -} - -int -matchattr(char *p, char *attr, int len, Str *value) -{ - int quoted; - char *q = NULL; - - if (strncasecmp(p, attr, len) == 0) { - p += len; - SKIP_BLANKS(p); - if (value) { - *value = Strnew(); - if (*p == '=') { - p++; - SKIP_BLANKS(p); - quoted = 0; - while (!IS_ENDL(*p) && (quoted || *p != ';')) { - if (!IS_SPACE(*p)) - q = p; - if (*p == '"') - quoted = (quoted) ? 0 : 1; - else - Strcat_char(*value, *p); - p++; - } - if (q) - Strshrink(*value, p - q - 1); - } - return 1; - } - else { - if (IS_ENDT(*p)) { - return 1; - } - } - } - return 0; -} - -#ifdef USE_IMAGE -#ifdef USE_XFACE -static char * -xface2xpm(char *xface) -{ - Image image; - ImageCache *cache; - FILE *f; - struct stat st; - - SKIP_BLANKS(xface); - image.url = xface; - image.ext = ".xpm"; - image.width = 48; - image.height = 48; - image.cache = NULL; - cache = getImage(&image, NULL, IMG_FLAG_AUTO); - if (cache->loaded & IMG_FLAG_LOADED && !stat(cache->file, &st)) - return cache->file; - cache->loaded = IMG_FLAG_ERROR; - - f = popen(Sprintf("%s > %s", shell_quote(auxbinFile(XFACE2XPM)), - shell_quote(cache->file))->ptr, "w"); - if (!f) - return NULL; - fputs(xface, f); - pclose(f); - if (stat(cache->file, &st) || !st.st_size) - return NULL; - cache->loaded = IMG_FLAG_LOADED | IMG_FLAG_DONT_REMOVE; - cache->index = 0; - return cache->file; -} -#endif -#endif - -void -readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu) -{ - char *p, *q; -#ifdef USE_COOKIE - char *emsg; -#endif - char c; - Str lineBuf2 = NULL; - Str tmp; - TextList *headerlist; -#ifdef USE_M17N - wc_ces charset = WC_CES_US_ASCII, mime_charset; -#endif - char *tmpf; - FILE *src = NULL; - Lineprop *propBuffer; - - headerlist = newBuf->document_header = newTextList(); - if (uf->scheme == SCM_HTTP -#ifdef USE_SSL - || uf->scheme == SCM_HTTPS -#endif /* USE_SSL */ - ) - http_response_code = -1; - else - http_response_code = 0; - - if (thru && !newBuf->header_source -#ifdef USE_IMAGE - && !image_source -#endif - ) { - tmpf = tmpfname(TMPF_DFL, NULL)->ptr; - src = fopen(tmpf, "w"); - if (src) - newBuf->header_source = tmpf; - } - while ((tmp = StrmyUFgets(uf))->length) { -#ifdef USE_NNTP - if (uf->scheme == SCM_NEWS && tmp->ptr[0] == '.') - Strshrinkfirst(tmp, 1); -#endif -#ifdef HTTP_DEBUG - { - FILE *ff; - ff = fopen("zzrequest", "a"); - Strfputs(tmp, ff); - fclose(ff); - } -#endif /* HTTP_DEBUG */ - if (src) - Strfputs(tmp, src); - cleanup_line(tmp, HEADER_MODE); - if (tmp->ptr[0] == '\n' || tmp->ptr[0] == '\r' || tmp->ptr[0] == '\0') { - if (!lineBuf2) - /* there is no header */ - break; - /* last header */ - } - else if (!(w3m_dump & DUMP_HEAD)) { - if (lineBuf2) { - Strcat(lineBuf2, tmp); - } - else { - lineBuf2 = tmp; - } - c = UFgetc(uf); - UFundogetc(uf); - if (c == ' ' || c == '\t') - /* header line is continued */ - continue; - lineBuf2 = decodeMIME(lineBuf2, &mime_charset); - lineBuf2 = convertLine(NULL, lineBuf2, RAW_MODE, - mime_charset ? &mime_charset : &charset, - mime_charset ? mime_charset - : DocumentCharset); - /* separated with line and stored */ - tmp = Strnew_size(lineBuf2->length); - for (p = lineBuf2->ptr; *p; p = q) { - for (q = p; *q && *q != '\r' && *q != '\n'; q++) ; - lineBuf2 = checkType(Strnew_charp_n(p, q - p), &propBuffer, - NULL); - Strcat(tmp, lineBuf2); - if (thru) - addnewline(newBuf, lineBuf2->ptr, propBuffer, NULL, - lineBuf2->length, FOLD_BUFFER_WIDTH, -1); - for (; *q && (*q == '\r' || *q == '\n'); q++) ; - } -#ifdef USE_IMAGE - if (thru && activeImage && displayImage) { - Str src = NULL; - if (!strncasecmp(tmp->ptr, "X-Image-URL:", 12)) { - tmpf = &tmp->ptr[12]; - SKIP_BLANKS(tmpf); - src = Strnew_m_charp("<img src=\"", html_quote(tmpf), - "\" alt=\"X-Image-URL\">", NULL); - } -#ifdef USE_XFACE - else if (!strncasecmp(tmp->ptr, "X-Face:", 7)) { - tmpf = xface2xpm(&tmp->ptr[7]); - if (tmpf) - src = Strnew_m_charp("<img src=\"file:", - html_quote(tmpf), - "\" alt=\"X-Face\"", - " width=48 height=48>", NULL); - } -#endif - if (src) { - URLFile f; - Line *l; -#ifdef USE_M17N - wc_ces old_charset = newBuf->document_charset; -#endif - init_stream(&f, SCM_LOCAL, newStrStream(src)); - loadHTMLstream(&f, newBuf, NULL, TRUE); - for (l = newBuf->lastLine; l && l->real_linenumber; - l = l->prev) - l->real_linenumber = 0; -#ifdef USE_M17N - newBuf->document_charset = old_charset; -#endif - } - } -#endif - lineBuf2 = tmp; - } - else { - lineBuf2 = tmp; - } - if ((uf->scheme == SCM_HTTP -#ifdef USE_SSL - || uf->scheme == SCM_HTTPS -#endif /* USE_SSL */ - ) && http_response_code == -1) { - p = lineBuf2->ptr; - while (*p && !IS_SPACE(*p)) - p++; - while (*p && IS_SPACE(*p)) - p++; - http_response_code = atoi(p); - if (fmInitialized) { - message(lineBuf2->ptr, 0, 0); - refresh(); - } - } - if (!strncasecmp(lineBuf2->ptr, "content-transfer-encoding:", 26)) { - p = lineBuf2->ptr + 26; - while (IS_SPACE(*p)) - p++; - if (!strncasecmp(p, "base64", 6)) - uf->encoding = ENC_BASE64; - else if (!strncasecmp(p, "quoted-printable", 16)) - uf->encoding = ENC_QUOTE; - else if (!strncasecmp(p, "uuencode", 8) || - !strncasecmp(p, "x-uuencode", 10)) - uf->encoding = ENC_UUENCODE; - else - uf->encoding = ENC_7BIT; - } - else if (!strncasecmp(lineBuf2->ptr, "content-encoding:", 17)) { - struct compression_decoder *d; - p = lineBuf2->ptr + 17; - while (IS_SPACE(*p)) - p++; - uf->compression = CMP_NOCOMPRESS; - for (d = compression_decoders; d->type != CMP_NOCOMPRESS; d++) { - char **e; - for (e = d->encodings; *e != NULL; e++) { - if (strncasecmp(p, *e, strlen(*e)) == 0) { - uf->compression = d->type; - break; - } - } - if (uf->compression != CMP_NOCOMPRESS) - break; - } - uf->content_encoding = uf->compression; - } -#ifdef USE_COOKIE - else if (use_cookie && accept_cookie && - pu && check_cookie_accept_domain(pu->host) && - (!strncasecmp(lineBuf2->ptr, "Set-Cookie:", 11) || - !strncasecmp(lineBuf2->ptr, "Set-Cookie2:", 12))) { - Str name = Strnew(), value = Strnew(), domain = NULL, path = NULL, - comment = NULL, commentURL = NULL, port = NULL, tmp2; - int version, quoted, flag = 0; - time_t expires = (time_t) - 1; - - q = NULL; - if (lineBuf2->ptr[10] == '2') { - p = lineBuf2->ptr + 12; - version = 1; - } - else { - p = lineBuf2->ptr + 11; - version = 0; - } -#ifdef DEBUG - fprintf(stderr, "Set-Cookie: [%s]\n", p); -#endif /* DEBUG */ - SKIP_BLANKS(p); - while (*p != '=' && !IS_ENDT(*p)) - Strcat_char(name, *(p++)); - Strremovetrailingspaces(name); - if (*p == '=') { - p++; - SKIP_BLANKS(p); - quoted = 0; - while (!IS_ENDL(*p) && (quoted || *p != ';')) { - if (!IS_SPACE(*p)) - q = p; - if (*p == '"') - quoted = (quoted) ? 0 : 1; - Strcat_char(value, *(p++)); - } - if (q) - Strshrink(value, p - q - 1); - } - while (*p == ';') { - p++; - SKIP_BLANKS(p); - if (matchattr(p, "expires", 7, &tmp2)) { - /* version 0 */ - expires = mymktime(tmp2->ptr); - } - else if (matchattr(p, "max-age", 7, &tmp2)) { - /* XXX Is there any problem with max-age=0? (RFC 2109 ss. 4.2.1, 4.2.2 */ - expires = time(NULL) + atol(tmp2->ptr); - } - else if (matchattr(p, "domain", 6, &tmp2)) { - domain = tmp2; - } - else if (matchattr(p, "path", 4, &tmp2)) { - path = tmp2; - } - else if (matchattr(p, "secure", 6, NULL)) { - flag |= COO_SECURE; - } - else if (matchattr(p, "comment", 7, &tmp2)) { - comment = tmp2; - } - else if (matchattr(p, "version", 7, &tmp2)) { - version = atoi(tmp2->ptr); - } - else if (matchattr(p, "port", 4, &tmp2)) { - /* version 1, Set-Cookie2 */ - port = tmp2; - } - else if (matchattr(p, "commentURL", 10, &tmp2)) { - /* version 1, Set-Cookie2 */ - commentURL = tmp2; - } - else if (matchattr(p, "discard", 7, NULL)) { - /* version 1, Set-Cookie2 */ - flag |= COO_DISCARD; - } - quoted = 0; - while (!IS_ENDL(*p) && (quoted || *p != ';')) { - if (*p == '"') - quoted = (quoted) ? 0 : 1; - p++; - } - } - if (pu && name->length > 0) { - int err; - if (show_cookie) { - if (flag & COO_SECURE) - disp_message_nsec("Received a secured cookie", FALSE, 1, - TRUE, FALSE); - else - disp_message_nsec(Sprintf("Received cookie: %s=%s", - name->ptr, value->ptr)->ptr, - FALSE, 1, TRUE, FALSE); - } - err = - add_cookie(pu, name, value, expires, domain, path, flag, - comment, version, port, commentURL); - if (err) { - char *ans = (accept_bad_cookie == ACCEPT_BAD_COOKIE_ACCEPT) - ? "y" : NULL; - if (fmInitialized && (err & COO_OVERRIDE_OK) && - accept_bad_cookie == ACCEPT_BAD_COOKIE_ASK) { - Str msg = Sprintf("Accept bad cookie from %s for %s?", - pu->host, - ((domain && domain->ptr) - ? domain->ptr : "<localdomain>")); - if (msg->length > COLS - 10) - Strshrink(msg, msg->length - (COLS - 10)); - Strcat_charp(msg, " (y/n)"); - ans = inputAnswer(msg->ptr); - } - if (ans == NULL || TOLOWER(*ans) != 'y' || - (err = - add_cookie(pu, name, value, expires, domain, path, - flag | COO_OVERRIDE, comment, version, - port, commentURL))) { - err = (err & ~COO_OVERRIDE_OK) - 1; - if (err >= 0 && err < COO_EMAX) - emsg = Sprintf("This cookie was rejected " - "to prevent security violation. [%s]", - violations[err])->ptr; - else - emsg = - "This cookie was rejected to prevent security violation."; - record_err_message(emsg); - if (show_cookie) - disp_message_nsec(emsg, FALSE, 1, TRUE, FALSE); - } - else - if (show_cookie) - disp_message_nsec(Sprintf - ("Accepting invalid cookie: %s=%s", - name->ptr, value->ptr)->ptr, FALSE, - 1, TRUE, FALSE); - } - } - } -#endif /* USE_COOKIE */ - else if (!strncasecmp(lineBuf2->ptr, "w3m-control:", 12) && - uf->scheme == SCM_LOCAL_CGI) { - Str funcname = Strnew(); - int f; - - p = lineBuf2->ptr + 12; - SKIP_BLANKS(p); - while (*p && !IS_SPACE(*p)) - Strcat_char(funcname, *(p++)); - SKIP_BLANKS(p); - f = getFuncList(funcname->ptr); - if (f >= 0) { - tmp = Strnew_charp(p); - Strchop(tmp); - pushEvent(f, tmp->ptr); - } - } - if (headerlist) - pushText(headerlist, lineBuf2->ptr); - Strfree(lineBuf2); - lineBuf2 = NULL; - } - if (thru) - addnewline(newBuf, "", propBuffer, NULL, 0, -1, -1); - if (src) - fclose(src); -} - -char * -checkHeader(Buffer *buf, char *field) -{ - int len; - TextListItem *i; - char *p; - - if (buf == NULL || field == NULL || buf->document_header == NULL) - return NULL; - len = strlen(field); - for (i = buf->document_header->first; i != NULL; i = i->next) { - if (!strncasecmp(i->ptr, field, len)) { - p = i->ptr + len; - return remove_space(p); - } - } - return NULL; -} - -char * -checkContentType(Buffer *buf) -{ - char *p; - Str r; - p = checkHeader(buf, "Content-Type:"); - if (p == NULL) - return NULL; - r = Strnew(); - while (*p && *p != ';' && !IS_SPACE(*p)) - Strcat_char(r, *p++); -#ifdef USE_M17N - if ((p = strcasestr(p, "charset")) != NULL) { - p += 7; - SKIP_BLANKS(p); - if (*p == '=') { - p++; - SKIP_BLANKS(p); - if (*p == '"') - p++; - content_charset = wc_guess_charset(p, 0); - } - } -#endif - return r->ptr; -} - -struct auth_param { - char *name; - Str val; -}; - -struct http_auth { - int pri; - char *scheme; - struct auth_param *param; - Str (*cred) (struct http_auth * ha, Str uname, Str pw, ParsedURL *pu, - HRequest *hr, FormList *request); -}; - -enum { - AUTHCHR_NUL, - AUTHCHR_SEP, - AUTHCHR_TOKEN, -}; - -static int -skip_auth_token(char **pp) -{ - char *p; - int first = AUTHCHR_NUL, typ; - - for (p = *pp ;; ++p) { - switch (*p) { - case '\0': - goto endoftoken; - default: - if ((unsigned char)*p > 037) { - typ = AUTHCHR_TOKEN; - break; - } - /* thru */ - case '\177': - case '[': - case ']': - case '(': - case ')': - case '<': - case '>': - case '@': - case ';': - case ':': - case '\\': - case '"': - case '/': - case '?': - case '=': - case ' ': - case '\t': - case ',': - typ = AUTHCHR_SEP; - break; - } - - if (!first) - first = typ; - else if (first != typ) - break; - } -endoftoken: - *pp = p; - return first; -} - -static Str -extract_auth_val(char **q) -{ - unsigned char *qq = *(unsigned char **)q; - int quoted = 0; - Str val = Strnew(); - - SKIP_BLANKS(qq); - if (*qq == '"') { - quoted = TRUE; - Strcat_char(val, *qq++); - } - while (*qq != '\0') { - if (quoted && *qq == '"') { - Strcat_char(val, *qq++); - break; - } - if (!quoted) { - switch (*qq) { - case '[': - case ']': - case '(': - case ')': - case '<': - case '>': - case '@': - case ';': - case ':': - case '\\': - case '"': - case '/': - case '?': - case '=': - case ' ': - case '\t': - qq++; - case ',': - goto end_token; - default: - if (*qq <= 037 || *qq == 0177) { - qq++; - goto end_token; - } - } - } - else if (quoted && *qq == '\\') - Strcat_char(val, *qq++); - Strcat_char(val, *qq++); - } - end_token: - *q = (char *)qq; - return val; -} - -static Str -qstr_unquote(Str s) -{ - char *p; - - if (s == NULL) - return NULL; - p = s->ptr; - if (*p == '"') { - Str tmp = Strnew(); - for (p++; *p != '\0'; p++) { - if (*p == '\\') - p++; - Strcat_char(tmp, *p); - } - if (Strlastchar(tmp) == '"') - Strshrink(tmp, 1); - return tmp; - } - else - return s; -} - -static char * -extract_auth_param(char *q, struct auth_param *auth) -{ - struct auth_param *ap; - char *p; - - for (ap = auth; ap->name != NULL; ap++) { - ap->val = NULL; - } - - while (*q != '\0') { - SKIP_BLANKS(q); - for (ap = auth; ap->name != NULL; ap++) { - size_t len; - - len = strlen(ap->name); - if (strncasecmp(q, ap->name, len) == 0 && - (IS_SPACE(q[len]) || q[len] == '=')) { - p = q + len; - SKIP_BLANKS(p); - if (*p != '=') - return q; - q = p + 1; - ap->val = extract_auth_val(&q); - break; - } - } - if (ap->name == NULL) { - /* skip unknown param */ - int token_type; - p = q; - if ((token_type = skip_auth_token(&q)) == AUTHCHR_TOKEN && - (IS_SPACE(*q) || *q == '=')) { - SKIP_BLANKS(q); - if (*q != '=') - return p; - q++; - extract_auth_val(&q); - } - else - return p; - } - if (*q != '\0') { - SKIP_BLANKS(q); - if (*q == ',') - q++; - else - break; - } - } - return q; -} - -static Str -get_auth_param(struct auth_param *auth, char *name) -{ - struct auth_param *ap; - for (ap = auth; ap->name != NULL; ap++) { - if (strcasecmp(name, ap->name) == 0) - return ap->val; - } - return NULL; -} - -static Str -AuthBasicCred(struct http_auth *ha, Str uname, Str pw, ParsedURL *pu, - HRequest *hr, FormList *request) -{ - Str s = Strdup(uname); - Strcat_char(s, ':'); - Strcat(s, pw); - return Strnew_m_charp("Basic ", encodeB(s->ptr)->ptr, NULL); -} - -#ifdef USE_DIGEST_AUTH -#include <openssl/md5.h> - -/* RFC2617: 3.2.2 The Authorization Request Header - * - * credentials = "Digest" digest-response - * digest-response = 1#( username | realm | nonce | digest-uri - * | response | [ algorithm ] | [cnonce] | - * [opaque] | [message-qop] | - * [nonce-count] | [auth-param] ) - * - * username = "username" "=" username-value - * username-value = quoted-string - * digest-uri = "uri" "=" digest-uri-value - * digest-uri-value = request-uri ; As specified by HTTP/1.1 - * message-qop = "qop" "=" qop-value - * cnonce = "cnonce" "=" cnonce-value - * cnonce-value = nonce-value - * nonce-count = "nc" "=" nc-value - * nc-value = 8LHEX - * response = "response" "=" request-digest - * request-digest = <"> 32LHEX <"> - * LHEX = "0" | "1" | "2" | "3" | - * "4" | "5" | "6" | "7" | - * "8" | "9" | "a" | "b" | - * "c" | "d" | "e" | "f" - */ - -static Str -digest_hex(char *p) -{ - char *h = "0123456789abcdef"; - Str tmp = Strnew_size(MD5_DIGEST_LENGTH * 2 + 1); - int i; - for (i = 0; i < MD5_DIGEST_LENGTH; i++, p++) { - Strcat_char(tmp, h[(*p >> 4) & 0x0f]); - Strcat_char(tmp, h[*p & 0x0f]); - } - return tmp; -} - -enum { - QOP_NONE, - QOP_AUTH, - QOP_AUTH_INT, -}; - -static Str -AuthDigestCred(struct http_auth *ha, Str uname, Str pw, ParsedURL *pu, - HRequest *hr, FormList *request) -{ - Str tmp, a1buf, a2buf, rd, s; - char md5[MD5_DIGEST_LENGTH + 1]; - Str uri = HTTPrequestURI(pu, hr); - char nc[] = "00000001"; - - Str algorithm = qstr_unquote(get_auth_param(ha->param, "algorithm")); - Str nonce = qstr_unquote(get_auth_param(ha->param, "nonce")); - Str cnonce /* = qstr_unquote(get_auth_param(ha->param, "cnonce")) */; - /* cnonce is what client should generate. */ - Str qop = qstr_unquote(get_auth_param(ha->param, "qop")); - - static union { - int r[4]; - char s[sizeof(int) * 4]; - } cnonce_seed; - int qop_i = QOP_NONE; - - cnonce_seed.r[0] = rand(); - cnonce_seed.r[1] = rand(); - cnonce_seed.r[2] = rand(); - MD5(cnonce_seed.s, sizeof(cnonce_seed.s), md5); - cnonce = digest_hex(md5); - cnonce_seed.r[3]++; - - if (qop) { - char *p; - size_t i; - - p = qop->ptr; - SKIP_BLANKS(p); - - for (;;) { - if ((i = strcspn(p, " \t,")) > 0) { - if (i == sizeof("auth-int") - sizeof("") && !strncasecmp(p, "auth-int", i)) { - if (qop_i < QOP_AUTH_INT) - qop_i = QOP_AUTH_INT; - } - else if (i == sizeof("auth") - sizeof("") && !strncasecmp(p, "auth", i)) { - if (qop_i < QOP_AUTH) - qop_i = QOP_AUTH; - } - } - - if (p[i]) { - p += i + 1; - SKIP_BLANKS(p); - } - else - break; - } - } - - /* A1 = unq(username-value) ":" unq(realm-value) ":" passwd */ - tmp = Strnew_m_charp(uname->ptr, ":", - qstr_unquote(get_auth_param(ha->param, "realm"))->ptr, - ":", pw->ptr, NULL); - MD5(tmp->ptr, strlen(tmp->ptr), md5); - a1buf = digest_hex(md5); - - if (algorithm) { - if (strcasecmp(algorithm->ptr, "MD5-sess") == 0) { - /* A1 = H(unq(username-value) ":" unq(realm-value) ":" passwd) - * ":" unq(nonce-value) ":" unq(cnonce-value) - */ - if (nonce == NULL) - return NULL; - tmp = Strnew_m_charp(a1buf->ptr, ":", - qstr_unquote(nonce)->ptr, - ":", qstr_unquote(cnonce)->ptr, NULL); - MD5(tmp->ptr, strlen(tmp->ptr), md5); - a1buf = digest_hex(md5); - } - else if (strcasecmp(algorithm->ptr, "MD5") == 0) - /* ok default */ - ; - else - /* unknown algorithm */ - return NULL; - } - - /* A2 = Method ":" digest-uri-value */ - tmp = Strnew_m_charp(HTTPrequestMethod(hr)->ptr, ":", uri->ptr, NULL); - if (qop_i == QOP_AUTH_INT) { - /* A2 = Method ":" digest-uri-value ":" H(entity-body) */ - if (request && request->body) { - if (request->method == FORM_METHOD_POST && request->enctype == FORM_ENCTYPE_MULTIPART) { - FILE *fp = fopen(request->body, "r"); - if (fp != NULL) { - Str ebody; - ebody = Strfgetall(fp); - MD5(ebody->ptr, strlen(ebody->ptr), md5); - } - else { - MD5("", 0, md5); - } - } - else { - MD5(request->body, request->length, md5); - } - } - else { - MD5("", 0, md5); - } - Strcat_char(tmp, ':'); - Strcat(tmp, digest_hex(md5)); - } - MD5(tmp->ptr, strlen(tmp->ptr), md5); - a2buf = digest_hex(md5); - - if (qop_i >= QOP_AUTH) { - /* request-digest = <"> < KD ( H(A1), unq(nonce-value) - * ":" nc-value - * ":" unq(cnonce-value) - * ":" unq(qop-value) - * ":" H(A2) - * ) <"> - */ - if (nonce == NULL) - return NULL; - tmp = Strnew_m_charp(a1buf->ptr, ":", qstr_unquote(nonce)->ptr, - ":", nc, - ":", qstr_unquote(cnonce)->ptr, - ":", qop_i == QOP_AUTH ? "auth" : "auth-int", - ":", a2buf->ptr, NULL); - MD5(tmp->ptr, strlen(tmp->ptr), md5); - rd = digest_hex(md5); - } - else { - /* compatibility with RFC 2069 - * request_digest = KD(H(A1), unq(nonce), H(A2)) - */ - tmp = Strnew_m_charp(a1buf->ptr, ":", - qstr_unquote(get_auth_param(ha->param, "nonce"))-> - ptr, ":", a2buf->ptr, NULL); - MD5(tmp->ptr, strlen(tmp->ptr), md5); - rd = digest_hex(md5); - } - - /* - * digest-response = 1#( username | realm | nonce | digest-uri - * | response | [ algorithm ] | [cnonce] | - * [opaque] | [message-qop] | - * [nonce-count] | [auth-param] ) - */ - - tmp = Strnew_m_charp("Digest username=\"", uname->ptr, "\"", NULL); - Strcat_m_charp(tmp, ", realm=", - get_auth_param(ha->param, "realm")->ptr, NULL); - Strcat_m_charp(tmp, ", nonce=", - get_auth_param(ha->param, "nonce")->ptr, NULL); - Strcat_m_charp(tmp, ", uri=\"", uri->ptr, "\"", NULL); - Strcat_m_charp(tmp, ", response=\"", rd->ptr, "\"", NULL); - - if (algorithm) - Strcat_m_charp(tmp, ", algorithm=", - get_auth_param(ha->param, "algorithm")->ptr, NULL); - - if (cnonce) - Strcat_m_charp(tmp, ", cnonce=\"", cnonce->ptr, "\"", NULL); - - if ((s = get_auth_param(ha->param, "opaque")) != NULL) - Strcat_m_charp(tmp, ", opaque=", s->ptr, NULL); - - if (qop_i >= QOP_AUTH) { - Strcat_m_charp(tmp, ", qop=", - qop_i == QOP_AUTH ? "auth" : "auth-int", - NULL); - /* XXX how to count? */ - /* Since nonce is unique up to each *-Authenticate and w3m does not re-use *-Authenticate: headers, - nonce-count should be always "00000001". */ - Strcat_m_charp(tmp, ", nc=", nc, NULL); - } - - return tmp; -} -#endif - -/* *INDENT-OFF* */ -struct auth_param none_auth_param[] = { - {NULL, NULL} -}; - -struct auth_param basic_auth_param[] = { - {"realm", NULL}, - {NULL, NULL} -}; - -#ifdef USE_DIGEST_AUTH -/* RFC2617: 3.2.1 The WWW-Authenticate Response Header - * challenge = "Digest" digest-challenge - * - * digest-challenge = 1#( realm | [ domain ] | nonce | - * [ opaque ] |[ stale ] | [ algorithm ] | - * [ qop-options ] | [auth-param] ) - * - * domain = "domain" "=" <"> URI ( 1*SP URI ) <"> - * URI = absoluteURI | abs_path - * nonce = "nonce" "=" nonce-value - * nonce-value = quoted-string - * opaque = "opaque" "=" quoted-string - * stale = "stale" "=" ( "true" | "false" ) - * algorithm = "algorithm" "=" ( "MD5" | "MD5-sess" | - * token ) - * qop-options = "qop" "=" <"> 1#qop-value <"> - * qop-value = "auth" | "auth-int" | token - */ -struct auth_param digest_auth_param[] = { - {"realm", NULL}, - {"domain", NULL}, - {"nonce", NULL}, - {"opaque", NULL}, - {"stale", NULL}, - {"algorithm", NULL}, - {"qop", NULL}, - {NULL, NULL} -}; -#endif -/* for RFC2617: HTTP Authentication */ -struct http_auth www_auth[] = { - { 1, "Basic ", basic_auth_param, AuthBasicCred }, -#ifdef USE_DIGEST_AUTH - { 10, "Digest ", digest_auth_param, AuthDigestCred }, -#endif - { 0, NULL, NULL, NULL,} -}; -/* *INDENT-ON* */ - -static struct http_auth * -findAuthentication(struct http_auth *hauth, Buffer *buf, char *auth_field) -{ - struct http_auth *ha; - int len = strlen(auth_field), slen; - TextListItem *i; - char *p0, *p; - - bzero(hauth, sizeof(struct http_auth)); - for (i = buf->document_header->first; i != NULL; i = i->next) { - if (strncasecmp(i->ptr, auth_field, len) == 0) { - for (p = i->ptr + len; p != NULL && *p != '\0';) { - SKIP_BLANKS(p); - p0 = p; - for (ha = &www_auth[0]; ha->scheme != NULL; ha++) { - slen = strlen(ha->scheme); - if (strncasecmp(p, ha->scheme, slen) == 0) { - p += slen; - SKIP_BLANKS(p); - if (hauth->pri < ha->pri) { - *hauth = *ha; - p = extract_auth_param(p, hauth->param); - break; - } - else { - /* weak auth */ - p = extract_auth_param(p, none_auth_param); - } - } - } - if (p0 == p) { - /* all unknown auth failed */ - int token_type; - if ((token_type = skip_auth_token(&p)) == AUTHCHR_TOKEN && IS_SPACE(*p)) { - SKIP_BLANKS(p); - p = extract_auth_param(p, none_auth_param); - } - else - break; - } - } - } - } - return hauth->scheme ? hauth : NULL; -} - -static void -getAuthCookie(struct http_auth *hauth, char *auth_header, - TextList *extra_header, ParsedURL *pu, HRequest *hr, - FormList *request, - volatile Str *uname, volatile Str *pwd) -{ - Str ss = NULL; - Str tmp; - TextListItem *i; - int a_found; - int auth_header_len = strlen(auth_header); - char *realm = NULL; - int proxy; - - if (hauth) - realm = qstr_unquote(get_auth_param(hauth->param, "realm"))->ptr; - - if (!realm) - return; - - a_found = FALSE; - for (i = extra_header->first; i != NULL; i = i->next) { - if (!strncasecmp(i->ptr, auth_header, auth_header_len)) { - a_found = TRUE; - break; - } - } - proxy = !strncasecmp("Proxy-Authorization:", auth_header, - auth_header_len); - if (a_found) { - /* This means that *-Authenticate: header is received after - * Authorization: header is sent to the server. - */ - if (fmInitialized) { - message("Wrong username or password", 0, 0); - refresh(); - } - else - fprintf(stderr, "Wrong username or password\n"); - sleep(1); - /* delete Authenticate: header from extra_header */ - delText(extra_header, i); - invalidate_auth_user_passwd(pu, realm, *uname, *pwd, proxy); - } - *uname = NULL; - *pwd = NULL; - - if (!a_found && find_auth_user_passwd(pu, realm, (Str*)uname, (Str*)pwd, - proxy)) { - /* found username & password in passwd file */ ; - } - else { - if (QuietMessage) - return; - /* input username and password */ - sleep(2); - if (fmInitialized) { - char *pp; - term_raw(); - /* FIXME: gettextize? */ - if ((pp = inputStr(Sprintf("Username for %s: ", realm)->ptr, - NULL)) == NULL) - return; - *uname = Str_conv_to_system(Strnew_charp(pp)); - if ((pp = inputLine(Sprintf("Password for %s: ", realm)->ptr, NULL, - IN_PASSWORD)) == NULL) { - *uname = NULL; - return; - } - *pwd = Str_conv_to_system(Strnew_charp(pp)); - term_cbreak(); - } - else { - /* - * If post file is specified as '-', stdin is closed at this - * point. - * In this case, w3m cannot read username from stdin. - * So exit with error message. - * (This is same behavior as lwp-request.) - */ - if (feof(stdin) || ferror(stdin)) { - /* FIXME: gettextize? */ - fprintf(stderr, "w3m: Authorization required for %s\n", - realm); - exit(1); - } - - /* FIXME: gettextize? */ - printf(proxy ? "Proxy Username for %s: " : "Username for %s: ", - realm); - fflush(stdout); - *uname = Strfgets(stdin); - Strchop(*uname); -#ifdef HAVE_GETPASSPHRASE - *pwd = Strnew_charp((char *) - getpassphrase(proxy ? "Proxy Password: " : - "Password: ")); -#else - *pwd = Strnew_charp((char *) - getpass(proxy ? "Proxy Password: " : - "Password: ")); -#endif - } - } - ss = hauth->cred(hauth, *uname, *pwd, pu, hr, request); - if (ss) { - tmp = Strnew_charp(auth_header); - Strcat_m_charp(tmp, " ", ss->ptr, "\r\n", NULL); - pushText(extra_header, tmp->ptr); - } - else { - *uname = NULL; - *pwd = NULL; - } - return; -} - -static int -same_url_p(ParsedURL *pu1, ParsedURL *pu2) -{ - return (pu1->scheme == pu2->scheme && pu1->port == pu2->port && - (pu1->host ? pu2->host ? !strcasecmp(pu1->host, pu2->host) : 0 : 1) - && (pu1->file ? pu2-> - file ? !strcmp(pu1->file, pu2->file) : 0 : 1)); -} - -static int -checkRedirection(ParsedURL *pu) -{ - static ParsedURL *puv = NULL; - static int nredir = 0; - static int nredir_size = 0; - Str tmp; - - if (pu == NULL) { - nredir = 0; - nredir_size = 0; - puv = NULL; - return TRUE; - } - if (nredir >= FollowRedirection) { - /* FIXME: gettextize? */ - tmp = Sprintf("Number of redirections exceeded %d at %s", - FollowRedirection, parsedURL2Str(pu)->ptr); - disp_err_message(tmp->ptr, FALSE); - return FALSE; - } - else if (nredir_size > 0 && - (same_url_p(pu, &puv[(nredir - 1) % nredir_size]) || - (!(nredir % 2) - && same_url_p(pu, &puv[(nredir / 2) % nredir_size])))) { - /* FIXME: gettextize? */ - tmp = Sprintf("Redirection loop detected (%s)", - parsedURL2Str(pu)->ptr); - disp_err_message(tmp->ptr, FALSE); - return FALSE; - } - if (!puv) { - nredir_size = FollowRedirection / 2 + 1; - puv = New_N(ParsedURL, nredir_size); - memset(puv, 0, sizeof(ParsedURL) * nredir_size); - } - copyParsedURL(&puv[nredir % nredir_size], pu); - nredir++; - return TRUE; -} - -/* - * loadGeneralFile: load file to buffer - */ -Buffer * -loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, - int flag, FormList *volatile request) -{ - URLFile f, *volatile of = NULL; - ParsedURL pu; - Buffer *b = NULL, *(*volatile proc)() = loadBuffer; - char *volatile tpath; - char *volatile t = "text/plain", *p, *volatile real_type = NULL; - Buffer *volatile t_buf = NULL; - int volatile searchHeader = SearchHeader; - int volatile searchHeader_through = TRUE; - MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; - TextList *extra_header = newTextList(); - volatile Str uname = NULL; - volatile Str pwd = NULL; - volatile Str realm = NULL; - int volatile add_auth_cookie_flag; - unsigned char status = HTST_NORMAL; - URLOption url_option; - Str tmp; - Str volatile page = NULL; -#ifdef USE_M17N - wc_ces charset = WC_CES_US_ASCII; -#endif - HRequest hr; - ParsedURL *volatile auth_pu; - - tpath = path; - prevtrap = NULL; - add_auth_cookie_flag = 0; - - checkRedirection(NULL); - load_doc: - TRAP_OFF; - url_option.referer = referer; - url_option.flag = flag; - f = openURL(tpath, &pu, current, &url_option, request, extra_header, of, - &hr, &status); - of = NULL; -#ifdef USE_M17N - content_charset = 0; -#endif - if (f.stream == NULL) { - switch (f.scheme) { - case SCM_LOCAL: - { - struct stat st; - if (stat(pu.real_file, &st) < 0) - return NULL; - if (S_ISDIR(st.st_mode)) { - if (UseExternalDirBuffer) { - Str cmd = Sprintf("%s?dir=%s#current", - DirBufferCommand, pu.file); - b = loadGeneralFile(cmd->ptr, NULL, NO_REFERER, 0, - NULL); - if (b != NULL && b != NO_BUFFER) { - copyParsedURL(&b->currentURL, &pu); - b->filename = b->currentURL.real_file; - } - return b; - } - else { - page = loadLocalDir(pu.real_file); - t = "local:directory"; -#ifdef USE_M17N - charset = SystemCharset; -#endif - } - } - } - break; - case SCM_FTPDIR: - page = loadFTPDir(&pu, &charset); - t = "ftp:directory"; - break; -#ifdef USE_NNTP - case SCM_NEWS_GROUP: - page = loadNewsgroup(&pu, &charset); - t = "news:group"; - break; -#endif - case SCM_UNKNOWN: -#ifdef USE_EXTERNAL_URI_LOADER - tmp = searchURIMethods(&pu); - if (tmp != NULL) { - b = loadGeneralFile(tmp->ptr, current, referer, flag, request); - if (b != NULL && b != NO_BUFFER) - copyParsedURL(&b->currentURL, &pu); - return b; - } -#endif - /* FIXME: gettextize? */ - disp_err_message(Sprintf("Unknown URI: %s", - parsedURL2Str(&pu)->ptr)->ptr, FALSE); - break; - } - if (page && page->length > 0) - goto page_loaded; - return NULL; - } - - if (status == HTST_MISSING) { - TRAP_OFF; - UFclose(&f); - return NULL; - } - - /* openURL() succeeded */ - if (SETJMP(AbortLoading) != 0) { - /* transfer interrupted */ - TRAP_OFF; - if (b) - discardBuffer(b); - UFclose(&f); - return NULL; - } - - b = NULL; - if (f.is_cgi) { - /* local CGI */ - searchHeader = TRUE; - searchHeader_through = FALSE; - } - if (header_string) - header_string = NULL; - TRAP_ON; - if (pu.scheme == SCM_HTTP || -#ifdef USE_SSL - pu.scheme == SCM_HTTPS || -#endif /* USE_SSL */ - (( -#ifdef USE_GOPHER - (pu.scheme == SCM_GOPHER && non_null(GOPHER_proxy)) || -#endif /* USE_GOPHER */ - (pu.scheme == SCM_FTP && non_null(FTP_proxy)) - ) && !Do_not_use_proxy && !check_no_proxy(pu.host))) { - - if (fmInitialized) { - term_cbreak(); - /* FIXME: gettextize? */ - message(Sprintf("%s contacted. Waiting for reply...", pu.host)-> - ptr, 0, 0); - refresh(); - } - if (t_buf == NULL) - t_buf = newBuffer(INIT_BUFFER_WIDTH); -#if 0 /* USE_SSL */ - if (IStype(f.stream) == IST_SSL) { - Str s = ssl_get_certificate(f.stream, pu.host); - if (s == NULL) - return NULL; - else - t_buf->ssl_certificate = s->ptr; - } -#endif - readHeader(&f, t_buf, FALSE, &pu); - if (((http_response_code >= 301 && http_response_code <= 303) - || http_response_code == 307) - && (p = checkHeader(t_buf, "Location:")) != NULL - && checkRedirection(&pu)) { - /* document moved */ - /* 301: Moved Permanently */ - /* 302: Found */ - /* 303: See Other */ - /* 307: Temporary Redirect (HTTP/1.1) */ - tpath = url_quote_conv(p, DocumentCharset); - request = NULL; - UFclose(&f); - current = New(ParsedURL); - copyParsedURL(current, &pu); - t_buf = newBuffer(INIT_BUFFER_WIDTH); - t_buf->bufferprop |= BP_REDIRECTED; - status = HTST_NORMAL; - goto load_doc; - } - t = checkContentType(t_buf); - if (t == NULL && pu.file != NULL) { - if (!((http_response_code >= 400 && http_response_code <= 407) || - (http_response_code >= 500 && http_response_code <= 505))) - t = guessContentType(pu.file); - } - if (t == NULL) - t = "text/plain"; - if (add_auth_cookie_flag && realm && uname && pwd) { - /* If authorization is required and passed */ - add_auth_user_passwd(&pu, qstr_unquote(realm)->ptr, uname, pwd, - 0); - add_auth_cookie_flag = 0; - } - if ((p = checkHeader(t_buf, "WWW-Authenticate:")) != NULL && - http_response_code == 401) { - /* Authentication needed */ - struct http_auth hauth; - if (findAuthentication(&hauth, t_buf, "WWW-Authenticate:") != NULL - && (realm = get_auth_param(hauth.param, "realm")) != NULL) { - auth_pu = &pu; - getAuthCookie(&hauth, "Authorization:", extra_header, - auth_pu, &hr, request, &uname, &pwd); - if (uname == NULL) { - /* abort */ - TRAP_OFF; - goto page_loaded; - } - UFclose(&f); - add_auth_cookie_flag = 1; - status = HTST_NORMAL; - goto load_doc; - } - } - if ((p = checkHeader(t_buf, "Proxy-Authenticate:")) != NULL && - http_response_code == 407) { - /* Authentication needed */ - struct http_auth hauth; - if (findAuthentication(&hauth, t_buf, "Proxy-Authenticate:") - != NULL - && (realm = get_auth_param(hauth.param, "realm")) != NULL) { - auth_pu = schemeToProxy(pu.scheme); - getAuthCookie(&hauth, "Proxy-Authorization:", - extra_header, auth_pu, &hr, request, - &uname, &pwd); - if (uname == NULL) { - /* abort */ - TRAP_OFF; - goto page_loaded; - } - UFclose(&f); - add_auth_cookie_flag = 1; - status = HTST_NORMAL; - goto load_doc; - } - } - /* XXX: RFC2617 3.2.3 Authentication-Info: ? */ - - if (status == HTST_CONNECT) { - of = &f; - goto load_doc; - } - - f.modtime = mymktime(checkHeader(t_buf, "Last-Modified:")); - } -#ifdef USE_NNTP - else if (pu.scheme == SCM_NEWS || pu.scheme == SCM_NNTP) { - if (t_buf == NULL) - t_buf = newBuffer(INIT_BUFFER_WIDTH); - readHeader(&f, t_buf, TRUE, &pu); - t = checkContentType(t_buf); - if (t == NULL) - t = "text/plain"; - } -#endif /* USE_NNTP */ -#ifdef USE_GOPHER - else if (pu.scheme == SCM_GOPHER) { - switch (*pu.file) { - case '0': - t = "text/plain"; - break; - case '1': - case 'm': - page = loadGopherDir(&f, &pu, &charset); - t = "gopher:directory"; - TRAP_OFF; - goto page_loaded; - case 's': - t = "audio/basic"; - break; - case 'g': - t = "image/gif"; - break; - case 'h': - t = "text/html"; - break; - } - } -#endif /* USE_GOPHER */ - else if (pu.scheme == SCM_FTP) { - check_compression(path, &f); - if (f.compression != CMP_NOCOMPRESS) { - char *t1 = uncompressed_file_type(pu.file, NULL); - real_type = f.guess_type; -#if 0 - if (t1 && strncasecmp(t1, "application/", 12) == 0) { - f.compression = CMP_NOCOMPRESS; - t = real_type; - } - else -#endif - if (t1) - t = t1; - else - t = real_type; - } - else { - real_type = guessContentType(pu.file); - if (real_type == NULL) - real_type = "text/plain"; - t = real_type; - } -#if 0 - if (!strncasecmp(t, "application/", 12)) { - char *tmpf = tmpfname(TMPF_DFL, NULL)->ptr; - current_content_length = 0; - if (save2tmp(f, tmpf) < 0) - UFclose(&f); - else { - UFclose(&f); - TRAP_OFF; - doFileMove(tmpf, guess_save_name(t_buf, pu.file)); - } - return NO_BUFFER; - } -#endif - } - else if (pu.scheme == SCM_DATA) { - t = f.guess_type; - } - else if (searchHeader) { - searchHeader = SearchHeader = FALSE; - if (t_buf == NULL) - t_buf = newBuffer(INIT_BUFFER_WIDTH); - readHeader(&f, t_buf, searchHeader_through, &pu); - if (f.is_cgi && (p = checkHeader(t_buf, "Location:")) != NULL && - checkRedirection(&pu)) { - /* document moved */ - tpath = url_quote_conv(remove_space(p), DocumentCharset); - request = NULL; - UFclose(&f); - add_auth_cookie_flag = 0; - current = New(ParsedURL); - copyParsedURL(current, &pu); - t_buf = newBuffer(INIT_BUFFER_WIDTH); - t_buf->bufferprop |= BP_REDIRECTED; - status = HTST_NORMAL; - goto load_doc; - } -#ifdef AUTH_DEBUG - if ((p = checkHeader(t_buf, "WWW-Authenticate:")) != NULL) { - /* Authentication needed */ - struct http_auth hauth; - if (findAuthentication(&hauth, t_buf, "WWW-Authenticate:") != NULL - && (realm = get_auth_param(hauth.param, "realm")) != NULL) { - auth_pu = &pu; - getAuthCookie(&hauth, "Authorization:", extra_header, - auth_pu, &hr, request, &uname, &pwd); - if (uname == NULL) { - /* abort */ - TRAP_OFF; - goto page_loaded; - } - UFclose(&f); - add_auth_cookie_flag = 1; - status = HTST_NORMAL; - goto load_doc; - } - } -#endif /* defined(AUTH_DEBUG) */ - t = checkContentType(t_buf); - if (t == NULL) - t = "text/plain"; - } - else if (DefaultType) { - t = DefaultType; - DefaultType = NULL; - } - else { - t = guessContentType(pu.file); - if (t == NULL) - t = "text/plain"; - real_type = t; - if (f.guess_type) - t = f.guess_type; - } - - page_loaded: - if (page) { - FILE *src; -#ifdef USE_IMAGE - if (image_source) - return NULL; -#endif - tmp = tmpfname(TMPF_SRC, ".html"); - src = fopen(tmp->ptr, "w"); - if (src) { - Str s; - s = wc_Str_conv_strict(page, InnerCharset, charset); - Strfputs(s, src); - fclose(src); - } - if (do_download) { - char *file; - if (!src) - return NULL; - file = guess_filename(pu.file); -#ifdef USE_GOPHER - if (f.scheme == SCM_GOPHER) - file = Sprintf("%s.html", file)->ptr; -#endif -#ifdef USE_NNTP - if (f.scheme == SCM_NEWS_GROUP) - file = Sprintf("%s.html", file)->ptr; -#endif - doFileMove(tmp->ptr, file); - return NO_BUFFER; - } - b = loadHTMLString(page); - if (b) { - copyParsedURL(&b->currentURL, &pu); - b->real_scheme = pu.scheme; - b->real_type = t; - if (src) - b->sourcefile = tmp->ptr; -#ifdef USE_M17N - b->document_charset = charset; -#endif - } - return b; - } - - if (real_type == NULL) - real_type = t; - proc = loadBuffer; -#ifdef USE_IMAGE - cur_baseURL = New(ParsedURL); - copyParsedURL(cur_baseURL, &pu); -#endif - - current_content_length = 0; - if ((p = checkHeader(t_buf, "Content-Length:")) != NULL) - current_content_length = strtoclen(p); - if (do_download) { - /* download only */ - char *file; - TRAP_OFF; - if (DecodeCTE && IStype(f.stream) != IST_ENCODED) - f.stream = newEncodedStream(f.stream, f.encoding); - if (pu.scheme == SCM_LOCAL) { - struct stat st; - if (PreserveTimestamp && !stat(pu.real_file, &st)) - f.modtime = st.st_mtime; - file = conv_from_system(guess_save_name(NULL, pu.real_file)); - } - else - file = guess_save_name(t_buf, pu.file); - if (doFileSave(f, file) == 0) - UFhalfclose(&f); - else - UFclose(&f); - return NO_BUFFER; - } - - if (f.content_encoding != CMP_NOCOMPRESS) { - uncompress_stream(&f, &pu.real_file); - } - else if (f.compression != CMP_NOCOMPRESS) { - if (!(w3m_dump & DUMP_SOURCE) && - (w3m_dump & ~DUMP_FRAME || is_text_type(t) - || searchExtViewer(t))) { - if (t_buf == NULL) - t_buf = newBuffer(INIT_BUFFER_WIDTH); - uncompress_stream(&f, &t_buf->sourcefile); - uncompressed_file_type(pu.file, &f.ext); - } - else { - t = compress_application_type(f.compression); - f.compression = CMP_NOCOMPRESS; - } - } -#ifdef USE_IMAGE - if (image_source) { - Buffer *b = NULL; - if (IStype(f.stream) != IST_ENCODED) - f.stream = newEncodedStream(f.stream, f.encoding); - if (save2tmp(f, image_source) == 0) { - b = newBuffer(INIT_BUFFER_WIDTH); - b->sourcefile = image_source; - b->real_type = t; - } - UFclose(&f); - TRAP_OFF; - return b; - } -#endif - - if (!strcasecmp(t, "text/html")) - proc = loadHTMLBuffer; - else if (is_plain_text_type(t)) - proc = loadBuffer; -#ifdef USE_IMAGE - else if (activeImage && displayImage && !useExtImageViewer && - !(w3m_dump & ~DUMP_FRAME) && !strncasecmp(t, "image/", 6)) - proc = loadImageBuffer; -#endif - else if (w3m_backend) ; - else if (!(w3m_dump & ~DUMP_FRAME) || is_dump_text_type(t)) { - if (!do_download && doExternal(f, - pu.real_file ? pu.real_file : pu.file, - t, &b, t_buf)) { - if (b && b != NO_BUFFER) { - b->real_scheme = f.scheme; - b->real_type = real_type; - if (b->currentURL.host == NULL && b->currentURL.file == NULL) - copyParsedURL(&b->currentURL, &pu); - } - UFclose(&f); - TRAP_OFF; - return b; - } - else { - TRAP_OFF; - if (pu.scheme == SCM_LOCAL) { - UFclose(&f); - _doFileCopy(pu.real_file, - conv_from_system(guess_save_name - (NULL, pu.real_file)), TRUE); - } - else { - if (DecodeCTE && IStype(f.stream) != IST_ENCODED) - f.stream = newEncodedStream(f.stream, f.encoding); - if (doFileSave(f, guess_save_name(t_buf, pu.file)) == 0) - UFhalfclose(&f); - else - UFclose(&f); - } - return NO_BUFFER; - } - } - else if (w3m_dump & DUMP_FRAME) - return NULL; - - if (flag & RG_FRAME) { - if (t_buf == NULL) - t_buf = newBuffer(INIT_BUFFER_WIDTH); - t_buf->bufferprop |= BP_FRAME; - } -#ifdef USE_SSL - if (t_buf) - t_buf->ssl_certificate = f.ssl_certificate; -#endif - frame_source = flag & RG_FRAME_SRC; - b = loadSomething(&f, pu.real_file ? pu.real_file : pu.file, proc, t_buf); - UFclose(&f); - frame_source = 0; - if (b) { - b->real_scheme = f.scheme; - b->real_type = real_type; - if (b->currentURL.host == NULL && b->currentURL.file == NULL) - copyParsedURL(&b->currentURL, &pu); - if (!strcasecmp(t, "text/html")) - b->type = "text/html"; - else if (w3m_backend) { - Str s = Strnew_charp(t); - b->type = s->ptr; - } -#ifdef USE_IMAGE - else if (proc == loadImageBuffer) - b->type = "text/html"; -#endif - else - b->type = "text/plain"; - if (pu.label) { - if (proc == loadHTMLBuffer) { - Anchor *a; - a = searchURLLabel(b, pu.label); - if (a != NULL) { - gotoLine(b, a->start.line); - if (label_topline) - b->topLine = lineSkip(b, b->topLine, - b->currentLine->linenumber - - b->topLine->linenumber, FALSE); - b->pos = a->start.pos; - arrangeCursor(b); - } - } - else { /* plain text */ - int l = atoi(pu.label); - gotoLine(b, l); - b->pos = 0; - arrangeCursor(b); - } - } - } - if (header_string) - header_string = NULL; -#ifdef USE_NNTP - if (f.scheme == SCM_NNTP || f.scheme == SCM_NEWS) - reAnchorNewsheader(b); -#endif - preFormUpdateBuffer(b); - TRAP_OFF; - return b; -} - -#define TAG_IS(s,tag,len)\ - (strncasecmp(s,tag,len)==0&&(s[len] == '>' || IS_SPACE((int)s[len]))) - -static char * -has_hidden_link(struct readbuffer *obuf, int cmd) -{ - Str line = obuf->line; - struct link_stack *p; - - if (Strlastchar(line) != '>') - return NULL; - - for (p = link_stack; p; p = p->next) - if (p->cmd == cmd) - break; - if (!p) - return NULL; - - if (obuf->pos == p->pos) - return line->ptr + p->offset; - - return NULL; -} - -static void -push_link(int cmd, int offset, int pos) -{ - struct link_stack *p; - p = New(struct link_stack); - p->cmd = cmd; - p->offset = offset; - p->pos = pos; - p->next = link_stack; - link_stack = p; -} - -static int -is_period_char(unsigned char *ch) -{ - switch (*ch) { - case ',': - case '.': - case ':': - case ';': - case '?': - case '!': - case ')': - case ']': - case '}': - case '>': - return 1; - default: - return 0; - } -} - -static int -is_beginning_char(unsigned char *ch) -{ - switch (*ch) { - case '(': - case '[': - case '{': - case '`': - case '<': - return 1; - default: - return 0; - } -} - -static int -is_word_char(unsigned char *ch) -{ - Lineprop ctype = get_mctype(ch); - -#ifdef USE_M17N - if (ctype & (PC_CTRL | PC_KANJI | PC_UNKNOWN)) - return 0; - if (ctype & (PC_WCHAR1 | PC_WCHAR2)) - return 1; -#else - if (ctype == PC_CTRL) - return 0; -#endif - - if (IS_ALNUM(*ch)) - return 1; - - switch (*ch) { - case ',': - case '.': - case ':': - case '\"': /* " */ - case '\'': - case '$': - case '%': - case '*': - case '+': - case '-': - case '@': - case '~': - case '_': - return 1; - } -#ifdef USE_M17N - if (*ch == NBSP_CODE) - return 1; -#else - if (*ch == TIMES_CODE || *ch == DIVIDE_CODE || *ch == ANSP_CODE) - return 0; - if (*ch >= AGRAVE_CODE || *ch == NBSP_CODE) - return 1; -#endif - return 0; -} - -#ifdef USE_M17N -static int -is_combining_char(unsigned char *ch) -{ - Lineprop ctype = get_mctype(ch); - - if (ctype & PC_WCHAR2) - return 1; - return 0; -} -#endif - -int -is_boundary(unsigned char *ch1, unsigned char *ch2) -{ - if (!*ch1 || !*ch2) - return 1; - - if (*ch1 == ' ' && *ch2 == ' ') - return 0; - - if (*ch1 != ' ' && is_period_char(ch2)) - return 0; - - if (*ch2 != ' ' && is_beginning_char(ch1)) - return 0; - -#ifdef USE_M17N - if (is_combining_char(ch2)) - return 0; -#endif - if (is_word_char(ch1) && is_word_char(ch2)) - return 0; - - return 1; -} - - -static void -set_breakpoint(struct readbuffer *obuf, int tag_length) -{ - obuf->bp.len = obuf->line->length; - obuf->bp.pos = obuf->pos; - obuf->bp.tlen = tag_length; - obuf->bp.flag = obuf->flag; -#ifdef FORMAT_NICE - obuf->bp.flag &= ~RB_FILL; -#endif /* FORMAT_NICE */ - obuf->bp.top_margin = obuf->top_margin; - obuf->bp.bottom_margin = obuf->bottom_margin; - - if (!obuf->bp.init_flag) - return; - - bcopy((void *)&obuf->anchor, (void *)&obuf->bp.anchor, - sizeof(obuf->anchor)); - obuf->bp.img_alt = obuf->img_alt; - obuf->bp.in_bold = obuf->in_bold; - obuf->bp.in_under = obuf->in_under; - obuf->bp.nobr_level = obuf->nobr_level; - obuf->bp.prev_ctype = obuf->prev_ctype; - obuf->bp.init_flag = 0; -} - -static void -back_to_breakpoint(struct readbuffer *obuf) -{ - obuf->flag = obuf->bp.flag; - bcopy((void *)&obuf->bp.anchor, (void *)&obuf->anchor, - sizeof(obuf->anchor)); - obuf->img_alt = obuf->bp.img_alt; - obuf->in_bold = obuf->bp.in_bold; - obuf->in_under = obuf->bp.in_under; - obuf->prev_ctype = obuf->bp.prev_ctype; - obuf->pos = obuf->bp.pos; - obuf->top_margin = obuf->bp.top_margin; - obuf->bottom_margin = obuf->bp.bottom_margin; - if (obuf->flag & RB_NOBR) - obuf->nobr_level = obuf->bp.nobr_level; -} - -static void -append_tags(struct readbuffer *obuf) -{ - int i; - int len = obuf->line->length; - int set_bp = 0; - - for (i = 0; i < obuf->tag_sp; i++) { - switch (obuf->tag_stack[i]->cmd) { - case HTML_A: - case HTML_IMG_ALT: - case HTML_B: - case HTML_U: - push_link(obuf->tag_stack[i]->cmd, obuf->line->length, obuf->pos); - break; - } - Strcat_charp(obuf->line, obuf->tag_stack[i]->cmdname); - switch (obuf->tag_stack[i]->cmd) { - case HTML_NOBR: - if (obuf->nobr_level > 1) - break; - case HTML_WBR: - set_bp = 1; - break; - } - } - obuf->tag_sp = 0; - if (set_bp) - set_breakpoint(obuf, obuf->line->length - len); -} - -static void -push_tag(struct readbuffer *obuf, char *cmdname, int cmd) -{ - obuf->tag_stack[obuf->tag_sp] = New(struct cmdtable); - obuf->tag_stack[obuf->tag_sp]->cmdname = allocStr(cmdname, -1); - obuf->tag_stack[obuf->tag_sp]->cmd = cmd; - obuf->tag_sp++; - if (obuf->tag_sp >= TAG_STACK_SIZE || obuf->flag & (RB_SPECIAL & ~RB_NOBR)) - append_tags(obuf); -} - -static void -push_nchars(struct readbuffer *obuf, int width, - char *str, int len, Lineprop mode) -{ - append_tags(obuf); - Strcat_charp_n(obuf->line, str, len); - obuf->pos += width; - if (width > 0) { - set_prevchar(obuf->prevchar, str, len); - obuf->prev_ctype = mode; - } - obuf->flag |= RB_NFLUSHED; -} - -#define push_charp(obuf, width, str, mode)\ -push_nchars(obuf, width, str, strlen(str), mode) - -#define push_str(obuf, width, str, mode)\ -push_nchars(obuf, width, str->ptr, str->length, mode) - -static void -check_breakpoint(struct readbuffer *obuf, int pre_mode, char *ch) -{ - int tlen, len = obuf->line->length; - - append_tags(obuf); - if (pre_mode) - return; - tlen = obuf->line->length - len; - if (tlen > 0 - || is_boundary((unsigned char *)obuf->prevchar->ptr, - (unsigned char *)ch)) - set_breakpoint(obuf, tlen); -} - -static void -push_char(struct readbuffer *obuf, int pre_mode, char ch) -{ - check_breakpoint(obuf, pre_mode, &ch); - Strcat_char(obuf->line, ch); - obuf->pos++; - set_prevchar(obuf->prevchar, &ch, 1); - if (ch != ' ') - obuf->prev_ctype = PC_ASCII; - obuf->flag |= RB_NFLUSHED; -} - -#define PUSH(c) push_char(obuf, obuf->flag & RB_SPECIAL, c) - -static void -push_spaces(struct readbuffer *obuf, int pre_mode, int width) -{ - int i; - - if (width <= 0) - return; - check_breakpoint(obuf, pre_mode, " "); - for (i = 0; i < width; i++) - Strcat_char(obuf->line, ' '); - obuf->pos += width; - set_space_to_prevchar(obuf->prevchar); - obuf->flag |= RB_NFLUSHED; -} - -static void -proc_mchar(struct readbuffer *obuf, int pre_mode, - int width, char **str, Lineprop mode) -{ - check_breakpoint(obuf, pre_mode, *str); - obuf->pos += width; - Strcat_charp_n(obuf->line, *str, get_mclen(*str)); - if (width > 0) { - set_prevchar(obuf->prevchar, *str, 1); - if (**str != ' ') - obuf->prev_ctype = mode; - } - (*str) += get_mclen(*str); - obuf->flag |= RB_NFLUSHED; -} - -void -push_render_image(Str str, int width, int limit, - struct html_feed_environ *h_env) -{ - struct readbuffer *obuf = h_env->obuf; - int indent = h_env->envs[h_env->envc].indent; - - push_spaces(obuf, 1, (limit - width) / 2); - push_str(obuf, width, str, PC_ASCII); - push_spaces(obuf, 1, (limit - width + 1) / 2); - if (width > 0) - flushline(h_env, obuf, indent, 0, h_env->limit); -} - -static int -sloppy_parse_line(char **str) -{ - if (**str == '<') { - while (**str && **str != '>') - (*str)++; - if (**str == '>') - (*str)++; - return 1; - } - else { - while (**str && **str != '<') - (*str)++; - return 0; - } -} - -static void -passthrough(struct readbuffer *obuf, char *str, int back) -{ - int cmd; - Str tok = Strnew(); - char *str_bak; - - if (back) { - Str str_save = Strnew_charp(str); - Strshrink(obuf->line, obuf->line->ptr + obuf->line->length - str); - str = str_save->ptr; - } - while (*str) { - str_bak = str; - if (sloppy_parse_line(&str)) { - char *q = str_bak; - cmd = gethtmlcmd(&q); - if (back) { - struct link_stack *p; - for (p = link_stack; p; p = p->next) { - if (p->cmd == cmd) { - link_stack = p->next; - break; - } - } - back = 0; - } - else { - Strcat_charp_n(tok, str_bak, str - str_bak); - push_tag(obuf, tok->ptr, cmd); - Strclear(tok); - } - } - else { - push_nchars(obuf, 0, str_bak, str - str_bak, obuf->prev_ctype); - } - } -} - -#if 0 -int -is_blank_line(char *line, int indent) -{ - int i, is_blank = 0; - - for (i = 0; i < indent; i++) { - if (line[i] == '\0') { - is_blank = 1; - } - else if (line[i] != ' ') { - break; - } - } - if (i == indent && line[i] == '\0') - is_blank = 1; - return is_blank; -} -#endif - -void -fillline(struct readbuffer *obuf, int indent) -{ - push_spaces(obuf, 1, indent - obuf->pos); - obuf->flag &= ~RB_NFLUSHED; -} - -void -flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent, - int force, int width) -{ - TextLineList *buf = h_env->buf; - FILE *f = h_env->f; - Str line = obuf->line, pass = NULL; - char *hidden_anchor = NULL, *hidden_img = NULL, *hidden_bold = NULL, - *hidden_under = NULL, *hidden = NULL; - -#ifdef DEBUG - if (w3m_debug) { - FILE *df = fopen("zzzproc1", "a"); - fprintf(df, "flushline(%s,%d,%d,%d)\n", obuf->line->ptr, indent, force, - width); - if (buf) { - TextLineListItem *p; - for (p = buf->first; p; p = p->next) { - fprintf(df, "buf=\"%s\"\n", p->ptr->line->ptr); - } - } - fclose(df); - } -#endif - - if (!(obuf->flag & (RB_SPECIAL & ~RB_NOBR)) && Strlastchar(line) == ' ') { - Strshrink(line, 1); - obuf->pos--; - } - - append_tags(obuf); - - if (obuf->anchor.url) - hidden = hidden_anchor = has_hidden_link(obuf, HTML_A); - if (obuf->img_alt) { - if ((hidden_img = has_hidden_link(obuf, HTML_IMG_ALT)) != NULL) { - if (!hidden || hidden_img < hidden) - hidden = hidden_img; - } - } - if (obuf->in_bold) { - if ((hidden_bold = has_hidden_link(obuf, HTML_B)) != NULL) { - if (!hidden || hidden_bold < hidden) - hidden = hidden_bold; - } - } - if (obuf->in_under) { - if ((hidden_under = has_hidden_link(obuf, HTML_U)) != NULL) { - if (!hidden || hidden_under < hidden) - hidden = hidden_under; - } - } - if (hidden) { - pass = Strnew_charp(hidden); - Strshrink(line, line->ptr + line->length - hidden); - } - - if (!(obuf->flag & (RB_SPECIAL & ~RB_NOBR)) && obuf->pos > width) { - char *tp = &line->ptr[obuf->bp.len - obuf->bp.tlen]; - char *ep = &line->ptr[line->length]; - - if (obuf->bp.pos == obuf->pos && tp <= ep && - tp > line->ptr && tp[-1] == ' ') { - bcopy(tp, tp - 1, ep - tp + 1); - line->length--; - obuf->pos--; - } - } - - if (obuf->anchor.url && !hidden_anchor) - Strcat_charp(line, "</a>"); - if (obuf->img_alt && !hidden_img) - Strcat_charp(line, "</img_alt>"); - if (obuf->in_bold && !hidden_bold) - Strcat_charp(line, "</b>"); - if (obuf->in_under && !hidden_under) - Strcat_charp(line, "</u>"); - - if (obuf->top_margin > 0) { - int i; - struct html_feed_environ h; - struct readbuffer o; - struct environment e[1]; - - init_henv(&h, &o, e, 1, NULL, width, indent); - o.line = Strnew_size(width + 20); - o.pos = obuf->pos; - o.flag = obuf->flag; - o.top_margin = -1; - o.bottom_margin = -1; - Strcat_charp(o.line, "<pre_int>"); - for (i = 0; i < o.pos; i++) - Strcat_char(o.line, ' '); - Strcat_charp(o.line, "</pre_int>"); - for (i = 0; i < obuf->top_margin; i++) - flushline(h_env, &o, indent, force, width); - } - - if (force == 1 || obuf->flag & RB_NFLUSHED) { - TextLine *lbuf = newTextLine(line, obuf->pos); - if (RB_GET_ALIGN(obuf) == RB_CENTER) { - align(lbuf, width, ALIGN_CENTER); - } - else if (RB_GET_ALIGN(obuf) == RB_RIGHT) { - align(lbuf, width, ALIGN_RIGHT); - } - else if (RB_GET_ALIGN(obuf) == RB_LEFT && obuf->flag & RB_INTABLE) { - align(lbuf, width, ALIGN_LEFT); - } -#ifdef FORMAT_NICE - else if (obuf->flag & RB_FILL) { - char *p; - int rest, rrest; - int nspace, d, i; - - rest = width - get_Str_strwidth(line); - if (rest > 1) { - nspace = 0; - for (p = line->ptr + indent; *p; p++) { - if (*p == ' ') - nspace++; - } - if (nspace > 0) { - int indent_here = 0; - d = rest / nspace; - p = line->ptr; - while (IS_SPACE(*p)) { - p++; - indent_here++; - } - rrest = rest - d * nspace; - line = Strnew_size(width + 1); - for (i = 0; i < indent_here; i++) - Strcat_char(line, ' '); - for (; *p; p++) { - Strcat_char(line, *p); - if (*p == ' ') { - for (i = 0; i < d; i++) - Strcat_char(line, ' '); - if (rrest > 0) { - Strcat_char(line, ' '); - rrest--; - } - } - } - lbuf = newTextLine(line, width); - } - } - } -#endif /* FORMAT_NICE */ -#ifdef TABLE_DEBUG - if (w3m_debug) { - FILE *f = fopen("zzzproc1", "a"); - fprintf(f, "pos=%d,%d, maxlimit=%d\n", - visible_length(lbuf->line->ptr), lbuf->pos, - h_env->maxlimit); - fclose(f); - } -#endif - if (lbuf->pos > h_env->maxlimit) - h_env->maxlimit = lbuf->pos; - if (buf) - pushTextLine(buf, lbuf); - else if (f) { - Strfputs(Str_conv_to_halfdump(lbuf->line), f); - fputc('\n', f); - } - if (obuf->flag & RB_SPECIAL || obuf->flag & RB_NFLUSHED) - h_env->blank_lines = 0; - else - h_env->blank_lines++; - } - else { - char *p = line->ptr, *q; - Str tmp = Strnew(), tmp2 = Strnew(); - -#define APPEND(str) \ - if (buf) \ - appendTextLine(buf,(str),0); \ - else if (f) \ - Strfputs((str),f) - - while (*p) { - q = p; - if (sloppy_parse_line(&p)) { - Strcat_charp_n(tmp, q, p - q); - if (force == 2) { - APPEND(tmp); - } - else - Strcat(tmp2, tmp); - Strclear(tmp); - } - } - if (force == 2) { - if (pass) { - APPEND(pass); - } - pass = NULL; - } - else { - if (pass) - Strcat(tmp2, pass); - pass = tmp2; - } - } - - if (obuf->bottom_margin > 0) { - int i; - struct html_feed_environ h; - struct readbuffer o; - struct environment e[1]; - - init_henv(&h, &o, e, 1, NULL, width, indent); - o.line = Strnew_size(width + 20); - o.pos = obuf->pos; - o.flag = obuf->flag; - o.top_margin = -1; - o.bottom_margin = -1; - Strcat_charp(o.line, "<pre_int>"); - for (i = 0; i < o.pos; i++) - Strcat_char(o.line, ' '); - Strcat_charp(o.line, "</pre_int>"); - for (i = 0; i < obuf->bottom_margin; i++) - flushline(h_env, &o, indent, force, width); - } - if (obuf->top_margin < 0 || obuf->bottom_margin < 0) - return; - - obuf->line = Strnew_size(256); - obuf->pos = 0; - obuf->top_margin = 0; - obuf->bottom_margin = 0; - set_space_to_prevchar(obuf->prevchar); - obuf->bp.init_flag = 1; - obuf->flag &= ~RB_NFLUSHED; - set_breakpoint(obuf, 0); - obuf->prev_ctype = PC_ASCII; - link_stack = NULL; - fillline(obuf, indent); - if (pass) - passthrough(obuf, pass->ptr, 0); - if (!hidden_anchor && obuf->anchor.url) { - Str tmp; - if (obuf->anchor.hseq > 0) - obuf->anchor.hseq = -obuf->anchor.hseq; - tmp = Sprintf("<A HSEQ=\"%d\" HREF=\"", obuf->anchor.hseq); - Strcat_charp(tmp, html_quote(obuf->anchor.url)); - if (obuf->anchor.target) { - Strcat_charp(tmp, "\" TARGET=\""); - Strcat_charp(tmp, html_quote(obuf->anchor.target)); - } - if (obuf->anchor.referer) { - Strcat_charp(tmp, "\" REFERER=\""); - Strcat_charp(tmp, html_quote(obuf->anchor.referer)); - } - if (obuf->anchor.title) { - Strcat_charp(tmp, "\" TITLE=\""); - Strcat_charp(tmp, html_quote(obuf->anchor.title)); - } - if (obuf->anchor.accesskey) { - char *c = html_quote_char(obuf->anchor.accesskey); - Strcat_charp(tmp, "\" ACCESSKEY=\""); - if (c) - Strcat_charp(tmp, c); - else - Strcat_char(tmp, obuf->anchor.accesskey); - } - Strcat_charp(tmp, "\">"); - push_tag(obuf, tmp->ptr, HTML_A); - } - if (!hidden_img && obuf->img_alt) { - Str tmp = Strnew_charp("<IMG_ALT SRC=\""); - Strcat_charp(tmp, html_quote(obuf->img_alt->ptr)); - Strcat_charp(tmp, "\">"); - push_tag(obuf, tmp->ptr, HTML_IMG_ALT); - } - if (!hidden_bold && obuf->in_bold) - push_tag(obuf, "<B>", HTML_B); - if (!hidden_under && obuf->in_under) - push_tag(obuf, "<U>", HTML_U); -} - -void -do_blankline(struct html_feed_environ *h_env, struct readbuffer *obuf, - int indent, int indent_incr, int width) -{ - if (h_env->blank_lines == 0) - flushline(h_env, obuf, indent, 1, width); -} - -void -purgeline(struct html_feed_environ *h_env) -{ - char *p, *q; - Str tmp; - - if (h_env->buf == NULL || h_env->blank_lines == 0) - return; - - p = rpopTextLine(h_env->buf)->line->ptr; - tmp = Strnew(); - while (*p) { - q = p; - if (sloppy_parse_line(&p)) { - Strcat_charp_n(tmp, q, p - q); - } - } - appendTextLine(h_env->buf, tmp, 0); - h_env->blank_lines--; -} - -static int -close_effect0(struct readbuffer *obuf, int cmd) -{ - int i; - char *p; - - for (i = obuf->tag_sp - 1; i >= 0; i--) { - if (obuf->tag_stack[i]->cmd == cmd) - break; - } - if (i >= 0) { - obuf->tag_sp--; - bcopy(&obuf->tag_stack[i + 1], &obuf->tag_stack[i], - (obuf->tag_sp - i) * sizeof(struct cmdtable *)); - return 1; - } - else if ((p = has_hidden_link(obuf, cmd)) != NULL) { - passthrough(obuf, p, 1); - return 1; - } - return 0; -} - -static void -close_anchor(struct html_feed_environ *h_env, struct readbuffer *obuf) -{ - if (obuf->anchor.url) { - int i; - char *p = NULL; - int is_erased = 0; - - for (i = obuf->tag_sp - 1; i >= 0; i--) { - if (obuf->tag_stack[i]->cmd == HTML_A) - break; - } - if (i < 0 && obuf->anchor.hseq > 0 && Strlastchar(obuf->line) == ' ') { - Strshrink(obuf->line, 1); - obuf->pos--; - is_erased = 1; - } - - if (i >= 0 || (p = has_hidden_link(obuf, HTML_A))) { - if (obuf->anchor.hseq > 0) { - HTMLlineproc1(ANSP, h_env); - set_space_to_prevchar(obuf->prevchar); - } - else { - if (i >= 0) { - obuf->tag_sp--; - bcopy(&obuf->tag_stack[i + 1], &obuf->tag_stack[i], - (obuf->tag_sp - i) * sizeof(struct cmdtable *)); - } - else { - passthrough(obuf, p, 1); - } - bzero((void *)&obuf->anchor, sizeof(obuf->anchor)); - return; - } - is_erased = 0; - } - if (is_erased) { - Strcat_char(obuf->line, ' '); - obuf->pos++; - } - - push_tag(obuf, "</a>", HTML_N_A); - } - bzero((void *)&obuf->anchor, sizeof(obuf->anchor)); -} - -void -save_fonteffect(struct html_feed_environ *h_env, struct readbuffer *obuf) -{ - if (obuf->fontstat_sp < FONT_STACK_SIZE) - bcopy(obuf->fontstat, obuf->fontstat_stack[obuf->fontstat_sp], - FONTSTAT_SIZE); - obuf->fontstat_sp++; - if (obuf->in_bold) - push_tag(obuf, "</b>", HTML_N_B); - if (obuf->in_under) - push_tag(obuf, "</u>", HTML_N_U); - bzero(obuf->fontstat, FONTSTAT_SIZE); -} - -void -restore_fonteffect(struct html_feed_environ *h_env, struct readbuffer *obuf) -{ - if (obuf->fontstat_sp > 0) - obuf->fontstat_sp--; - if (obuf->fontstat_sp < FONT_STACK_SIZE) - bcopy(obuf->fontstat_stack[obuf->fontstat_sp], obuf->fontstat, - FONTSTAT_SIZE); - if (obuf->in_bold) - push_tag(obuf, "<b>", HTML_B); - if (obuf->in_under) - push_tag(obuf, "<u>", HTML_U); -} - -static Str -process_title(struct parsed_tag *tag) -{ - cur_title = Strnew(); - return NULL; -} - -static Str -process_n_title(struct parsed_tag *tag) -{ - Str tmp; - - if (!cur_title) - return NULL; - Strremovefirstspaces(cur_title); - Strremovetrailingspaces(cur_title); - tmp = Strnew_m_charp("<title_alt title=\"", - html_quote(cur_title->ptr), "\">", NULL); - cur_title = NULL; - return tmp; -} - -static void -feed_title(char *str) -{ - if (!cur_title) - return; - while (*str) { - if (*str == '&') - Strcat_charp(cur_title, getescapecmd(&str)); - else if (*str == '\n' || *str == '\r') { - Strcat_char(cur_title, ' '); - str++; - } - else - Strcat_char(cur_title, *(str++)); - } -} - -Str -process_img(struct parsed_tag *tag, int width) -{ - char *p, *q, *r, *r2 = NULL, *s, *t; -#ifdef USE_IMAGE - int w, i, nw, ni = 1, n, w0 = -1, i0 = -1; - int align, xoffset, yoffset, top, bottom, ismap = 0; - int use_image = activeImage && displayImage; -#else - int w, i, nw, n; -#endif - int pre_int = FALSE; - Str tmp = Strnew(); - - if (!parsedtag_get_value(tag, ATTR_SRC, &p)) - return tmp; - p = remove_space(p); - q = NULL; - parsedtag_get_value(tag, ATTR_ALT, &q); - t = q; - parsedtag_get_value(tag, ATTR_TITLE, &t); - w = -1; - if (parsedtag_get_value(tag, ATTR_WIDTH, &w)) { - if (w < 0) { - if (width > 0) - w = (int)(-width * pixel_per_char * w / 100 + 0.5); - else - w = -1; - } -#ifdef USE_IMAGE - if (use_image) { - if (w > 0) { - w = (int)(w * image_scale / 100 + 0.5); - if (w == 0) - w = 1; - else if (w > MAX_IMAGE_SIZE) - w = MAX_IMAGE_SIZE; - } - } -#endif - } -#ifdef USE_IMAGE - if (use_image) { - i = -1; - if (parsedtag_get_value(tag, ATTR_HEIGHT, &i)) { - if (i > 0) { - i = (int)(i * image_scale / 100 + 0.5); - if (i == 0) - i = 1; - else if (i > MAX_IMAGE_SIZE) - i = MAX_IMAGE_SIZE; - } - else { - i = -1; - } - } - align = -1; - parsedtag_get_value(tag, ATTR_ALIGN, &align); - ismap = 0; - if (parsedtag_exists(tag, ATTR_ISMAP)) - ismap = 1; - } - else -#endif - parsedtag_get_value(tag, ATTR_HEIGHT, &i); - r = NULL; - parsedtag_get_value(tag, ATTR_USEMAP, &r); - - tmp = Strnew_size(128); -#ifdef USE_IMAGE - if (use_image) { - switch (align) { - case ALIGN_LEFT: - Strcat_charp(tmp, "<div_int align=left>"); - break; - case ALIGN_CENTER: - Strcat_charp(tmp, "<div_int align=center>"); - break; - case ALIGN_RIGHT: - Strcat_charp(tmp, "<div_int align=right>"); - break; - } - } -#endif - if (r) { - Str tmp2; - r2 = strchr(r, '#'); - s = "<form_int method=internal action=map>"; - tmp2 = process_form(parse_tag(&s, TRUE)); - if (tmp2) - Strcat(tmp, tmp2); - Strcat(tmp, Sprintf("<input_alt fid=\"%d\" " - "type=hidden name=link value=\"", cur_form_id)); - Strcat_charp(tmp, html_quote((r2) ? r2 + 1 : r)); - Strcat(tmp, Sprintf("\"><input_alt hseq=\"%d\" fid=\"%d\" " - "type=submit no_effect=true>", - cur_hseq++, cur_form_id)); - } -#ifdef USE_IMAGE - if (use_image) { - w0 = w; - i0 = i; - if (w < 0 || i < 0) { - Image image; - ParsedURL u; - -#ifdef USE_M17N - parseURL2(wc_conv(p, InnerCharset, cur_document_charset)->ptr, &u, - cur_baseURL); -#else - parseURL2(p, &u, cur_baseURL); -#endif - image.url = parsedURL2Str(&u)->ptr; - if (!uncompressed_file_type(u.file, &image.ext)) - image.ext = filename_extension(u.file, TRUE); - image.cache = NULL; - image.width = w; - image.height = i; - - image.cache = getImage(&image, cur_baseURL, IMG_FLAG_SKIP); - if (image.cache && image.cache->width > 0 && - image.cache->height > 0) { - w = w0 = image.cache->width; - i = i0 = image.cache->height; - } - if (w < 0) - w = 8 * pixel_per_char; - if (i < 0) - i = pixel_per_line; - } - nw = (w > 3) ? (int)((w - 3) / pixel_per_char + 1) : 1; - ni = (i > 3) ? (int)((i - 3) / pixel_per_line + 1) : 1; - Strcat(tmp, - Sprintf("<pre_int><img_alt hseq=\"%d\" src=\"", cur_iseq++)); - pre_int = TRUE; - } - else -#endif - { - if (w < 0) - w = 12 * pixel_per_char; - nw = w ? (int)((w - 1) / pixel_per_char + 1) : 1; - if (r) { - Strcat_charp(tmp, "<pre_int>"); - pre_int = TRUE; - } - Strcat_charp(tmp, "<img_alt src=\""); - } - Strcat_charp(tmp, html_quote(p)); - Strcat_charp(tmp, "\""); - if (t) { - Strcat_charp(tmp, " title=\""); - Strcat_charp(tmp, html_quote(t)); - Strcat_charp(tmp, "\""); - } -#ifdef USE_IMAGE - if (use_image) { - if (w0 >= 0) - Strcat(tmp, Sprintf(" width=%d", w0)); - if (i0 >= 0) - Strcat(tmp, Sprintf(" height=%d", i0)); - switch (align) { - case ALIGN_TOP: - top = 0; - bottom = ni - 1; - yoffset = 0; - break; - case ALIGN_MIDDLE: - top = ni / 2; - bottom = top; - if (top * 2 == ni) - yoffset = (int)(((ni + 1) * pixel_per_line - i) / 2); - else - yoffset = (int)((ni * pixel_per_line - i) / 2); - break; - case ALIGN_BOTTOM: - top = ni - 1; - bottom = 0; - yoffset = (int)(ni * pixel_per_line - i); - break; - default: - top = ni - 1; - bottom = 0; - if (ni == 1 && ni * pixel_per_line > i) - yoffset = 0; - else { - yoffset = (int)(ni * pixel_per_line - i); - if (yoffset <= -2) - yoffset++; - } - break; - } - xoffset = (int)((nw * pixel_per_char - w) / 2); - if (xoffset) - Strcat(tmp, Sprintf(" xoffset=%d", xoffset)); - if (yoffset) - Strcat(tmp, Sprintf(" yoffset=%d", yoffset)); - if (top) - Strcat(tmp, Sprintf(" top_margin=%d", top)); - if (bottom) - Strcat(tmp, Sprintf(" bottom_margin=%d", bottom)); - if (r) { - Strcat_charp(tmp, " usemap=\""); - Strcat_charp(tmp, html_quote((r2) ? r2 + 1 : r)); - Strcat_charp(tmp, "\""); - } - if (ismap) - Strcat_charp(tmp, " ismap"); - } -#endif - Strcat_charp(tmp, ">"); - if (q != NULL && *q == '\0' && ignore_null_img_alt) - q = NULL; - if (q != NULL) { - n = get_strwidth(q); -#ifdef USE_IMAGE - if (use_image) { - if (n > nw) { - char *r; - for (r = q, n = 0; r; r += get_mclen(r), n += get_mcwidth(r)) { - if (n + get_mcwidth(r) > nw) - break; - } - Strcat_charp(tmp, html_quote(Strnew_charp_n(q, r - q)->ptr)); - } - else - Strcat_charp(tmp, html_quote(q)); - } - else -#endif - Strcat_charp(tmp, html_quote(q)); - goto img_end; - } - if (w > 0 && i > 0) { - /* guess what the image is! */ - if (w < 32 && i < 48) { - /* must be an icon or space */ - n = 1; - if (strcasestr(p, "space") || strcasestr(p, "blank")) - Strcat_charp(tmp, "_"); - else { - if (w * i < 8 * 16) - Strcat_charp(tmp, "*"); - else { - if (!pre_int) { - Strcat_charp(tmp, "<pre_int>"); - pre_int = TRUE; - } - push_symbol(tmp, IMG_SYMBOL, symbol_width, 1); - n = symbol_width; - } - } - goto img_end; - } - if (w > 200 && i < 13) { - /* must be a horizontal line */ - if (!pre_int) { - Strcat_charp(tmp, "<pre_int>"); - pre_int = TRUE; - } - w = w / pixel_per_char / symbol_width; - if (w <= 0) - w = 1; - push_symbol(tmp, HR_SYMBOL, symbol_width, w); - n = w * symbol_width; - goto img_end; - } - } - for (q = p; *q; q++) ; - while (q > p && *q != '/') - q--; - if (*q == '/') - q++; - Strcat_char(tmp, '['); - n = 1; - p = q; - for (; *q; q++) { - if (!IS_ALNUM(*q) && *q != '_' && *q != '-') { - break; - } - Strcat_char(tmp, *q); - n++; - if (n + 1 >= nw) - break; - } - Strcat_char(tmp, ']'); - n++; - img_end: -#ifdef USE_IMAGE - if (use_image) { - for (; n < nw; n++) - Strcat_char(tmp, ' '); - } -#endif - Strcat_charp(tmp, "</img_alt>"); - if (pre_int) - Strcat_charp(tmp, "</pre_int>"); - if (r) { - Strcat_charp(tmp, "</input_alt>"); - process_n_form(); - } -#ifdef USE_IMAGE - if (use_image) { - switch (align) { - case ALIGN_RIGHT: - case ALIGN_CENTER: - case ALIGN_LEFT: - Strcat_charp(tmp, "</div_int>"); - break; - } - } -#endif - return tmp; -} - -Str -process_anchor(struct parsed_tag *tag, char *tagbuf) -{ - if (parsedtag_need_reconstruct(tag)) { - parsedtag_set_value(tag, ATTR_HSEQ, Sprintf("%d", cur_hseq++)->ptr); - return parsedtag2str(tag); - } - else { - Str tmp = Sprintf("<a hseq=\"%d\"", cur_hseq++); - Strcat_charp(tmp, tagbuf + 2); - return tmp; - } -} - -Str -process_input(struct parsed_tag *tag) -{ - int i, w, v, x, y, z, iw, ih; - char *q, *p, *r, *p2, *s; - Str tmp = NULL; - char *qq = ""; - int qlen = 0; - - if (cur_form_id < 0) { - char *s = "<form_int method=internal action=none>"; - tmp = process_form(parse_tag(&s, TRUE)); - } - if (tmp == NULL) - tmp = Strnew(); - - p = "text"; - parsedtag_get_value(tag, ATTR_TYPE, &p); - q = NULL; - parsedtag_get_value(tag, ATTR_VALUE, &q); - r = ""; - parsedtag_get_value(tag, ATTR_NAME, &r); - w = 20; - parsedtag_get_value(tag, ATTR_SIZE, &w); - i = 20; - parsedtag_get_value(tag, ATTR_MAXLENGTH, &i); - p2 = NULL; - parsedtag_get_value(tag, ATTR_ALT, &p2); - x = parsedtag_exists(tag, ATTR_CHECKED); - y = parsedtag_exists(tag, ATTR_ACCEPT); - z = parsedtag_exists(tag, ATTR_READONLY); - - v = formtype(p); - if (v == FORM_UNKNOWN) - return NULL; - - if (!q) { - switch (v) { - case FORM_INPUT_IMAGE: - case FORM_INPUT_SUBMIT: - case FORM_INPUT_BUTTON: - q = "SUBMIT"; - break; - case FORM_INPUT_RESET: - q = "RESET"; - break; - /* if no VALUE attribute is specified in - * <INPUT TYPE=CHECKBOX> tag, then the value "on" is used - * as a default value. It is not a part of HTML4.0 - * specification, but an imitation of Netscape behaviour. - */ - case FORM_INPUT_CHECKBOX: - q = "on"; - } - } - /* VALUE attribute is not allowed in <INPUT TYPE=FILE> tag. */ - if (v == FORM_INPUT_FILE) - q = NULL; - if (q) { - qq = html_quote(q); - qlen = get_strwidth(q); - } - - Strcat_charp(tmp, "<pre_int>"); - switch (v) { - case FORM_INPUT_PASSWORD: - case FORM_INPUT_TEXT: - case FORM_INPUT_FILE: - case FORM_INPUT_CHECKBOX: - Strcat_char(tmp, '['); - break; - case FORM_INPUT_RADIO: - Strcat_char(tmp, '('); - } - Strcat(tmp, Sprintf("<input_alt hseq=\"%d\" fid=\"%d\" type=%s " - "name=\"%s\" width=%d maxlength=%d value=\"%s\"", - cur_hseq++, cur_form_id, p, html_quote(r), w, i, qq)); - if (x) - Strcat_charp(tmp, " checked"); - if (y) - Strcat_charp(tmp, " accept"); - if (z) - Strcat_charp(tmp, " readonly"); - Strcat_char(tmp, '>'); - - if (v == FORM_INPUT_HIDDEN) - Strcat_charp(tmp, "</input_alt></pre_int>"); - else { - switch (v) { - case FORM_INPUT_PASSWORD: - case FORM_INPUT_TEXT: - case FORM_INPUT_FILE: - Strcat_charp(tmp, "<u>"); - break; - case FORM_INPUT_IMAGE: - s = NULL; - parsedtag_get_value(tag, ATTR_SRC, &s); - if (s) { - Strcat(tmp, Sprintf("<img src=\"%s\"", html_quote(s))); - if (p2) - Strcat(tmp, Sprintf(" alt=\"%s\"", html_quote(p2))); - if (parsedtag_get_value(tag, ATTR_WIDTH, &iw)) - Strcat(tmp, Sprintf(" width=\"%d\"", iw)); - if (parsedtag_get_value(tag, ATTR_HEIGHT, &ih)) - Strcat(tmp, Sprintf(" height=\"%d\"", ih)); - Strcat_charp(tmp, ">"); - Strcat_charp(tmp, "</input_alt></pre_int>"); - return tmp; - } - case FORM_INPUT_SUBMIT: - case FORM_INPUT_BUTTON: - case FORM_INPUT_RESET: - Strcat_charp(tmp, "["); - break; - } - switch (v) { - case FORM_INPUT_PASSWORD: - i = 0; - if (q) { - for (; i < qlen && i < w; i++) - Strcat_char(tmp, '*'); - } - for (; i < w; i++) - Strcat_char(tmp, ' '); - break; - case FORM_INPUT_TEXT: - case FORM_INPUT_FILE: - if (q) - Strcat(tmp, textfieldrep(Strnew_charp(q), w)); - else { - for (i = 0; i < w; i++) - Strcat_char(tmp, ' '); - } - break; - case FORM_INPUT_SUBMIT: - case FORM_INPUT_BUTTON: - if (p2) - Strcat_charp(tmp, html_quote(p2)); - else - Strcat_charp(tmp, qq); - break; - case FORM_INPUT_RESET: - Strcat_charp(tmp, qq); - break; - case FORM_INPUT_RADIO: - case FORM_INPUT_CHECKBOX: - if (x) - Strcat_char(tmp, '*'); - else - Strcat_char(tmp, ' '); - break; - } - switch (v) { - case FORM_INPUT_PASSWORD: - case FORM_INPUT_TEXT: - case FORM_INPUT_FILE: - Strcat_charp(tmp, "</u>"); - break; - case FORM_INPUT_IMAGE: - case FORM_INPUT_SUBMIT: - case FORM_INPUT_BUTTON: - case FORM_INPUT_RESET: - Strcat_charp(tmp, "]"); - } - Strcat_charp(tmp, "</input_alt>"); - switch (v) { - case FORM_INPUT_PASSWORD: - case FORM_INPUT_TEXT: - case FORM_INPUT_FILE: - case FORM_INPUT_CHECKBOX: - Strcat_char(tmp, ']'); - break; - case FORM_INPUT_RADIO: - Strcat_char(tmp, ')'); - } - Strcat_charp(tmp, "</pre_int>"); - } - return tmp; -} - -Str -process_select(struct parsed_tag *tag) -{ - Str tmp = NULL; - char *p; - - if (cur_form_id < 0) { - char *s = "<form_int method=internal action=none>"; - tmp = process_form(parse_tag(&s, TRUE)); - } - - p = ""; - parsedtag_get_value(tag, ATTR_NAME, &p); - cur_select = Strnew_charp(p); - select_is_multiple = parsedtag_exists(tag, ATTR_MULTIPLE); - -#ifdef MENU_SELECT - if (!select_is_multiple) { - select_str = Sprintf("<pre_int>[<input_alt hseq=\"%d\" " - "fid=\"%d\" type=select name=\"%s\" selectnumber=%d", - cur_hseq++, cur_form_id, html_quote(p), n_select); - Strcat_charp(select_str, ">"); - if (n_select == max_select) { - max_select *= 2; - select_option = - New_Reuse(FormSelectOption, select_option, max_select); - } - select_option[n_select].first = NULL; - select_option[n_select].last = NULL; - cur_option_maxwidth = 0; - } - else -#endif /* MENU_SELECT */ - select_str = Strnew(); - cur_option = NULL; - cur_status = R_ST_NORMAL; - n_selectitem = 0; - return tmp; -} - -Str -process_n_select(void) -{ - if (cur_select == NULL) - return NULL; - process_option(); -#ifdef MENU_SELECT - if (!select_is_multiple) { - if (select_option[n_select].first) { - FormItemList sitem; - chooseSelectOption(&sitem, select_option[n_select].first); - Strcat(select_str, textfieldrep(sitem.label, cur_option_maxwidth)); - } - Strcat_charp(select_str, "</input_alt>]</pre_int>"); - n_select++; - } - else -#endif /* MENU_SELECT */ - Strcat_charp(select_str, "<br>"); - cur_select = NULL; - n_selectitem = 0; - return select_str; -} - -void -feed_select(char *str) -{ - Str tmp = Strnew(); - int prev_status = cur_status; - static int prev_spaces = -1; - char *p; - - if (cur_select == NULL) - return; - while (read_token(tmp, &str, &cur_status, 0, 0)) { - if (cur_status != R_ST_NORMAL || prev_status != R_ST_NORMAL) - continue; - p = tmp->ptr; - if (tmp->ptr[0] == '<' && Strlastchar(tmp) == '>') { - struct parsed_tag *tag; - char *q; - if (!(tag = parse_tag(&p, FALSE))) - continue; - switch (tag->tagid) { - case HTML_OPTION: - process_option(); - cur_option = Strnew(); - if (parsedtag_get_value(tag, ATTR_VALUE, &q)) - cur_option_value = Strnew_charp(q); - else - cur_option_value = NULL; - if (parsedtag_get_value(tag, ATTR_LABEL, &q)) - cur_option_label = Strnew_charp(q); - else - cur_option_label = NULL; - cur_option_selected = parsedtag_exists(tag, ATTR_SELECTED); - prev_spaces = -1; - break; - case HTML_N_OPTION: - /* do nothing */ - break; - default: - /* never happen */ - break; - } - } - else if (cur_option) { - while (*p) { - if (IS_SPACE(*p) && prev_spaces != 0) { - p++; - if (prev_spaces > 0) - prev_spaces++; - } - else { - if (IS_SPACE(*p)) - prev_spaces = 1; - else - prev_spaces = 0; - if (*p == '&') - Strcat_charp(cur_option, getescapecmd(&p)); - else - Strcat_char(cur_option, *(p++)); - } - } - } - } -} - -void -process_option(void) -{ - char begin_char = '[', end_char = ']'; - int len; - - if (cur_select == NULL || cur_option == NULL) - return; - while (cur_option->length > 0 && IS_SPACE(Strlastchar(cur_option))) - Strshrink(cur_option, 1); - if (cur_option_value == NULL) - cur_option_value = cur_option; - if (cur_option_label == NULL) - cur_option_label = cur_option; -#ifdef MENU_SELECT - if (!select_is_multiple) { - len = get_Str_strwidth(cur_option_label); - if (len > cur_option_maxwidth) - cur_option_maxwidth = len; - addSelectOption(&select_option[n_select], - cur_option_value, - cur_option_label, cur_option_selected); - return; - } -#endif /* MENU_SELECT */ - if (!select_is_multiple) { - begin_char = '('; - end_char = ')'; - } - Strcat(select_str, Sprintf("<br><pre_int>%c<input_alt hseq=\"%d\" " - "fid=\"%d\" type=%s name=\"%s\" value=\"%s\"", - begin_char, cur_hseq++, cur_form_id, - select_is_multiple ? "checkbox" : "radio", - html_quote(cur_select->ptr), - html_quote(cur_option_value->ptr))); - if (cur_option_selected) - Strcat_charp(select_str, " checked>*</input_alt>"); - else - Strcat_charp(select_str, "> </input_alt>"); - Strcat_char(select_str, end_char); - Strcat_charp(select_str, html_quote(cur_option_label->ptr)); - Strcat_charp(select_str, "</pre_int>"); - n_selectitem++; -} - -Str -process_textarea(struct parsed_tag *tag, int width) -{ - Str tmp = NULL; - char *p; - - if (cur_form_id < 0) { - char *s = "<form_int method=internal action=none>"; - tmp = process_form(parse_tag(&s, TRUE)); - } - - p = ""; - parsedtag_get_value(tag, ATTR_NAME, &p); - cur_textarea = Strnew_charp(p); - cur_textarea_size = 20; - if (parsedtag_get_value(tag, ATTR_COLS, &p)) { - cur_textarea_size = atoi(p); - if (p[strlen(p) - 1] == '%') - cur_textarea_size = width * cur_textarea_size / 100 - 2; - if (cur_textarea_size <= 0) - cur_textarea_size = 20; - } - cur_textarea_rows = 1; - if (parsedtag_get_value(tag, ATTR_ROWS, &p)) { - cur_textarea_rows = atoi(p); - if (cur_textarea_rows <= 0) - cur_textarea_rows = 1; - } - cur_textarea_readonly = parsedtag_exists(tag, ATTR_READONLY); - if (n_textarea >= max_textarea) { - max_textarea *= 2; - textarea_str = New_Reuse(Str, textarea_str, max_textarea); - } - textarea_str[n_textarea] = Strnew(); - ignore_nl_textarea = TRUE; - - return tmp; -} - -Str -process_n_textarea(void) -{ - Str tmp; - int i; - - if (cur_textarea == NULL) - return NULL; - - tmp = Strnew(); - Strcat(tmp, Sprintf("<pre_int>[<input_alt hseq=\"%d\" fid=\"%d\" " - "type=textarea name=\"%s\" size=%d rows=%d " - "top_margin=%d textareanumber=%d", - cur_hseq, cur_form_id, - html_quote(cur_textarea->ptr), - cur_textarea_size, cur_textarea_rows, - cur_textarea_rows - 1, n_textarea)); - if (cur_textarea_readonly) - Strcat_charp(tmp, " readonly"); - Strcat_charp(tmp, "><u>"); - for (i = 0; i < cur_textarea_size; i++) - Strcat_char(tmp, ' '); - Strcat_charp(tmp, "</u></input_alt>]</pre_int>\n"); - cur_hseq++; - n_textarea++; - cur_textarea = NULL; - - return tmp; -} - -void -feed_textarea(char *str) -{ - if (cur_textarea == NULL) - return; - if (ignore_nl_textarea) { - if (*str == '\r') - str++; - if (*str == '\n') - str++; - } - ignore_nl_textarea = FALSE; - while (*str) { - if (*str == '&') - Strcat_charp(textarea_str[n_textarea], getescapecmd(&str)); - else if (*str == '\n') { - Strcat_charp(textarea_str[n_textarea], "\r\n"); - str++; - } - else if (*str != '\r') - Strcat_char(textarea_str[n_textarea], *(str++)); - } -} - -Str -process_hr(struct parsed_tag *tag, int width, int indent_width) -{ - Str tmp = Strnew_charp("<nobr>"); - int w = 0; - int x = ALIGN_CENTER; - - if (width > indent_width) - width -= indent_width; - if (parsedtag_get_value(tag, ATTR_WIDTH, &w)) - w = REAL_WIDTH(w, width); - else - w = width; - - parsedtag_get_value(tag, ATTR_ALIGN, &x); - switch (x) { - case ALIGN_CENTER: - Strcat_charp(tmp, "<div_int align=center>"); - break; - case ALIGN_RIGHT: - Strcat_charp(tmp, "<div_int align=right>"); - break; - case ALIGN_LEFT: - Strcat_charp(tmp, "<div_int align=left>"); - break; - } - w /= symbol_width; - if (w <= 0) - w = 1; - push_symbol(tmp, HR_SYMBOL, symbol_width, w); - Strcat_charp(tmp, "</div_int></nobr>"); - return tmp; -} - -#ifdef USE_M17N -static char * -check_charset(char *p) -{ - return wc_guess_charset(p, 0) ? p : NULL; -} - -static char * -check_accept_charset(char *ac) -{ - char *s = ac, *e; - - while (*s) { - while (*s && (IS_SPACE(*s) || *s == ',')) - s++; - if (!*s) - break; - e = s; - while (*e && !(IS_SPACE(*e) || *e == ',')) - e++; - if (wc_guess_charset(Strnew_charp_n(s, e - s)->ptr, 0)) - return ac; - s = e; - } - return NULL; -} -#endif - -static Str -process_form_int(struct parsed_tag *tag, int fid) -{ - char *p, *q, *r, *s, *tg, *n; - - p = "get"; - parsedtag_get_value(tag, ATTR_METHOD, &p); - q = "!CURRENT_URL!"; - parsedtag_get_value(tag, ATTR_ACTION, &q); - r = NULL; -#ifdef USE_M17N - if (parsedtag_get_value(tag, ATTR_ACCEPT_CHARSET, &r)) - r = check_accept_charset(r); - if (!r && parsedtag_get_value(tag, ATTR_CHARSET, &r)) - r = check_charset(r); -#endif - s = NULL; - parsedtag_get_value(tag, ATTR_ENCTYPE, &s); - tg = NULL; - parsedtag_get_value(tag, ATTR_TARGET, &tg); - n = NULL; - parsedtag_get_value(tag, ATTR_NAME, &n); - - if (fid < 0) { - form_max++; - form_sp++; - fid = form_max; - } - else { /* <form_int> */ - if (form_max < fid) - form_max = fid; - form_sp = fid; - } - if (forms_size == 0) { - forms_size = INITIAL_FORM_SIZE; - forms = New_N(FormList *, forms_size); - form_stack = NewAtom_N(int, forms_size); - } - else if (forms_size <= form_max) { - forms_size += form_max; - forms = New_Reuse(FormList *, forms, forms_size); - form_stack = New_Reuse(int, form_stack, forms_size); - } - form_stack[form_sp] = fid; - - if (w3m_halfdump) { - Str tmp = Sprintf("<form_int fid=\"%d\" action=\"%s\" method=\"%s\"", - fid, html_quote(q), html_quote(p)); - if (s) - Strcat(tmp, Sprintf(" enctype=\"%s\"", html_quote(s))); - if (tg) - Strcat(tmp, Sprintf(" target=\"%s\"", html_quote(tg))); - if (n) - Strcat(tmp, Sprintf(" name=\"%s\"", html_quote(n))); -#ifdef USE_M17N - if (r) - Strcat(tmp, Sprintf(" accept-charset=\"%s\"", html_quote(r))); -#endif - Strcat_charp(tmp, ">"); - return tmp; - } - - forms[fid] = newFormList(q, p, r, s, tg, n, NULL); - return NULL; -} - -Str -process_form(struct parsed_tag *tag) -{ - return process_form_int(tag, -1); -} - -Str -process_n_form(void) -{ - if (form_sp >= 0) - form_sp--; - return NULL; -} - -static void -clear_ignore_p_flag(int cmd, struct readbuffer *obuf) -{ - static int clear_flag_cmd[] = { - HTML_HR, HTML_UNKNOWN - }; - int i; - - for (i = 0; clear_flag_cmd[i] != HTML_UNKNOWN; i++) { - if (cmd == clear_flag_cmd[i]) { - obuf->flag &= ~RB_IGNORE_P; - return; - } - } -} - -static void -set_alignment(struct readbuffer *obuf, struct parsed_tag *tag) -{ - long flag = -1; - int align; - - if (parsedtag_get_value(tag, ATTR_ALIGN, &align)) { - switch (align) { - case ALIGN_CENTER: - flag = RB_CENTER; - break; - case ALIGN_RIGHT: - flag = RB_RIGHT; - break; - case ALIGN_LEFT: - flag = RB_LEFT; - } - } - RB_SAVE_FLAG(obuf); - if (flag != -1) { - RB_SET_ALIGN(obuf, flag); - } -} - -#ifdef ID_EXT -static void -process_idattr(struct readbuffer *obuf, int cmd, struct parsed_tag *tag) -{ - char *id = NULL, *framename = NULL; - Str idtag = NULL; - - /* - * HTML_TABLE is handled by the other process. - */ - if (cmd == HTML_TABLE) - return; - - parsedtag_get_value(tag, ATTR_ID, &id); - parsedtag_get_value(tag, ATTR_FRAMENAME, &framename); - if (id == NULL) - return; - if (framename) - idtag = Sprintf("<_id id=\"%s\" framename=\"%s\">", - html_quote(id), html_quote(framename)); - else - idtag = Sprintf("<_id id=\"%s\">", html_quote(id)); - push_tag(obuf, idtag->ptr, HTML_NOP); -} -#endif /* ID_EXT */ - -#define CLOSE_P if (obuf->flag & RB_P) { \ - flushline(h_env, obuf, envs[h_env->envc].indent,0,h_env->limit);\ - RB_RESTORE_FLAG(obuf);\ - obuf->flag &= ~RB_P;\ - } - -#define CLOSE_A \ - CLOSE_P; \ - close_anchor(h_env, obuf); - -#define CLOSE_DT \ - if (obuf->flag & RB_IN_DT) { \ - obuf->flag &= ~RB_IN_DT; \ - HTMLlineproc1("</b>", h_env); \ - } - -#define PUSH_ENV(cmd) \ - if (++h_env->envc_real < h_env->nenv) { \ - ++h_env->envc; \ - envs[h_env->envc].env = cmd; \ - envs[h_env->envc].count = 0; \ - if (h_env->envc <= MAX_INDENT_LEVEL) \ - envs[h_env->envc].indent = envs[h_env->envc - 1].indent + INDENT_INCR; \ - else \ - envs[h_env->envc].indent = envs[h_env->envc - 1].indent; \ - } - -#define POP_ENV \ - if (h_env->envc_real-- < h_env->nenv) \ - h_env->envc--; - -static int -ul_type(struct parsed_tag *tag, int default_type) -{ - char *p; - if (parsedtag_get_value(tag, ATTR_TYPE, &p)) { - if (!strcasecmp(p, "disc")) - return (int)'d'; - else if (!strcasecmp(p, "circle")) - return (int)'c'; - else if (!strcasecmp(p, "square")) - return (int)'s'; - } - return default_type; -} - -int -getMetaRefreshParam(char *q, Str *refresh_uri) -{ - int refresh_interval; - char *r; - Str s_tmp = NULL; - - if (q == NULL || refresh_uri == NULL) - return 0; - - refresh_interval = atoi(q); - if (refresh_interval < 0) - return 0; - - while (*q) { - if (!strncasecmp(q, "url=", 4)) { - q += 4; - if (*q == '\"') /* " */ - q++; - r = q; - while (*r && !IS_SPACE(*r) && *r != ';') - r++; - s_tmp = Strnew_charp_n(q, r - q); - - if (s_tmp->ptr[s_tmp->length - 1] == '\"') { /* " - */ - s_tmp->length--; - s_tmp->ptr[s_tmp->length] = '\0'; - } - q = r; - } - while (*q && *q != ';') - q++; - if (*q == ';') - q++; - while (*q && *q == ' ') - q++; - } - *refresh_uri = s_tmp; - return refresh_interval; -} - -int -HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) -{ - char *p, *q, *r; - int i, w, x, y, z, count, width; - struct readbuffer *obuf = h_env->obuf; - struct environment *envs = h_env->envs; - Str tmp; - int hseq; - int cmd; -#ifdef ID_EXT - char *id = NULL; -#endif /* ID_EXT */ - - cmd = tag->tagid; - - if (obuf->flag & RB_PRE) { - switch (cmd) { - case HTML_NOBR: - case HTML_N_NOBR: - case HTML_PRE_INT: - case HTML_N_PRE_INT: - return 1; - } - } - - switch (cmd) { - case HTML_B: - obuf->in_bold++; - if (obuf->in_bold > 1) - return 1; - return 0; - case HTML_N_B: - if (obuf->in_bold == 1 && close_effect0(obuf, HTML_B)) - obuf->in_bold = 0; - if (obuf->in_bold > 0) { - obuf->in_bold--; - if (obuf->in_bold == 0) - return 0; - } - return 1; - case HTML_U: - obuf->in_under++; - if (obuf->in_under > 1) - return 1; - return 0; - case HTML_N_U: - if (obuf->in_under == 1 && close_effect0(obuf, HTML_U)) - obuf->in_under = 0; - if (obuf->in_under > 0) { - obuf->in_under--; - if (obuf->in_under == 0) - return 0; - } - return 1; - case HTML_EM: - HTMLlineproc1("<b>", h_env); - return 1; - case HTML_N_EM: - HTMLlineproc1("</b>", h_env); - return 1; - case HTML_Q: - HTMLlineproc1("`", h_env); - return 1; - case HTML_N_Q: - HTMLlineproc1("'", h_env); - return 1; - case HTML_P: - case HTML_N_P: - CLOSE_A; - if (!(obuf->flag & RB_IGNORE_P)) { - flushline(h_env, obuf, envs[h_env->envc].indent, 1, h_env->limit); - do_blankline(h_env, obuf, envs[h_env->envc].indent, 0, - h_env->limit); - } - obuf->flag |= RB_IGNORE_P; - if (cmd == HTML_P) { - set_alignment(obuf, tag); - obuf->flag |= RB_P; - } - return 1; - case HTML_BR: - flushline(h_env, obuf, envs[h_env->envc].indent, 1, h_env->limit); - h_env->blank_lines = 0; - return 1; - case HTML_H: - if (!(obuf->flag & (RB_PREMODE | RB_IGNORE_P))) { - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - do_blankline(h_env, obuf, envs[h_env->envc].indent, 0, - h_env->limit); - } - HTMLlineproc1("<b>", h_env); - set_alignment(obuf, tag); - return 1; - case HTML_N_H: - HTMLlineproc1("</b>", h_env); - if (!(obuf->flag & RB_PREMODE)) { - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - } - do_blankline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - RB_RESTORE_FLAG(obuf); - close_anchor(h_env, obuf); - obuf->flag |= RB_IGNORE_P; - return 1; - case HTML_UL: - case HTML_OL: - case HTML_BLQ: - CLOSE_A; - if (!(obuf->flag & RB_IGNORE_P)) { - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - if (!(obuf->flag & RB_PREMODE) && - (h_env->envc == 0 || cmd == HTML_BLQ)) - do_blankline(h_env, obuf, envs[h_env->envc].indent, 0, - h_env->limit); - } - PUSH_ENV(cmd); - if (cmd == HTML_UL || cmd == HTML_OL) { - if (parsedtag_get_value(tag, ATTR_START, &count)) { - envs[h_env->envc].count = count - 1; - } - } - if (cmd == HTML_OL) { - envs[h_env->envc].type = '1'; - if (parsedtag_get_value(tag, ATTR_TYPE, &p)) { - envs[h_env->envc].type = (int)*p; - } - } - if (cmd == HTML_UL) - envs[h_env->envc].type = ul_type(tag, 0); - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - return 1; - case HTML_N_UL: - case HTML_N_OL: - case HTML_N_DL: - case HTML_N_BLQ: - CLOSE_DT; - CLOSE_A; - if (h_env->envc > 0) { - flushline(h_env, obuf, envs[h_env->envc - 1].indent, 0, - h_env->limit); - POP_ENV; - if (!(obuf->flag & RB_PREMODE) && - (h_env->envc == 0 || cmd == HTML_N_DL || cmd == HTML_N_BLQ)) { - do_blankline(h_env, obuf, - envs[h_env->envc].indent, - INDENT_INCR, h_env->limit); - obuf->flag |= RB_IGNORE_P; - } - } - close_anchor(h_env, obuf); - return 1; - case HTML_DL: - CLOSE_A; - if (!(obuf->flag & RB_IGNORE_P)) { - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - if (!(obuf->flag & RB_PREMODE)) - do_blankline(h_env, obuf, envs[h_env->envc].indent, 0, - h_env->limit); - } - PUSH_ENV(cmd); - if (parsedtag_exists(tag, ATTR_COMPACT)) - envs[h_env->envc].env = HTML_DL_COMPACT; - obuf->flag |= RB_IGNORE_P; - return 1; - case HTML_LI: - CLOSE_A; - CLOSE_DT; - if (h_env->envc > 0) { - Str num; - flushline(h_env, obuf, - envs[h_env->envc - 1].indent, 0, h_env->limit); - envs[h_env->envc].count++; - if (parsedtag_get_value(tag, ATTR_VALUE, &p)) { - count = atoi(p); - if (count > 0) - envs[h_env->envc].count = count; - else - envs[h_env->envc].count = 0; - } - switch (envs[h_env->envc].env) { - case HTML_UL: - envs[h_env->envc].type = ul_type(tag, envs[h_env->envc].type); - for (i = 0; i < INDENT_INCR - 3; i++) - push_charp(obuf, 1, NBSP, PC_ASCII); - tmp = Strnew(); - switch (envs[h_env->envc].type) { - case 'd': - push_symbol(tmp, UL_SYMBOL_DISC, symbol_width, 1); - break; - case 'c': - push_symbol(tmp, UL_SYMBOL_CIRCLE, symbol_width, 1); - break; - case 's': - push_symbol(tmp, UL_SYMBOL_SQUARE, symbol_width, 1); - break; - default: - push_symbol(tmp, - UL_SYMBOL((h_env->envc_real - - 1) % MAX_UL_LEVEL), symbol_width, - 1); - break; - } - if (symbol_width == 1) - push_charp(obuf, 1, NBSP, PC_ASCII); - push_str(obuf, symbol_width, tmp, PC_ASCII); - push_charp(obuf, 1, NBSP, PC_ASCII); - set_space_to_prevchar(obuf->prevchar); - break; - case HTML_OL: - if (parsedtag_get_value(tag, ATTR_TYPE, &p)) - envs[h_env->envc].type = (int)*p; - switch ((envs[h_env->envc].count > 0)? envs[h_env->envc].type: '1') { - case 'i': - num = romanNumeral(envs[h_env->envc].count); - break; - case 'I': - num = romanNumeral(envs[h_env->envc].count); - Strupper(num); - break; - case 'a': - num = romanAlphabet(envs[h_env->envc].count); - break; - case 'A': - num = romanAlphabet(envs[h_env->envc].count); - Strupper(num); - break; - default: - num = Sprintf("%d", envs[h_env->envc].count); - break; - } - if (INDENT_INCR >= 4) - Strcat_charp(num, ". "); - else - Strcat_char(num, '.'); - push_spaces(obuf, 1, INDENT_INCR - num->length); - push_str(obuf, num->length, num, PC_ASCII); - if (INDENT_INCR >= 4) - set_space_to_prevchar(obuf->prevchar); - break; - default: - push_spaces(obuf, 1, INDENT_INCR); - break; - } - } - else { - flushline(h_env, obuf, 0, 0, h_env->limit); - } - obuf->flag |= RB_IGNORE_P; - return 1; - case HTML_DT: - CLOSE_A; - if (h_env->envc == 0 || - (h_env->envc_real < h_env->nenv && - envs[h_env->envc].env != HTML_DL && - envs[h_env->envc].env != HTML_DL_COMPACT)) { - PUSH_ENV(HTML_DL); - } - if (h_env->envc > 0) { - flushline(h_env, obuf, - envs[h_env->envc - 1].indent, 0, h_env->limit); - } - if (!(obuf->flag & RB_IN_DT)) { - HTMLlineproc1("<b>", h_env); - obuf->flag |= RB_IN_DT; - } - obuf->flag |= RB_IGNORE_P; - return 1; - case HTML_DD: - CLOSE_A; - CLOSE_DT; - if (envs[h_env->envc].env == HTML_DL_COMPACT) { - if (obuf->pos > envs[h_env->envc].indent) - flushline(h_env, obuf, envs[h_env->envc].indent, 0, - h_env->limit); - else - push_spaces(obuf, 1, envs[h_env->envc].indent - obuf->pos); - } - else - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - /* obuf->flag |= RB_IGNORE_P; */ - return 1; - case HTML_TITLE: - close_anchor(h_env, obuf); - process_title(tag); - obuf->flag |= RB_TITLE; - obuf->end_tag = HTML_N_TITLE; - return 1; - case HTML_N_TITLE: - if (!(obuf->flag & RB_TITLE)) - return 1; - obuf->flag &= ~RB_TITLE; - obuf->end_tag = 0; - tmp = process_n_title(tag); - if (tmp) - HTMLlineproc1(tmp->ptr, h_env); - return 1; - case HTML_TITLE_ALT: - if (parsedtag_get_value(tag, ATTR_TITLE, &p)) - h_env->title = html_unquote(p); - return 0; - case HTML_FRAMESET: - PUSH_ENV(cmd); - push_charp(obuf, 9, "--FRAME--", PC_ASCII); - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - return 0; - case HTML_N_FRAMESET: - if (h_env->envc > 0) { - POP_ENV; - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - } - return 0; - case HTML_NOFRAMES: - CLOSE_A; - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - obuf->flag |= (RB_NOFRAMES | RB_IGNORE_P); - /* istr = str; */ - return 1; - case HTML_N_NOFRAMES: - CLOSE_A; - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - obuf->flag &= ~RB_NOFRAMES; - return 1; - case HTML_FRAME: - q = r = NULL; - parsedtag_get_value(tag, ATTR_SRC, &q); - parsedtag_get_value(tag, ATTR_NAME, &r); - if (q) { - q = html_quote(q); - push_tag(obuf, Sprintf("<a hseq=\"%d\" href=\"%s\">", - cur_hseq++, q)->ptr, HTML_A); - if (r) - q = html_quote(r); - push_charp(obuf, get_strwidth(q), q, PC_ASCII); - push_tag(obuf, "</a>", HTML_N_A); - } - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - return 0; - case HTML_HR: - close_anchor(h_env, obuf); - tmp = process_hr(tag, h_env->limit, envs[h_env->envc].indent); - HTMLlineproc1(tmp->ptr, h_env); - set_space_to_prevchar(obuf->prevchar); - return 1; - case HTML_PRE: - x = parsedtag_exists(tag, ATTR_FOR_TABLE); - CLOSE_A; - if (!(obuf->flag & RB_IGNORE_P)) { - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - if (!x) - do_blankline(h_env, obuf, envs[h_env->envc].indent, 0, - h_env->limit); - } - else - fillline(obuf, envs[h_env->envc].indent); - obuf->flag |= (RB_PRE | RB_IGNORE_P); - /* istr = str; */ - return 1; - case HTML_N_PRE: - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - if (!(obuf->flag & RB_IGNORE_P)) { - do_blankline(h_env, obuf, envs[h_env->envc].indent, 0, - h_env->limit); - obuf->flag |= RB_IGNORE_P; - } - obuf->flag &= ~RB_PRE; - close_anchor(h_env, obuf); - return 1; - case HTML_PRE_INT: - i = obuf->line->length; - append_tags(obuf); - if (!(obuf->flag & RB_SPECIAL)) { - set_breakpoint(obuf, obuf->line->length - i); - } - obuf->flag |= RB_PRE_INT; - return 0; - case HTML_N_PRE_INT: - push_tag(obuf, "</pre_int>", HTML_N_PRE_INT); - obuf->flag &= ~RB_PRE_INT; - if (!(obuf->flag & RB_SPECIAL) && obuf->pos > obuf->bp.pos) { - set_prevchar(obuf->prevchar, "", 0); - obuf->prev_ctype = PC_CTRL; - } - return 1; - case HTML_NOBR: - obuf->flag |= RB_NOBR; - obuf->nobr_level++; - return 0; - case HTML_N_NOBR: - if (obuf->nobr_level > 0) - obuf->nobr_level--; - if (obuf->nobr_level == 0) - obuf->flag &= ~RB_NOBR; - return 0; - case HTML_PRE_PLAIN: - CLOSE_A; - if (!(obuf->flag & RB_IGNORE_P)) { - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - do_blankline(h_env, obuf, envs[h_env->envc].indent, 0, - h_env->limit); - } - obuf->flag |= (RB_PRE | RB_IGNORE_P); - return 1; - case HTML_N_PRE_PLAIN: - CLOSE_A; - if (!(obuf->flag & RB_IGNORE_P)) { - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - do_blankline(h_env, obuf, envs[h_env->envc].indent, 0, - h_env->limit); - obuf->flag |= RB_IGNORE_P; - } - obuf->flag &= ~RB_PRE; - return 1; - case HTML_LISTING: - case HTML_XMP: - case HTML_PLAINTEXT: - CLOSE_A; - if (!(obuf->flag & RB_IGNORE_P)) { - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - do_blankline(h_env, obuf, envs[h_env->envc].indent, 0, - h_env->limit); - } - obuf->flag |= (RB_PLAIN | RB_IGNORE_P); - switch (cmd) { - case HTML_LISTING: - obuf->end_tag = HTML_N_LISTING; - break; - case HTML_XMP: - obuf->end_tag = HTML_N_XMP; - break; - case HTML_PLAINTEXT: - obuf->end_tag = MAX_HTMLTAG; - break; - } - return 1; - case HTML_N_LISTING: - case HTML_N_XMP: - CLOSE_A; - if (!(obuf->flag & RB_IGNORE_P)) { - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - do_blankline(h_env, obuf, envs[h_env->envc].indent, 0, - h_env->limit); - obuf->flag |= RB_IGNORE_P; - } - obuf->flag &= ~RB_PLAIN; - obuf->end_tag = 0; - return 1; - case HTML_SCRIPT: - obuf->flag |= RB_SCRIPT; - obuf->end_tag = HTML_N_SCRIPT; - return 1; - case HTML_STYLE: - obuf->flag |= RB_STYLE; - obuf->end_tag = HTML_N_STYLE; - return 1; - case HTML_N_SCRIPT: - obuf->flag &= ~RB_SCRIPT; - obuf->end_tag = 0; - return 1; - case HTML_N_STYLE: - obuf->flag &= ~RB_STYLE; - obuf->end_tag = 0; - return 1; - case HTML_A: - if (obuf->anchor.url) - close_anchor(h_env, obuf); - - hseq = 0; - - if (parsedtag_get_value(tag, ATTR_HREF, &p)) - obuf->anchor.url = Strnew_charp(p)->ptr; - if (parsedtag_get_value(tag, ATTR_TARGET, &p)) - obuf->anchor.target = Strnew_charp(p)->ptr; - if (parsedtag_get_value(tag, ATTR_REFERER, &p)) - obuf->anchor.referer = Strnew_charp(p)->ptr; - if (parsedtag_get_value(tag, ATTR_TITLE, &p)) - obuf->anchor.title = Strnew_charp(p)->ptr; - if (parsedtag_get_value(tag, ATTR_ACCESSKEY, &p)) - obuf->anchor.accesskey = (unsigned char)*p; - if (parsedtag_get_value(tag, ATTR_HSEQ, &hseq)) - obuf->anchor.hseq = hseq; - - if (hseq == 0 && obuf->anchor.url) { - obuf->anchor.hseq = cur_hseq; - tmp = process_anchor(tag, h_env->tagbuf->ptr); - push_tag(obuf, tmp->ptr, HTML_A); - return 1; - } - return 0; - case HTML_N_A: - close_anchor(h_env, obuf); - return 1; - case HTML_IMG: - tmp = process_img(tag, h_env->limit); - HTMLlineproc1(tmp->ptr, h_env); - return 1; - case HTML_IMG_ALT: - if (parsedtag_get_value(tag, ATTR_SRC, &p)) - obuf->img_alt = Strnew_charp(p); -#ifdef USE_IMAGE - i = 0; - if (parsedtag_get_value(tag, ATTR_TOP_MARGIN, &i)) { - if (i > obuf->top_margin) - obuf->top_margin = i; - } - i = 0; - if (parsedtag_get_value(tag, ATTR_BOTTOM_MARGIN, &i)) { - if (i > obuf->bottom_margin) - obuf->bottom_margin = i; - } -#endif - return 0; - case HTML_N_IMG_ALT: - if (obuf->img_alt) { - if (!close_effect0(obuf, HTML_IMG_ALT)) - push_tag(obuf, "</img_alt>", HTML_N_IMG_ALT); - obuf->img_alt = NULL; - } - return 1; - case HTML_INPUT_ALT: - i = 0; - if (parsedtag_get_value(tag, ATTR_TOP_MARGIN, &i)) { - if (i > obuf->top_margin) - obuf->top_margin = i; - } - i = 0; - if (parsedtag_get_value(tag, ATTR_BOTTOM_MARGIN, &i)) { - if (i > obuf->bottom_margin) - obuf->bottom_margin = i; - } - return 0; - case HTML_TABLE: - close_anchor(h_env, obuf); - obuf->table_level++; - if (obuf->table_level >= MAX_TABLE) - break; - w = BORDER_NONE; - /* x: cellspacing, y: cellpadding */ - x = 2; - y = 1; - z = 0; - width = 0; - if (parsedtag_exists(tag, ATTR_BORDER)) { - if (parsedtag_get_value(tag, ATTR_BORDER, &w)) { - if (w > 2) - w = BORDER_THICK; - else if (w < 0) { /* weird */ - w = BORDER_THIN; - } - } - else - w = BORDER_THIN; - } - if (parsedtag_get_value(tag, ATTR_WIDTH, &i)) { - if (obuf->table_level == 0) - width = REAL_WIDTH(i, h_env->limit - envs[h_env->envc].indent); - else - width = RELATIVE_WIDTH(i); - } - if (parsedtag_exists(tag, ATTR_HBORDER)) - w = BORDER_NOWIN; - parsedtag_get_value(tag, ATTR_CELLSPACING, &x); - parsedtag_get_value(tag, ATTR_CELLPADDING, &y); - parsedtag_get_value(tag, ATTR_VSPACE, &z); -#ifdef ID_EXT - parsedtag_get_value(tag, ATTR_ID, &id); -#endif /* ID_EXT */ - tables[obuf->table_level] = begin_table(w, x, y, z); -#ifdef ID_EXT - if (id != NULL) - tables[obuf->table_level]->id = Strnew_charp(id); -#endif /* ID_EXT */ - table_mode[obuf->table_level].pre_mode = 0; - table_mode[obuf->table_level].indent_level = 0; - table_mode[obuf->table_level].nobr_level = 0; - table_mode[obuf->table_level].caption = 0; - table_mode[obuf->table_level].end_tag = 0; /* HTML_UNKNOWN */ -#ifndef TABLE_EXPAND - tables[obuf->table_level]->total_width = width; -#else - tables[obuf->table_level]->real_width = width; - tables[obuf->table_level]->total_width = 0; -#endif - return 1; - case HTML_N_TABLE: - /* should be processed in HTMLlineproc() */ - return 1; - case HTML_CENTER: - CLOSE_A; - if (!(obuf->flag & (RB_PREMODE | RB_IGNORE_P))) - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - RB_SAVE_FLAG(obuf); - RB_SET_ALIGN(obuf, RB_CENTER); - return 1; - case HTML_N_CENTER: - CLOSE_A; - if (!(obuf->flag & RB_PREMODE)) - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - RB_RESTORE_FLAG(obuf); - return 1; - case HTML_DIV: - CLOSE_A; - if (!(obuf->flag & RB_IGNORE_P)) - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - set_alignment(obuf, tag); - return 1; - case HTML_N_DIV: - CLOSE_A; - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - RB_RESTORE_FLAG(obuf); - return 1; - case HTML_DIV_INT: - CLOSE_P; - if (!(obuf->flag & RB_IGNORE_P)) - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - set_alignment(obuf, tag); - return 1; - case HTML_N_DIV_INT: - CLOSE_P; - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - RB_RESTORE_FLAG(obuf); - return 1; - case HTML_FORM: - CLOSE_A; - if (!(obuf->flag & RB_IGNORE_P)) - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - tmp = process_form(tag); - if (tmp) - HTMLlineproc1(tmp->ptr, h_env); - return 1; - case HTML_N_FORM: - CLOSE_A; - flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); - obuf->flag |= RB_IGNORE_P; - process_n_form(); - return 1; - case HTML_INPUT: - close_anchor(h_env, obuf); - tmp = process_input(tag); - if (tmp) - HTMLlineproc1(tmp->ptr, h_env); - return 1; - case HTML_SELECT: - close_anchor(h_env, obuf); - tmp = process_select(tag); - if (tmp) - HTMLlineproc1(tmp->ptr, h_env); - obuf->flag |= RB_INSELECT; - obuf->end_tag = HTML_N_SELECT; - return 1; - case HTML_N_SELECT: - obuf->flag &= ~RB_INSELECT; - obuf->end_tag = 0; - tmp = process_n_select(); - if (tmp) - HTMLlineproc1(tmp->ptr, h_env); - return 1; - case HTML_OPTION: - /* nothing */ - return 1; - case HTML_TEXTAREA: - close_anchor(h_env, obuf); - tmp = process_textarea(tag, h_env->limit); - if (tmp) - HTMLlineproc1(tmp->ptr, h_env); - obuf->flag |= RB_INTXTA; - obuf->end_tag = HTML_N_TEXTAREA; - return 1; - case HTML_N_TEXTAREA: - obuf->flag &= ~RB_INTXTA; - obuf->end_tag = 0; - tmp = process_n_textarea(); - if (tmp) - HTMLlineproc1(tmp->ptr, h_env); - return 1; - case HTML_ISINDEX: - p = ""; - q = "!CURRENT_URL!"; - parsedtag_get_value(tag, ATTR_PROMPT, &p); - parsedtag_get_value(tag, ATTR_ACTION, &q); - tmp = Strnew_m_charp("<form method=get action=\"", - html_quote(q), - "\">", - html_quote(p), - "<input type=text name=\"\" accept></form>", - NULL); - HTMLlineproc1(tmp->ptr, h_env); - return 1; - case HTML_META: - p = q = NULL; - parsedtag_get_value(tag, ATTR_HTTP_EQUIV, &p); - parsedtag_get_value(tag, ATTR_CONTENT, &q); -#ifdef USE_M17N - if (p && q && !strcasecmp(p, "Content-Type") && - (q = strcasestr(q, "charset")) != NULL) { - q += 7; - SKIP_BLANKS(q); - if (*q == '=') { - q++; - SKIP_BLANKS(q); - meta_charset = wc_guess_charset(q, 0); - } - } - else -#endif - if (p && q && !strcasecmp(p, "refresh")) { - int refresh_interval; - tmp = NULL; - refresh_interval = getMetaRefreshParam(q, &tmp); - if (tmp) { - q = html_quote(tmp->ptr); - tmp = Sprintf("Refresh (%d sec) <a href=\"%s\">%s</a>", - refresh_interval, q, q); - } - else if (refresh_interval > 0) - tmp = Sprintf("Refresh (%d sec)", refresh_interval); - if (tmp) { - HTMLlineproc1(tmp->ptr, h_env); - do_blankline(h_env, obuf, envs[h_env->envc].indent, 0, - h_env->limit); - if (!is_redisplay && - !((obuf->flag & RB_NOFRAMES) && RenderFrame)) { - tag->need_reconstruct = TRUE; - return 0; - } - } - } - return 1; - case HTML_BASE: -#ifdef USE_IMAGE - p = NULL; - if (parsedtag_get_value(tag, ATTR_HREF, &p)) { - if (!cur_baseURL) - cur_baseURL = New(ParsedURL); - parseURL(p, cur_baseURL, NULL); - } -#endif - case HTML_MAP: - case HTML_N_MAP: - case HTML_AREA: - return 0; - case HTML_DEL: - if (displayInsDel) - HTMLlineproc1("<U>[DEL:</U>", h_env); - else - obuf->flag |= RB_DEL; - return 1; - case HTML_N_DEL: - if (displayInsDel) - HTMLlineproc1("<U>:DEL]</U>", h_env); - else - obuf->flag &= ~RB_DEL; - return 1; - case HTML_S: - if (displayInsDel) - HTMLlineproc1("<U>[S:</U>", h_env); - else - obuf->flag |= RB_S; - return 1; - case HTML_N_S: - if (displayInsDel) - HTMLlineproc1("<U>:S]</U>", h_env); - else - obuf->flag &= ~RB_S; - return 1; - case HTML_INS: - if (displayInsDel) - HTMLlineproc1("<U>[INS:</U>", h_env); - return 1; - case HTML_N_INS: - if (displayInsDel) - HTMLlineproc1("<U>:INS]</U>", h_env); - return 1; - case HTML_SUP: - if (!(obuf->flag & (RB_DEL | RB_S))) - HTMLlineproc1("^", h_env); - return 1; - case HTML_N_SUP: - return 1; - case HTML_SUB: - if (!(obuf->flag & (RB_DEL | RB_S))) - HTMLlineproc1("[", h_env); - return 1; - case HTML_N_SUB: - if (!(obuf->flag & (RB_DEL | RB_S))) - HTMLlineproc1("]", h_env); - return 1; - case HTML_FONT: - case HTML_N_FONT: - case HTML_NOP: - return 1; - case HTML_BGSOUND: - if (view_unseenobject) { - if (parsedtag_get_value(tag, ATTR_SRC, &p)) { - Str s; - q = html_quote(p); - s = Sprintf("<A HREF=\"%s\">bgsound(%s)</A>", q, q); - HTMLlineproc1(s->ptr, h_env); - } - } - return 1; - case HTML_EMBED: - if (view_unseenobject) { - if (parsedtag_get_value(tag, ATTR_SRC, &p)) { - Str s; - q = html_quote(p); - s = Sprintf("<A HREF=\"%s\">embed(%s)</A>", q, q); - HTMLlineproc1(s->ptr, h_env); - } - } - return 1; - case HTML_APPLET: - if (view_unseenobject) { - if (parsedtag_get_value(tag, ATTR_ARCHIVE, &p)) { - Str s; - q = html_quote(p); - s = Sprintf("<A HREF=\"%s\">applet archive(%s)</A>", q, q); - HTMLlineproc1(s->ptr, h_env); - } - } - return 1; - case HTML_BODY: - if (view_unseenobject) { - if (parsedtag_get_value(tag, ATTR_BACKGROUND, &p)) { - Str s; - q = html_quote(p); - s = Sprintf("<IMG SRC=\"%s\" ALT=\"bg image(%s)\"><BR>", q, q); - HTMLlineproc1(s->ptr, h_env); - } - } - case HTML_N_HEAD: - if (obuf->flag & RB_TITLE) - HTMLlineproc1("</title>", h_env); - case HTML_HEAD: - case HTML_N_BODY: - return 1; - default: - /* obuf->prevchar = '\0'; */ - return 0; - } - /* not reached */ - return 0; -} - -#define PPUSH(p,c) {outp[pos]=(p);outc[pos]=(c);pos++;} -#define PSIZE \ - if (out_size <= pos + 1) { \ - out_size = pos * 3 / 2; \ - outc = New_Reuse(char, outc, out_size); \ - outp = New_Reuse(Lineprop, outp, out_size); \ - } - -static TextLineListItem *_tl_lp2; - -static Str -textlist_feed() -{ - TextLine *p; - if (_tl_lp2 != NULL) { - p = _tl_lp2->ptr; - _tl_lp2 = _tl_lp2->next; - return p->line; - } - return NULL; -} - -static void -HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) -{ - static char *outc = NULL; - static Lineprop *outp = NULL; - static int out_size = 0; - Anchor *a_href = NULL, *a_img = NULL, *a_form = NULL; - char *p, *q, *r, *s, *t, *str; - Lineprop mode, effect; - int pos; - int nlines; -#ifdef DEBUG - FILE *debug = NULL; -#endif - struct frameset *frameset_s[FRAMESTACK_SIZE]; - int frameset_sp = -1; - union frameset_element *idFrame = NULL; - char *id = NULL; - int hseq, form_id; - Str line; - char *endp; - char symbol = '\0'; - int internal = 0; - Anchor **a_textarea = NULL; -#ifdef MENU_SELECT - Anchor **a_select = NULL; -#endif - - if (out_size == 0) { - out_size = LINELEN; - outc = NewAtom_N(char, out_size); - outp = NewAtom_N(Lineprop, out_size); - } - - n_textarea = -1; - if (!max_textarea) { /* halfload */ - max_textarea = MAX_TEXTAREA; - textarea_str = New_N(Str, max_textarea); - a_textarea = New_N(Anchor *, max_textarea); - } -#ifdef MENU_SELECT - n_select = -1; - if (!max_select) { /* halfload */ - max_select = MAX_SELECT; - select_option = New_N(FormSelectOption, max_select); - a_select = New_N(Anchor *, max_select); - } -#endif - -#ifdef DEBUG - if (w3m_debug) - debug = fopen("zzzerr", "a"); -#endif - - effect = 0; - nlines = 0; - while ((line = feed()) != NULL) { -#ifdef DEBUG - if (w3m_debug) { - Strfputs(line, debug); - fputc('\n', debug); - } -#endif - if (n_textarea >= 0 && *(line->ptr) != '<') { /* halfload */ - Strcat(textarea_str[n_textarea], line); - continue; - } - proc_again: - if (++nlines == llimit) - break; - pos = 0; -#ifdef ENABLE_REMOVE_TRAILINGSPACES - Strremovetrailingspaces(line); -#endif - str = line->ptr; - endp = str + line->length; - while (str < endp) { - PSIZE; - mode = get_mctype(str); - if (effect & PC_SYMBOL && *str != '<') { -#ifdef USE_M17N - char **buf = set_symbol(symbol_width0); - int len; - - p = buf[(int)symbol]; - len = get_mclen(p); - mode = get_mctype(p); - PPUSH(mode | effect, *(p++)); - if (--len) { - mode = (mode & ~PC_WCHAR1) | PC_WCHAR2; - while (len--) { - PSIZE; - PPUSH(mode | effect, *(p++)); - } - } -#else - PPUSH(PC_ASCII | effect, SYMBOL_BASE + symbol); -#endif - str += symbol_width; - } -#ifdef USE_M17N - else if (mode == PC_CTRL || mode == PC_UNDEF) { -#else - else if (mode == PC_CTRL || IS_INTSPACE(*str)) { -#endif - PPUSH(PC_ASCII | effect, ' '); - str++; - } -#ifdef USE_M17N - else if (mode & PC_UNKNOWN) { - PPUSH(PC_ASCII | effect, ' '); - str += get_mclen(str); - } -#endif - else if (*str != '<' && *str != '&') { -#ifdef USE_M17N - int len = get_mclen(str); -#endif - PPUSH(mode | effect, *(str++)); -#ifdef USE_M17N - if (--len) { - mode = (mode & ~PC_WCHAR1) | PC_WCHAR2; - while (len--) { - PSIZE; - PPUSH(mode | effect, *(str++)); - } - } -#endif - } - else if (*str == '&') { - /* - * & escape processing - */ - p = getescapecmd(&str); - while (*p) { - PSIZE; - mode = get_mctype((unsigned char *)p); -#ifdef USE_M17N - if (mode == PC_CTRL || mode == PC_UNDEF) { -#else - if (mode == PC_CTRL || IS_INTSPACE(*str)) { -#endif - PPUSH(PC_ASCII | effect, ' '); - p++; - } -#ifdef USE_M17N - else if (mode & PC_UNKNOWN) { - PPUSH(PC_ASCII | effect, ' '); - p += get_mclen(p); - } -#endif - else { -#ifdef USE_M17N - int len = get_mclen(p); -#endif - PPUSH(mode | effect, *(p++)); -#ifdef USE_M17N - if (--len) { - mode = (mode & ~PC_WCHAR1) | PC_WCHAR2; - while (len--) { - PSIZE; - PPUSH(mode | effect, *(p++)); - } - } -#endif - } - } - } - else { - /* tag processing */ - struct parsed_tag *tag; - if (!(tag = parse_tag(&str, TRUE))) - continue; - switch (tag->tagid) { - case HTML_B: - effect |= PE_BOLD; - break; - case HTML_N_B: - effect &= ~PE_BOLD; - break; - case HTML_U: - effect |= PE_UNDER; - break; - case HTML_N_U: - effect &= ~PE_UNDER; - break; - case HTML_A: - if (renderFrameSet && - parsedtag_get_value(tag, ATTR_FRAMENAME, &p)) { - p = url_quote_conv(p, buf->document_charset); - if (!idFrame || strcmp(idFrame->body->name, p)) { - idFrame = search_frame(renderFrameSet, p); - if (idFrame && idFrame->body->attr != F_BODY) - idFrame = NULL; - } - } - p = r = s = NULL; - q = buf->baseTarget; - t = ""; - hseq = 0; - id = NULL; - if (parsedtag_get_value(tag, ATTR_NAME, &id)) { - id = url_quote_conv(id, buf->document_charset); - registerName(buf, id, currentLn(buf), pos); - } - if (parsedtag_get_value(tag, ATTR_HREF, &p)) - p = url_quote_conv(remove_space(p), - buf->document_charset); - if (parsedtag_get_value(tag, ATTR_TARGET, &q)) - q = url_quote_conv(q, buf->document_charset); - if (parsedtag_get_value(tag, ATTR_REFERER, &r)) - r = url_quote_conv(r, buf->document_charset); - parsedtag_get_value(tag, ATTR_TITLE, &s); - parsedtag_get_value(tag, ATTR_ACCESSKEY, &t); - parsedtag_get_value(tag, ATTR_HSEQ, &hseq); - if (hseq > 0) - buf->hmarklist = - putHmarker(buf->hmarklist, currentLn(buf), - pos, hseq - 1); - else if (hseq < 0) { - int h = -hseq - 1; - if (buf->hmarklist && - h < buf->hmarklist->nmark && - buf->hmarklist->marks[h].invalid) { - buf->hmarklist->marks[h].pos = pos; - buf->hmarklist->marks[h].line = currentLn(buf); - buf->hmarklist->marks[h].invalid = 0; - hseq = -hseq; - } - } - if (id && idFrame) - idFrame->body->nameList = - putAnchor(idFrame->body->nameList, id, NULL, - (Anchor **)NULL, NULL, NULL, '\0', - currentLn(buf), pos); - if (p) { - effect |= PE_ANCHOR; - a_href = registerHref(buf, p, q, r, s, - *t, currentLn(buf), pos); - a_href->hseq = ((hseq > 0) ? hseq : -hseq) - 1; - a_href->slave = (hseq > 0) ? FALSE : TRUE; - } - break; - case HTML_N_A: - effect &= ~PE_ANCHOR; - if (a_href) { - a_href->end.line = currentLn(buf); - a_href->end.pos = pos; - if (a_href->start.line == a_href->end.line && - a_href->start.pos == a_href->end.pos) { - if (buf->hmarklist && - a_href->hseq < buf->hmarklist->nmark) - buf->hmarklist->marks[a_href->hseq].invalid = 1; - a_href->hseq = -1; - } - a_href = NULL; - } - break; - - case HTML_LINK: - addLink(buf, tag); - break; - - case HTML_IMG_ALT: - if (parsedtag_get_value(tag, ATTR_SRC, &p)) { -#ifdef USE_IMAGE - int w = -1, h = -1, iseq = 0, ismap = 0; - int xoffset = 0, yoffset = 0, top = 0, bottom = 0; - parsedtag_get_value(tag, ATTR_HSEQ, &iseq); - parsedtag_get_value(tag, ATTR_WIDTH, &w); - parsedtag_get_value(tag, ATTR_HEIGHT, &h); - parsedtag_get_value(tag, ATTR_XOFFSET, &xoffset); - parsedtag_get_value(tag, ATTR_YOFFSET, &yoffset); - parsedtag_get_value(tag, ATTR_TOP_MARGIN, &top); - parsedtag_get_value(tag, ATTR_BOTTOM_MARGIN, &bottom); - if (parsedtag_exists(tag, ATTR_ISMAP)) - ismap = 1; - q = NULL; - parsedtag_get_value(tag, ATTR_USEMAP, &q); - if (iseq > 0) { - buf->imarklist = putHmarker(buf->imarklist, - currentLn(buf), pos, - iseq - 1); - } -#endif - s = NULL; - parsedtag_get_value(tag, ATTR_TITLE, &s); - p = url_quote_conv(remove_space(p), - buf->document_charset); - a_img = registerImg(buf, p, s, currentLn(buf), pos); -#ifdef USE_IMAGE - a_img->hseq = iseq; - a_img->image = NULL; - if (iseq > 0) { - ParsedURL u; - Image *image; - - parseURL2(a_img->url, &u, cur_baseURL); - a_img->image = image = New(Image); - image->url = parsedURL2Str(&u)->ptr; - if (!uncompressed_file_type(u.file, &image->ext)) - image->ext = filename_extension(u.file, TRUE); - image->cache = NULL; - image->width = - (w > MAX_IMAGE_SIZE) ? MAX_IMAGE_SIZE : w; - image->height = - (h > MAX_IMAGE_SIZE) ? MAX_IMAGE_SIZE : h; - image->xoffset = xoffset; - image->yoffset = yoffset; - image->y = currentLn(buf) - top; - if (image->xoffset < 0 && pos == 0) - image->xoffset = 0; - if (image->yoffset < 0 && image->y == 1) - image->yoffset = 0; - image->rows = 1 + top + bottom; - image->map = q; - image->ismap = ismap; - image->touch = 0; - image->cache = getImage(image, cur_baseURL, - IMG_FLAG_SKIP); - } - else if (iseq < 0) { - BufferPoint *po = buf->imarklist->marks - iseq - 1; - Anchor *a = retrieveAnchor(buf->img, - po->line, po->pos); - if (a) { - a_img->url = a->url; - a_img->image = a->image; - } - } -#endif - } - effect |= PE_IMAGE; - break; - case HTML_N_IMG_ALT: - effect &= ~PE_IMAGE; - if (a_img) { - a_img->end.line = currentLn(buf); - a_img->end.pos = pos; - } - a_img = NULL; - break; - case HTML_INPUT_ALT: - { - FormList *form; - int top = 0, bottom = 0; - int textareanumber = -1; -#ifdef MENU_SELECT - int selectnumber = -1; -#endif - hseq = 0; - form_id = -1; - - parsedtag_get_value(tag, ATTR_HSEQ, &hseq); - parsedtag_get_value(tag, ATTR_FID, &form_id); - parsedtag_get_value(tag, ATTR_TOP_MARGIN, &top); - parsedtag_get_value(tag, ATTR_BOTTOM_MARGIN, &bottom); - if (form_id < 0 || form_id > form_max || forms == NULL) - break; /* outside of <form>..</form> */ - form = forms[form_id]; - if (hseq > 0) { - int hpos = pos; - if (*str == '[') - hpos++; - buf->hmarklist = - putHmarker(buf->hmarklist, currentLn(buf), - hpos, hseq - 1); - } - if (!form->target) - form->target = buf->baseTarget; - if (a_textarea && - parsedtag_get_value(tag, ATTR_TEXTAREANUMBER, - &textareanumber)) { - if (textareanumber >= max_textarea) { - max_textarea = 2 * textareanumber; - textarea_str = New_Reuse(Str, textarea_str, - max_textarea); - a_textarea = New_Reuse(Anchor *, a_textarea, - max_textarea); - } - } -#ifdef MENU_SELECT - if (a_select && - parsedtag_get_value(tag, ATTR_SELECTNUMBER, - &selectnumber)) { - if (selectnumber >= max_select) { - max_select = 2 * selectnumber; - select_option = New_Reuse(FormSelectOption, - select_option, - max_select); - a_select = New_Reuse(Anchor *, a_select, - max_select); - } - } -#endif - a_form = - registerForm(buf, form, tag, currentLn(buf), pos); - if (a_textarea && textareanumber >= 0) - a_textarea[textareanumber] = a_form; -#ifdef MENU_SELECT - if (a_select && selectnumber >= 0) - a_select[selectnumber] = a_form; -#endif - if (a_form) { - a_form->hseq = hseq - 1; - a_form->y = currentLn(buf) - top; - a_form->rows = 1 + top + bottom; - if (!parsedtag_exists(tag, ATTR_NO_EFFECT)) - effect |= PE_FORM; - break; - } - } - case HTML_N_INPUT_ALT: - effect &= ~PE_FORM; - if (a_form) { - a_form->end.line = currentLn(buf); - a_form->end.pos = pos; - if (a_form->start.line == a_form->end.line && - a_form->start.pos == a_form->end.pos) - a_form->hseq = -1; - } - a_form = NULL; - break; - case HTML_MAP: - if (parsedtag_get_value(tag, ATTR_NAME, &p)) { - MapList *m = New(MapList); - m->name = Strnew_charp(p); - m->area = newGeneralList(); - m->next = buf->maplist; - buf->maplist = m; - } - break; - case HTML_N_MAP: - /* nothing to do */ - break; - case HTML_AREA: - if (buf->maplist == NULL) /* outside of <map>..</map> */ - break; - if (parsedtag_get_value(tag, ATTR_HREF, &p)) { - MapArea *a; - p = url_quote_conv(remove_space(p), - buf->document_charset); - t = NULL; - parsedtag_get_value(tag, ATTR_TARGET, &t); - q = ""; - parsedtag_get_value(tag, ATTR_ALT, &q); - r = NULL; - s = NULL; -#ifdef USE_IMAGE - parsedtag_get_value(tag, ATTR_SHAPE, &r); - parsedtag_get_value(tag, ATTR_COORDS, &s); -#endif - a = newMapArea(p, t, q, r, s); - pushValue(buf->maplist->area, (void *)a); - } - break; - case HTML_FRAMESET: - frameset_sp++; - if (frameset_sp >= FRAMESTACK_SIZE) - break; - frameset_s[frameset_sp] = newFrameSet(tag); - if (frameset_s[frameset_sp] == NULL) - break; - if (frameset_sp == 0) { - if (buf->frameset == NULL) { - buf->frameset = frameset_s[frameset_sp]; - } - else - pushFrameTree(&(buf->frameQ), - frameset_s[frameset_sp], NULL); - } - else - addFrameSetElement(frameset_s[frameset_sp - 1], - *(union frameset_element *) - &frameset_s[frameset_sp]); - break; - case HTML_N_FRAMESET: - if (frameset_sp >= 0) - frameset_sp--; - break; - case HTML_FRAME: - if (frameset_sp >= 0 && frameset_sp < FRAMESTACK_SIZE) { - union frameset_element element; - - element.body = newFrame(tag, buf); - addFrameSetElement(frameset_s[frameset_sp], element); - } - break; - case HTML_BASE: - if (parsedtag_get_value(tag, ATTR_HREF, &p)) { - p = url_quote_conv(remove_space(p), - buf->document_charset); - if (!buf->baseURL) - buf->baseURL = New(ParsedURL); - parseURL(p, buf->baseURL, NULL); - } - if (parsedtag_get_value(tag, ATTR_TARGET, &p)) - buf->baseTarget = - url_quote_conv(p, buf->document_charset); - break; - case HTML_META: - p = q = NULL; - parsedtag_get_value(tag, ATTR_HTTP_EQUIV, &p); - parsedtag_get_value(tag, ATTR_CONTENT, &q); - if (p && q && !strcasecmp(p, "refresh") && MetaRefresh) { - Str tmp = NULL; - int refresh_interval = getMetaRefreshParam(q, &tmp); -#ifdef USE_ALARM - if (tmp) { - p = url_quote_conv(remove_space(tmp->ptr), - buf->document_charset); - buf->event = setAlarmEvent(buf->event, - refresh_interval, - AL_IMPLICIT_ONCE, - FUNCNAME_gorURL, p); - } - else if (refresh_interval > 0) - buf->event = setAlarmEvent(buf->event, - refresh_interval, - AL_IMPLICIT, - FUNCNAME_reload, NULL); -#else - if (tmp && refresh_interval == 0) { - p = url_quote_conv(remove_space(tmp->ptr), - buf->document_charset); - pushEvent(FUNCNAME_gorURL, p); - } -#endif - } - break; - case HTML_INTERNAL: - internal = HTML_INTERNAL; - break; - case HTML_N_INTERNAL: - internal = HTML_N_INTERNAL; - break; - case HTML_FORM_INT: - if (parsedtag_get_value(tag, ATTR_FID, &form_id)) - process_form_int(tag, form_id); - break; - case HTML_TEXTAREA_INT: - if (parsedtag_get_value(tag, ATTR_TEXTAREANUMBER, - &n_textarea) - && n_textarea < max_textarea) { - textarea_str[n_textarea] = Strnew(); - } - else - n_textarea = -1; - break; - case HTML_N_TEXTAREA_INT: - if (n_textarea >= 0) { - FormItemList *item = - (FormItemList *)a_textarea[n_textarea]->url; - item->init_value = item->value = - textarea_str[n_textarea]; - } - break; -#ifdef MENU_SELECT - case HTML_SELECT_INT: - if (parsedtag_get_value(tag, ATTR_SELECTNUMBER, &n_select) - && n_select < max_select) { - select_option[n_select].first = NULL; - select_option[n_select].last = NULL; - } - else - n_select = -1; - break; - case HTML_N_SELECT_INT: - if (n_select >= 0) { - FormItemList *item = - (FormItemList *)a_select[n_select]->url; - item->select_option = select_option[n_select].first; - chooseSelectOption(item, item->select_option); - item->init_selected = item->selected; - item->init_value = item->value; - item->init_label = item->label; - } - break; - case HTML_OPTION_INT: - if (n_select >= 0) { - int selected; - q = ""; - parsedtag_get_value(tag, ATTR_LABEL, &q); - p = q; - parsedtag_get_value(tag, ATTR_VALUE, &p); - selected = parsedtag_exists(tag, ATTR_SELECTED); - addSelectOption(&select_option[n_select], - Strnew_charp(p), Strnew_charp(q), - selected); - } - break; -#endif - case HTML_TITLE_ALT: - if (parsedtag_get_value(tag, ATTR_TITLE, &p)) - buf->buffername = html_unquote(p); - break; - case HTML_SYMBOL: - effect |= PC_SYMBOL; - if (parsedtag_get_value(tag, ATTR_TYPE, &p)) - symbol = (char)atoi(p); - break; - case HTML_N_SYMBOL: - effect &= ~PC_SYMBOL; - break; - } -#ifdef ID_EXT - id = NULL; - if (parsedtag_get_value(tag, ATTR_ID, &id)) { - id = url_quote_conv(id, buf->document_charset); - registerName(buf, id, currentLn(buf), pos); - } - if (renderFrameSet && - parsedtag_get_value(tag, ATTR_FRAMENAME, &p)) { - p = url_quote_conv(p, buf->document_charset); - if (!idFrame || strcmp(idFrame->body->name, p)) { - idFrame = search_frame(renderFrameSet, p); - if (idFrame && idFrame->body->attr != F_BODY) - idFrame = NULL; - } - } - if (id && idFrame) - idFrame->body->nameList = - putAnchor(idFrame->body->nameList, id, NULL, - (Anchor **)NULL, NULL, NULL, '\0', - currentLn(buf), pos); -#endif /* ID_EXT */ - } - } - /* end of processing for one line */ - if (!internal) - addnewline(buf, outc, outp, NULL, pos, -1, nlines); - if (internal == HTML_N_INTERNAL) - internal = 0; - if (str != endp) { - line = Strsubstr(line, str - line->ptr, endp - str); - goto proc_again; - } - } -#ifdef DEBUG - if (w3m_debug) - fclose(debug); -#endif - for (form_id = 1; form_id <= form_max; form_id++) - forms[form_id]->next = forms[form_id - 1]; - buf->formlist = (form_max >= 0) ? forms[form_max] : NULL; - if (n_textarea) - addMultirowsForm(buf, buf->formitem); -#ifdef USE_IMAGE - addMultirowsImg(buf, buf->img); -#endif -} - -static void -addLink(Buffer *buf, struct parsed_tag *tag) -{ - char *href = NULL, *title = NULL, *ctype = NULL, *rel = NULL, *rev = NULL; - char type = LINK_TYPE_NONE; - LinkList *l; - - parsedtag_get_value(tag, ATTR_HREF, &href); - if (href) - href = url_quote_conv(remove_space(href), buf->document_charset); - parsedtag_get_value(tag, ATTR_TITLE, &title); - parsedtag_get_value(tag, ATTR_TYPE, &ctype); - parsedtag_get_value(tag, ATTR_REL, &rel); - if (rel != NULL) { - /* forward link type */ - type = LINK_TYPE_REL; - if (title == NULL) - title = rel; - } - parsedtag_get_value(tag, ATTR_REV, &rev); - if (rev != NULL) { - /* reverse link type */ - type = LINK_TYPE_REV; - if (title == NULL) - title = rev; - } - - l = New(LinkList); - l->url = href; - l->title = title; - l->ctype = ctype; - l->type = type; - l->next = NULL; - if (buf->linklist) { - LinkList *i; - for (i = buf->linklist; i->next; i = i->next) ; - i->next = l; - } - else - buf->linklist = l; -} - -void -HTMLlineproc2(Buffer *buf, TextLineList *tl) -{ - _tl_lp2 = tl->first; - HTMLlineproc2body(buf, textlist_feed, -1); -} - -static InputStream _file_lp2; - -static Str -file_feed() -{ - Str s; - s = StrISgets(_file_lp2); - if (s->length == 0) { - ISclose(_file_lp2); - return NULL; - } - return s; -} - -void -HTMLlineproc3(Buffer *buf, InputStream stream) -{ - _file_lp2 = stream; - HTMLlineproc2body(buf, file_feed, -1); -} - -static void -proc_escape(struct readbuffer *obuf, char **str_return) -{ - char *str = *str_return, *estr; - int ech = getescapechar(str_return); - int width, n_add = *str_return - str; - Lineprop mode = PC_ASCII; - - if (ech < 0) { - *str_return = str; - proc_mchar(obuf, obuf->flag & RB_SPECIAL, 1, str_return, PC_ASCII); - return; - } - mode = IS_CNTRL(ech) ? PC_CTRL : PC_ASCII; - - estr = conv_entity(ech); - check_breakpoint(obuf, obuf->flag & RB_SPECIAL, estr); - width = get_strwidth(estr); - if (width == 1 && ech == (unsigned char)*estr && - ech != '&' && ech != '<' && ech != '>') { - if (IS_CNTRL(ech)) - mode = PC_CTRL; - push_charp(obuf, width, estr, mode); - } - else - push_nchars(obuf, width, str, n_add, mode); - set_prevchar(obuf->prevchar, estr, strlen(estr)); - obuf->prev_ctype = mode; -} - - -static int -need_flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, - Lineprop mode) -{ - char ch; - - if (obuf->flag & RB_PRE_INT) { - if (obuf->pos > h_env->limit) - return 1; - else - return 0; - } - - ch = Strlastchar(obuf->line); - /* if (ch == ' ' && obuf->tag_sp > 0) */ - if (ch == ' ') - return 0; - - if (obuf->pos > h_env->limit) - return 1; - - return 0; -} - -static int -table_width(struct html_feed_environ *h_env, int table_level) -{ - int width; - if (table_level < 0) - return 0; - width = tables[table_level]->total_width; - if (table_level > 0 || width > 0) - return width; - return h_env->limit - h_env->envs[h_env->envc].indent; -} - -/* HTML processing first pass */ -void -HTMLlineproc0(char *line, struct html_feed_environ *h_env, int internal) -{ - Lineprop mode; - int cmd; - struct readbuffer *obuf = h_env->obuf; - int indent, delta; - struct parsed_tag *tag; - Str tokbuf; - struct table *tbl = NULL; - struct table_mode *tbl_mode = NULL; - int tbl_width = 0; -#ifdef USE_M17N - int is_hangul, prev_is_hangul = 0; -#endif - -#ifdef DEBUG - if (w3m_debug) { - FILE *f = fopen("zzzproc1", "a"); - fprintf(f, "%c%c%c%c", - (obuf->flag & RB_PREMODE) ? 'P' : ' ', - (obuf->table_level >= 0) ? 'T' : ' ', - (obuf->flag & RB_INTXTA) ? 'X' : ' ', - (obuf->flag & (RB_SCRIPT | RB_STYLE)) ? 'S' : ' '); - fprintf(f, "HTMLlineproc1(\"%s\",%d,%lx)\n", line, h_env->limit, - (unsigned long)h_env); - fclose(f); - } -#endif - - tokbuf = Strnew(); - - table_start: - if (obuf->table_level >= 0) { - int level = min(obuf->table_level, MAX_TABLE - 1); - tbl = tables[level]; - tbl_mode = &table_mode[level]; - tbl_width = table_width(h_env, level); - } - - while (*line != '\0') { - char *str, *p; - int is_tag = FALSE; - int pre_mode = (obuf->table_level >= 0) ? tbl_mode->pre_mode : - obuf->flag; - int end_tag = (obuf->table_level >= 0) ? tbl_mode->end_tag : - obuf->end_tag; - - if (*line == '<' || obuf->status != R_ST_NORMAL) { - /* - * Tag processing - */ - if (obuf->status == R_ST_EOL) - obuf->status = R_ST_NORMAL; - else { - read_token(h_env->tagbuf, &line, &obuf->status, - pre_mode & RB_PREMODE, obuf->status != R_ST_NORMAL); - if (obuf->status != R_ST_NORMAL) - return; - } - if (h_env->tagbuf->length == 0) - continue; - str = h_env->tagbuf->ptr; - if (*str == '<') { - if (str[1] && REALLY_THE_BEGINNING_OF_A_TAG(str)) - is_tag = TRUE; - else if (!(pre_mode & (RB_PLAIN | RB_INTXTA | RB_INSELECT | - RB_SCRIPT | RB_STYLE | RB_TITLE))) { - line = Strnew_m_charp(str + 1, line, NULL)->ptr; - str = "<"; - } - } - } - else { - read_token(tokbuf, &line, &obuf->status, pre_mode & RB_PREMODE, 0); - if (obuf->status != R_ST_NORMAL) /* R_ST_AMP ? */ - obuf->status = R_ST_NORMAL; - str = tokbuf->ptr; - } - - if (pre_mode & (RB_PLAIN | RB_INTXTA | RB_INSELECT | RB_SCRIPT | - RB_STYLE | RB_TITLE)) { - if (is_tag) { - p = str; - if ((tag = parse_tag(&p, internal))) { - if (tag->tagid == end_tag || - (pre_mode & RB_INSELECT && tag->tagid == HTML_N_FORM) - || (pre_mode & RB_TITLE - && (tag->tagid == HTML_N_HEAD - || tag->tagid == HTML_BODY))) - goto proc_normal; - } - } - /* title */ - if (pre_mode & RB_TITLE) { - feed_title(str); - continue; - } - /* select */ - if (pre_mode & RB_INSELECT) { - if (obuf->table_level >= 0) - goto proc_normal; - feed_select(str); - continue; - } - if (is_tag) { - if (strncmp(str, "<!--", 4) && (p = strchr(str + 1, '<'))) { - str = Strnew_charp_n(str, p - str)->ptr; - line = Strnew_m_charp(p, line, NULL)->ptr; - } - is_tag = FALSE; - } - if (obuf->table_level >= 0) - goto proc_normal; - /* textarea */ - if (pre_mode & RB_INTXTA) { - feed_textarea(str); - continue; - } - /* script */ - if (pre_mode & RB_SCRIPT) - continue; - /* style */ - if (pre_mode & RB_STYLE) - continue; - } - - proc_normal: - if (obuf->table_level >= 0) { - /* - * within table: in <table>..</table>, all input tokens - * are fed to the table renderer, and then the renderer - * makes HTML output. - */ - switch (feed_table(tbl, str, tbl_mode, tbl_width, internal)) { - case 0: - /* </table> tag */ - obuf->table_level--; - if (obuf->table_level >= MAX_TABLE - 1) - continue; - end_table(tbl); - if (obuf->table_level >= 0) { - struct table *tbl0 = tables[obuf->table_level]; - str = Sprintf("<table_alt tid=%d>", tbl0->ntable)->ptr; - pushTable(tbl0, tbl); - tbl = tbl0; - tbl_mode = &table_mode[obuf->table_level]; - tbl_width = table_width(h_env, obuf->table_level); - feed_table(tbl, str, tbl_mode, tbl_width, TRUE); - continue; - /* continue to the next */ - } - if (obuf->flag & RB_DEL) - continue; - /* all tables have been read */ - if (tbl->vspace > 0 && !(obuf->flag & RB_IGNORE_P)) { - int indent = h_env->envs[h_env->envc].indent; - flushline(h_env, obuf, indent, 0, h_env->limit); - do_blankline(h_env, obuf, indent, 0, h_env->limit); - } - save_fonteffect(h_env, obuf); - renderTable(tbl, tbl_width, h_env); - restore_fonteffect(h_env, obuf); - obuf->flag &= ~RB_IGNORE_P; - if (tbl->vspace > 0) { - int indent = h_env->envs[h_env->envc].indent; - do_blankline(h_env, obuf, indent, 0, h_env->limit); - obuf->flag |= RB_IGNORE_P; - } - set_space_to_prevchar(obuf->prevchar); - continue; - case 1: - /* <table> tag */ - break; - default: - continue; - } - } - - if (is_tag) { -/*** Beginning of a new tag ***/ - if ((tag = parse_tag(&str, internal))) - cmd = tag->tagid; - else - continue; - /* process tags */ - if (HTMLtagproc1(tag, h_env) == 0) { - /* preserve the tag for second-stage processing */ - if (parsedtag_need_reconstruct(tag)) - h_env->tagbuf = parsedtag2str(tag); - push_tag(obuf, h_env->tagbuf->ptr, cmd); - } -#ifdef ID_EXT - else { - process_idattr(obuf, cmd, tag); - } -#endif /* ID_EXT */ - obuf->bp.init_flag = 1; - clear_ignore_p_flag(cmd, obuf); - if (cmd == HTML_TABLE) - goto table_start; - else - continue; - } - - if (obuf->flag & (RB_DEL | RB_S)) - continue; - while (*str) { - mode = get_mctype(str); - delta = get_mcwidth(str); - if (obuf->flag & (RB_SPECIAL & ~RB_NOBR)) { - char ch = *str; - if (!(obuf->flag & RB_PLAIN) && (*str == '&')) { - char *p = str; - int ech = getescapechar(&p); - if (ech == '\n' || ech == '\r') { - ch = '\n'; - str = p - 1; - } - else if (ech == '\t') { - ch = '\t'; - str = p - 1; - } - } - if (ch != '\n') - obuf->flag &= ~RB_IGNORE_P; - if (ch == '\n') { - str++; - if (obuf->flag & RB_IGNORE_P) { - obuf->flag &= ~RB_IGNORE_P; - continue; - } - if (obuf->flag & RB_PRE_INT) - PUSH(' '); - else - flushline(h_env, obuf, h_env->envs[h_env->envc].indent, - 1, h_env->limit); - } - else if (ch == '\t') { - do { - PUSH(' '); - } while ((h_env->envs[h_env->envc].indent + obuf->pos) - % Tabstop != 0); - str++; - } - else if (obuf->flag & RB_PLAIN) { - char *p = html_quote_char(*str); - if (p) { - push_charp(obuf, 1, p, PC_ASCII); - str++; - } - else { - proc_mchar(obuf, 1, delta, &str, mode); - } - } - else { - if (*str == '&') - proc_escape(obuf, &str); - else - proc_mchar(obuf, 1, delta, &str, mode); - } - if (obuf->flag & (RB_SPECIAL & ~RB_PRE_INT)) - continue; - } - else { - if (!IS_SPACE(*str)) - obuf->flag &= ~RB_IGNORE_P; - if ((mode == PC_ASCII || mode == PC_CTRL) && IS_SPACE(*str)) { - if (*obuf->prevchar->ptr != ' ') { - PUSH(' '); - } - str++; - } - else { -#ifdef USE_M17N - if (mode == PC_KANJI1) - is_hangul = wtf_is_hangul((wc_uchar *) str); - else - is_hangul = 0; - if (mode == PC_KANJI1 && - !is_hangul && !prev_is_hangul && - obuf->pos > h_env->envs[h_env->envc].indent && - Strlastchar(obuf->line) == ' ') { - while (obuf->line->length >= 2 && - !strncmp(obuf->line->ptr + obuf->line->length - - 2, " ", 2) - && obuf->pos >= h_env->envs[h_env->envc].indent) { - Strshrink(obuf->line, 1); - obuf->pos--; - } - if (obuf->line->length >= 3 && - obuf->prev_ctype == PC_KANJI1 && - Strlastchar(obuf->line) == ' ' && - obuf->pos >= h_env->envs[h_env->envc].indent) { - Strshrink(obuf->line, 1); - obuf->pos--; - } - } - prev_is_hangul = is_hangul; -#endif - if (*str == '&') - proc_escape(obuf, &str); - else - proc_mchar(obuf, obuf->flag & RB_SPECIAL, delta, &str, - mode); - } - } - if (need_flushline(h_env, obuf, mode)) { - char *bp = obuf->line->ptr + obuf->bp.len; - char *tp = bp - obuf->bp.tlen; - int i = 0; - - if (tp > obuf->line->ptr && tp[-1] == ' ') - i = 1; - - indent = h_env->envs[h_env->envc].indent; - if (obuf->bp.pos - i > indent) { - Str line; - append_tags(obuf); - line = Strnew_charp(bp); - Strshrink(obuf->line, obuf->line->length - obuf->bp.len); -#ifdef FORMAT_NICE - if (obuf->pos - i > h_env->limit) - obuf->flag |= RB_FILL; -#endif /* FORMAT_NICE */ - back_to_breakpoint(obuf); - flushline(h_env, obuf, indent, 0, h_env->limit); -#ifdef FORMAT_NICE - obuf->flag &= ~RB_FILL; -#endif /* FORMAT_NICE */ - HTMLlineproc1(line->ptr, h_env); - } - } - } - } - if (!(obuf->flag & (RB_SPECIAL | RB_INTXTA | RB_INSELECT))) { - char *tp; - int i = 0; - - if (obuf->bp.pos == obuf->pos) { - tp = &obuf->line->ptr[obuf->bp.len - obuf->bp.tlen]; - } - else { - tp = &obuf->line->ptr[obuf->line->length]; - } - - if (tp > obuf->line->ptr && tp[-1] == ' ') - i = 1; - indent = h_env->envs[h_env->envc].indent; - if (obuf->pos - i > h_env->limit) { -#ifdef FORMAT_NICE - obuf->flag |= RB_FILL; -#endif /* FORMAT_NICE */ - flushline(h_env, obuf, indent, 0, h_env->limit); -#ifdef FORMAT_NICE - obuf->flag &= ~RB_FILL; -#endif /* FORMAT_NICE */ - } - } -} - -extern char *NullLine; -extern Lineprop NullProp[]; - -#ifndef USE_ANSI_COLOR -#define addnewline2(a,b,c,d,e,f) _addnewline2(a,b,c,e,f) -#endif -static void -addnewline2(Buffer *buf, char *line, Lineprop *prop, Linecolor *color, int pos, - int nlines) -{ - Line *l; - l = New(Line); - l->next = NULL; - l->lineBuf = line; - l->propBuf = prop; -#ifdef USE_ANSI_COLOR - l->colorBuf = color; -#endif - l->len = pos; - l->width = -1; - l->size = pos; - l->bpos = 0; - l->bwidth = 0; - l->prev = buf->currentLine; - if (buf->currentLine) { - l->next = buf->currentLine->next; - buf->currentLine->next = l; - } - else - l->next = NULL; - if (buf->lastLine == NULL || buf->lastLine == buf->currentLine) - buf->lastLine = l; - buf->currentLine = l; - if (buf->firstLine == NULL) - buf->firstLine = l; - l->linenumber = ++buf->allLine; - if (nlines < 0) { - /* l->real_linenumber = l->linenumber; */ - l->real_linenumber = 0; - } - else { - l->real_linenumber = nlines; - } - l = NULL; -} - -static void -addnewline(Buffer *buf, char *line, Lineprop *prop, Linecolor *color, int pos, - int width, int nlines) -{ - char *s; - Lineprop *p; -#ifdef USE_ANSI_COLOR - Linecolor *c; -#endif - Line *l; - int i, bpos, bwidth; - - if (pos > 0) { - s = allocStr(line, pos); - p = NewAtom_N(Lineprop, pos); - bcopy((void *)prop, (void *)p, pos * sizeof(Lineprop)); - } - else { - s = NullLine; - p = NullProp; - } -#ifdef USE_ANSI_COLOR - if (pos > 0 && color) { - c = NewAtom_N(Linecolor, pos); - bcopy((void *)color, (void *)c, pos * sizeof(Linecolor)); - } - else { - c = NULL; - } -#endif - addnewline2(buf, s, p, c, pos, nlines); - if (pos <= 0 || width <= 0) - return; - bpos = 0; - bwidth = 0; - while (1) { - l = buf->currentLine; - l->bpos = bpos; - l->bwidth = bwidth; - i = columnLen(l, width); - if (i == 0) { - i++; -#ifdef USE_M17N - while (i < l->len && p[i] & PC_WCHAR2) - i++; -#endif - } - l->len = i; - l->width = COLPOS(l, l->len); - if (pos <= i) - return; - bpos += l->len; - bwidth += l->width; - s += i; - p += i; -#ifdef USE_ANSI_COLOR - if (c) - c += i; -#endif - pos -= i; - addnewline2(buf, s, p, c, pos, nlines); - } -} - -/* - * loadHTMLBuffer: read file and make new buffer - */ -Buffer * -loadHTMLBuffer(URLFile *f, Buffer *newBuf) -{ - FILE *src = NULL; - Str tmp; - - if (newBuf == NULL) - newBuf = newBuffer(INIT_BUFFER_WIDTH); - if (newBuf->sourcefile == NULL && - (f->scheme != SCM_LOCAL || newBuf->mailcap)) { - tmp = tmpfname(TMPF_SRC, ".html"); - src = fopen(tmp->ptr, "w"); - if (src) - newBuf->sourcefile = tmp->ptr; - } - - loadHTMLstream(f, newBuf, src, newBuf->bufferprop & BP_FRAME); - - newBuf->topLine = newBuf->firstLine; - newBuf->lastLine = newBuf->currentLine; - newBuf->currentLine = newBuf->firstLine; - if (n_textarea) - formResetBuffer(newBuf, newBuf->formitem); - if (src) - fclose(src); - - return newBuf; -} - -static char *_size_unit[] = { "b", "kb", "Mb", "Gb", "Tb", - "Pb", "Eb", "Zb", "Bb", "Yb", NULL -}; - -char * -convert_size(clen_t size, int usefloat) -{ - float csize; - int sizepos = 0; - char **sizes = _size_unit; - - csize = (float)size; - while (csize >= 999.495 && sizes[sizepos + 1]) { - csize = csize / 1024.0; - sizepos++; - } - return Sprintf(usefloat ? "%.3g%s" : "%.0f%s", - floor(csize * 100.0 + 0.5) / 100.0, sizes[sizepos])->ptr; -} - -char * -convert_size2(clen_t size1, clen_t size2, int usefloat) -{ - char **sizes = _size_unit; - float csize, factor = 1; - int sizepos = 0; - - csize = (float)((size1 > size2) ? size1 : size2); - while (csize / factor >= 999.495 && sizes[sizepos + 1]) { - factor *= 1024.0; - sizepos++; - } - return Sprintf(usefloat ? "%.3g/%.3g%s" : "%.0f/%.0f%s", - floor(size1 / factor * 100.0 + 0.5) / 100.0, - floor(size2 / factor * 100.0 + 0.5) / 100.0, - sizes[sizepos])->ptr; -} - -void -showProgress(clen_t * linelen, clen_t * trbyte) -{ - int i, j, rate, duration, eta, pos; - static time_t last_time, start_time; - time_t cur_time; - Str messages; - char *fmtrbyte, *fmrate; - - if (!fmInitialized) - return; - - if (*linelen < 1024) - return; - if (current_content_length > 0) { - double ratio; - cur_time = time(0); - if (*trbyte == 0) { - move(LASTLINE, 0); - clrtoeolx(); - start_time = cur_time; - } - *trbyte += *linelen; - *linelen = 0; - if (cur_time == last_time) - return; - last_time = cur_time; - move(LASTLINE, 0); - ratio = 100.0 * (*trbyte) / current_content_length; - fmtrbyte = convert_size2(*trbyte, current_content_length, 1); - duration = cur_time - start_time; - if (duration) { - rate = *trbyte / duration; - fmrate = convert_size(rate, 1); - eta = rate ? (current_content_length - *trbyte) / rate : -1; - messages = Sprintf("%11s %3.0f%% " - "%7s/s " - "eta %02d:%02d:%02d ", - fmtrbyte, ratio, - fmrate, - eta / (60 * 60), (eta / 60) % 60, eta % 60); - } - else { - messages = Sprintf("%11s %3.0f%% ", - fmtrbyte, ratio); - } - addstr(messages->ptr); - pos = 42; - i = pos + (COLS - pos - 1) * (*trbyte) / current_content_length; - move(LASTLINE, pos); - standout(); - addch(' '); - for (j = pos + 1; j <= i; j++) - addch('|'); - standend(); - /* no_clrtoeol(); */ - refresh(); - } - else { - cur_time = time(0); - if (*trbyte == 0) { - move(LASTLINE, 0); - clrtoeolx(); - start_time = cur_time; - } - *trbyte += *linelen; - *linelen = 0; - if (cur_time == last_time) - return; - last_time = cur_time; - move(LASTLINE, 0); - fmtrbyte = convert_size(*trbyte, 1); - duration = cur_time - start_time; - if (duration) { - fmrate = convert_size(*trbyte / duration, 1); - messages = Sprintf("%7s loaded %7s/s", fmtrbyte, fmrate); - } - else { - messages = Sprintf("%7s loaded", fmtrbyte); - } - message(messages->ptr, 0, 0); - refresh(); - } -} - -void -init_henv(struct html_feed_environ *h_env, struct readbuffer *obuf, - struct environment *envs, int nenv, TextLineList *buf, - int limit, int indent) -{ - envs[0].indent = indent; - - obuf->line = Strnew(); - obuf->cprop = 0; - obuf->pos = 0; - obuf->prevchar = Strnew_size(8); - set_space_to_prevchar(obuf->prevchar); - obuf->flag = RB_IGNORE_P; - obuf->flag_sp = 0; - obuf->status = R_ST_NORMAL; - obuf->table_level = -1; - obuf->nobr_level = 0; - bzero((void *)&obuf->anchor, sizeof(obuf->anchor)); - obuf->img_alt = 0; - obuf->in_bold = 0; - obuf->in_under = 0; - obuf->prev_ctype = PC_ASCII; - obuf->tag_sp = 0; - obuf->fontstat_sp = 0; - obuf->top_margin = 0; - obuf->bottom_margin = 0; - obuf->bp.init_flag = 1; - set_breakpoint(obuf, 0); - - h_env->buf = buf; - h_env->f = NULL; - h_env->obuf = obuf; - h_env->tagbuf = Strnew(); - h_env->limit = limit; - h_env->maxlimit = 0; - h_env->envs = envs; - h_env->nenv = nenv; - h_env->envc = 0; - h_env->envc_real = 0; - h_env->title = NULL; - h_env->blank_lines = 0; -} - -void -completeHTMLstream(struct html_feed_environ *h_env, struct readbuffer *obuf) -{ - close_anchor(h_env, obuf); - if (obuf->img_alt) { - push_tag(obuf, "</img_alt>", HTML_N_IMG_ALT); - obuf->img_alt = NULL; - } - if (obuf->in_bold) { - push_tag(obuf, "</b>", HTML_N_B); - obuf->in_bold = 0; - } - if (obuf->in_under) { - push_tag(obuf, "</u>", HTML_N_U); - obuf->in_under = 0; - } - if (obuf->flag & RB_INTXTA) - HTMLlineproc1("</textarea>", h_env); - /* for unbalanced select tag */ - if (obuf->flag & RB_INSELECT) - HTMLlineproc1("</select>", h_env); - if (obuf->flag & RB_TITLE) - HTMLlineproc1("</title>", h_env); - - /* for unbalanced table tag */ - if (obuf->table_level >= MAX_TABLE) - obuf->table_level = MAX_TABLE - 1; - - while (obuf->table_level >= 0) { - table_mode[obuf->table_level].pre_mode - &= ~(TBLM_SCRIPT | TBLM_STYLE | TBLM_PLAIN); - HTMLlineproc1("</table>", h_env); - } -} - -static void -print_internal_information(struct html_feed_environ *henv) -{ - int i; - Str s; - TextLineList *tl = newTextLineList(); - - s = Strnew_charp("<internal>"); - pushTextLine(tl, newTextLine(s, 0)); - if (henv->title) { - s = Strnew_m_charp("<title_alt title=\"", - html_quote(henv->title), "\">", NULL); - pushTextLine(tl, newTextLine(s, 0)); - } -#if 0 - if (form_max >= 0) { - FormList *fp; - for (i = 0; i <= form_max; i++) { - fp = forms[i]; - s = Sprintf("<form_int fid=\"%d\" action=\"%s\" method=\"%s\"", - i, html_quote(fp->action->ptr), - (fp->method == FORM_METHOD_POST) ? "post" - : ((fp->method == - FORM_METHOD_INTERNAL) ? "internal" : "get")); - if (fp->target) - Strcat(s, Sprintf(" target=\"%s\"", html_quote(fp->target))); - if (fp->enctype == FORM_ENCTYPE_MULTIPART) - Strcat_charp(s, " enctype=\"multipart/form-data\""); -#ifdef USE_M17N - if (fp->charset) - Strcat(s, Sprintf(" accept-charset=\"%s\"", - html_quote(fp->charset))); -#endif - Strcat_charp(s, ">"); - pushTextLine(tl, newTextLine(s, 0)); - } - } -#endif -#ifdef MENU_SELECT - if (n_select > 0) { - FormSelectOptionItem *ip; - for (i = 0; i < n_select; i++) { - s = Sprintf("<select_int selectnumber=%d>", i); - pushTextLine(tl, newTextLine(s, 0)); - for (ip = select_option[i].first; ip; ip = ip->next) { - s = Sprintf("<option_int value=\"%s\" label=\"%s\"%s>", - html_quote(ip->value ? ip->value->ptr : - ip->label->ptr), - html_quote(ip->label->ptr), - ip->checked ? " selected" : ""); - pushTextLine(tl, newTextLine(s, 0)); - } - s = Strnew_charp("</select_int>"); - pushTextLine(tl, newTextLine(s, 0)); - } - } -#endif /* MENU_SELECT */ - if (n_textarea > 0) { - for (i = 0; i < n_textarea; i++) { - s = Sprintf("<textarea_int textareanumber=%d>", i); - pushTextLine(tl, newTextLine(s, 0)); - s = Strnew_charp(html_quote(textarea_str[i]->ptr)); - Strcat_charp(s, "</textarea_int>"); - pushTextLine(tl, newTextLine(s, 0)); - } - } - s = Strnew_charp("</internal>"); - pushTextLine(tl, newTextLine(s, 0)); - - if (henv->buf) - appendTextLineList(henv->buf, tl); - else if (henv->f) { - TextLineListItem *p; - for (p = tl->first; p; p = p->next) - fprintf(henv->f, "%s\n", Str_conv_to_halfdump(p->ptr->line)->ptr); - } -} - -void -loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal) -{ - struct environment envs[MAX_ENV_LEVEL]; - clen_t linelen = 0; - clen_t trbyte = 0; - Str lineBuf2 = Strnew(); -#ifdef USE_M17N - wc_ces charset = WC_CES_US_ASCII; - wc_ces volatile doc_charset = DocumentCharset; -#endif - struct html_feed_environ htmlenv1; - struct readbuffer obuf; -#ifdef USE_IMAGE - int volatile image_flag; -#endif - MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; - -#ifdef USE_M17N - if (fmInitialized && graph_ok()) { - symbol_width = symbol_width0 = 1; - } - else { - symbol_width0 = 0; - get_symbol(DisplayCharset, &symbol_width0); - symbol_width = WcOption.use_wide ? symbol_width0 : 1; - } -#else - symbol_width = symbol_width0 = 1; -#endif - - cur_title = NULL; - n_textarea = 0; - cur_textarea = NULL; - max_textarea = MAX_TEXTAREA; - textarea_str = New_N(Str, max_textarea); -#ifdef MENU_SELECT - n_select = 0; - max_select = MAX_SELECT; - select_option = New_N(FormSelectOption, max_select); -#endif /* MENU_SELECT */ - cur_select = NULL; - form_sp = -1; - form_max = -1; - forms_size = 0; - forms = NULL; - cur_hseq = 1; -#ifdef USE_IMAGE - cur_iseq = 1; - if (newBuf->image_flag) - image_flag = newBuf->image_flag; - else if (activeImage && displayImage && autoImage) - image_flag = IMG_FLAG_AUTO; - else - image_flag = IMG_FLAG_SKIP; - if (newBuf->currentURL.file) - cur_baseURL = baseURL(newBuf); -#endif - - if (w3m_halfload) { - newBuf->buffername = "---"; -#ifdef USE_M17N - newBuf->document_charset = InnerCharset; -#endif - max_textarea = 0; -#ifdef MENU_SELECT - max_select = 0; -#endif - HTMLlineproc3(newBuf, f->stream); - w3m_halfload = FALSE; - return; - } - - init_henv(&htmlenv1, &obuf, envs, MAX_ENV_LEVEL, NULL, newBuf->width, 0); - - if (w3m_halfdump) - htmlenv1.f = stdout; - else - htmlenv1.buf = newTextLineList(); - - if (SETJMP(AbortLoading) != 0) { - HTMLlineproc1("<br>Transfer Interrupted!<br>", &htmlenv1); - goto phase2; - } - TRAP_ON; - -#ifdef USE_M17N - if (newBuf != NULL) { - if (newBuf->bufferprop & BP_FRAME) - charset = InnerCharset; - else if (newBuf->document_charset) - charset = doc_charset = newBuf->document_charset; - } - if (content_charset && UseContentCharset) - doc_charset = content_charset; - meta_charset = 0; -#endif -#if 0 - do_blankline(&htmlenv1, &obuf, 0, 0, htmlenv1.limit); - obuf.flag = RB_IGNORE_P; -#endif - if (IStype(f->stream) != IST_ENCODED) - f->stream = newEncodedStream(f->stream, f->encoding); - while ((lineBuf2 = StrmyUFgets(f))->length) { -#ifdef USE_NNTP - if (f->scheme == SCM_NEWS && lineBuf2->ptr[0] == '.') { - Strshrinkfirst(lineBuf2, 1); - if (lineBuf2->ptr[0] == '\n' || lineBuf2->ptr[0] == '\r' || - lineBuf2->ptr[0] == '\0') { - /* - * iseos(f->stream) = TRUE; - */ - break; - } - } -#endif /* USE_NNTP */ - if (src) - Strfputs(lineBuf2, src); - linelen += lineBuf2->length; - if (w3m_dump & DUMP_EXTRA) - printf("W3m-in-progress: %s?n", convert_size2(linelen, current_content_length, TRUE)); - if (w3m_dump & DUMP_SOURCE) - continue; - showProgress(&linelen, &trbyte); - /* - * if (frame_source) - * continue; - */ -#ifdef USE_M17N - if (meta_charset) { /* <META> */ - if (content_charset == 0 && UseContentCharset) { - doc_charset = meta_charset; - charset = WC_CES_US_ASCII; - } - meta_charset = 0; - } -#endif - lineBuf2 = convertLine(f, lineBuf2, HTML_MODE, &charset, doc_charset); -#if defined(USE_M17N) && defined(USE_IMAGE) - cur_document_charset = charset; -#endif - HTMLlineproc0(lineBuf2->ptr, &htmlenv1, internal); - } - if (obuf.status != R_ST_NORMAL) { - obuf.status = R_ST_EOL; - HTMLlineproc0("\n", &htmlenv1, internal); - } - obuf.status = R_ST_NORMAL; - completeHTMLstream(&htmlenv1, &obuf); - flushline(&htmlenv1, &obuf, 0, 2, htmlenv1.limit); - if (htmlenv1.title) - newBuf->buffername = htmlenv1.title; - if (w3m_halfdump) { - TRAP_OFF; - print_internal_information(&htmlenv1); - return; - } - if (w3m_backend) { - TRAP_OFF; - print_internal_information(&htmlenv1); - backend_halfdump_buf = htmlenv1.buf; - return; - } - phase2: - newBuf->trbyte = trbyte + linelen; - TRAP_OFF; -#ifdef USE_M17N - if (!(newBuf->bufferprop & BP_FRAME)) - newBuf->document_charset = charset; -#endif -#ifdef USE_IMAGE - newBuf->image_flag = image_flag; -#endif - HTMLlineproc2(newBuf, htmlenv1.buf); -} - -/* - * loadHTMLString: read string and make new buffer - */ -Buffer * -loadHTMLString(Str page) -{ - URLFile f; - MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; - Buffer *newBuf; - - newBuf = newBuffer(INIT_BUFFER_WIDTH); - if (SETJMP(AbortLoading) != 0) { - TRAP_OFF; - discardBuffer(newBuf); - return NULL; - } - TRAP_ON; - - init_stream(&f, SCM_LOCAL, newStrStream(page)); - -#ifdef USE_M17N - newBuf->document_charset = InnerCharset; -#endif - loadHTMLstream(&f, newBuf, NULL, TRUE); -#ifdef USE_M17N - newBuf->document_charset = WC_CES_US_ASCII; -#endif - - TRAP_OFF; - newBuf->topLine = newBuf->firstLine; - newBuf->lastLine = newBuf->currentLine; - newBuf->currentLine = newBuf->firstLine; - newBuf->type = "text/html"; - newBuf->real_type = newBuf->type; - if (n_textarea) - formResetBuffer(newBuf, newBuf->formitem); - return newBuf; -} - -#ifdef USE_GOPHER - -/* - * loadGopherDir: get gopher directory - */ -Str -loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset) -{ - Str volatile tmp; - Str lbuf, name, file, host, port; - char *volatile p, *volatile q; - MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; -#ifdef USE_M17N - wc_ces doc_charset = DocumentCharset; -#endif - - tmp = parsedURL2Str(pu); - p = html_quote(tmp->ptr); - tmp = - convertLine(NULL, Strnew_charp(file_unquote(tmp->ptr)), RAW_MODE, - charset, doc_charset); - q = html_quote(tmp->ptr); - tmp = Strnew_m_charp("<html>\n<head>\n<base href=\"", p, "\">\n<title>", q, - "</title>\n</head>\n<body>\n<h1>Index of ", q, - "</h1>\n<table>\n", NULL); - - if (SETJMP(AbortLoading) != 0) - goto gopher_end; - TRAP_ON; - - while (1) { - if (lbuf = StrUFgets(uf), lbuf->length == 0) - break; - if (lbuf->ptr[0] == '.' && - (lbuf->ptr[1] == '\n' || lbuf->ptr[1] == '\r')) - break; - lbuf = convertLine(uf, lbuf, HTML_MODE, charset, doc_charset); - p = lbuf->ptr; - for (q = p; *q && *q != '\t'; q++) ; - name = Strnew_charp_n(p, q - p); - if (!*q) - continue; - p = q + 1; - for (q = p; *q && *q != '\t'; q++) ; - file = Strnew_charp_n(p, q - p); - if (!*q) - continue; - p = q + 1; - for (q = p; *q && *q != '\t'; q++) ; - host = Strnew_charp_n(p, q - p); - if (!*q) - continue; - p = q + 1; - for (q = p; *q && *q != '\t' && *q != '\r' && *q != '\n'; q++) ; - port = Strnew_charp_n(p, q - p); - - switch (name->ptr[0]) { - case '0': - p = "[text file]"; - break; - case '1': - p = "[directory]"; - break; - case 'm': - p = "[message]"; - break; - case 's': - p = "[sound]"; - break; - case 'g': - p = "[gif]"; - break; - case 'h': - p = "[HTML]"; - break; - default: - p = "[unsupported]"; - break; - } - q = Strnew_m_charp("gopher://", host->ptr, ":", port->ptr, - "/", file->ptr, NULL)->ptr; - Strcat_m_charp(tmp, "<a href=\"", - html_quote(url_quote_conv(q, *charset)), - "\">", p, html_quote(name->ptr + 1), "</a>\n", NULL); - } - - gopher_end: - TRAP_OFF; - - Strcat_charp(tmp, "</table>\n</body>\n</html>\n"); - return tmp; -} -#endif /* USE_GOPHER */ - -/* - * loadBuffer: read file and make new buffer - */ -Buffer * -loadBuffer(URLFile *uf, Buffer *volatile newBuf) -{ - FILE *volatile src = NULL; -#ifdef USE_M17N - wc_ces charset = WC_CES_US_ASCII; - wc_ces volatile doc_charset = DocumentCharset; -#endif - Str lineBuf2; - volatile char pre_lbuf = '\0'; - int nlines; - Str tmpf; - clen_t linelen = 0, trbyte = 0; - Lineprop *propBuffer = NULL; -#ifdef USE_ANSI_COLOR - Linecolor *colorBuffer = NULL; -#endif - MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; - - if (newBuf == NULL) - newBuf = newBuffer(INIT_BUFFER_WIDTH); - lineBuf2 = Strnew(); - - if (SETJMP(AbortLoading) != 0) { - goto _end; - } - TRAP_ON; - - if (newBuf->sourcefile == NULL && - (uf->scheme != SCM_LOCAL || newBuf->mailcap)) { - tmpf = tmpfname(TMPF_SRC, NULL); - src = fopen(tmpf->ptr, "w"); - if (src) - newBuf->sourcefile = tmpf->ptr; - } -#ifdef USE_M17N - if (newBuf->document_charset) - charset = doc_charset = newBuf->document_charset; - if (content_charset && UseContentCharset) - doc_charset = content_charset; -#endif - - nlines = 0; - if (IStype(uf->stream) != IST_ENCODED) - uf->stream = newEncodedStream(uf->stream, uf->encoding); - while ((lineBuf2 = StrmyISgets(uf->stream))->length) { -#ifdef USE_NNTP - if (uf->scheme == SCM_NEWS && lineBuf2->ptr[0] == '.') { - Strshrinkfirst(lineBuf2, 1); - if (lineBuf2->ptr[0] == '\n' || lineBuf2->ptr[0] == '\r' || - lineBuf2->ptr[0] == '\0') { - /* - * iseos(uf->stream) = TRUE; - */ - break; - } - } -#endif /* USE_NNTP */ - if (src) - Strfputs(lineBuf2, src); - linelen += lineBuf2->length; - if (w3m_dump & DUMP_SOURCE) - continue; - showProgress(&linelen, &trbyte); - if (frame_source) - continue; - lineBuf2 = - convertLine(uf, lineBuf2, PAGER_MODE, &charset, doc_charset); - if (squeezeBlankLine) { - if (lineBuf2->ptr[0] == '\n' && pre_lbuf == '\n') { - ++nlines; - continue; - } - pre_lbuf = lineBuf2->ptr[0]; - } - ++nlines; - Strchop(lineBuf2); - lineBuf2 = checkType(lineBuf2, &propBuffer, NULL); - addnewline(newBuf, lineBuf2->ptr, propBuffer, colorBuffer, - lineBuf2->length, FOLD_BUFFER_WIDTH, nlines); - } - _end: - TRAP_OFF; - newBuf->topLine = newBuf->firstLine; - newBuf->lastLine = newBuf->currentLine; - newBuf->currentLine = newBuf->firstLine; - newBuf->trbyte = trbyte + linelen; -#ifdef USE_M17N - newBuf->document_charset = charset; -#endif - if (src) - fclose(src); - - return newBuf; -} - -#ifdef USE_IMAGE -Buffer * -loadImageBuffer(URLFile *uf, Buffer *newBuf) -{ - Image image; - ImageCache *cache; - Str tmp, tmpf; - FILE *src = NULL; - URLFile f; - MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; - struct stat st; - - loadImage(newBuf, IMG_FLAG_STOP); - image.url = uf->url; - image.ext = uf->ext; - image.width = -1; - image.height = -1; - image.cache = NULL; - cache = getImage(&image, cur_baseURL, IMG_FLAG_AUTO); - if (!cur_baseURL->is_nocache && cache->loaded & IMG_FLAG_LOADED && - !stat(cache->file, &st)) - goto image_buffer; - - TRAP_ON; - if (IStype(uf->stream) != IST_ENCODED) - uf->stream = newEncodedStream(uf->stream, uf->encoding); - if (save2tmp(*uf, cache->file) < 0) { - UFclose(uf); - TRAP_OFF; - return NULL; - } - UFclose(uf); - TRAP_OFF; - - cache->loaded = IMG_FLAG_LOADED; - cache->index = 0; - - image_buffer: - if (newBuf == NULL) - newBuf = newBuffer(INIT_BUFFER_WIDTH); - cache->loaded |= IMG_FLAG_DONT_REMOVE; - if (newBuf->sourcefile == NULL && uf->scheme != SCM_LOCAL) - newBuf->sourcefile = cache->file; - - tmp = Sprintf("<img src=\"%s\"><br><br>", html_quote(image.url)); - tmpf = tmpfname(TMPF_SRC, ".html"); - src = fopen(tmpf->ptr, "w"); - newBuf->mailcap_source = tmpf->ptr; - - init_stream(&f, SCM_LOCAL, newStrStream(tmp)); - loadHTMLstream(&f, newBuf, src, TRUE); - if (src) - fclose(src); - - newBuf->topLine = newBuf->firstLine; - newBuf->lastLine = newBuf->currentLine; - newBuf->currentLine = newBuf->firstLine; - newBuf->image_flag = IMG_FLAG_AUTO; - return newBuf; -} -#endif - -static Str -conv_symbol(Line *l) -{ - Str tmp = NULL; - char *p = l->lineBuf, *ep = p + l->len; - Lineprop *pr = l->propBuf; -#ifdef USE_M17N - int w; - char **symbol = NULL; -#else - char **symbol = get_symbol(); -#endif - - for (; p < ep; p++, pr++) { - if (*pr & PC_SYMBOL) { -#ifdef USE_M17N - char c = ((char)wtf_get_code((wc_uchar *) p) & 0x7f) - SYMBOL_BASE; - int len = get_mclen(p); -#else - char c = *p - SYMBOL_BASE; -#endif - if (tmp == NULL) { - tmp = Strnew_size(l->len); - Strcopy_charp_n(tmp, l->lineBuf, p - l->lineBuf); -#ifdef USE_M17N - w = (*pr & PC_KANJI) ? 2 : 1; - symbol = get_symbol(DisplayCharset, &w); -#endif - } - Strcat_charp(tmp, symbol[(int)c]); -#ifdef USE_M17N - p += len - 1; - pr += len - 1; -#endif - } - else if (tmp != NULL) - Strcat_char(tmp, *p); - } - if (tmp) - return tmp; - else - return Strnew_charp_n(l->lineBuf, l->len); -} - -/* - * saveBuffer: write buffer to file - */ -static void -_saveBuffer(Buffer *buf, Line *l, FILE * f, int cont) -{ - Str tmp; - int is_html = FALSE; -#ifdef USE_M17N - int set_charset = !DisplayCharset; - wc_ces charset = DisplayCharset ? DisplayCharset : WC_CES_US_ASCII; -#endif - - if (buf->type && !strcasecmp(buf->type, "text/html")) - is_html = TRUE; - - pager_next: - for (; l != NULL; l = l->next) { - if (is_html) - tmp = conv_symbol(l); - else - tmp = Strnew_charp_n(l->lineBuf, l->len); - tmp = wc_Str_conv(tmp, InnerCharset, charset); - Strfputs(tmp, f); - if (Strlastchar(tmp) != '\n' && !(cont && l->next && l->next->bpos)) - putc('\n', f); - } - if (buf->pagerSource && !(buf->bufferprop & BP_CLOSE)) { - l = getNextPage(buf, PagerMax); -#ifdef USE_M17N - if (set_charset) - charset = buf->document_charset; -#endif - goto pager_next; - } -} - -void -saveBuffer(Buffer *buf, FILE * f, int cont) -{ - _saveBuffer(buf, buf->firstLine, f, cont); -} - -void -saveBufferBody(Buffer *buf, FILE * f, int cont) -{ - Line *l = buf->firstLine; - - while (l != NULL && l->real_linenumber == 0) - l = l->next; - _saveBuffer(buf, l, f, cont); -} - -static Buffer * -loadcmdout(char *cmd, - Buffer *(*loadproc) (URLFile *, Buffer *), Buffer *defaultbuf) -{ - FILE *f, *popen(const char *, const char *); - Buffer *buf; - URLFile uf; - - if (cmd == NULL || *cmd == '\0') - return NULL; - f = popen(cmd, "r"); - if (f == NULL) - return NULL; - init_stream(&uf, SCM_UNKNOWN, newFileStream(f, (void (*)())pclose)); - buf = loadproc(&uf, defaultbuf); - UFclose(&uf); - return buf; -} - -/* - * getshell: execute shell command and get the result into a buffer - */ -Buffer * -getshell(char *cmd) -{ - Buffer *buf; - - buf = loadcmdout(cmd, loadBuffer, NULL); - if (buf == NULL) - return NULL; - buf->filename = cmd; - buf->buffername = Sprintf("%s %s", SHELLBUFFERNAME, - conv_from_system(cmd))->ptr; - return buf; -} - -/* - * getpipe: execute shell command and connect pipe to the buffer - */ -Buffer * -getpipe(char *cmd) -{ - FILE *f, *popen(const char *, const char *); - Buffer *buf; - - if (cmd == NULL || *cmd == '\0') - return NULL; - f = popen(cmd, "r"); - if (f == NULL) - return NULL; - buf = newBuffer(INIT_BUFFER_WIDTH); - buf->pagerSource = newFileStream(f, (void (*)())pclose); - buf->filename = cmd; - buf->buffername = Sprintf("%s %s", PIPEBUFFERNAME, - conv_from_system(cmd))->ptr; - buf->bufferprop |= BP_PIPE; -#ifdef USE_M17N - buf->document_charset = WC_CES_US_ASCII; -#endif - return buf; -} - -/* - * Open pager buffer - */ -Buffer * -openPagerBuffer(InputStream stream, Buffer *buf) -{ - - if (buf == NULL) - buf = newBuffer(INIT_BUFFER_WIDTH); - buf->pagerSource = stream; - buf->buffername = getenv("MAN_PN"); - if (buf->buffername == NULL) - buf->buffername = PIPEBUFFERNAME; - else - buf->buffername = conv_from_system(buf->buffername); - buf->bufferprop |= BP_PIPE; -#ifdef USE_M17N - if (content_charset && UseContentCharset) - buf->document_charset = content_charset; - else - buf->document_charset = WC_CES_US_ASCII; -#endif - buf->currentLine = buf->firstLine; - - return buf; -} - -Buffer * -openGeneralPagerBuffer(InputStream stream) -{ - Buffer *buf; - char *t = "text/plain"; - Buffer *t_buf = NULL; - URLFile uf; - - init_stream(&uf, SCM_UNKNOWN, stream); - -#ifdef USE_M17N - content_charset = 0; -#endif - if (SearchHeader) { - t_buf = newBuffer(INIT_BUFFER_WIDTH); - readHeader(&uf, t_buf, TRUE, NULL); - t = checkContentType(t_buf); - if (t == NULL) - t = "text/plain"; - if (t_buf) { - t_buf->topLine = t_buf->firstLine; - t_buf->currentLine = t_buf->lastLine; - } - SearchHeader = FALSE; - } - else if (DefaultType) { - t = DefaultType; - DefaultType = NULL; - } - if (!strcasecmp(t, "text/html")) { - buf = loadHTMLBuffer(&uf, t_buf); - buf->type = "text/html"; - } - else if (is_plain_text_type(t)) { - if (IStype(stream) != IST_ENCODED) - stream = newEncodedStream(stream, uf.encoding); - buf = openPagerBuffer(stream, t_buf); - buf->type = "text/plain"; - } -#ifdef USE_IMAGE - else if (activeImage && displayImage && !useExtImageViewer && - !(w3m_dump & ~DUMP_FRAME) && !strncasecmp(t, "image/", 6)) { - cur_baseURL = New(ParsedURL); - parseURL("-", cur_baseURL, NULL); - buf = loadImageBuffer(&uf, t_buf); - buf->type = "text/html"; - } -#endif - else { - if (doExternal(uf, "-", t, &buf, t_buf)) { - UFclose(&uf); - if (buf == NULL || buf == NO_BUFFER) - return buf; - } - else { /* unknown type is regarded as text/plain */ - if (IStype(stream) != IST_ENCODED) - stream = newEncodedStream(stream, uf.encoding); - buf = openPagerBuffer(stream, t_buf); - buf->type = "text/plain"; - } - } - buf->real_type = t; - buf->currentURL.scheme = SCM_LOCAL; - buf->currentURL.file = "-"; - return buf; -} - -Line * -getNextPage(Buffer *buf, int plen) -{ - Line *volatile top = buf->topLine, *volatile last = buf->lastLine, - *volatile cur = buf->currentLine; - int i; - int volatile nlines = 0; - clen_t linelen = 0, trbyte = buf->trbyte; - Str lineBuf2; - char volatile pre_lbuf = '\0'; - URLFile uf; -#ifdef USE_M17N - wc_ces charset; - wc_ces volatile doc_charset = DocumentCharset; - wc_uint8 old_auto_detect = WcOption.auto_detect; -#endif - int volatile squeeze_flag = FALSE; - Lineprop *propBuffer = NULL; - -#ifdef USE_ANSI_COLOR - Linecolor *colorBuffer = NULL; -#endif - MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; - - if (buf->pagerSource == NULL) - return NULL; - - if (last != NULL) { - nlines = last->real_linenumber; - pre_lbuf = *(last->lineBuf); - if (pre_lbuf == '\0') - pre_lbuf = '\n'; - buf->currentLine = last; - } - -#ifdef USE_M17N - charset = buf->document_charset; - if (buf->document_charset != WC_CES_US_ASCII) - doc_charset = buf->document_charset; - else if (UseContentCharset) { - content_charset = 0; - checkContentType(buf); - if (content_charset) - doc_charset = content_charset; - } - WcOption.auto_detect = buf->auto_detect; -#endif - - if (SETJMP(AbortLoading) != 0) { - goto pager_end; - } - TRAP_ON; - - init_stream(&uf, SCM_UNKNOWN, NULL); - for (i = 0; i < plen; i++) { - lineBuf2 = StrmyISgets(buf->pagerSource); - if (lineBuf2->length == 0) { - /* Assume that `cmd == buf->filename' */ - if (buf->filename) - buf->buffername = Sprintf("%s %s", - CPIPEBUFFERNAME, - conv_from_system(buf->filename))-> - ptr; - else if (getenv("MAN_PN") == NULL) - buf->buffername = CPIPEBUFFERNAME; - buf->bufferprop |= BP_CLOSE; - break; - } - linelen += lineBuf2->length; - showProgress(&linelen, &trbyte); - lineBuf2 = - convertLine(&uf, lineBuf2, PAGER_MODE, &charset, doc_charset); - if (squeezeBlankLine) { - squeeze_flag = FALSE; - if (lineBuf2->ptr[0] == '\n' && pre_lbuf == '\n') { - ++nlines; - --i; - squeeze_flag = TRUE; - continue; - } - pre_lbuf = lineBuf2->ptr[0]; - } - ++nlines; - Strchop(lineBuf2); - lineBuf2 = checkType(lineBuf2, &propBuffer, &colorBuffer); - addnewline(buf, lineBuf2->ptr, propBuffer, colorBuffer, - lineBuf2->length, FOLD_BUFFER_WIDTH, nlines); - if (!top) { - top = buf->firstLine; - cur = top; - } - if (buf->lastLine->real_linenumber - buf->firstLine->real_linenumber - >= PagerMax) { - Line *l = buf->firstLine; - do { - if (top == l) - top = l->next; - if (cur == l) - cur = l->next; - if (last == l) - last = NULL; - l = l->next; - } while (l && l->bpos); - buf->firstLine = l; - buf->firstLine->prev = NULL; - } - } - pager_end: - TRAP_OFF; - - buf->trbyte = trbyte + linelen; -#ifdef USE_M17N - buf->document_charset = charset; - WcOption.auto_detect = old_auto_detect; -#endif - buf->topLine = top; - buf->currentLine = cur; - if (!last) - last = buf->firstLine; - else if (last && (last->next || !squeeze_flag)) - last = last->next; - return last; -} - -int -save2tmp(URLFile uf, char *tmpf) -{ - FILE *ff; - int check; - clen_t linelen = 0, trbyte = 0; - MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; - static JMP_BUF env_bak; - - ff = fopen(tmpf, "wb"); - if (ff == NULL) { - /* fclose(f); */ - return -1; - } - bcopy(AbortLoading, env_bak, sizeof(JMP_BUF)); - if (SETJMP(AbortLoading) != 0) { - goto _end; - } - TRAP_ON; - check = 0; -#ifdef USE_NNTP - if (uf.scheme == SCM_NEWS) { - char c; - while (c = UFgetc(&uf), !iseos(uf.stream)) { - if (c == '\n') { - if (check == 0) - check++; - else if (check == 3) - break; - } - else if (c == '.' && check == 1) - check++; - else if (c == '\r' && check == 2) - check++; - else - check = 0; - putc(c, ff); - linelen += sizeof(c); - showProgress(&linelen, &trbyte); - } - } - else -#endif /* USE_NNTP */ - { - Str buf = Strnew_size(SAVE_BUF_SIZE); - while (UFread(&uf, buf, SAVE_BUF_SIZE)) { - Strfputs(buf, ff); - linelen += buf->length; - showProgress(&linelen, &trbyte); - } - } - _end: - bcopy(env_bak, AbortLoading, sizeof(JMP_BUF)); - TRAP_OFF; - fclose(ff); - current_content_length = 0; - return 0; -} - -int -doExternal(URLFile uf, char *path, char *type, Buffer **bufp, - Buffer *defaultbuf) -{ - Str tmpf, command; - struct mailcap *mcap; - int mc_stat; - Buffer *buf = NULL; - char *header, *src = NULL, *ext = uf.ext; - - if (!(mcap = searchExtViewer(type))) - return 0; - - if (mcap->nametemplate) { - tmpf = unquote_mailcap(mcap->nametemplate, NULL, "", NULL, NULL); - if (tmpf->ptr[0] == '.') - ext = tmpf->ptr; - } - tmpf = tmpfname(TMPF_DFL, (ext && *ext) ? ext : NULL); - - if (IStype(uf.stream) != IST_ENCODED) - uf.stream = newEncodedStream(uf.stream, uf.encoding); - header = checkHeader(defaultbuf, "Content-Type:"); - if (header) - header = conv_to_system(header); - command = unquote_mailcap(mcap->viewer, type, tmpf->ptr, header, &mc_stat); -#ifndef __EMX__ - if (!(mc_stat & MCSTAT_REPNAME)) { - Str tmp = Sprintf("(%s) < %s", command->ptr, shell_quote(tmpf->ptr)); - command = tmp; - } -#endif - -#ifdef HAVE_SETPGRP - if (!(mcap->flags & (MAILCAP_HTMLOUTPUT | MAILCAP_COPIOUSOUTPUT)) && - !(mcap->flags & MAILCAP_NEEDSTERMINAL) && BackgroundExtViewer) { - flush_tty(); - if (!fork()) { - setup_child(FALSE, 0, UFfileno(&uf)); - if (save2tmp(uf, tmpf->ptr) < 0) - exit(1); - UFclose(&uf); - myExec(command->ptr); - } - *bufp = NO_BUFFER; - return 1; - } - else -#endif - { - if (save2tmp(uf, tmpf->ptr) < 0) { - *bufp = NULL; - return 1; - } - } - if (mcap->flags & (MAILCAP_HTMLOUTPUT | MAILCAP_COPIOUSOUTPUT)) { - if (defaultbuf == NULL) - defaultbuf = newBuffer(INIT_BUFFER_WIDTH); - if (defaultbuf->sourcefile) - src = defaultbuf->sourcefile; - else - src = tmpf->ptr; - defaultbuf->sourcefile = NULL; - defaultbuf->mailcap = mcap; - } - if (mcap->flags & MAILCAP_HTMLOUTPUT) { - buf = loadcmdout(command->ptr, loadHTMLBuffer, defaultbuf); - if (buf && buf != NO_BUFFER) { - buf->type = "text/html"; - buf->mailcap_source = buf->sourcefile; - buf->sourcefile = src; - } - } - else if (mcap->flags & MAILCAP_COPIOUSOUTPUT) { - buf = loadcmdout(command->ptr, loadBuffer, defaultbuf); - if (buf && buf != NO_BUFFER) { - buf->type = "text/plain"; - buf->mailcap_source = buf->sourcefile; - buf->sourcefile = src; - } - } - else { - if (mcap->flags & MAILCAP_NEEDSTERMINAL || !BackgroundExtViewer) { - fmTerm(); - mySystem(command->ptr, 0); - fmInit(); - if (CurrentTab && Currentbuf) - displayBuffer(Currentbuf, B_FORCE_REDRAW); - } - else { - mySystem(command->ptr, 1); - } - buf = NO_BUFFER; - } - if (buf && buf != NO_BUFFER) { - buf->filename = path; - if (buf->buffername == NULL || buf->buffername[0] == '\0') - buf->buffername = conv_from_system(lastFileName(path)); - buf->edit = mcap->edit; - buf->mailcap = mcap; - } - *bufp = buf; - return 1; -} - -static int -_MoveFile(char *path1, char *path2) -{ - InputStream f1; - FILE *f2; - int is_pipe; - clen_t linelen = 0, trbyte = 0; - Str buf; - - f1 = openIS(path1); - if (f1 == NULL) - return -1; - if (*path2 == '|' && PermitSaveToPipe) { - is_pipe = TRUE; - f2 = popen(path2 + 1, "w"); - } - else { - is_pipe = FALSE; - f2 = fopen(path2, "wb"); - } - if (f2 == NULL) { - ISclose(f1); - return -1; - } - current_content_length = 0; - buf = Strnew_size(SAVE_BUF_SIZE); - while (ISread(f1, buf, SAVE_BUF_SIZE)) { - Strfputs(buf, f2); - linelen += buf->length; - showProgress(&linelen, &trbyte); - } - ISclose(f1); - if (is_pipe) - pclose(f2); - else - fclose(f2); - return 0; -} - -int -_doFileCopy(char *tmpf, char *defstr, int download) -{ - Str msg; - Str filen; - char *p, *q = NULL; - pid_t pid; - char *lock; -#if !(defined(HAVE_SYMLINK) && defined(HAVE_LSTAT)) - FILE *f; -#endif - struct stat st; - clen_t size = 0; - int is_pipe = FALSE; - - if (fmInitialized) { - p = searchKeyData(); - if (p == NULL || *p == '\0') { - /* FIXME: gettextize? */ - q = inputLineHist("(Download)Save file to: ", - defstr, IN_COMMAND, SaveHist); - if (q == NULL || *q == '\0') - return FALSE; - p = conv_to_system(q); - } - if (*p == '|' && PermitSaveToPipe) - is_pipe = TRUE; - else { - if (q) { - p = unescape_spaces(Strnew_charp(q))->ptr; - p = conv_to_system(q); - } - p = expandPath(p); - if (checkOverWrite(p) < 0) - return -1; - } - if (checkCopyFile(tmpf, p) < 0) { - /* FIXME: gettextize? */ - msg = Sprintf("Can't copy. %s and %s are identical.", - conv_from_system(tmpf), conv_from_system(p)); - disp_err_message(msg->ptr, FALSE); - return -1; - } - if (!download) { - if (_MoveFile(tmpf, p) < 0) { - /* FIXME: gettextize? */ - msg = Sprintf("Can't save to %s", conv_from_system(p)); - disp_err_message(msg->ptr, FALSE); - } - return -1; - } - lock = tmpfname(TMPF_DFL, ".lock")->ptr; -#if defined(HAVE_SYMLINK) && defined(HAVE_LSTAT) - symlink(p, lock); -#else - f = fopen(lock, "w"); - if (f) - fclose(f); -#endif - flush_tty(); - pid = fork(); - if (!pid) { - setup_child(FALSE, 0, -1); - if (!_MoveFile(tmpf, p) && PreserveTimestamp && !is_pipe && - !stat(tmpf, &st)) - setModtime(p, st.st_mtime); - unlink(lock); - exit(0); - } - if (!stat(tmpf, &st)) - size = st.st_size; - addDownloadList(pid, conv_from_system(tmpf), p, lock, size); - } - else { - q = searchKeyData(); - if (q == NULL || *q == '\0') { - /* FIXME: gettextize? */ - printf("(Download)Save file to: "); - fflush(stdout); - filen = Strfgets(stdin); - if (filen->length == 0) - return -1; - q = filen->ptr; - } - for (p = q + strlen(q) - 1; IS_SPACE(*p); p--) ; - *(p + 1) = '\0'; - if (*q == '\0') - return -1; - p = q; - if (*p == '|' && PermitSaveToPipe) - is_pipe = TRUE; - else { - p = expandPath(p); - if (checkOverWrite(p) < 0) - return -1; - } - if (checkCopyFile(tmpf, p) < 0) { - /* FIXME: gettextize? */ - printf("Can't copy. %s and %s are identical.", tmpf, p); - return -1; - } - if (_MoveFile(tmpf, p) < 0) { - /* FIXME: gettextize? */ - printf("Can't save to %s\n", p); - return -1; - } - if (PreserveTimestamp && !is_pipe && !stat(tmpf, &st)) - setModtime(p, st.st_mtime); - } - return 0; -} - -int -doFileMove(char *tmpf, char *defstr) -{ - int ret = doFileCopy(tmpf, defstr); - unlink(tmpf); - return ret; -} - -int -doFileSave(URLFile uf, char *defstr) -{ - Str msg; - Str filen; - char *p, *q; - pid_t pid; - char *lock; - char *tmpf = NULL; -#if !(defined(HAVE_SYMLINK) && defined(HAVE_LSTAT)) - FILE *f; -#endif - - if (fmInitialized) { - p = searchKeyData(); - if (p == NULL || *p == '\0') { - /* FIXME: gettextize? */ - p = inputLineHist("(Download)Save file to: ", - defstr, IN_FILENAME, SaveHist); - if (p == NULL || *p == '\0') - return -1; - p = conv_to_system(p); - } - if (checkOverWrite(p) < 0) - return -1; - if (checkSaveFile(uf.stream, p) < 0) { - /* FIXME: gettextize? */ - msg = Sprintf("Can't save. Load file and %s are identical.", - conv_from_system(p)); - disp_err_message(msg->ptr, FALSE); - return -1; - } - /* - * if (save2tmp(uf, p) < 0) { - * msg = Sprintf("Can't save to %s", conv_from_system(p)); - * disp_err_message(msg->ptr, FALSE); - * } - */ - lock = tmpfname(TMPF_DFL, ".lock")->ptr; -#if defined(HAVE_SYMLINK) && defined(HAVE_LSTAT) - symlink(p, lock); -#else - f = fopen(lock, "w"); - if (f) - fclose(f); -#endif - flush_tty(); - pid = fork(); - if (!pid) { - if (uf.content_encoding != CMP_NOCOMPRESS) { - uncompress_stream(&uf, &tmpf); - if (tmpf) - unlink(tmpf); - } - setup_child(FALSE, 0, UFfileno(&uf)); - if (!save2tmp(uf, p) && PreserveTimestamp && uf.modtime != -1) - setModtime(p, uf.modtime); - UFclose(&uf); - unlink(lock); - exit(0); - } - addDownloadList(pid, uf.url, p, lock, current_content_length); - } - else { - q = searchKeyData(); - if (q == NULL || *q == '\0') { - /* FIXME: gettextize? */ - printf("(Download)Save file to: "); - fflush(stdout); - filen = Strfgets(stdin); - if (filen->length == 0) - return -1; - q = filen->ptr; - } - for (p = q + strlen(q) - 1; IS_SPACE(*p); p--) ; - *(p + 1) = '\0'; - if (*q == '\0') - return -1; - p = expandPath(q); - if (checkOverWrite(p) < 0) - return -1; - if (checkSaveFile(uf.stream, p) < 0) { - /* FIXME: gettextize? */ - printf("Can't save. Load file and %s are identical.", p); - return -1; - } - if (uf.content_encoding != CMP_NOCOMPRESS) { - uncompress_stream(&uf, &tmpf); - if (tmpf) - unlink(tmpf); - } - if (save2tmp(uf, p) < 0) { - /* FIXME: gettextize? */ - printf("Can't save to %s\n", p); - return -1; - } - if (PreserveTimestamp && uf.modtime != -1) - setModtime(p, uf.modtime); - } - return 0; -} - -int -checkCopyFile(char *path1, char *path2) -{ - struct stat st1, st2; - - if (*path2 == '|' && PermitSaveToPipe) - return 0; - if ((stat(path1, &st1) == 0) && (stat(path2, &st2) == 0)) - if (st1.st_ino == st2.st_ino) - return -1; - return 0; -} - -int -checkSaveFile(InputStream stream, char *path2) -{ - struct stat st1, st2; - int des = ISfileno(stream); - - if (des < 0) - return 0; - if (*path2 == '|' && PermitSaveToPipe) - return 0; - if ((fstat(des, &st1) == 0) && (stat(path2, &st2) == 0)) - if (st1.st_ino == st2.st_ino) - return -1; - return 0; -} - -int -checkOverWrite(char *path) -{ - struct stat st; - char *ans; - - if (stat(path, &st) < 0) - return 0; - /* FIXME: gettextize? */ - ans = inputAnswer("File exists. Overwrite? (y/n)"); - if (ans && TOLOWER(*ans) == 'y') - return 0; - else - return -1; -} - -char * -inputAnswer(char *prompt) -{ - char *ans; - - if (QuietMessage) - return "n"; - if (fmInitialized) { - term_raw(); - ans = inputChar(prompt); - } - else { - printf(prompt); - fflush(stdout); - ans = Strfgets(stdin)->ptr; - } - return ans; -} - -static void -uncompress_stream(URLFile *uf, char **src) -{ - pid_t pid1; - FILE *f1; - char *expand_cmd = GUNZIP_CMDNAME; - char *expand_name = GUNZIP_NAME; - char *tmpf = NULL; - char *ext = NULL; - struct compression_decoder *d; - - if (IStype(uf->stream) != IST_ENCODED) { - uf->stream = newEncodedStream(uf->stream, uf->encoding); - uf->encoding = ENC_7BIT; - } - for (d = compression_decoders; d->type != CMP_NOCOMPRESS; d++) { - if (uf->compression == d->type) { - if (d->auxbin_p) - expand_cmd = auxbinFile(d->cmd); - else - expand_cmd = d->cmd; - expand_name = d->name; - ext = d->ext; - break; - } - } - uf->compression = CMP_NOCOMPRESS; - - if (uf->scheme != SCM_LOCAL -#ifdef USE_IMAGE - && !image_source -#endif - ) { - tmpf = tmpfname(TMPF_DFL, ext)->ptr; - } - - /* child1 -- stdout|f1=uf -> parent */ - pid1 = open_pipe_rw(&f1, NULL); - if (pid1 < 0) { - UFclose(uf); - return; - } - if (pid1 == 0) { - /* child */ - pid_t pid2; - FILE *f2 = stdin; - - /* uf -> child2 -- stdout|stdin -> child1 */ - pid2 = open_pipe_rw(&f2, NULL); - if (pid2 < 0) { - UFclose(uf); - exit(1); - } - if (pid2 == 0) { - /* child2 */ - Str buf = Strnew_size(SAVE_BUF_SIZE); - FILE *f = NULL; - - setup_child(TRUE, 2, UFfileno(uf)); - if (tmpf) - f = fopen(tmpf, "wb"); - while (UFread(uf, buf, SAVE_BUF_SIZE)) { - if (Strfputs(buf, stdout) < 0) - break; - if (f) - Strfputs(buf, f); - } - UFclose(uf); - if (f) - fclose(f); - exit(0); - } - /* child1 */ - dup2(1, 2); /* stderr>&stdout */ - setup_child(TRUE, -1, -1); - execlp(expand_cmd, expand_name, NULL); - exit(1); - } - if (tmpf) { - if (src) - *src = tmpf; - else - uf->scheme = SCM_LOCAL; - } - UFhalfclose(uf); - uf->stream = newFileStream(f1, (void (*)())fclose); -} - -static FILE * -lessopen_stream(char *path) -{ - char *lessopen; - FILE *fp; - - lessopen = getenv("LESSOPEN"); - if (lessopen == NULL) { - return NULL; - } - if (lessopen[0] == '\0') { - return NULL; - } - - if (lessopen[0] == '|') { - /* pipe mode */ - Str tmpf; - int c; - - ++lessopen; - tmpf = Sprintf(lessopen, shell_quote(path)); - fp = popen(tmpf->ptr, "r"); - if (fp == NULL) { - return NULL; - } - c = getc(fp); - if (c == EOF) { - fclose(fp); - return NULL; - } - ungetc(c, fp); - } - else { - /* filename mode */ - /* not supported m(__)m */ - fp = NULL; - } - return fp; -} - -#if 0 -void -reloadBuffer(Buffer *buf) -{ - URLFile uf; - - if (buf->sourcefile == NULL || buf->pagerSource != NULL) - return; - init_stream(&uf, SCM_UNKNOWN, NULL); - examineFile(buf->mailcap_source ? buf->mailcap_source : buf->sourcefile, - &uf); - if (uf.stream == NULL) - return; - is_redisplay = TRUE; - buf->allLine = 0; - buf->href = NULL; - buf->name = NULL; - buf->img = NULL; - buf->formitem = NULL; - buf->linklist = NULL; - buf->maplist = NULL; - if (buf->hmarklist) - buf->hmarklist->nmark = 0; - if (buf->imarklist) - buf->imarklist->nmark = 0; - if (!strcasecmp(buf->type, "text/html")) - loadHTMLBuffer(&uf, buf); - else - loadBuffer(&uf, buf); - UFclose(&uf); - is_redisplay = FALSE; -} -#endif - -static char * -guess_filename(char *file) -{ - char *p = NULL, *s; - - if (file != NULL) - p = mybasename(file); - if (p == NULL || *p == '\0') - return DEF_SAVE_FILE; - s = p; - if (*p == '#') - p++; - while (*p != '\0') { - if ((*p == '#' && *(p + 1) != '\0') || *p == '?') { - *p = '\0'; - break; - } - p++; - } - return s; -} - -char * -guess_save_name(Buffer *buf, char *path) -{ - if (buf && buf->document_header) { - Str name = NULL; - char *p, *q; - if ((p = checkHeader(buf, "Content-Disposition:")) != NULL && - (q = strcasestr(p, "filename")) != NULL && - (q == p || IS_SPACE(*(q - 1)) || *(q - 1) == ';') && - matchattr(q, "filename", 8, &name)) - path = name->ptr; - else if ((p = checkHeader(buf, "Content-Type:")) != NULL && - (q = strcasestr(p, "name")) != NULL && - (q == p || IS_SPACE(*(q - 1)) || *(q - 1) == ';') && - matchattr(q, "name", 4, &name)) - path = name->ptr; - } - return guess_filename(path); -} - -/* Local Variables: */ -/* c-basic-offset: 4 */ -/* tab-width: 8 */ -/* End: */ diff --git a/.#main.c.1.253 b/.#main.c.1.253 deleted file mode 100644 index 9a4c755..0000000 --- a/.#main.c.1.253 +++ /dev/null @@ -1,6600 +0,0 @@ -/* $Id: main.c,v 1.253 2006/12/10 10:49:23 inu Exp $ */ -#define MAINPROGRAM -#include "fm.h" -#include <signal.h> -#include <setjmp.h> -#include <sys/stat.h> -#include <sys/types.h> -#include <unistd.h> -#include <fcntl.h> -#if defined(HAVE_WAITPID) || defined(HAVE_WAIT3) -#include <sys/wait.h> -#endif -#include <time.h> -#include "terms.h" -#include "myctype.h" -#include "regex.h" -#ifdef USE_MOUSE -#ifdef USE_GPM -#include <gpm.h> -#endif /* USE_GPM */ -#if defined(USE_GPM) || defined(USE_SYSMOUSE) -extern int do_getch(); -#define getch() do_getch() -#endif /* defined(USE_GPM) || defined(USE_SYSMOUSE) */ -#endif - -#define DSTR_LEN 256 - -Hist *LoadHist; -Hist *SaveHist; -Hist *URLHist; -Hist *ShellHist; -Hist *TextHist; - -typedef struct _Event { - int cmd; - void *data; - struct _Event *next; -} Event; -static Event *CurrentEvent = NULL; -static Event *LastEvent = NULL; - -#ifdef USE_ALARM -static AlarmEvent DefaultAlarm = { - 0, AL_UNSET, FUNCNAME_nulcmd, NULL -}; -static AlarmEvent *CurrentAlarm = &DefaultAlarm; -static MySignalHandler SigAlarm(SIGNAL_ARG); -#endif - -#ifdef SIGWINCH -static int need_resize_screen = FALSE; -static MySignalHandler resize_hook(SIGNAL_ARG); -static void resize_screen(void); -#endif - -#ifdef SIGPIPE -static MySignalHandler SigPipe(SIGNAL_ARG); -#endif - -#ifdef USE_MARK -static char *MarkString = NULL; -#endif -static char *SearchString = NULL; -int (*searchRoutine) (Buffer *, char *); - -JMP_BUF IntReturn; - -static void delBuffer(Buffer *buf); -static void cmd_loadfile(char *path); -static void cmd_loadURL(char *url, ParsedURL *current, char *referer, - FormList *request); -static void cmd_loadBuffer(Buffer *buf, int prop, int linkid); -static void keyPressEventProc(int c); -int show_params_p = 0; -void show_params(FILE * fp); - -static char *getCurWord(Buffer *buf, int *spos, int *epos, - const char *badchars); - -static int display_ok = FALSE; -static void do_dump(Buffer *); -int prec_num = 0; -int prev_key = -1; -int on_target = 1; -static int add_download_list = FALSE; - -void set_buffer_environ(Buffer *); -static void save_buffer_position(Buffer *buf); - -static void _followForm(int); -static void _goLine(char *); -static void _newT(void); -static void followTab(TabBuffer * tab); -static void moveTab(TabBuffer * t, TabBuffer * t2, int right); -static void _nextA(int); -static void _prevA(int); -static int check_target = TRUE; -#define PREC_NUM (prec_num ? prec_num : 1) -#define PREC_LIMIT 10000 -static int searchKeyNum(void); - -#define help() fusage(stdout, 0) -#define usage() fusage(stderr, 1) - -static void -fversion(FILE * f) -{ - fprintf(f, "w3m version %s, options %s\n", w3m_version, -#if LANG == JA - "lang=ja" -#else - "lang=en" -#endif -#ifdef USE_M17N - ",m17n" -#endif -#ifdef USE_IMAGE - ",image" -#endif -#ifdef USE_COLOR - ",color" -#ifdef USE_ANSI_COLOR - ",ansi-color" -#endif -#endif -#ifdef USE_MOUSE - ",mouse" -#ifdef USE_GPM - ",gpm" -#endif -#ifdef USE_SYSMOUSE - ",sysmouse" -#endif -#endif -#ifdef USE_MENU - ",menu" -#endif -#ifdef USE_COOKIE - ",cookie" -#endif -#ifdef USE_SSL - ",ssl" -#ifdef USE_SSL_VERIFY - ",ssl-verify" -#endif -#endif -#ifdef USE_EXTERNAL_URI_LOADER - ",external-uri-loader" -#endif -#ifdef USE_W3MMAILER - ",w3mmailer" -#endif -#ifdef USE_NNTP - ",nntp" -#endif -#ifdef USE_GOPHER - ",gopher" -#endif -#ifdef INET6 - ",ipv6" -#endif -#ifdef USE_ALARM - ",alarm" -#endif -#ifdef USE_MARK - ",mark" -#endif -#ifdef USE_MIGEMO - ",migemo" -#endif - ); -} - -static void -fusage(FILE * f, int err) -{ - fversion(f); - /* FIXME: gettextize? */ - fprintf(f, "usage: w3m [options] [URL or filename]\noptions:\n"); - fprintf(f, " -t tab set tab width\n"); - fprintf(f, " -r ignore backspace effect\n"); - fprintf(f, " -l line # of preserved line (default 10000)\n"); -#ifdef USE_M17N - fprintf(f, " -I charset document charset\n"); - fprintf(f, " -O charset display/output charset\n"); -#ifndef DEBIAN /* disabled by ukai: -s is used for squeeze multi lines */ - fprintf(f, " -e EUC-JP\n"); - fprintf(f, " -s Shift_JIS\n"); - fprintf(f, " -j JIS\n"); -#endif -#endif - fprintf(f, " -B load bookmark\n"); - fprintf(f, " -bookmark file specify bookmark file\n"); - fprintf(f, " -T type specify content-type\n"); - fprintf(f, " -m internet message mode\n"); - fprintf(f, " -v visual startup mode\n"); -#ifdef USE_COLOR - fprintf(f, " -M monochrome display\n"); -#endif /* USE_COLOR */ - fprintf(f, - " -N open URL of command line on each new tab\n"); - fprintf(f, " -F automatically render frame\n"); - fprintf(f, - " -cols width specify column width (used with -dump)\n"); - fprintf(f, - " -ppc count specify the number of pixels per character (4.0...32.0)\n"); -#ifdef USE_IMAGE - fprintf(f, - " -ppl count specify the number of pixels per line (4.0...64.0)\n"); -#endif - fprintf(f, " -dump dump formatted page into stdout\n"); - fprintf(f, - " -dump_head dump response of HEAD request into stdout\n"); - fprintf(f, " -dump_source dump page source into stdout\n"); - fprintf(f, " -dump_both dump HEAD and source into stdout\n"); - fprintf(f, - " -dump_extra dump HEAD, source, and extra information into stdout\n"); - fprintf(f, " -post file use POST method with file content\n"); - fprintf(f, " -header string insert string as a header\n"); - fprintf(f, " +<num> goto <num> line\n"); - fprintf(f, " -num show line number\n"); - fprintf(f, " -no-proxy don't use proxy\n"); -#ifdef INET6 - fprintf(f, " -4 IPv4 only (-o dns_order=4)\n"); - fprintf(f, " -6 IPv6 only (-o dns_order=6)\n"); -#endif -#ifdef USE_MOUSE - fprintf(f, " -no-mouse don't use mouse\n"); -#endif /* USE_MOUSE */ -#ifdef USE_COOKIE - fprintf(f, - " -cookie use cookie (-no-cookie: don't use cookie)\n"); -#endif /* USE_COOKIE */ - fprintf(f, " -pauth user:pass proxy authentication\n"); - fprintf(f, " -graph use graphic character\n"); - fprintf(f, " -no-graph don't use graphic character\n"); -#ifdef DEBIAN /* replaced by ukai: pager requires -s */ - fprintf(f, " -s squeeze multiple blank lines\n"); -#else - fprintf(f, " -S squeeze multiple blank lines\n"); -#endif - fprintf(f, " -W toggle wrap search mode\n"); - fprintf(f, " -X don't use termcap init/deinit\n"); - fprintf(f, - " -title[=TERM] set buffer name to terminal title string\n"); - fprintf(f, " -o opt=value assign value to config option\n"); - fprintf(f, " -show-option print all config options\n"); - fprintf(f, " -config file specify config file\n"); - fprintf(f, " -help print this usage message\n"); - fprintf(f, " -version print w3m version\n"); - fprintf(f, " -reqlog write request logfile\n"); - fprintf(f, " -debug DO NOT USE\n"); - if (show_params_p) - show_params(f); - exit(err); -} - -#ifdef USE_M17N -#ifdef __EMX__ -static char *getCodePage(void); -#endif -#endif - -static GC_warn_proc orig_GC_warn_proc = NULL; -#define GC_WARN_KEEP_MAX (20) - -static void -wrap_GC_warn_proc(char *msg, GC_word arg) -{ - if (fmInitialized) { - /* *INDENT-OFF* */ - static struct { - char *msg; - GC_word arg; - } msg_ring[GC_WARN_KEEP_MAX]; - /* *INDENT-ON* */ - static int i = 0; - static int n = 0; - static int lock = 0; - int j; - - j = (i + n) % (sizeof(msg_ring) / sizeof(msg_ring[0])); - msg_ring[j].msg = msg; - msg_ring[j].arg = arg; - - if (n < sizeof(msg_ring) / sizeof(msg_ring[0])) - ++n; - else - ++i; - - if (!lock) { - lock = 1; - - for (; n > 0; --n, ++i) { - i %= sizeof(msg_ring) / sizeof(msg_ring[0]); - - printf(msg_ring[i].msg, (unsigned long)msg_ring[i].arg); - sleep_till_anykey(1, 1); - } - - lock = 0; - } - } - else if (orig_GC_warn_proc) - orig_GC_warn_proc(msg, arg); - else - fprintf(stderr, msg, (unsigned long)arg); -} - -#ifdef SIGCHLD -static void -sig_chld(int signo) -{ - int p_stat; -#ifdef HAVE_WAITPID - pid_t pid; - - while ((pid = waitpid(-1, &p_stat, WNOHANG)) > 0) { - ; - } -#elif HAVE_WAIT3 - int pid; - - while ((pid = wait3(&p_stat, WNOHANG, NULL)) > 0) { - ; - } -#else - wait(&p_stat); -#endif - mySignal(SIGCHLD, sig_chld); - return; -} -#endif - -Str -make_optional_header_string(char *s) -{ - char *p; - Str hs; - - if (strchr(s, '\n') || strchr(s, '\r')) - return NULL; - for (p = s; *p && *p != ':'; p++) ; - if (*p != ':' || p == s) - return NULL; - hs = Strnew_size(strlen(s) + 3); - Strcopy_charp_n(hs, s, p - s); - if (!Strcasecmp_charp(hs, "content-type")) - override_content_type = TRUE; - Strcat_charp(hs, ": "); - if (*(++p)) { /* not null header */ - SKIP_BLANKS(p); /* skip white spaces */ - Strcat_charp(hs, p); - } - Strcat_charp(hs, "\r\n"); - return hs; -} - -int -main(int argc, char **argv, char **envp) -{ - Buffer *newbuf = NULL; - char *p, c; - int i; - InputStream redin; - char *line_str = NULL; - char **load_argv; - FormList *request; - int load_argc = 0; - int load_bookmark = FALSE; - int visual_start = FALSE; - int open_new_tab = FALSE; - char search_header = FALSE; - char *default_type = NULL; - char *post_file = NULL; - Str err_msg; -#ifdef USE_M17N - char *Locale = NULL; - wc_uint8 auto_detect; -#ifdef __EMX__ - wc_ces CodePage; -#endif -#endif - GC_init(); -#if ENABLE_NLS - setlocale(LC_ALL, ""); - bindtextdomain(PACKAGE, LOCALEDIR); - textdomain(PACKAGE); -#endif - -#ifndef HAVE_SYS_ERRLIST - prepare_sys_errlist(); -#endif /* not HAVE_SYS_ERRLIST */ - - NO_proxy_domains = newTextList(); - fileToDelete = newTextList(); - - load_argv = New_N(char *, argc - 1); - load_argc = 0; - - CurrentDir = currentdir(); - CurrentPid = (int)getpid(); - BookmarkFile = NULL; - config_file = NULL; - - /* argument search 1 */ - for (i = 1; i < argc; i++) { - if (*argv[i] == '-') { - if (!strcmp("-config", argv[i])) { - argv[i] = "-dummy"; - if (++i >= argc) - usage(); - config_file = argv[i]; - argv[i] = "-dummy"; - } - else if (!strcmp("-h", argv[i]) || !strcmp("-help", argv[i])) - help(); - else if (!strcmp("-V", argv[i]) || !strcmp("-version", argv[i])) { - fversion(stdout); - exit(0); - } - } - } - -#ifdef USE_M17N - if (non_null(Locale = getenv("LC_ALL")) || - non_null(Locale = getenv("LC_CTYPE")) || - non_null(Locale = getenv("LANG"))) { - DisplayCharset = wc_guess_locale_charset(Locale, DisplayCharset); - DocumentCharset = wc_guess_locale_charset(Locale, DocumentCharset); - SystemCharset = wc_guess_locale_charset(Locale, SystemCharset); - } -#ifdef __EMX__ - CodePage = wc_guess_charset(getCodePage(), 0); - if (CodePage) - DisplayCharset = DocumentCharset = SystemCharset = CodePage; -#endif -#endif - - /* initializations */ - init_rc(); - - LoadHist = newHist(); - SaveHist = newHist(); - ShellHist = newHist(); - TextHist = newHist(); - URLHist = newHist(); - -#ifdef USE_M17N - if (FollowLocale && Locale) { - DisplayCharset = wc_guess_locale_charset(Locale, DisplayCharset); - SystemCharset = wc_guess_locale_charset(Locale, SystemCharset); - } - auto_detect = WcOption.auto_detect; - BookmarkCharset = DocumentCharset; -#endif - - if (!non_null(HTTP_proxy) && - ((p = getenv("HTTP_PROXY")) || - (p = getenv("http_proxy")) || (p = getenv("HTTP_proxy")))) - HTTP_proxy = p; -#ifdef USE_SSL - if (!non_null(HTTPS_proxy) && - ((p = getenv("HTTPS_PROXY")) || - (p = getenv("https_proxy")) || (p = getenv("HTTPS_proxy")))) - HTTPS_proxy = p; - if (HTTPS_proxy == NULL && non_null(HTTP_proxy)) - HTTPS_proxy = HTTP_proxy; -#endif /* USE_SSL */ -#ifdef USE_GOPHER - if (!non_null(GOPHER_proxy) && - ((p = getenv("GOPHER_PROXY")) || - (p = getenv("gopher_proxy")) || (p = getenv("GOPHER_proxy")))) - GOPHER_proxy = p; -#endif /* USE_GOPHER */ - if (!non_null(FTP_proxy) && - ((p = getenv("FTP_PROXY")) || - (p = getenv("ftp_proxy")) || (p = getenv("FTP_proxy")))) - FTP_proxy = p; - if (!non_null(NO_proxy) && - ((p = getenv("NO_PROXY")) || - (p = getenv("no_proxy")) || (p = getenv("NO_proxy")))) - NO_proxy = p; -#ifdef USE_NNTP - if (!non_null(NNTP_server) && (p = getenv("NNTPSERVER")) != NULL) - NNTP_server = p; - if (!non_null(NNTP_mode) && (p = getenv("NNTPMODE")) != NULL) - NNTP_mode = p; -#endif - - if (!non_null(Editor) && (p = getenv("EDITOR")) != NULL) - Editor = p; - if (!non_null(Mailer) && (p = getenv("MAILER")) != NULL) - Mailer = p; - - /* argument search 2 */ - i = 1; - while (i < argc) { - if (*argv[i] == '-') { - if (!strcmp("-t", argv[i])) { - if (++i >= argc) - usage(); - if (atoi(argv[i]) > 0) - Tabstop = atoi(argv[i]); - } - else if (!strcmp("-r", argv[i])) - ShowEffect = FALSE; - else if (!strcmp("-l", argv[i])) { - if (++i >= argc) - usage(); - if (atoi(argv[i]) > 0) - PagerMax = atoi(argv[i]); - } -#ifdef USE_M17N -#ifndef DEBIAN /* XXX: use -o kanjicode={S|J|E} */ - else if (!strcmp("-s", argv[i])) - DisplayCharset = WC_CES_SHIFT_JIS; - else if (!strcmp("-j", argv[i])) - DisplayCharset = WC_CES_ISO_2022_JP; - else if (!strcmp("-e", argv[i])) - DisplayCharset = WC_CES_EUC_JP; -#endif - else if (!strncmp("-I", argv[i], 2)) { - if (argv[i][2] != '\0') - p = argv[i] + 2; - else { - if (++i >= argc) - usage(); - p = argv[i]; - } - DocumentCharset = wc_guess_charset_short(p, DocumentCharset); - WcOption.auto_detect = WC_OPT_DETECT_OFF; - UseContentCharset = FALSE; - } - else if (!strncmp("-O", argv[i], 2)) { - if (argv[i][2] != '\0') - p = argv[i] + 2; - else { - if (++i >= argc) - usage(); - p = argv[i]; - } - DisplayCharset = wc_guess_charset_short(p, DisplayCharset); - } -#endif - else if (!strcmp("-graph", argv[i])) - UseGraphicChar = TRUE; - else if (!strcmp("-no-graph", argv[i])) - UseGraphicChar = FALSE; - else if (!strcmp("-T", argv[i])) { - if (++i >= argc) - usage(); - DefaultType = default_type = argv[i]; - } - else if (!strcmp("-m", argv[i])) - SearchHeader = search_header = TRUE; - else if (!strcmp("-v", argv[i])) - visual_start = TRUE; - else if (!strcmp("-N", argv[i])) - open_new_tab = TRUE; -#ifdef USE_COLOR - else if (!strcmp("-M", argv[i])) - useColor = FALSE; -#endif /* USE_COLOR */ - else if (!strcmp("-B", argv[i])) - load_bookmark = TRUE; - else if (!strcmp("-bookmark", argv[i])) { - if (++i >= argc) - usage(); - BookmarkFile = argv[i]; - if (BookmarkFile[0] != '~' && BookmarkFile[0] != '/') { - Str tmp = Strnew_charp(CurrentDir); - if (Strlastchar(tmp) != '/') - Strcat_char(tmp, '/'); - Strcat_charp(tmp, BookmarkFile); - BookmarkFile = cleanupName(tmp->ptr); - } - } - else if (!strcmp("-F", argv[i])) - RenderFrame = TRUE; - else if (!strcmp("-W", argv[i])) { - if (WrapDefault) - WrapDefault = FALSE; - else - WrapDefault = TRUE; - } - else if (!strcmp("-dump", argv[i])) - w3m_dump = DUMP_BUFFER; - else if (!strcmp("-dump_source", argv[i])) - w3m_dump = DUMP_SOURCE; - else if (!strcmp("-dump_head", argv[i])) - w3m_dump = DUMP_HEAD; - else if (!strcmp("-dump_both", argv[i])) - w3m_dump = (DUMP_HEAD | DUMP_SOURCE); - else if (!strcmp("-dump_extra", argv[i])) - w3m_dump = (DUMP_HEAD | DUMP_SOURCE | DUMP_EXTRA); - else if (!strcmp("-halfdump", argv[i])) - w3m_dump = DUMP_HALFDUMP; - else if (!strcmp("-halfload", argv[i])) { - w3m_dump = 0; - w3m_halfload = TRUE; - DefaultType = default_type = "text/html"; - } - else if (!strcmp("-backend", argv[i])) { - w3m_backend = TRUE; - } - else if (!strcmp("-backend_batch", argv[i])) { - w3m_backend = TRUE; - if (++i >= argc) - usage(); - if (!backend_batch_commands) - backend_batch_commands = newTextList(); - pushText(backend_batch_commands, argv[i]); - } - else if (!strcmp("-cols", argv[i])) { - if (++i >= argc) - usage(); - COLS = atoi(argv[i]); - } - else if (!strcmp("-ppc", argv[i])) { - double ppc; - if (++i >= argc) - usage(); - ppc = atof(argv[i]); - if (ppc >= MINIMUM_PIXEL_PER_CHAR && - ppc <= MAXIMUM_PIXEL_PER_CHAR) { - pixel_per_char = ppc; - set_pixel_per_char = TRUE; - } - } -#ifdef USE_IMAGE - else if (!strcmp("-ppl", argv[i])) { - double ppc; - if (++i >= argc) - usage(); - ppc = atof(argv[i]); - if (ppc >= MINIMUM_PIXEL_PER_CHAR && - ppc <= MAXIMUM_PIXEL_PER_CHAR * 2) { - pixel_per_line = ppc; - set_pixel_per_line = TRUE; - } - } -#endif - else if (!strcmp("-num", argv[i])) - showLineNum = TRUE; - else if (!strcmp("-no-proxy", argv[i])) - use_proxy = FALSE; -#ifdef INET6 - else if (!strcmp("-4", argv[i]) || !strcmp("-6", argv[i])) - set_param_option(Sprintf("dns_order=%c", argv[i][1])->ptr); -#endif - else if (!strcmp("-post", argv[i])) { - if (++i >= argc) - usage(); - post_file = argv[i]; - } - else if (!strcmp("-header", argv[i])) { - Str hs; - if (++i >= argc) - usage(); - if ((hs = make_optional_header_string(argv[i])) != NULL) { - if (header_string == NULL) - header_string = hs; - else - Strcat(header_string, hs); - } - while (argv[i][0]) { - argv[i][0] = '\0'; - argv[i]++; - } - } -#ifdef USE_MOUSE - else if (!strcmp("-no-mouse", argv[i])) { - use_mouse = FALSE; - } -#endif /* USE_MOUSE */ -#ifdef USE_COOKIE - else if (!strcmp("-no-cookie", argv[i])) { - use_cookie = FALSE; - accept_cookie = FALSE; - } - else if (!strcmp("-cookie", argv[i])) { - use_cookie = TRUE; - accept_cookie = TRUE; - } -#endif /* USE_COOKIE */ - else if (!strcmp("-pauth", argv[i])) { - if (++i >= argc) - usage(); - proxy_auth_cookie = Strnew_m_charp("Basic ", - encodeB(argv[i])->ptr, - NULL); - while (argv[i][0]) { - argv[i][0] = '\0'; - argv[i]++; - } - } -#ifdef DEBIAN - else if (!strcmp("-s", argv[i])) -#else - else if (!strcmp("-S", argv[i])) -#endif - squeezeBlankLine = TRUE; - else if (!strcmp("-X", argv[i])) - Do_not_use_ti_te = TRUE; - else if (!strcmp("-title", argv[i])) - displayTitleTerm = getenv("TERM"); - else if (!strncmp("-title=", argv[i], 7)) - displayTitleTerm = argv[i] + 7; - else if (!strcmp("-o", argv[i]) || - !strcmp("-show-option", argv[i])) { - if (!strcmp("-show-option", argv[i]) || ++i >= argc || - !strcmp(argv[i], "?")) { - show_params(stdout); - exit(0); - } - if (!set_param_option(argv[i])) { - /* option set failed */ - /* FIXME: gettextize? */ - fprintf(stderr, "%s: bad option\n", argv[i]); - show_params_p = 1; - usage(); - } - } - else if (!strcmp("-dummy", argv[i])) { - /* do nothing */ - } - else if (!strcmp("-debug", argv[i])) { - w3m_debug = TRUE; - } - else if (!strcmp("-reqlog",argv[i])) { - w3m_reqlog=rcFile("request.log"); - } - else { - usage(); - } - } - else if (*argv[i] == '+') { - line_str = argv[i] + 1; - } - else { - load_argv[load_argc++] = argv[i]; - } - i++; - } - -#ifdef __WATT32__ - if (w3m_debug) - dbug_init(); - sock_init(); -#endif - - FirstTab = NULL; - LastTab = NULL; - nTab = 0; - CurrentTab = NULL; - CurrentKey = -1; - if (BookmarkFile == NULL) - BookmarkFile = rcFile(BOOKMARK); - - if (!isatty(1) && !w3m_dump) { - /* redirected output */ - w3m_dump = DUMP_BUFFER; - } - if (w3m_dump) { - if (COLS == 0) - COLS = 80; - } - -#ifdef USE_BINMODE_STREAM - setmode(fileno(stdout), O_BINARY); -#endif - if (!w3m_dump && !w3m_backend) { - fmInit(); -#ifdef SIGWINCH - mySignal(SIGWINCH, resize_hook); -#else /* not SIGWINCH */ - setlinescols(); - setupscreen(); -#endif /* not SIGWINCH */ - } -#ifdef USE_IMAGE - else if (w3m_halfdump && displayImage) - activeImage = TRUE; -#endif - - sync_with_option(); -#ifdef USE_COOKIE - initCookie(); -#endif /* USE_COOKIE */ -#ifdef USE_HISTORY - if (UseHistory) - loadHistory(URLHist); -#endif /* not USE_HISTORY */ - -#ifdef USE_M17N - wtf_init(DocumentCharset, DisplayCharset); - /* if (w3m_dump) - * WcOption.pre_conv = WC_TRUE; - */ -#endif - - if (w3m_backend) - backend(); - - if (w3m_dump) - mySignal(SIGINT, SIG_IGN); -#ifdef SIGCHLD - mySignal(SIGCHLD, sig_chld); -#endif -#ifdef SIGPIPE - mySignal(SIGPIPE, SigPipe); -#endif - - orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc); - err_msg = Strnew(); - if (load_argc == 0) { - /* no URL specified */ - if (!isatty(0)) { - redin = newFileStream(fdopen(dup(0), "rb"), (void (*)())pclose); - newbuf = openGeneralPagerBuffer(redin); - dup2(1, 0); - } - else if (load_bookmark) { - newbuf = loadGeneralFile(BookmarkFile, NULL, NO_REFERER, 0, NULL); - if (newbuf == NULL) - Strcat_charp(err_msg, "w3m: Can't load bookmark.\n"); - } - else if (visual_start) { - /* FIXME: gettextize? */ - Str s_page; - s_page = - Strnew_charp - ("<title>W3M startup page</title><center><b>Welcome to "); - Strcat_charp(s_page, "<a href='http://w3m.sourceforge.net/'>"); - Strcat_m_charp(s_page, - "w3m</a>!<p><p>This is w3m version ", - w3m_version, - "<br>Written by <a href='mailto:aito@fw.ipsj.or.jp'>Akinori Ito</a>", - NULL); -#ifdef DEBIAN - Strcat_m_charp(s_page, - "<p>Debian package is maintained by <a href='mailto:ukai@debian.or.jp'>Fumitoshi UKAI</a>.", - "You can read <a href='file:///usr/share/doc/w3m/'>w3m documents on your local system</a>.", - NULL); -#endif /* DEBIAN */ - newbuf = loadHTMLString(s_page); - if (newbuf == NULL) - Strcat_charp(err_msg, "w3m: Can't load string.\n"); - else if (newbuf != NO_BUFFER) - newbuf->bufferprop |= (BP_INTERNAL | BP_NO_URL); - } - else if ((p = getenv("HTTP_HOME")) != NULL || - (p = getenv("WWW_HOME")) != NULL) { - newbuf = loadGeneralFile(p, NULL, NO_REFERER, 0, NULL); - if (newbuf == NULL) - Strcat(err_msg, Sprintf("w3m: Can't load %s.\n", p)); - else if (newbuf != NO_BUFFER) - pushHashHist(URLHist, parsedURL2Str(&newbuf->currentURL)->ptr); - } - else { - if (fmInitialized) - fmTerm(); - usage(); - } - if (newbuf == NULL) { - if (fmInitialized) - fmTerm(); - if (err_msg->length) - fprintf(stderr, "%s", err_msg->ptr); - w3m_exit(2); - } - i = -1; - } - else { - i = 0; - } - for (; i < load_argc; i++) { - if (i >= 0) { - SearchHeader = search_header; - DefaultType = default_type; - if (w3m_dump == DUMP_HEAD) { - request = New(FormList); - request->method = FORM_METHOD_HEAD; - newbuf = - loadGeneralFile(load_argv[i], NULL, NO_REFERER, 0, - request); - } - else { - if (post_file && i == 0) { - FILE *fp; - Str body; - if (!strcmp(post_file, "-")) - fp = stdin; - else - fp = fopen(post_file, "r"); - if (fp == NULL) { - /* FIXME: gettextize? */ - Strcat(err_msg, - Sprintf("w3m: Can't open %s.\n", post_file)); - continue; - } - body = Strfgetall(fp); - if (fp != stdin) - fclose(fp); - request = - newFormList(NULL, "post", NULL, NULL, NULL, NULL, - NULL); - request->body = body->ptr; - request->boundary = NULL; - request->length = body->length; - } - else { - request = NULL; - } - newbuf = - loadGeneralFile(load_argv[i], NULL, NO_REFERER, 0, - request); - } - if (newbuf == NULL) { - /* FIXME: gettextize? */ - Strcat(err_msg, - Sprintf("w3m: Can't load %s.\n", load_argv[i])); - continue; - } - else if (newbuf == NO_BUFFER) - continue; - switch (newbuf->real_scheme) { - case SCM_MAILTO: - break; - case SCM_LOCAL: - case SCM_LOCAL_CGI: - unshiftHist(LoadHist, conv_from_system(load_argv[i])); - default: - pushHashHist(URLHist, parsedURL2Str(&newbuf->currentURL)->ptr); - break; - } - } - else if (newbuf == NO_BUFFER) - continue; - if (newbuf->pagerSource || - (newbuf->real_scheme == SCM_LOCAL && newbuf->header_source && - newbuf->currentURL.file && strcmp(newbuf->currentURL.file, "-"))) - newbuf->search_header = search_header; - if (CurrentTab == NULL) { - FirstTab = LastTab = CurrentTab = newTab(); - nTab = 1; - Firstbuf = Currentbuf = newbuf; - } - else if (open_new_tab) { - _newT(); - Currentbuf->nextBuffer = newbuf; - delBuffer(Currentbuf); - } - else { - Currentbuf->nextBuffer = newbuf; - Currentbuf = newbuf; - } - if (!w3m_dump || w3m_dump == DUMP_BUFFER) { - if (Currentbuf->frameset != NULL && RenderFrame) - rFrame(); - } - if (w3m_dump) - do_dump(Currentbuf); - else { - Currentbuf = newbuf; -#ifdef USE_BUFINFO - saveBufferInfo(); -#endif - } - } - if (w3m_dump) { - if (err_msg->length) - fprintf(stderr, "%s", err_msg->ptr); -#ifdef USE_COOKIE - save_cookies(); -#endif /* USE_COOKIE */ - w3m_exit(0); - } - - if (add_download_list) { - add_download_list = FALSE; - CurrentTab = LastTab; - if (!FirstTab) { - FirstTab = LastTab = CurrentTab = newTab(); - nTab = 1; - } - if (!Firstbuf || Firstbuf == NO_BUFFER) { - Firstbuf = Currentbuf = newBuffer(INIT_BUFFER_WIDTH); - Currentbuf->bufferprop = BP_INTERNAL | BP_NO_URL; - Currentbuf->buffername = DOWNLOAD_LIST_TITLE; - } - else - Currentbuf = Firstbuf; - ldDL(); - } - else - CurrentTab = FirstTab; - if (!FirstTab || !Firstbuf || Firstbuf == NO_BUFFER) { - if (newbuf == NO_BUFFER) { - if (fmInitialized) - /* FIXME: gettextize? */ - inputChar("Hit any key to quit w3m:"); - } - if (fmInitialized) - fmTerm(); - if (err_msg->length) - fprintf(stderr, "%s", err_msg->ptr); - if (newbuf == NO_BUFFER) { -#ifdef USE_COOKIE - save_cookies(); -#endif /* USE_COOKIE */ - if (!err_msg->length) - w3m_exit(0); - } - w3m_exit(2); - } - if (err_msg->length) - disp_message_nsec(err_msg->ptr, FALSE, 1, TRUE, FALSE); - - SearchHeader = FALSE; - DefaultType = NULL; -#ifdef USE_M17N - UseContentCharset = TRUE; - WcOption.auto_detect = auto_detect; -#endif - - Currentbuf = Firstbuf; - displayBuffer(Currentbuf, B_FORCE_REDRAW); - if (line_str) { - _goLine(line_str); - } - for (;;) { - if (add_download_list) { - add_download_list = FALSE; - ldDL(); - } - if (Currentbuf->submit) { - Anchor *a = Currentbuf->submit; - Currentbuf->submit = NULL; - gotoLine(Currentbuf, a->start.line); - Currentbuf->pos = a->start.pos; - _followForm(TRUE); - continue; - } - /* event processing */ - if (CurrentEvent) { - CurrentKey = -1; - CurrentKeyData = NULL; - CurrentCmdData = (char *)CurrentEvent->data; - w3mFuncList[CurrentEvent->cmd].func(); - CurrentCmdData = NULL; - CurrentEvent = CurrentEvent->next; - continue; - } - /* get keypress event */ -#ifdef USE_ALARM - if (Currentbuf->event) { - if (Currentbuf->event->status != AL_UNSET) { - CurrentAlarm = Currentbuf->event; - if (CurrentAlarm->sec == 0) { /* refresh (0sec) */ - Currentbuf->event = NULL; - CurrentKey = -1; - CurrentKeyData = NULL; - CurrentCmdData = (char *)CurrentAlarm->data; - w3mFuncList[CurrentAlarm->cmd].func(); - CurrentCmdData = NULL; - continue; - } - } - else - Currentbuf->event = NULL; - } - if (!Currentbuf->event) - CurrentAlarm = &DefaultAlarm; -#endif -#ifdef USE_MOUSE - mouse_action.in_action = FALSE; - if (use_mouse) - mouse_active(); -#endif /* USE_MOUSE */ -#ifdef USE_ALARM - if (CurrentAlarm->sec > 0) { - mySignal(SIGALRM, SigAlarm); - alarm(CurrentAlarm->sec); - } -#endif -#ifdef SIGWINCH - mySignal(SIGWINCH, resize_hook); -#endif -#ifdef USE_IMAGE - if (activeImage && displayImage && Currentbuf->img && - !Currentbuf->image_loaded) { - do { -#ifdef SIGWINCH - if (need_resize_screen) - resize_screen(); -#endif - loadImage(Currentbuf, IMG_FLAG_NEXT); - } while (sleep_till_anykey(1, 0) <= 0); - } -#ifdef SIGWINCH - else -#endif -#endif -#ifdef SIGWINCH - { - do { - if (need_resize_screen) - resize_screen(); - } while (sleep_till_anykey(1, 0) <= 0); - } -#endif - c = getch(); -#ifdef USE_ALARM - if (CurrentAlarm->sec > 0) { - alarm(0); - } -#endif -#ifdef USE_MOUSE - if (use_mouse) - mouse_inactive(); -#endif /* USE_MOUSE */ - if (IS_ASCII(c)) { /* Ascii */ - if(((prec_num && c == '0') || '1' <= c) && (c <= '9')) { - prec_num = prec_num * 10 + (int)(c - '0'); - if (prec_num > PREC_LIMIT) - prec_num = PREC_LIMIT; - } - else { - set_buffer_environ(Currentbuf); - save_buffer_position(Currentbuf); - keyPressEventProc((int)c); - prec_num = 0; - } - } - prev_key = CurrentKey; - CurrentKey = -1; - CurrentKeyData = NULL; - } -} - -static void -keyPressEventProc(int c) -{ - CurrentKey = c; - w3mFuncList[(int)GlobalKeymap[c]].func(); -} - -void -pushEvent(int cmd, void *data) -{ - Event *event; - - event = New(Event); - event->cmd = cmd; - event->data = data; - event->next = NULL; - if (CurrentEvent) - LastEvent->next = event; - else - CurrentEvent = event; - LastEvent = event; -} - -static void -dump_source(Buffer *buf) -{ - FILE *f; - char c; - if (buf->sourcefile == NULL) - return; - f = fopen(buf->sourcefile, "r"); - if (f == NULL) - return; - while (c = fgetc(f), !feof(f)) { - putchar(c); - } - fclose(f); -} - -static void -dump_head(Buffer *buf) -{ - TextListItem *ti; - - if (buf->document_header == NULL) { - if (w3m_dump & DUMP_EXTRA) - printf("\n"); - return; - } - for (ti = buf->document_header->first; ti; ti = ti->next) { -#ifdef USE_M17N - printf("%s", - wc_conv_strict(ti->ptr, InnerCharset, - buf->document_charset)->ptr); -#else - printf("%s", ti->ptr); -#endif - } - puts(""); -} - -static void -dump_extra(Buffer *buf) -{ - printf("W3m-current-url: %s\n", parsedURL2Str(&buf->currentURL)->ptr); - if (buf->baseURL) - printf("W3m-base-url: %s\n", parsedURL2Str(buf->baseURL)->ptr); -#ifdef USE_M17N - printf("W3m-document-charset: %s\n", - wc_ces_to_charset(buf->document_charset)); -#endif -#ifdef USE_SSL - if (buf->ssl_certificate) { - Str tmp = Strnew(); - char *p; - for (p = buf->ssl_certificate; *p; p++) { - Strcat_char(tmp, *p); - if (*p == '\n') { - for (; *(p + 1) == '\n'; p++) ; - if (*(p + 1)) - Strcat_char(tmp, '\t'); - } - } - if (Strlastchar(tmp) != '\n') - Strcat_char(tmp, '\n'); - printf("W3m-ssl-certificate: %s", tmp->ptr); - } -#endif -} - -static void -do_dump(Buffer *buf) -{ - MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; - - prevtrap = mySignal(SIGINT, intTrap); - if (SETJMP(IntReturn) != 0) { - mySignal(SIGINT, prevtrap); - return; - } - if (w3m_dump & DUMP_EXTRA) - dump_extra(buf); - if (w3m_dump & DUMP_HEAD) - dump_head(buf); - if (w3m_dump & DUMP_SOURCE) - dump_source(buf); - if (w3m_dump == DUMP_BUFFER) - saveBuffer(buf, stdout, FALSE); - mySignal(SIGINT, prevtrap); -} - -DEFUN(nulcmd, NOTHING NULL @@@, "Do nothing") -{ /* do nothing */ -} - -#ifdef __EMX__ -DEFUN(pcmap, PCMAP, "pcmap") -{ - w3mFuncList[(int)PcKeymap[(int)getch()]].func(); -} -#else /* not __EMX__ */ -void -pcmap(void) -{ -} -#endif - -static void -escKeyProc(int c, int esc, unsigned char *map) -{ - if (CurrentKey >= 0 && CurrentKey & K_MULTI) { - unsigned char **mmap; - mmap = (unsigned char **)getKeyData(MULTI_KEY(CurrentKey)); - if (!mmap) - return; - switch (esc) { - case K_ESCD: - map = mmap[3]; - break; - case K_ESCB: - map = mmap[2]; - break; - case K_ESC: - map = mmap[1]; - break; - default: - map = mmap[0]; - break; - } - esc |= (CurrentKey & ~0xFFFF); - } - CurrentKey = esc | c; - w3mFuncList[(int)map[c]].func(); -} - -DEFUN(escmap, ESCMAP, "ESC map") -{ - char c; - c = getch(); - if (IS_ASCII(c)) - escKeyProc((int)c, K_ESC, EscKeymap); -} - -DEFUN(escbmap, ESCBMAP, "ESC [ map") -{ - char c; - c = getch(); - if (IS_DIGIT(c)) { - escdmap(c); - return; - } - if (IS_ASCII(c)) - escKeyProc((int)c, K_ESCB, EscBKeymap); -} - -void -escdmap(char c) -{ - int d; - d = (int)c - (int)'0'; - c = getch(); - if (IS_DIGIT(c)) { - d = d * 10 + (int)c - (int)'0'; - c = getch(); - } - if (c == '~') - escKeyProc((int)d, K_ESCD, EscDKeymap); -} - -DEFUN(multimap, MULTIMAP, "multimap") -{ - char c; - c = getch(); - if (IS_ASCII(c)) { - CurrentKey = K_MULTI | (CurrentKey << 16) | c; - escKeyProc((int)c, 0, NULL); - } -} - -void -tmpClearBuffer(Buffer *buf) -{ - if (buf->pagerSource == NULL && writeBufferCache(buf) == 0) { - buf->firstLine = NULL; - buf->topLine = NULL; - buf->currentLine = NULL; - buf->lastLine = NULL; - } -} - -static Str currentURL(void); - -#ifdef USE_BUFINFO -void -saveBufferInfo() -{ - FILE *fp; - - if (w3m_dump) - return; - if ((fp = fopen(rcFile("bufinfo"), "w")) == NULL) { - return; - } - fprintf(fp, "%s\n", currentURL()->ptr); - fclose(fp); -} -#endif - -static void -pushBuffer(Buffer *buf) -{ - Buffer *b; - -#ifdef USE_IMAGE - deleteImage(Currentbuf); -#endif - if (clear_buffer) - tmpClearBuffer(Currentbuf); - if (Firstbuf == Currentbuf) { - buf->nextBuffer = Firstbuf; - Firstbuf = Currentbuf = buf; - } - else if ((b = prevBuffer(Firstbuf, Currentbuf)) != NULL) { - b->nextBuffer = buf; - buf->nextBuffer = Currentbuf; - Currentbuf = buf; - } -#ifdef USE_BUFINFO - saveBufferInfo(); -#endif - -} - -static void -delBuffer(Buffer *buf) -{ - if (buf == NULL) - return; - if (Currentbuf == buf) - Currentbuf = buf->nextBuffer; - Firstbuf = deleteBuffer(Firstbuf, buf); - if (!Currentbuf) - Currentbuf = Firstbuf; -} - -static void -repBuffer(Buffer *oldbuf, Buffer *buf) -{ - Firstbuf = replaceBuffer(Firstbuf, oldbuf, buf); - Currentbuf = buf; -} - - -MySignalHandler -intTrap(SIGNAL_ARG) -{ /* Interrupt catcher */ - LONGJMP(IntReturn, 0); - SIGNAL_RETURN; -} - -#ifdef SIGWINCH -static MySignalHandler -resize_hook(SIGNAL_ARG) -{ - need_resize_screen = TRUE; - mySignal(SIGWINCH, resize_hook); - SIGNAL_RETURN; -} - -static void -resize_screen(void) -{ - need_resize_screen = FALSE; - setlinescols(); - setupscreen(); - if (CurrentTab) - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} -#endif /* SIGWINCH */ - -#ifdef SIGPIPE -static MySignalHandler -SigPipe(SIGNAL_ARG) -{ -#ifdef USE_MIGEMO - init_migemo(); -#endif - mySignal(SIGPIPE, SigPipe); - SIGNAL_RETURN; -} -#endif - -/* - * Command functions: These functions are called with a keystroke. - */ - -#define MAX(a, b) ((a) > (b) ? (a) : (b)) -#define MIN(a, b) ((a) < (b) ? (a) : (b)) - -static void -nscroll(int n, int mode) -{ - Buffer *buf = Currentbuf; - Line *top = buf->topLine, *cur = buf->currentLine; - int lnum, tlnum, llnum, diff_n; - - if (buf->firstLine == NULL) - return; - lnum = cur->linenumber; - buf->topLine = lineSkip(buf, top, n, FALSE); - if (buf->topLine == top) { - lnum += n; - if (lnum < buf->topLine->linenumber) - lnum = buf->topLine->linenumber; - else if (lnum > buf->lastLine->linenumber) - lnum = buf->lastLine->linenumber; - } - else { - tlnum = buf->topLine->linenumber; - llnum = buf->topLine->linenumber + buf->LINES - 1; - if (nextpage_topline) - diff_n = 0; - else - diff_n = n - (tlnum - top->linenumber); - if (lnum < tlnum) - lnum = tlnum + diff_n; - if (lnum > llnum) - lnum = llnum + diff_n; - } - gotoLine(buf, lnum); - arrangeLine(buf); - if (n > 0) { - if (buf->currentLine->bpos && - buf->currentLine->bwidth >= buf->currentColumn + buf->visualpos) - cursorDown(buf, 1); - else { - while (buf->currentLine->next && buf->currentLine->next->bpos && - buf->currentLine->bwidth + buf->currentLine->width < - buf->currentColumn + buf->visualpos) - cursorDown0(buf, 1); - } - } - else { - if (buf->currentLine->bwidth + buf->currentLine->width < - buf->currentColumn + buf->visualpos) - cursorUp(buf, 1); - else { - while (buf->currentLine->prev && buf->currentLine->bpos && - buf->currentLine->bwidth >= - buf->currentColumn + buf->visualpos) - cursorUp0(buf, 1); - } - } - displayBuffer(buf, mode); -} - -/* Move page forward */ -DEFUN(pgFore, NEXT_PAGE, "Move to next page") -{ - if (vi_prec_num) - nscroll(searchKeyNum() * (Currentbuf->LINES - 1), B_NORMAL); - else - nscroll(prec_num ? searchKeyNum() : searchKeyNum() - * (Currentbuf->LINES - 1), prec_num ? B_SCROLL : B_NORMAL); -} - -/* Move page backward */ -DEFUN(pgBack, PREV_PAGE, "Move to previous page") -{ - if (vi_prec_num) - nscroll(-searchKeyNum() * (Currentbuf->LINES - 1), B_NORMAL); - else - nscroll(-(prec_num ? searchKeyNum() : searchKeyNum() - * (Currentbuf->LINES - 1)), prec_num ? B_SCROLL : B_NORMAL); -} - -/* 1 line up */ -DEFUN(lup1, UP, "Scroll up one line") -{ - nscroll(searchKeyNum(), B_SCROLL); -} - -/* 1 line down */ -DEFUN(ldown1, DOWN, "Scroll down one line") -{ - nscroll(-searchKeyNum(), B_SCROLL); -} - -/* move cursor position to the center of screen */ -DEFUN(ctrCsrV, CENTER_V, "Move to the center column") -{ - int offsety; - if (Currentbuf->firstLine == NULL) - return; - offsety = Currentbuf->LINES / 2 - Currentbuf->cursorY; - if (offsety != 0) { -#if 0 - Currentbuf->currentLine = lineSkip(Currentbuf, - Currentbuf->currentLine, offsety, - FALSE); -#endif - Currentbuf->topLine = - lineSkip(Currentbuf, Currentbuf->topLine, -offsety, FALSE); - arrangeLine(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); - } -} - -DEFUN(ctrCsrH, CENTER_H, "Move to the center line") -{ - int offsetx; - if (Currentbuf->firstLine == NULL) - return; - offsetx = Currentbuf->cursorX - Currentbuf->COLS / 2; - if (offsetx != 0) { - columnSkip(Currentbuf, offsetx); - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); - } -} - -/* Redraw screen */ -DEFUN(rdrwSc, REDRAW, "Redraw screen") -{ - clear(); - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -static void -clear_mark(Line *l) -{ - int pos; - if (!l) - return; - for (pos = 0; pos < l->size; pos++) - l->propBuf[pos] &= ~PE_MARK; -} - -/* search by regular expression */ -static int -srchcore(char *volatile str, int (*func) (Buffer *, char *)) -{ - MySignalHandler(*prevtrap) (); - volatile int i, result = SR_NOTFOUND; - - if (str != NULL && str != SearchString) - SearchString = str; - if (SearchString == NULL || *SearchString == '\0') - return SR_NOTFOUND; - - str = conv_search_string(SearchString, DisplayCharset); - prevtrap = mySignal(SIGINT, intTrap); - crmode(); - if (SETJMP(IntReturn) == 0) { - for (i = 0; i < PREC_NUM; i++) { - result = func(Currentbuf, str); - if (i < PREC_NUM - 1 && result & SR_FOUND) - clear_mark(Currentbuf->currentLine); - } - } - mySignal(SIGINT, prevtrap); - term_raw(); - return result; -} - -static void -disp_srchresult(int result, char *prompt, char *str) -{ - if (str == NULL) - str = ""; - if (result & SR_NOTFOUND) - disp_message(Sprintf("Not found: %s", str)->ptr, TRUE); - else if (result & SR_WRAPPED) - disp_message(Sprintf("Search wrapped: %s", str)->ptr, TRUE); - else if (show_srch_str) - disp_message(Sprintf("%s%s", prompt, str)->ptr, TRUE); -} - -static int -dispincsrch(int ch, Str buf, Lineprop *prop) -{ - static Buffer sbuf; - static Line *currentLine; - static int pos; - char *str; - int do_next_search = FALSE; - - if (ch == 0 && buf == NULL) { - SAVE_BUFPOSITION(&sbuf); /* search starting point */ - currentLine = sbuf.currentLine; - pos = sbuf.pos; - return -1; - } - - str = buf->ptr; - switch (ch) { - case 022: /* C-r */ - searchRoutine = backwardSearch; - do_next_search = TRUE; - break; - case 023: /* C-s */ - searchRoutine = forwardSearch; - do_next_search = TRUE; - break; - -#ifdef USE_MIGEMO - case 034: - migemo_active = -migemo_active; - goto done; -#endif - - default: - if (ch >= 0) - return ch; /* use InputKeymap */ - } - - if (do_next_search) { - if (*str) { - if (searchRoutine == forwardSearch) - Currentbuf->pos += 1; - SAVE_BUFPOSITION(&sbuf); - if (srchcore(str, searchRoutine) == SR_NOTFOUND - && searchRoutine == forwardSearch) { - Currentbuf->pos -= 1; - SAVE_BUFPOSITION(&sbuf); - } - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_FORCE_REDRAW); - clear_mark(Currentbuf->currentLine); - return -1; - } - else - return 020; /* _prev completion for C-s C-s */ - } - else if (*str) { - RESTORE_BUFPOSITION(&sbuf); - arrangeCursor(Currentbuf); - srchcore(str, searchRoutine); - arrangeCursor(Currentbuf); - currentLine = Currentbuf->currentLine; - pos = Currentbuf->pos; - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); - clear_mark(Currentbuf->currentLine); -#ifdef USE_MIGEMO - done: - while (*str++ != '\0') { - if (migemo_active > 0) - *prop++ |= PE_UNDER; - else - *prop++ &= ~PE_UNDER; - } -#endif - return -1; -} - -void -isrch(int (*func) (Buffer *, char *), char *prompt) -{ - char *str; - Buffer sbuf; - SAVE_BUFPOSITION(&sbuf); - dispincsrch(0, NULL, NULL); /* initialize incremental search state */ - - searchRoutine = func; - str = inputLineHistSearch(prompt, NULL, IN_STRING, TextHist, dispincsrch); - if (str == NULL) { - RESTORE_BUFPOSITION(&sbuf); - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -void -srch(int (*func) (Buffer *, char *), char *prompt) -{ - char *str; - int result; - int disp = FALSE; - int pos; - - str = searchKeyData(); - if (str == NULL || *str == '\0') { - str = inputStrHist(prompt, NULL, TextHist); - if (str != NULL && *str == '\0') - str = SearchString; - if (str == NULL) { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - disp = TRUE; - } - pos = Currentbuf->pos; - if (func == forwardSearch) - Currentbuf->pos += 1; - result = srchcore(str, func); - if (result & SR_FOUND) - clear_mark(Currentbuf->currentLine); - else - Currentbuf->pos = pos; - displayBuffer(Currentbuf, B_NORMAL); - if (disp) - disp_srchresult(result, prompt, str); - searchRoutine = func; -} - -/* Search regular expression forward */ - -DEFUN(srchfor, SEARCH SEARCH_FORE WHEREIS, "Search forward") -{ - srch(forwardSearch, "Forward: "); -} - -DEFUN(isrchfor, ISEARCH, "Incremental search forward") -{ - isrch(forwardSearch, "I-search: "); -} - -/* Search regular expression backward */ - -DEFUN(srchbak, SEARCH_BACK, "Search backward") -{ - srch(backwardSearch, "Backward: "); -} - -DEFUN(isrchbak, ISEARCH_BACK, "Incremental search backward") -{ - isrch(backwardSearch, "I-search backward: "); -} - -static void -srch_nxtprv(int reverse) -{ - int result; - /* *INDENT-OFF* */ - static int (*routine[2]) (Buffer *, char *) = { - forwardSearch, backwardSearch - }; - /* *INDENT-ON* */ - - if (searchRoutine == NULL) { - /* FIXME: gettextize? */ - disp_message("No previous regular expression", TRUE); - return; - } - if (reverse != 0) - reverse = 1; - if (searchRoutine == backwardSearch) - reverse ^= 1; - if (reverse == 0) - Currentbuf->pos += 1; - result = srchcore(SearchString, routine[reverse]); - if (result & SR_FOUND) - clear_mark(Currentbuf->currentLine); - displayBuffer(Currentbuf, B_NORMAL); - disp_srchresult(result, (reverse ? "Backward: " : "Forward: "), - SearchString); -} - -/* Search next matching */ -DEFUN(srchnxt, SEARCH_NEXT, "Search next regexp") -{ - srch_nxtprv(0); -} - -/* Search previous matching */ -DEFUN(srchprv, SEARCH_PREV, "Search previous regexp") -{ - srch_nxtprv(1); -} - -static void -shiftvisualpos(Buffer *buf, int shift) -{ - Line *l = buf->currentLine; - buf->visualpos -= shift; - if (buf->visualpos - l->bwidth >= buf->COLS) - buf->visualpos = l->bwidth + buf->COLS - 1; - else if (buf->visualpos - l->bwidth < 0) - buf->visualpos = l->bwidth; - arrangeLine(buf); - if (buf->visualpos - l->bwidth == -shift && buf->cursorX == 0) - buf->visualpos = l->bwidth; -} - -/* Shift screen left */ -DEFUN(shiftl, SHIFT_LEFT, "Shift screen left") -{ - int column; - - if (Currentbuf->firstLine == NULL) - return; - column = Currentbuf->currentColumn; - columnSkip(Currentbuf, searchKeyNum() * (-Currentbuf->COLS + 1) + 1); - shiftvisualpos(Currentbuf, Currentbuf->currentColumn - column); - displayBuffer(Currentbuf, B_NORMAL); -} - -/* Shift screen right */ -DEFUN(shiftr, SHIFT_RIGHT, "Shift screen right") -{ - int column; - - if (Currentbuf->firstLine == NULL) - return; - column = Currentbuf->currentColumn; - columnSkip(Currentbuf, searchKeyNum() * (Currentbuf->COLS - 1) - 1); - shiftvisualpos(Currentbuf, Currentbuf->currentColumn - column); - displayBuffer(Currentbuf, B_NORMAL); -} - -DEFUN(col1R, RIGHT, "Shift screen one column right") -{ - Buffer *buf = Currentbuf; - Line *l = buf->currentLine; - int j, column, n = searchKeyNum(); - - if (l == NULL) - return; - for (j = 0; j < n; j++) { - column = buf->currentColumn; - columnSkip(Currentbuf, 1); - if (column == buf->currentColumn) - break; - shiftvisualpos(Currentbuf, 1); - } - displayBuffer(Currentbuf, B_NORMAL); -} - -DEFUN(col1L, LEFT, "Shift screen one column") -{ - Buffer *buf = Currentbuf; - Line *l = buf->currentLine; - int j, n = searchKeyNum(); - - if (l == NULL) - return; - for (j = 0; j < n; j++) { - if (buf->currentColumn == 0) - break; - columnSkip(Currentbuf, -1); - shiftvisualpos(Currentbuf, -1); - } - displayBuffer(Currentbuf, B_NORMAL); -} - -DEFUN(setEnv, SETENV, "Set environment variable") -{ - char *env; - char *var, *value; - - CurrentKeyData = NULL; /* not allowed in w3m-control: */ - env = searchKeyData(); - if (env == NULL || *env == '\0' || strchr(env, '=') == NULL) { - if (env != NULL && *env != '\0') - env = Sprintf("%s=", env)->ptr; - env = inputStrHist("Set environ: ", env, TextHist); - if (env == NULL || *env == '\0') { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - } - if ((value = strchr(env, '=')) != NULL && value > env) { - var = allocStr(env, value - env); - value++; - set_environ(var, value); - } - displayBuffer(Currentbuf, B_NORMAL); -} - -DEFUN(pipeBuf, PIPE_BUF, "Send rendered document to pipe") -{ - Buffer *buf; - char *cmd, *tmpf; - FILE *f; - - CurrentKeyData = NULL; /* not allowed in w3m-control: */ - cmd = searchKeyData(); - if (cmd == NULL || *cmd == '\0') { - /* FIXME: gettextize? */ - cmd = inputLineHist("Pipe buffer to: ", "", IN_COMMAND, ShellHist); - } - if (cmd != NULL) - cmd = conv_to_system(cmd); - if (cmd == NULL || *cmd == '\0') { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - tmpf = tmpfname(TMPF_DFL, NULL)->ptr; - f = fopen(tmpf, "w"); - if (f == NULL) { - /* FIXME: gettextize? */ - disp_message(Sprintf("Can't save buffer to %s", cmd)->ptr, TRUE); - return; - } - saveBuffer(Currentbuf, f, TRUE); - fclose(f); - buf = getpipe(myExtCommand(cmd, shell_quote(tmpf), TRUE)->ptr); - if (buf == NULL) { - disp_message("Execution failed", TRUE); - return; - } - else { - buf->filename = cmd; - buf->buffername = Sprintf("%s %s", PIPEBUFFERNAME, - conv_from_system(cmd))->ptr; - buf->bufferprop |= (BP_INTERNAL | BP_NO_URL); - if (buf->type == NULL) - buf->type = "text/plain"; - buf->currentURL.file = "-"; - pushBuffer(buf); - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -/* Execute shell command and read output ac pipe. */ -DEFUN(pipesh, PIPE_SHELL, "Execute shell command and browse") -{ - Buffer *buf; - char *cmd; - - CurrentKeyData = NULL; /* not allowed in w3m-control: */ - cmd = searchKeyData(); - if (cmd == NULL || *cmd == '\0') { - cmd = inputLineHist("(read shell[pipe])!", "", IN_COMMAND, ShellHist); - } - if (cmd != NULL) - cmd = conv_to_system(cmd); - if (cmd == NULL || *cmd == '\0') { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - buf = getpipe(cmd); - if (buf == NULL) { - disp_message("Execution failed", TRUE); - return; - } - else { - buf->bufferprop |= (BP_INTERNAL | BP_NO_URL); - if (buf->type == NULL) - buf->type = "text/plain"; - pushBuffer(buf); - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -/* Execute shell command and load entire output to buffer */ -DEFUN(readsh, READ_SHELL, "Execute shell command and load") -{ - Buffer *buf; - MySignalHandler(*prevtrap) (); - char *cmd; - - CurrentKeyData = NULL; /* not allowed in w3m-control: */ - cmd = searchKeyData(); - if (cmd == NULL || *cmd == '\0') { - cmd = inputLineHist("(read shell)!", "", IN_COMMAND, ShellHist); - } - if (cmd != NULL) - cmd = conv_to_system(cmd); - if (cmd == NULL || *cmd == '\0') { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - prevtrap = mySignal(SIGINT, intTrap); - crmode(); - buf = getshell(cmd); - mySignal(SIGINT, prevtrap); - term_raw(); - if (buf == NULL) { - /* FIXME: gettextize? */ - disp_message("Execution failed", TRUE); - return; - } - else { - buf->bufferprop |= (BP_INTERNAL | BP_NO_URL); - if (buf->type == NULL) - buf->type = "text/plain"; - pushBuffer(buf); - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -/* Execute shell command */ -DEFUN(execsh, EXEC_SHELL SHELL, "Execute shell command") -{ - char *cmd; - - CurrentKeyData = NULL; /* not allowed in w3m-control: */ - cmd = searchKeyData(); - if (cmd == NULL || *cmd == '\0') { - cmd = inputLineHist("(exec shell)!", "", IN_COMMAND, ShellHist); - } - if (cmd != NULL) - cmd = conv_to_system(cmd); - if (cmd != NULL && *cmd != '\0') { - fmTerm(); - printf("\n"); - system(cmd); - /* FIXME: gettextize? */ - printf("\n[Hit any key]"); - fflush(stdout); - fmInit(); - getch(); - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -/* Load file */ -DEFUN(ldfile, LOAD, "Load local file") -{ - char *fn; - - fn = searchKeyData(); - if (fn == NULL || *fn == '\0') { - /* FIXME: gettextize? */ - fn = inputFilenameHist("(Load)Filename? ", NULL, LoadHist); - } - if (fn != NULL) - fn = conv_to_system(fn); - if (fn == NULL || *fn == '\0') { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - cmd_loadfile(fn); -} - -/* Load help file */ -DEFUN(ldhelp, HELP, "View help") -{ -#ifdef USE_HELP_CGI - char *lang; - int n; - Str tmp; - - lang = AcceptLang; - n = strcspn(lang, ";, \t"); - tmp = Sprintf("file:///$LIB/" HELP_CGI CGI_EXTENSION "?version=%s&lang=%s", - Str_form_quote(Strnew_charp(w3m_version))->ptr, - Str_form_quote(Strnew_charp_n(lang, n))->ptr); - cmd_loadURL(tmp->ptr, NULL, NO_REFERER, NULL); -#else - cmd_loadURL(helpFile(HELP_FILE), NULL, NO_REFERER, NULL); -#endif -} - -static void -cmd_loadfile(char *fn) -{ - Buffer *buf; - - buf = loadGeneralFile(file_to_url(fn), NULL, NO_REFERER, 0, NULL); - if (buf == NULL) { - /* FIXME: gettextize? */ - char *emsg = Sprintf("%s not found", conv_from_system(fn))->ptr; - disp_err_message(emsg, FALSE); - } - else if (buf != NO_BUFFER) { - pushBuffer(buf); - if (RenderFrame && Currentbuf->frameset != NULL) - rFrame(); - } - displayBuffer(Currentbuf, B_NORMAL); -} - -/* Move cursor left */ -static void -_movL(int n) -{ - int i, m = searchKeyNum(); - if (Currentbuf->firstLine == NULL) - return; - for (i = 0; i < m; i++) - cursorLeft(Currentbuf, n); - displayBuffer(Currentbuf, B_NORMAL); -} - -DEFUN(movL, MOVE_LEFT, - "Move cursor left (a half screen shift at the left edge)") -{ - _movL(Currentbuf->COLS / 2); -} - -DEFUN(movL1, MOVE_LEFT1, "Move cursor left (1 columns shift at the left edge)") -{ - _movL(1); -} - -/* Move cursor downward */ -static void -_movD(int n) -{ - int i, m = searchKeyNum(); - if (Currentbuf->firstLine == NULL) - return; - for (i = 0; i < m; i++) - cursorDown(Currentbuf, n); - displayBuffer(Currentbuf, B_NORMAL); -} - -DEFUN(movD, MOVE_DOWN, - "Move cursor down (a half screen scroll at the end of screen)") -{ - _movD((Currentbuf->LINES + 1) / 2); -} - -DEFUN(movD1, MOVE_DOWN1, - "Move cursor down (1 line scroll at the end of screen)") -{ - _movD(1); -} - -/* move cursor upward */ -static void -_movU(int n) -{ - int i, m = searchKeyNum(); - if (Currentbuf->firstLine == NULL) - return; - for (i = 0; i < m; i++) - cursorUp(Currentbuf, n); - displayBuffer(Currentbuf, B_NORMAL); -} - -DEFUN(movU, MOVE_UP, - "Move cursor up (a half screen scroll at the top of screen)") -{ - _movU((Currentbuf->LINES + 1) / 2); -} - -DEFUN(movU1, MOVE_UP1, "Move cursor up (1 line scrol at the top of screen)") -{ - _movU(1); -} - -/* Move cursor right */ -static void -_movR(int n) -{ - int i, m = searchKeyNum(); - if (Currentbuf->firstLine == NULL) - return; - for (i = 0; i < m; i++) - cursorRight(Currentbuf, n); - displayBuffer(Currentbuf, B_NORMAL); -} - -DEFUN(movR, MOVE_RIGHT, - "Move cursor right (a half screen shift at the right edge)") -{ - _movR(Currentbuf->COLS / 2); -} - -DEFUN(movR1, MOVE_RIGHT1, - "Move cursor right (1 columns shift at the right edge)") -{ - _movR(1); -} - -/* movLW, movRW */ -/* - * From: Takashi Nishimoto <g96p0935@mse.waseda.ac.jp> Date: Mon, 14 Jun - * 1999 09:29:56 +0900 - */ -#define IS_WORD_CHAR(c,p) (IS_ALNUM(c) && CharType(p) == PC_ASCII) - -static int -prev_nonnull_line(Line *line) -{ - Line *l; - - for (l = line; l != NULL && l->len == 0; l = l->prev) ; - if (l == NULL || l->len == 0) - return -1; - - Currentbuf->currentLine = l; - if (l != line) - Currentbuf->pos = Currentbuf->currentLine->len; - return 0; -} - -DEFUN(movLW, PREV_WORD, "Move to previous word") -{ - char *lb; - Lineprop *pb; - Line *pline; - int ppos; - int i, n = searchKeyNum(); - - if (Currentbuf->firstLine == NULL) - return; - - for (i = 0; i < n; i++) { - pline = Currentbuf->currentLine; - ppos = Currentbuf->pos; - - if (prev_nonnull_line(Currentbuf->currentLine) < 0) - goto end; - - while (1) { - lb = Currentbuf->currentLine->lineBuf; - pb = Currentbuf->currentLine->propBuf; - while (Currentbuf->pos > 0 && - !IS_WORD_CHAR(lb[Currentbuf->pos - 1], - pb[Currentbuf->pos - 1])) { - Currentbuf->pos--; - } - if (Currentbuf->pos > 0) - break; - if (prev_nonnull_line(Currentbuf->currentLine->prev) < 0) { - Currentbuf->currentLine = pline; - Currentbuf->pos = ppos; - goto end; - } - Currentbuf->pos = Currentbuf->currentLine->len; - } - - lb = Currentbuf->currentLine->lineBuf; - pb = Currentbuf->currentLine->propBuf; - while (Currentbuf->pos > 0 && - IS_WORD_CHAR(lb[Currentbuf->pos - 1], - pb[Currentbuf->pos - 1])) { - Currentbuf->pos--; - } - } - end: - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); -} - -static int -next_nonnull_line(Line *line) -{ - Line *l; - - for (l = line; l != NULL && l->len == 0; l = l->next) ; - - if (l == NULL || l->len == 0) - return -1; - - Currentbuf->currentLine = l; - if (l != line) - Currentbuf->pos = 0; - return 0; -} - -DEFUN(movRW, NEXT_WORD, "Move to next word") -{ - char *lb; - Lineprop *pb; - Line *pline; - int ppos; - int i, n = searchKeyNum(); - - if (Currentbuf->firstLine == NULL) - return; - - for (i = 0; i < n; i++) { - pline = Currentbuf->currentLine; - ppos = Currentbuf->pos; - - if (next_nonnull_line(Currentbuf->currentLine) < 0) - goto end; - - lb = Currentbuf->currentLine->lineBuf; - pb = Currentbuf->currentLine->propBuf; - - while (lb[Currentbuf->pos] && - IS_WORD_CHAR(lb[Currentbuf->pos], pb[Currentbuf->pos])) - Currentbuf->pos++; - - while (1) { - while (lb[Currentbuf->pos] && - !IS_WORD_CHAR(lb[Currentbuf->pos], pb[Currentbuf->pos])) - Currentbuf->pos++; - if (lb[Currentbuf->pos]) - break; - if (next_nonnull_line(Currentbuf->currentLine->next) < 0) { - Currentbuf->currentLine = pline; - Currentbuf->pos = ppos; - goto end; - } - Currentbuf->pos = 0; - lb = Currentbuf->currentLine->lineBuf; - pb = Currentbuf->currentLine->propBuf; - } - } - end: - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); -} - -static void -_quitfm(int confirm) -{ - char *ans = "y"; - - if (checkDownloadList()) - /* FIXME: gettextize? */ - ans = inputChar("Download process retains. " - "Do you want to exit w3m? (y/n)"); - else if (confirm) - /* FIXME: gettextize? */ - ans = inputChar("Do you want to exit w3m? (y/n)"); - if (!(ans && TOLOWER(*ans) == 'y')) { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - - term_title(""); /* XXX */ -#ifdef USE_IMAGE - if (activeImage) - termImage(); -#endif - fmTerm(); -#ifdef USE_COOKIE - save_cookies(); -#endif /* USE_COOKIE */ -#ifdef USE_HISTORY - if (UseHistory && SaveURLHist) - saveHistory(URLHist, URLHistSize); -#endif /* USE_HISTORY */ - w3m_exit(0); -} - -/* Quit */ -DEFUN(quitfm, ABORT EXIT, "Quit w3m without confirmation") -{ - _quitfm(FALSE); -} - -/* Question and Quit */ -DEFUN(qquitfm, QUIT, "Quit w3m") -{ - _quitfm(confirm_on_quit); -} - -/* Select buffer */ -DEFUN(selBuf, SELECT, "Go to buffer selection panel") -{ - Buffer *buf; - int ok; - char cmd; - - ok = FALSE; - do { - buf = selectBuffer(Firstbuf, Currentbuf, &cmd); - switch (cmd) { - case 'B': - ok = TRUE; - break; - case '\n': - case ' ': - Currentbuf = buf; - ok = TRUE; - break; - case 'D': - delBuffer(buf); - if (Firstbuf == NULL) { - /* No more buffer */ - Firstbuf = nullBuffer(); - Currentbuf = Firstbuf; - } - break; - case 'q': - qquitfm(); - break; - case 'Q': - quitfm(); - break; - } - } while (!ok); - - for (buf = Firstbuf; buf != NULL; buf = buf->nextBuffer) { - if (buf == Currentbuf) - continue; -#ifdef USE_IMAGE - deleteImage(buf); -#endif - if (clear_buffer) - tmpClearBuffer(buf); - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -/* Suspend (on BSD), or run interactive shell (on SysV) */ -DEFUN(susp, INTERRUPT SUSPEND, "Stop loading document") -{ -#ifndef SIGSTOP - char *shell; -#endif /* not SIGSTOP */ - move(LASTLINE, 0); - clrtoeolx(); - refresh(); - fmTerm(); -#ifndef SIGSTOP - shell = getenv("SHELL"); - if (shell == NULL) - shell = "/bin/sh"; - system(shell); -#else /* SIGSTOP */ - kill((pid_t) 0, SIGSTOP); -#endif /* SIGSTOP */ - fmInit(); - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -/* Go to specified line */ -static void -_goLine(char *l) -{ - if (l == NULL || *l == '\0' || Currentbuf->currentLine == NULL) { - displayBuffer(Currentbuf, B_FORCE_REDRAW); - return; - } - Currentbuf->pos = 0; - if (((*l == '^') || (*l == '$')) && prec_num) { - gotoRealLine(Currentbuf, prec_num); - } - else if (*l == '^') { - Currentbuf->topLine = Currentbuf->currentLine = Currentbuf->firstLine; - } - else if (*l == '$') { - Currentbuf->topLine = - lineSkip(Currentbuf, Currentbuf->lastLine, - -(Currentbuf->LINES + 1) / 2, TRUE); - Currentbuf->currentLine = Currentbuf->lastLine; - } - else - gotoRealLine(Currentbuf, atoi(l)); - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -DEFUN(goLine, GOTO_LINE, "Go to specified line") -{ - - char *str = searchKeyData(); - if (prec_num) - _goLine("^"); - else if (str) - _goLine(str); - else - /* FIXME: gettextize? */ - _goLine(inputStr("Goto line: ", "")); -} - - -DEFUN(goLineF, BEGIN, "Go to the first line") -{ - _goLine("^"); -} - -DEFUN(goLineL, END, "Go to the last line") -{ - _goLine("$"); -} - -/* Go to the beginning of the line */ -DEFUN(linbeg, LINE_BEGIN, "Go to the beginning of line") -{ - if (Currentbuf->firstLine == NULL) - return; - while (Currentbuf->currentLine->prev && Currentbuf->currentLine->bpos) - cursorUp0(Currentbuf, 1); - Currentbuf->pos = 0; - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); -} - -/* Go to the bottom of the line */ -DEFUN(linend, LINE_END, "Go to the end of line") -{ - if (Currentbuf->firstLine == NULL) - return; - while (Currentbuf->currentLine->next - && Currentbuf->currentLine->next->bpos) - cursorDown0(Currentbuf, 1); - Currentbuf->pos = Currentbuf->currentLine->len - 1; - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); -} - -static int -cur_real_linenumber(Buffer *buf) -{ - Line *l, *cur = buf->currentLine; - int n; - - if (!cur) - return 1; - n = cur->real_linenumber ? cur->real_linenumber : 1; - for (l = buf->firstLine; l && l != cur && l->real_linenumber == 0; l = l->next) { /* header */ - if (l->bpos == 0) - n++; - } - return n; -} - -/* Run editor on the current buffer */ -DEFUN(editBf, EDIT, "Edit current document") -{ - char *fn = Currentbuf->filename; - Str cmd; - - if (fn == NULL || Currentbuf->pagerSource != NULL || /* Behaving as a pager */ - (Currentbuf->type == NULL && Currentbuf->edit == NULL) || /* Reading shell */ - Currentbuf->real_scheme != SCM_LOCAL || !strcmp(Currentbuf->currentURL.file, "-") || /* file is std input */ - Currentbuf->bufferprop & BP_FRAME) { /* Frame */ - disp_err_message("Can't edit other than local file", TRUE); - return; - } - if (Currentbuf->edit) - cmd = unquote_mailcap(Currentbuf->edit, Currentbuf->real_type, fn, - checkHeader(Currentbuf, "Content-Type:"), NULL); - else - cmd = myEditor(Editor, shell_quote(fn), - cur_real_linenumber(Currentbuf)); - fmTerm(); - system(cmd->ptr); - fmInit(); - - displayBuffer(Currentbuf, B_FORCE_REDRAW); - reload(); -} - -/* Run editor on the current screen */ -DEFUN(editScr, EDIT_SCREEN, "Edit currently rendered document") -{ - char *tmpf; - FILE *f; - - tmpf = tmpfname(TMPF_DFL, NULL)->ptr; - f = fopen(tmpf, "w"); - if (f == NULL) { - /* FIXME: gettextize? */ - disp_err_message(Sprintf("Can't open %s", tmpf)->ptr, TRUE); - return; - } - saveBuffer(Currentbuf, f, TRUE); - fclose(f); - fmTerm(); - system(myEditor(Editor, shell_quote(tmpf), - cur_real_linenumber(Currentbuf))->ptr); - fmInit(); - unlink(tmpf); - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -#ifdef USE_MARK - -/* Set / unset mark */ -DEFUN(_mark, MARK, "Set/unset mark") -{ - Line *l; - if (!use_mark) - return; - if (Currentbuf->firstLine == NULL) - return; - l = Currentbuf->currentLine; - l->propBuf[Currentbuf->pos] ^= PE_MARK; - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -/* Go to next mark */ -DEFUN(nextMk, NEXT_MARK, "Move to next word") -{ - Line *l; - int i; - - if (!use_mark) - return; - if (Currentbuf->firstLine == NULL) - return; - i = Currentbuf->pos + 1; - l = Currentbuf->currentLine; - if (i >= l->len) { - i = 0; - l = l->next; - } - while (l != NULL) { - for (; i < l->len; i++) { - if (l->propBuf[i] & PE_MARK) { - Currentbuf->currentLine = l; - Currentbuf->pos = i; - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); - return; - } - } - l = l->next; - i = 0; - } - /* FIXME: gettextize? */ - disp_message("No mark exist after here", TRUE); -} - -/* Go to previous mark */ -DEFUN(prevMk, PREV_MARK, "Move to previous mark") -{ - Line *l; - int i; - - if (!use_mark) - return; - if (Currentbuf->firstLine == NULL) - return; - i = Currentbuf->pos - 1; - l = Currentbuf->currentLine; - if (i < 0) { - l = l->prev; - if (l != NULL) - i = l->len - 1; - } - while (l != NULL) { - for (; i >= 0; i--) { - if (l->propBuf[i] & PE_MARK) { - Currentbuf->currentLine = l; - Currentbuf->pos = i; - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); - return; - } - } - l = l->prev; - if (l != NULL) - i = l->len - 1; - } - /* FIXME: gettextize? */ - disp_message("No mark exist before here", TRUE); -} - -/* Mark place to which the regular expression matches */ -DEFUN(reMark, REG_MARK, "Set mark using regexp") -{ - Line *l; - char *str; - char *p, *p1, *p2; - - if (!use_mark) - return; - str = searchKeyData(); - if (str == NULL || *str == '\0') { - str = inputStrHist("(Mark)Regexp: ", MarkString, TextHist); - if (str == NULL || *str == '\0') { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - } - str = conv_search_string(str, DisplayCharset); - if ((str = regexCompile(str, 1)) != NULL) { - disp_message(str, TRUE); - return; - } - MarkString = str; - for (l = Currentbuf->firstLine; l != NULL; l = l->next) { - p = l->lineBuf; - for (;;) { - if (regexMatch(p, &l->lineBuf[l->len] - p, p == l->lineBuf) == 1) { - matchedPosition(&p1, &p2); - l->propBuf[p1 - l->lineBuf] |= PE_MARK; - p = p2; - } - else - break; - } - } - - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} -#endif /* USE_MARK */ - -static Buffer * -loadNormalBuf(Buffer *buf, int renderframe) -{ - pushBuffer(buf); - if (renderframe && RenderFrame && Currentbuf->frameset != NULL) - rFrame(); - return buf; -} - -static Buffer * -loadLink(char *url, char *target, char *referer, FormList *request) -{ - Buffer *buf, *nfbuf; - union frameset_element *f_element = NULL; - int flag = 0; - ParsedURL *base, pu; - - message(Sprintf("loading %s", url)->ptr, 0, 0); - refresh(); - - base = baseURL(Currentbuf); - if (base == NULL || - base->scheme == SCM_LOCAL || base->scheme == SCM_LOCAL_CGI) - referer = NO_REFERER; - if (referer == NULL) - referer = parsedURL2Str(&Currentbuf->currentURL)->ptr; - buf = loadGeneralFile(url, baseURL(Currentbuf), referer, flag, request); - if (buf == NULL) { - char *emsg = Sprintf("Can't load %s", url)->ptr; - disp_err_message(emsg, FALSE); - return NULL; - } - - parseURL2(url, &pu, base); - pushHashHist(URLHist, parsedURL2Str(&pu)->ptr); - - if (buf == NO_BUFFER) { - return NULL; - } - if (!on_target) /* open link as an indivisual page */ - return loadNormalBuf(buf, TRUE); - - if (do_download) /* download (thus no need to render frame) */ - return loadNormalBuf(buf, FALSE); - - if (target == NULL || /* no target specified (that means this page is not a frame page) */ - !strcmp(target, "_top") || /* this link is specified to be opened as an indivisual * page */ - !(Currentbuf->bufferprop & BP_FRAME) /* This page is not a frame page */ - ) { - return loadNormalBuf(buf, TRUE); - } - nfbuf = Currentbuf->linkBuffer[LB_N_FRAME]; - if (nfbuf == NULL) { - /* original page (that contains <frameset> tag) doesn't exist */ - return loadNormalBuf(buf, TRUE); - } - - f_element = search_frame(nfbuf->frameset, target); - if (f_element == NULL) { - /* specified target doesn't exist in this frameset */ - return loadNormalBuf(buf, TRUE); - } - - /* frame page */ - - /* stack current frameset */ - pushFrameTree(&(nfbuf->frameQ), copyFrameSet(nfbuf->frameset), Currentbuf); - /* delete frame view buffer */ - delBuffer(Currentbuf); - Currentbuf = nfbuf; - /* nfbuf->frameset = copyFrameSet(nfbuf->frameset); */ - resetFrameElement(f_element, buf, referer, request); - discardBuffer(buf); - rFrame(); - { - Anchor *al = NULL; - char *label = pu.label; - - if (label && f_element->element->attr == F_BODY) { - al = searchAnchor(f_element->body->nameList, label); - } - if (!al) { - label = Strnew_m_charp("_", target, NULL)->ptr; - al = searchURLLabel(Currentbuf, label); - } - if (al) { - gotoLine(Currentbuf, al->start.line); - if (label_topline) - Currentbuf->topLine = lineSkip(Currentbuf, Currentbuf->topLine, - Currentbuf->currentLine-> - linenumber - - Currentbuf->topLine->linenumber, - FALSE); - Currentbuf->pos = al->start.pos; - arrangeCursor(Currentbuf); - } - } - displayBuffer(Currentbuf, B_NORMAL); - return buf; -} - -static void -gotoLabel(char *label) -{ - Buffer *buf; - Anchor *al; - int i; - - al = searchURLLabel(Currentbuf, label); - if (al == NULL) { - /* FIXME: gettextize? */ - disp_message(Sprintf("%s is not found", label)->ptr, TRUE); - return; - } - buf = newBuffer(Currentbuf->width); - copyBuffer(buf, Currentbuf); - for (i = 0; i < MAX_LB; i++) - buf->linkBuffer[i] = NULL; - buf->currentURL.label = allocStr(label, -1); - pushHashHist(URLHist, parsedURL2Str(&buf->currentURL)->ptr); - (*buf->clone)++; - pushBuffer(buf); - gotoLine(Currentbuf, al->start.line); - if (label_topline) - Currentbuf->topLine = lineSkip(Currentbuf, Currentbuf->topLine, - Currentbuf->currentLine->linenumber - - Currentbuf->topLine->linenumber, - FALSE); - Currentbuf->pos = al->start.pos; - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_FORCE_REDRAW); - return; -} - -/* follow HREF link */ -DEFUN(followA, GOTO_LINK, "Go to current link") -{ - Line *l; - Anchor *a; - ParsedURL u; -#ifdef USE_IMAGE - int x = 0, y = 0, map = 0; -#endif - char *url; - - if (Currentbuf->firstLine == NULL) - return; - l = Currentbuf->currentLine; - -#ifdef USE_IMAGE - a = retrieveCurrentImg(Currentbuf); - if (a && a->image && a->image->map) { - _followForm(FALSE); - return; - } - if (a && a->image && a->image->ismap) { - getMapXY(Currentbuf, a, &x, &y); - map = 1; - } -#else - a = retrieveCurrentMap(Currentbuf); - if (a) { - _followForm(FALSE); - return; - } -#endif - a = retrieveCurrentAnchor(Currentbuf); - if (a == NULL) { - _followForm(FALSE); - return; - } - if (*a->url == '#') { /* index within this buffer */ - gotoLabel(a->url + 1); - return; - } - parseURL2(a->url, &u, baseURL(Currentbuf)); - if (Strcmp(parsedURL2Str(&u), parsedURL2Str(&Currentbuf->currentURL)) == 0) { - /* index within this buffer */ - if (u.label) { - gotoLabel(u.label); - return; - } - } - if (!strncasecmp(a->url, "mailto:", 7) -#ifdef USE_W3MMAILER - && non_null(Mailer) && strchr(a->url, '?') == NULL -#endif - ) { - /* invoke external mailer */ - Str to = Strnew_charp(a->url + 7); -#ifndef USE_W3MMAILER - char *pos; - if (!non_null(Mailer)) { - /* FIXME: gettextize? */ - disp_err_message("no mailer is specified", TRUE); - return; - } - if ((pos = strchr(to->ptr, '?')) != NULL) - Strtruncate(to, pos - to->ptr); -#endif - fmTerm(); - system(myExtCommand(Mailer, shell_quote(file_unquote(to->ptr)), - FALSE)->ptr); - fmInit(); - displayBuffer(Currentbuf, B_FORCE_REDRAW); - pushHashHist(URLHist, a->url); - return; - } -#if 0 - else if (!strncasecmp(a->url, "news:", 5) && strchr(a->url, '@') == NULL) { - /* news:newsgroup is not supported */ - /* FIXME: gettextize? */ - disp_err_message("news:newsgroup_name is not supported", TRUE); - return; - } -#endif /* USE_NNTP */ - url = a->url; -#ifdef USE_IMAGE - if (map) - url = Sprintf("%s?%d,%d", a->url, x, y)->ptr; -#endif - - if (check_target && open_tab_blank && a->target && - (!strcasecmp(a->target, "_new") || !strcasecmp(a->target, "_blank"))) { - Buffer *buf; - - _newT(); - buf = Currentbuf; - loadLink(url, a->target, a->referer, NULL); - if (buf != Currentbuf) - delBuffer(buf); - else - deleteTab(CurrentTab); - displayBuffer(Currentbuf, B_FORCE_REDRAW); - return; - } - loadLink(url, a->target, a->referer, NULL); - displayBuffer(Currentbuf, B_NORMAL); -} - -/* follow HREF link in the buffer */ -void -bufferA(void) -{ - on_target = FALSE; - followA(); - on_target = TRUE; -} - -/* view inline image */ -DEFUN(followI, VIEW_IMAGE, "View image") -{ - Line *l; - Anchor *a; - Buffer *buf; - - if (Currentbuf->firstLine == NULL) - return; - l = Currentbuf->currentLine; - - a = retrieveCurrentImg(Currentbuf); - if (a == NULL) - return; - /* FIXME: gettextize? */ - message(Sprintf("loading %s", a->url)->ptr, 0, 0); - refresh(); - buf = loadGeneralFile(a->url, baseURL(Currentbuf), NULL, 0, NULL); - if (buf == NULL) { - /* FIXME: gettextize? */ - char *emsg = Sprintf("Can't load %s", a->url)->ptr; - disp_err_message(emsg, FALSE); - } - else if (buf != NO_BUFFER) { - pushBuffer(buf); - } - displayBuffer(Currentbuf, B_NORMAL); -} - -static FormItemList * -save_submit_formlist(FormItemList *src) -{ - FormList *list; - FormList *srclist; - FormItemList *srcitem; - FormItemList *item; - FormItemList *ret = NULL; -#ifdef MENU_SELECT - FormSelectOptionItem *opt; - FormSelectOptionItem *curopt; - FormSelectOptionItem *srcopt; -#endif /* MENU_SELECT */ - - if (src == NULL) - return NULL; - srclist = src->parent; - list = New(FormList); - list->method = srclist->method; - list->action = Strdup(srclist->action); -#ifdef USE_M17N - list->charset = srclist->charset; -#endif - list->enctype = srclist->enctype; - list->nitems = srclist->nitems; - list->body = srclist->body; - list->boundary = srclist->boundary; - list->length = srclist->length; - - for (srcitem = srclist->item; srcitem; srcitem = srcitem->next) { - item = New(FormItemList); - item->type = srcitem->type; - item->name = Strdup(srcitem->name); - item->value = Strdup(srcitem->value); - item->checked = srcitem->checked; - item->accept = srcitem->accept; - item->size = srcitem->size; - item->rows = srcitem->rows; - item->maxlength = srcitem->maxlength; - item->readonly = srcitem->readonly; -#ifdef MENU_SELECT - opt = curopt = NULL; - for (srcopt = srcitem->select_option; srcopt; srcopt = srcopt->next) { - if (!srcopt->checked) - continue; - opt = New(FormSelectOptionItem); - opt->value = Strdup(srcopt->value); - opt->label = Strdup(srcopt->label); - opt->checked = srcopt->checked; - if (item->select_option == NULL) { - item->select_option = curopt = opt; - } - else { - curopt->next = opt; - curopt = curopt->next; - } - } - item->select_option = opt; - if (srcitem->label) - item->label = Strdup(srcitem->label); -#endif /* MENU_SELECT */ - item->parent = list; - item->next = NULL; - - if (list->lastitem == NULL) { - list->item = list->lastitem = item; - } - else { - list->lastitem->next = item; - list->lastitem = item; - } - - if (srcitem == src) - ret = item; - } - - return ret; -} - -#ifdef USE_M17N -static Str -conv_form_encoding(Str val, FormItemList *fi, Buffer *buf) -{ - wc_ces charset = SystemCharset; - - if (fi->parent->charset) - charset = fi->parent->charset; - else if (buf->document_charset && buf->document_charset != WC_CES_US_ASCII) - charset = buf->document_charset; - return wc_Str_conv_strict(val, InnerCharset, charset); -} -#else -#define conv_form_encoding(val, fi, buf) (val) -#endif - -static void -query_from_followform(Str *query, FormItemList *fi, int multipart) -{ - FormItemList *f2; - FILE *body = NULL; - - if (multipart) { - *query = tmpfname(TMPF_DFL, NULL); - body = fopen((*query)->ptr, "w"); - if (body == NULL) { - return; - } - fi->parent->body = (*query)->ptr; - fi->parent->boundary = - Sprintf("------------------------------%d%ld%ld%ld", CurrentPid, - fi->parent, fi->parent->body, fi->parent->boundary)->ptr; - } - *query = Strnew(); - for (f2 = fi->parent->item; f2; f2 = f2->next) { - if (f2->name == NULL) - continue; - /* <ISINDEX> is translated into single text form */ - if (f2->name->length == 0 && - (multipart || f2->type != FORM_INPUT_TEXT)) - continue; - switch (f2->type) { - case FORM_INPUT_RESET: - /* do nothing */ - continue; - case FORM_INPUT_SUBMIT: - case FORM_INPUT_IMAGE: - if (f2 != fi || f2->value == NULL) - continue; - break; - case FORM_INPUT_RADIO: - case FORM_INPUT_CHECKBOX: - if (!f2->checked) - continue; - } - if (multipart) { - if (f2->type == FORM_INPUT_IMAGE) { - int x = 0, y = 0; -#ifdef USE_IMAGE - getMapXY(Currentbuf, retrieveCurrentImg(Currentbuf), &x, &y); -#endif - *query = Strdup(conv_form_encoding(f2->name, fi, Currentbuf)); - Strcat_charp(*query, ".x"); - form_write_data(body, fi->parent->boundary, (*query)->ptr, - Sprintf("%d", x)->ptr); - *query = Strdup(conv_form_encoding(f2->name, fi, Currentbuf)); - Strcat_charp(*query, ".y"); - form_write_data(body, fi->parent->boundary, (*query)->ptr, - Sprintf("%d", y)->ptr); - } - else if (f2->name && f2->name->length > 0 && f2->value != NULL) { - /* not IMAGE */ - *query = conv_form_encoding(f2->value, fi, Currentbuf); - if (f2->type == FORM_INPUT_FILE) - form_write_from_file(body, fi->parent->boundary, - conv_form_encoding(f2->name, fi, - Currentbuf)->ptr, - (*query)->ptr, - Str_conv_to_system(f2->value)->ptr); - else - form_write_data(body, fi->parent->boundary, - conv_form_encoding(f2->name, fi, - Currentbuf)->ptr, - (*query)->ptr); - } - } - else { - /* not multipart */ - if (f2->type == FORM_INPUT_IMAGE) { - int x = 0, y = 0; -#ifdef USE_IMAGE - getMapXY(Currentbuf, retrieveCurrentImg(Currentbuf), &x, &y); -#endif - Strcat(*query, - Str_form_quote(conv_form_encoding - (f2->name, fi, Currentbuf))); - Strcat(*query, Sprintf(".x=%d&", x)); - Strcat(*query, - Str_form_quote(conv_form_encoding - (f2->name, fi, Currentbuf))); - Strcat(*query, Sprintf(".y=%d", y)); - } - else { - /* not IMAGE */ - if (f2->name && f2->name->length > 0) { - Strcat(*query, - Str_form_quote(conv_form_encoding - (f2->name, fi, Currentbuf))); - Strcat_char(*query, '='); - } - if (f2->value != NULL) { - if (fi->parent->method == FORM_METHOD_INTERNAL) - Strcat(*query, Str_form_quote(f2->value)); - else { - Strcat(*query, - Str_form_quote(conv_form_encoding - (f2->value, fi, Currentbuf))); - } - } - } - if (f2->next) - Strcat_char(*query, '&'); - } - } - if (multipart) { - fprintf(body, "--%s--\r\n", fi->parent->boundary); - fclose(body); - } - else { - /* remove trailing & */ - while (Strlastchar(*query) == '&') - Strshrink(*query, 1); - } -} - -/* submit form */ -DEFUN(submitForm, SUBMIT, "Submit form") -{ - _followForm(TRUE); -} - -/* process form */ -void -followForm(void) -{ - _followForm(FALSE); -} - -static void -_followForm(int submit) -{ - Line *l; - Anchor *a, *a2; - char *p; - FormItemList *fi, *f2; - Str tmp, tmp2; - int multipart = 0, i; - - if (Currentbuf->firstLine == NULL) - return; - l = Currentbuf->currentLine; - - a = retrieveCurrentForm(Currentbuf); - if (a == NULL) - return; - fi = (FormItemList *)a->url; - switch (fi->type) { - case FORM_INPUT_TEXT: - if (submit) - goto do_submit; - if (fi->readonly) - /* FIXME: gettextize? */ - disp_message_nsec("Read only field!", FALSE, 1, TRUE, FALSE); - /* FIXME: gettextize? */ - p = inputStrHist("TEXT:", fi->value ? fi->value->ptr : NULL, TextHist); - if (p == NULL || fi->readonly) - break; - fi->value = Strnew_charp(p); - formUpdateBuffer(a, Currentbuf, fi); - if (fi->accept || fi->parent->nitems == 1) - goto do_submit; - break; - case FORM_INPUT_FILE: - if (submit) - goto do_submit; - if (fi->readonly) - /* FIXME: gettextize? */ - disp_message_nsec("Read only field!", FALSE, 1, TRUE, FALSE); - /* FIXME: gettextize? */ - p = inputFilenameHist("Filename:", fi->value ? fi->value->ptr : NULL, - NULL); - if (p == NULL || fi->readonly) - break; - fi->value = Strnew_charp(p); - formUpdateBuffer(a, Currentbuf, fi); - if (fi->accept || fi->parent->nitems == 1) - goto do_submit; - break; - case FORM_INPUT_PASSWORD: - if (submit) - goto do_submit; - if (fi->readonly) { - /* FIXME: gettextize? */ - disp_message_nsec("Read only field!", FALSE, 1, TRUE, FALSE); - break; - } - /* FIXME: gettextize? */ - p = inputLine("Password:", fi->value ? fi->value->ptr : NULL, - IN_PASSWORD); - if (p == NULL) - break; - fi->value = Strnew_charp(p); - formUpdateBuffer(a, Currentbuf, fi); - if (fi->accept) - goto do_submit; - break; - case FORM_TEXTAREA: - if (submit) - goto do_submit; - if (fi->readonly) - /* FIXME: gettextize? */ - disp_message_nsec("Read only field!", FALSE, 1, TRUE, FALSE); - input_textarea(fi); - formUpdateBuffer(a, Currentbuf, fi); - break; - case FORM_INPUT_RADIO: - if (submit) - goto do_submit; - if (fi->readonly) { - /* FIXME: gettextize? */ - disp_message_nsec("Read only field!", FALSE, 1, TRUE, FALSE); - break; - } - formRecheckRadio(a, Currentbuf, fi); - break; - case FORM_INPUT_CHECKBOX: - if (submit) - goto do_submit; - if (fi->readonly) { - /* FIXME: gettextize? */ - disp_message_nsec("Read only field!", FALSE, 1, TRUE, FALSE); - break; - } - fi->checked = !fi->checked; - formUpdateBuffer(a, Currentbuf, fi); - break; -#ifdef MENU_SELECT - case FORM_SELECT: - if (submit) - goto do_submit; - if (!formChooseOptionByMenu(fi, - Currentbuf->cursorX - Currentbuf->pos + - a->start.pos + Currentbuf->rootX, - Currentbuf->cursorY + Currentbuf->rootY)) - break; - formUpdateBuffer(a, Currentbuf, fi); - if (fi->parent->nitems == 1) - goto do_submit; - break; -#endif /* MENU_SELECT */ - case FORM_INPUT_IMAGE: - case FORM_INPUT_SUBMIT: - case FORM_INPUT_BUTTON: - do_submit: - tmp = Strnew(); - tmp2 = Strnew(); - multipart = (fi->parent->method == FORM_METHOD_POST && - fi->parent->enctype == FORM_ENCTYPE_MULTIPART); - query_from_followform(&tmp, fi, multipart); - - tmp2 = Strdup(fi->parent->action); - if (!Strcmp_charp(tmp2, "!CURRENT_URL!")) { - /* It means "current URL" */ - tmp2 = parsedURL2Str(&Currentbuf->currentURL); - if ((p = strchr(tmp2->ptr, '?')) != NULL) - Strshrink(tmp2, (tmp2->ptr + tmp2->length) - p); - } - - if (fi->parent->method == FORM_METHOD_GET) { - if ((p = strchr(tmp2->ptr, '?')) != NULL) - Strshrink(tmp2, (tmp2->ptr + tmp2->length) - p); - Strcat_charp(tmp2, "?"); - Strcat(tmp2, tmp); - loadLink(tmp2->ptr, a->target, NULL, NULL); - } - else if (fi->parent->method == FORM_METHOD_POST) { - Buffer *buf; - if (multipart) { - struct stat st; - stat(fi->parent->body, &st); - fi->parent->length = st.st_size; - } - else { - fi->parent->body = tmp->ptr; - fi->parent->length = tmp->length; - } - buf = loadLink(tmp2->ptr, a->target, NULL, fi->parent); - if (multipart) { - unlink(fi->parent->body); - } - if (buf && !(buf->bufferprop & BP_REDIRECTED)) { /* buf must be Currentbuf */ - /* BP_REDIRECTED means that the buffer is obtained through - * Location: header. In this case, buf->form_submit must not be set - * because the page is not loaded by POST method but GET method. - */ - buf->form_submit = save_submit_formlist(fi); - } - } - else if ((fi->parent->method == FORM_METHOD_INTERNAL && (!Strcmp_charp(fi->parent->action, "map") || !Strcmp_charp(fi->parent->action, "none"))) || Currentbuf->bufferprop & BP_INTERNAL) { /* internal */ - do_internal(tmp2->ptr, tmp->ptr); - } - else { - disp_err_message("Can't send form because of illegal method.", - FALSE); - } - break; - case FORM_INPUT_RESET: - for (i = 0; i < Currentbuf->formitem->nanchor; i++) { - a2 = &Currentbuf->formitem->anchors[i]; - f2 = (FormItemList *)a2->url; - if (f2->parent == fi->parent && - f2->name && f2->value && - f2->type != FORM_INPUT_SUBMIT && - f2->type != FORM_INPUT_HIDDEN && - f2->type != FORM_INPUT_RESET) { - f2->value = f2->init_value; - f2->checked = f2->init_checked; -#ifdef MENU_SELECT - f2->label = f2->init_label; - f2->selected = f2->init_selected; -#endif /* MENU_SELECT */ - formUpdateBuffer(a2, Currentbuf, f2); - } - } - break; - case FORM_INPUT_HIDDEN: - default: - break; - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -/* go to the top anchor */ -DEFUN(topA, LINK_BEGIN, "Go to the first link") -{ - HmarkerList *hl = Currentbuf->hmarklist; - BufferPoint *po; - Anchor *an; - int hseq = 0; - - if (Currentbuf->firstLine == NULL) - return; - if (!hl || hl->nmark == 0) - return; - - if (prec_num > hl->nmark) - hseq = hl->nmark - 1; - else if (prec_num > 0) - hseq = prec_num - 1; - do { - if (hseq >= hl->nmark) - return; - po = hl->marks + hseq; - an = retrieveAnchor(Currentbuf->href, po->line, po->pos); - if (an == NULL) - an = retrieveAnchor(Currentbuf->formitem, po->line, po->pos); - hseq++; - } while (an == NULL); - - gotoLine(Currentbuf, po->line); - Currentbuf->pos = po->pos; - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); -} - -/* go to the last anchor */ -DEFUN(lastA, LINK_END, "Go to the last link") -{ - HmarkerList *hl = Currentbuf->hmarklist; - BufferPoint *po; - Anchor *an; - int hseq; - - if (Currentbuf->firstLine == NULL) - return; - if (!hl || hl->nmark == 0) - return; - - if (prec_num >= hl->nmark) - hseq = 0; - else if (prec_num > 0) - hseq = hl->nmark - prec_num; - else - hseq = hl->nmark - 1; - do { - if (hseq < 0) - return; - po = hl->marks + hseq; - an = retrieveAnchor(Currentbuf->href, po->line, po->pos); - if (an == NULL) - an = retrieveAnchor(Currentbuf->formitem, po->line, po->pos); - hseq--; - } while (an == NULL); - - gotoLine(Currentbuf, po->line); - Currentbuf->pos = po->pos; - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); -} - -/* go to the next anchor */ -DEFUN(nextA, NEXT_LINK, "Move to next link") -{ - _nextA(FALSE); -} - -/* go to the previous anchor */ -DEFUN(prevA, PREV_LINK, "Move to previous link") -{ - _prevA(FALSE); -} - -/* go to the next visited anchor */ -DEFUN(nextVA, NEXT_VISITED, "Move to next visited link") -{ - _nextA(TRUE); -} - -/* go to the previous visited anchor */ -DEFUN(prevVA, PREV_VISITED, "Move to previous visited link") -{ - _prevA(TRUE); -} - -/* go to the next [visited] anchor */ -static void -_nextA(int visited) -{ - HmarkerList *hl = Currentbuf->hmarklist; - BufferPoint *po; - Anchor *an, *pan; - int i, x, y, n = searchKeyNum(); - ParsedURL url; - - if (Currentbuf->firstLine == NULL) - return; - if (!hl || hl->nmark == 0) - return; - - an = retrieveCurrentAnchor(Currentbuf); - if (visited != TRUE && an == NULL) - an = retrieveCurrentForm(Currentbuf); - - y = Currentbuf->currentLine->linenumber; - x = Currentbuf->pos; - - if (visited == TRUE) { - n = hl->nmark; - } - - for (i = 0; i < n; i++) { - pan = an; - if (an && an->hseq >= 0) { - int hseq = an->hseq + 1; - do { - if (hseq >= hl->nmark) { - if (visited == TRUE) - return; - an = pan; - goto _end; - } - po = &hl->marks[hseq]; - an = retrieveAnchor(Currentbuf->href, po->line, po->pos); - if (visited != TRUE && an == NULL) - an = retrieveAnchor(Currentbuf->formitem, po->line, - po->pos); - hseq++; - if (visited == TRUE && an) { - parseURL2(an->url, &url, baseURL(Currentbuf)); - if (getHashHist(URLHist, parsedURL2Str(&url)->ptr)) { - goto _end; - } - } - } while (an == NULL || an == pan); - } - else { - an = closest_next_anchor(Currentbuf->href, NULL, x, y); - if (visited != TRUE) - an = closest_next_anchor(Currentbuf->formitem, an, x, y); - if (an == NULL) { - if (visited == TRUE) - return; - an = pan; - break; - } - x = an->start.pos; - y = an->start.line; - if (visited == TRUE) { - parseURL2(an->url, &url, baseURL(Currentbuf)); - if (getHashHist(URLHist, parsedURL2Str(&url)->ptr)) { - goto _end; - } - } - } - } - if (visited == TRUE) - return; - - _end: - if (an == NULL || an->hseq < 0) - return; - po = &hl->marks[an->hseq]; - gotoLine(Currentbuf, po->line); - Currentbuf->pos = po->pos; - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); -} - -/* go to the previous anchor */ -static void -_prevA(int visited) -{ - HmarkerList *hl = Currentbuf->hmarklist; - BufferPoint *po; - Anchor *an, *pan; - int i, x, y, n = searchKeyNum(); - ParsedURL url; - - if (Currentbuf->firstLine == NULL) - return; - if (!hl || hl->nmark == 0) - return; - - an = retrieveCurrentAnchor(Currentbuf); - if (visited != TRUE && an == NULL) - an = retrieveCurrentForm(Currentbuf); - - y = Currentbuf->currentLine->linenumber; - x = Currentbuf->pos; - - if (visited == TRUE) { - n = hl->nmark; - } - - for (i = 0; i < n; i++) { - pan = an; - if (an && an->hseq >= 0) { - int hseq = an->hseq - 1; - do { - if (hseq < 0) { - if (visited == TRUE) - return; - an = pan; - goto _end; - } - po = hl->marks + hseq; - an = retrieveAnchor(Currentbuf->href, po->line, po->pos); - if (visited != TRUE && an == NULL) - an = retrieveAnchor(Currentbuf->formitem, po->line, - po->pos); - hseq--; - if (visited == TRUE && an) { - parseURL2(an->url, &url, baseURL(Currentbuf)); - if (getHashHist(URLHist, parsedURL2Str(&url)->ptr)) { - goto _end; - } - } - } while (an == NULL || an == pan); - } - else { - an = closest_prev_anchor(Currentbuf->href, NULL, x, y); - if (visited != TRUE) - an = closest_prev_anchor(Currentbuf->formitem, an, x, y); - if (an == NULL) { - if (visited == TRUE) - return; - an = pan; - break; - } - x = an->start.pos; - y = an->start.line; - if (visited == TRUE && an) { - parseURL2(an->url, &url, baseURL(Currentbuf)); - if (getHashHist(URLHist, parsedURL2Str(&url)->ptr)) { - goto _end; - } - } - } - } - if (visited == TRUE) - return; - - _end: - if (an == NULL || an->hseq < 0) - return; - po = hl->marks + an->hseq; - gotoLine(Currentbuf, po->line); - Currentbuf->pos = po->pos; - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); -} - -/* go to the next left/right anchor */ -static void -nextX(int d, int dy) -{ - HmarkerList *hl = Currentbuf->hmarklist; - Anchor *an, *pan; - Line *l; - int i, x, y, n = searchKeyNum(); - - if (Currentbuf->firstLine == NULL) - return; - if (!hl || hl->nmark == 0) - return; - - an = retrieveCurrentAnchor(Currentbuf); - if (an == NULL) - an = retrieveCurrentForm(Currentbuf); - - l = Currentbuf->currentLine; - x = Currentbuf->pos; - y = l->linenumber; - pan = NULL; - for (i = 0; i < n; i++) { - if (an) - x = (d > 0) ? an->end.pos : an->start.pos - 1; - an = NULL; - while (1) { - for (; x >= 0 && x < l->len; x += d) { - an = retrieveAnchor(Currentbuf->href, y, x); - if (!an) - an = retrieveAnchor(Currentbuf->formitem, y, x); - if (an) { - pan = an; - break; - } - } - if (!dy || an) - break; - l = (dy > 0) ? l->next : l->prev; - if (!l) - break; - x = (d > 0) ? 0 : l->len - 1; - y = l->linenumber; - } - if (!an) - break; - } - - if (pan == NULL) - return; - gotoLine(Currentbuf, y); - Currentbuf->pos = pan->start.pos; - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); -} - -/* go to the next downward/upward anchor */ -static void -nextY(int d) -{ - HmarkerList *hl = Currentbuf->hmarklist; - Anchor *an, *pan; - int i, x, y, n = searchKeyNum(); - int hseq; - - if (Currentbuf->firstLine == NULL) - return; - if (!hl || hl->nmark == 0) - return; - - an = retrieveCurrentAnchor(Currentbuf); - if (an == NULL) - an = retrieveCurrentForm(Currentbuf); - - x = Currentbuf->pos; - y = Currentbuf->currentLine->linenumber + d; - pan = NULL; - hseq = -1; - for (i = 0; i < n; i++) { - if (an) - hseq = abs(an->hseq); - an = NULL; - for (; y >= 0 && y <= Currentbuf->lastLine->linenumber; y += d) { - an = retrieveAnchor(Currentbuf->href, y, x); - if (!an) - an = retrieveAnchor(Currentbuf->formitem, y, x); - if (an && hseq != abs(an->hseq)) { - pan = an; - break; - } - } - if (!an) - break; - } - - if (pan == NULL) - return; - gotoLine(Currentbuf, pan->start.line); - arrangeLine(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); -} - -/* go to the next left anchor */ -DEFUN(nextL, NEXT_LEFT, "Move to next left link") -{ - nextX(-1, 0); -} - -/* go to the next left-up anchor */ -DEFUN(nextLU, NEXT_LEFT_UP, "Move to next left (or upward) link") -{ - nextX(-1, -1); -} - -/* go to the next right anchor */ -DEFUN(nextR, NEXT_RIGHT, "Move to next right link") -{ - nextX(1, 0); -} - -/* go to the next right-down anchor */ -DEFUN(nextRD, NEXT_RIGHT_DOWN, "Move to next right (or downward) link") -{ - nextX(1, 1); -} - -/* go to the next downward anchor */ -DEFUN(nextD, NEXT_DOWN, "Move to next downward link") -{ - nextY(1); -} - -/* go to the next upward anchor */ -DEFUN(nextU, NEXT_UP, "Move to next upward link") -{ - nextY(-1); -} - -/* go to the next bufferr */ -DEFUN(nextBf, NEXT, "Move to next buffer") -{ - Buffer *buf; - int i; - - for (i = 0; i < PREC_NUM; i++) { - buf = prevBuffer(Firstbuf, Currentbuf); - if (!buf) { - if (i == 0) - return; - break; - } - Currentbuf = buf; - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -/* go to the previous bufferr */ -DEFUN(prevBf, PREV, "Move to previous buffer") -{ - Buffer *buf; - int i; - - for (i = 0; i < PREC_NUM; i++) { - buf = Currentbuf->nextBuffer; - if (!buf) { - if (i == 0) - return; - break; - } - Currentbuf = buf; - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -static int -checkBackBuffer(Buffer *buf) -{ - Buffer *fbuf = buf->linkBuffer[LB_N_FRAME]; - - if (fbuf) { - if (fbuf->frameQ) - return TRUE; /* Currentbuf has stacked frames */ - /* when no frames stacked and next is frame source, try next's - * nextBuffer */ - if (RenderFrame && fbuf == buf->nextBuffer) { - if (fbuf->nextBuffer != NULL) - return TRUE; - else - return FALSE; - } - } - - if (buf->nextBuffer) - return TRUE; - - return FALSE; -} - -/* delete current buffer and back to the previous buffer */ -DEFUN(backBf, BACK, "Back to previous buffer") -{ - Buffer *buf = Currentbuf->linkBuffer[LB_N_FRAME]; - - if (!checkBackBuffer(Currentbuf)) { - if (close_tab_back && nTab >= 1) { - deleteTab(CurrentTab); - displayBuffer(Currentbuf, B_FORCE_REDRAW); - } - else - /* FIXME: gettextize? */ - disp_message("Can't back...", TRUE); - return; - } - - delBuffer(Currentbuf); - - if (buf) { - if (buf->frameQ) { - struct frameset *fs; - long linenumber = buf->frameQ->linenumber; - long top = buf->frameQ->top_linenumber; - int pos = buf->frameQ->pos; - int currentColumn = buf->frameQ->currentColumn; - AnchorList *formitem = buf->frameQ->formitem; - - fs = popFrameTree(&(buf->frameQ)); - deleteFrameSet(buf->frameset); - buf->frameset = fs; - - if (buf == Currentbuf) { - rFrame(); - Currentbuf->topLine = lineSkip(Currentbuf, - Currentbuf->firstLine, top - 1, - FALSE); - gotoLine(Currentbuf, linenumber); - Currentbuf->pos = pos; - Currentbuf->currentColumn = currentColumn; - arrangeCursor(Currentbuf); - formResetBuffer(Currentbuf, formitem); - } - } - else if (RenderFrame && buf == Currentbuf) { - delBuffer(Currentbuf); - } - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -DEFUN(deletePrevBuf, DELETE_PREVBUF, - "Delete previous buffer (mainly for local-CGI)") -{ - Buffer *buf = Currentbuf->nextBuffer; - if (buf) - delBuffer(buf); -} - -static void -cmd_loadURL(char *url, ParsedURL *current, char *referer, FormList *request) -{ - Buffer *buf; - - if (!strncasecmp(url, "mailto:", 7) -#ifdef USE_W3MMAILER - && non_null(Mailer) && strchr(url, '?') == NULL -#endif - ) { - /* invoke external mailer */ - Str to = Strnew_charp(url + 7); -#ifndef USE_W3MMAILER - char *pos; - if (!non_null(Mailer)) { - /* FIXME: gettextize? */ - disp_err_message("no mailer is specified", TRUE); - return; - } - if ((pos = strchr(to->ptr, '?')) != NULL) - Strtruncate(to, pos - to->ptr); -#endif - fmTerm(); - system(myExtCommand(Mailer, shell_quote(file_unquote(to->ptr)), - FALSE)->ptr); - fmInit(); - displayBuffer(Currentbuf, B_FORCE_REDRAW); - pushHashHist(URLHist, url); - return; - } -#if 0 - if (!strncasecmp(url, "news:", 5) && strchr(url, '@') == NULL) { - /* news:newsgroup is not supported */ - /* FIXME: gettextize? */ - disp_err_message("news:newsgroup_name is not supported", TRUE); - return; - } -#endif /* USE_NNTP */ - - refresh(); - buf = loadGeneralFile(url, current, referer, 0, request); - if (buf == NULL) { - /* FIXME: gettextize? */ - char *emsg = Sprintf("Can't load %s", conv_from_system(url))->ptr; - disp_err_message(emsg, FALSE); - } - else if (buf != NO_BUFFER) { - pushBuffer(buf); - if (RenderFrame && Currentbuf->frameset != NULL) - rFrame(); - } - displayBuffer(Currentbuf, B_NORMAL); -} - - -/* go to specified URL */ -static void -goURL0(char *prompt, int relative) -{ - char *url, *referer; - ParsedURL p_url, *current; - Buffer *cur_buf = Currentbuf; - - url = searchKeyData(); - if (url == NULL) { - Hist *hist = copyHist(URLHist); - Anchor *a; - - current = baseURL(Currentbuf); - if (current) { - char *c_url = parsedURL2Str(current)->ptr; - if (DefaultURLString == DEFAULT_URL_CURRENT) { - url = c_url; - if (DecodeURL) - url = url_unquote_conv(url, 0); - } - else - pushHist(hist, c_url); - } - a = retrieveCurrentAnchor(Currentbuf); - if (a) { - char *a_url; - parseURL2(a->url, &p_url, current); - a_url = parsedURL2Str(&p_url)->ptr; - if (DefaultURLString == DEFAULT_URL_LINK) { - url = a_url; - if (DecodeURL) - url = url_unquote_conv(url, Currentbuf->document_charset); - } - else - pushHist(hist, a_url); - } - url = inputLineHist(prompt, url, IN_URL, hist); - if (url != NULL) - SKIP_BLANKS(url); - } -#ifdef USE_M17N - if (url != NULL) { - if ((relative || *url == '#') && Currentbuf->document_charset) - url = wc_conv_strict(url, InnerCharset, - Currentbuf->document_charset)->ptr; - else - url = conv_to_system(url); - } -#endif - if (url == NULL || *url == '\0') { - displayBuffer(Currentbuf, B_FORCE_REDRAW); - return; - } - if (*url == '#') { - gotoLabel(url + 1); - return; - } - if (relative) { - current = baseURL(Currentbuf); - referer = parsedURL2Str(&Currentbuf->currentURL)->ptr; - } - else { - current = NULL; - referer = NULL; - } - parseURL2(url, &p_url, current); - pushHashHist(URLHist, parsedURL2Str(&p_url)->ptr); - cmd_loadURL(url, current, referer, NULL); - if (Currentbuf != cur_buf) /* success */ - pushHashHist(URLHist, parsedURL2Str(&Currentbuf->currentURL)->ptr); -} - -DEFUN(goURL, GOTO, "Go to URL") -{ - goURL0("Goto URL: ", FALSE); -} - -DEFUN(gorURL, GOTO_RELATIVE, "Go to relative URL") -{ - goURL0("Goto relative URL: ", TRUE); -} - -static void -cmd_loadBuffer(Buffer *buf, int prop, int linkid) -{ - if (buf == NULL) { - disp_err_message("Can't load string", FALSE); - } - else if (buf != NO_BUFFER) { - buf->bufferprop |= (BP_INTERNAL | prop); - if (!(buf->bufferprop & BP_NO_URL)) - copyParsedURL(&buf->currentURL, &Currentbuf->currentURL); - if (linkid != LB_NOLINK) { - buf->linkBuffer[REV_LB[linkid]] = Currentbuf; - Currentbuf->linkBuffer[linkid] = buf; - } - pushBuffer(buf); - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -/* load bookmark */ -DEFUN(ldBmark, BOOKMARK VIEW_BOOKMARK, "Read bookmark") -{ - cmd_loadURL(BookmarkFile, NULL, NO_REFERER, NULL); -} - - -/* Add current to bookmark */ -DEFUN(adBmark, ADD_BOOKMARK, "Add current page to bookmark") -{ - Str tmp; - FormList *request; - - tmp = Sprintf("mode=panel&cookie=%s&bmark=%s&url=%s&title=%s" -#ifdef USE_M17N - "&charset=%s" -#endif - , - (Str_form_quote(localCookie()))->ptr, - (Str_form_quote(Strnew_charp(BookmarkFile)))->ptr, - (Str_form_quote(parsedURL2Str(&Currentbuf->currentURL)))-> - ptr, -#ifdef USE_M17N - (Str_form_quote(wc_conv_strict(Currentbuf->buffername, - InnerCharset, - BookmarkCharset)))->ptr, - wc_ces_to_charset(BookmarkCharset)); -#else - (Str_form_quote(Strnew_charp(Currentbuf->buffername)))->ptr); -#endif - request = newFormList(NULL, "post", NULL, NULL, NULL, NULL, NULL); - request->body = tmp->ptr; - request->length = tmp->length; - cmd_loadURL("file:///$LIB/" W3MBOOKMARK_CMDNAME, NULL, NO_REFERER, - request); -} - -/* option setting */ -DEFUN(ldOpt, OPTIONS, "Option setting panel") -{ - cmd_loadBuffer(load_option_panel(), BP_NO_URL, LB_NOLINK); -} - -/* set an option */ -DEFUN(setOpt, SET_OPTION, "Set option") -{ - char *opt; - - CurrentKeyData = NULL; /* not allowed in w3m-control: */ - opt = searchKeyData(); - if (opt == NULL || *opt == '\0' || strchr(opt, '=') == NULL) { - if (opt != NULL && *opt != '\0') { - char *v = get_param_option(opt); - opt = Sprintf("%s=%s", opt, v ? v : "")->ptr; - } - opt = inputStrHist("Set option: ", opt, TextHist); - if (opt == NULL || *opt == '\0') { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - } - if (set_param_option(opt)) - sync_with_option(); - displayBuffer(Currentbuf, B_REDRAW_IMAGE); -} - -/* error message list */ -DEFUN(msgs, MSGS, "Display error messages") -{ - cmd_loadBuffer(message_list_panel(), BP_NO_URL, LB_NOLINK); -} - -/* page info */ -DEFUN(pginfo, INFO, "View info of current document") -{ - Buffer *buf; - - if ((buf = Currentbuf->linkBuffer[LB_N_INFO]) != NULL) { - Currentbuf = buf; - displayBuffer(Currentbuf, B_NORMAL); - return; - } - if ((buf = Currentbuf->linkBuffer[LB_INFO]) != NULL) - delBuffer(buf); - buf = page_info_panel(Currentbuf); - cmd_loadBuffer(buf, BP_NORMAL, LB_INFO); -} - -void -follow_map(struct parsed_tagarg *arg) -{ - char *name = tag_get_value(arg, "link"); -#if defined(MENU_MAP) || defined(USE_IMAGE) - Anchor *an; - MapArea *a; - int x, y; - ParsedURL p_url; - - an = retrieveCurrentImg(Currentbuf); - x = Currentbuf->cursorX + Currentbuf->rootX; - y = Currentbuf->cursorY + Currentbuf->rootY; - a = follow_map_menu(Currentbuf, name, an, x, y); - if (a == NULL || a->url == NULL || *(a->url) == '\0') { -#endif -#ifndef MENU_MAP - Buffer *buf = follow_map_panel(Currentbuf, name); - - if (buf != NULL) - cmd_loadBuffer(buf, BP_NORMAL, LB_NOLINK); -#endif -#if defined(MENU_MAP) || defined(USE_IMAGE) - return; - } - if (*(a->url) == '#') { - gotoLabel(a->url + 1); - return; - } - parseURL2(a->url, &p_url, baseURL(Currentbuf)); - pushHashHist(URLHist, parsedURL2Str(&p_url)->ptr); - if (check_target && open_tab_blank && a->target && - (!strcasecmp(a->target, "_new") || !strcasecmp(a->target, "_blank"))) { - Buffer *buf; - - _newT(); - buf = Currentbuf; - cmd_loadURL(a->url, baseURL(Currentbuf), - parsedURL2Str(&Currentbuf->currentURL)->ptr, NULL); - if (buf != Currentbuf) - delBuffer(buf); - else - deleteTab(CurrentTab); - displayBuffer(Currentbuf, B_FORCE_REDRAW); - return; - } - cmd_loadURL(a->url, baseURL(Currentbuf), - parsedURL2Str(&Currentbuf->currentURL)->ptr, NULL); -#endif -} - -#ifdef USE_MENU -/* link menu */ -DEFUN(linkMn, LINK_MENU, "Popup link element menu") -{ - LinkList *l = link_menu(Currentbuf); - ParsedURL p_url; - - if (!l || !l->url) - return; - if (*(l->url) == '#') { - gotoLabel(l->url + 1); - return; - } - parseURL2(l->url, &p_url, baseURL(Currentbuf)); - pushHashHist(URLHist, parsedURL2Str(&p_url)->ptr); - cmd_loadURL(l->url, baseURL(Currentbuf), - parsedURL2Str(&Currentbuf->currentURL)->ptr, NULL); -} - -static void -anchorMn(Anchor *(*menu_func) (Buffer *), int go) -{ - Anchor *a; - BufferPoint *po; - - if (!Currentbuf->href || !Currentbuf->hmarklist) - return; - a = menu_func(Currentbuf); - if (!a || a->hseq < 0) - return; - po = &Currentbuf->hmarklist->marks[a->hseq]; - gotoLine(Currentbuf, po->line); - Currentbuf->pos = po->pos; - arrangeCursor(Currentbuf); - displayBuffer(Currentbuf, B_NORMAL); - if (go) - followA(); -} - -/* accesskey */ -DEFUN(accessKey, ACCESSKEY, "Popup acceskey menu") -{ - anchorMn(accesskey_menu, TRUE); -} - -/* list menu */ -DEFUN(listMn, LIST_MENU, "Popup link list menu and go to selected link") -{ - anchorMn(list_menu, TRUE); -} - -DEFUN(movlistMn, MOVE_LIST_MENU, - "Popup link list menu and move cursor to selected link") -{ - anchorMn(list_menu, FALSE); -} -#endif - -/* link,anchor,image list */ -DEFUN(linkLst, LIST, "Show all links and images") -{ - Buffer *buf; - - buf = link_list_panel(Currentbuf); - if (buf != NULL) { -#ifdef USE_M17N - buf->document_charset = Currentbuf->document_charset; -#endif - cmd_loadBuffer(buf, BP_NORMAL, LB_NOLINK); - } -} - -#ifdef USE_COOKIE -/* cookie list */ -DEFUN(cooLst, COOKIE, "View cookie list") -{ - Buffer *buf; - - buf = cookie_list_panel(); - if (buf != NULL) - cmd_loadBuffer(buf, BP_NO_URL, LB_NOLINK); -} -#endif /* USE_COOKIE */ - -#ifdef USE_HISTORY -/* History page */ -DEFUN(ldHist, HISTORY, "View history of URL") -{ - cmd_loadBuffer(historyBuffer(URLHist), BP_NO_URL, LB_NOLINK); -} -#endif /* USE_HISTORY */ - -/* download HREF link */ -DEFUN(svA, SAVE_LINK, "Save link to file") -{ - CurrentKeyData = NULL; /* not allowed in w3m-control: */ - do_download = TRUE; - followA(); - do_download = FALSE; -} - -/* download IMG link */ -DEFUN(svI, SAVE_IMAGE, "Save image to file") -{ - CurrentKeyData = NULL; /* not allowed in w3m-control: */ - do_download = TRUE; - followI(); - do_download = FALSE; -} - -/* save buffer */ -DEFUN(svBuf, PRINT SAVE_SCREEN, "Save rendered document to file") -{ - char *qfile = NULL, *file; - FILE *f; - int is_pipe; - - CurrentKeyData = NULL; /* not allowed in w3m-control: */ - file = searchKeyData(); - if (file == NULL || *file == '\0') { - /* FIXME: gettextize? */ - qfile = inputLineHist("Save buffer to: ", NULL, IN_COMMAND, SaveHist); - if (qfile == NULL || *qfile == '\0') { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - } - file = conv_to_system(qfile ? qfile : file); - if (*file == '|') { - is_pipe = TRUE; - f = popen(file + 1, "w"); - } - else { - if (qfile) { - file = unescape_spaces(Strnew_charp(qfile))->ptr; - file = conv_to_system(file); - } - file = expandPath(file); - if (checkOverWrite(file) < 0) { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - f = fopen(file, "w"); - is_pipe = FALSE; - } - if (f == NULL) { - /* FIXME: gettextize? */ - char *emsg = Sprintf("Can't open %s", conv_from_system(file))->ptr; - disp_err_message(emsg, TRUE); - return; - } - saveBuffer(Currentbuf, f, TRUE); - if (is_pipe) - pclose(f); - else - fclose(f); - displayBuffer(Currentbuf, B_NORMAL); -} - -/* save source */ -DEFUN(svSrc, DOWNLOAD SAVE, "Save document source to file") -{ - char *file; - - if (Currentbuf->sourcefile == NULL) - return; - CurrentKeyData = NULL; /* not allowed in w3m-control: */ - PermitSaveToPipe = TRUE; - if (Currentbuf->real_scheme == SCM_LOCAL) - file = conv_from_system(guess_save_name(NULL, - Currentbuf->currentURL. - real_file)); - else - file = guess_save_name(Currentbuf, Currentbuf->currentURL.file); - doFileCopy(Currentbuf->sourcefile, file); - PermitSaveToPipe = FALSE; - displayBuffer(Currentbuf, B_NORMAL); -} - -static void -_peekURL(int only_img) -{ - - Anchor *a; - ParsedURL pu; - static Str s = NULL; -#ifdef USE_M17N - static Lineprop *p = NULL; - Lineprop *pp; -#endif - static int offset = 0, n; - - if (Currentbuf->firstLine == NULL) - return; - if (CurrentKey == prev_key && s != NULL) { - if (s->length - offset >= COLS) - offset++; - else if (s->length <= offset) /* bug ? */ - offset = 0; - goto disp; - } - else { - offset = 0; - } - s = NULL; - a = (only_img ? NULL : retrieveCurrentAnchor(Currentbuf)); - if (a == NULL) { - a = (only_img ? NULL : retrieveCurrentForm(Currentbuf)); - if (a == NULL) { - a = retrieveCurrentImg(Currentbuf); - if (a == NULL) - return; - } - else - s = Strnew_charp(form2str((FormItemList *)a->url)); - } - if (s == NULL) { - parseURL2(a->url, &pu, baseURL(Currentbuf)); - s = parsedURL2Str(&pu); - } - if (DecodeURL) - s = Strnew_charp(url_unquote_conv - (s->ptr, Currentbuf->document_charset)); -#ifdef USE_M17N - s = checkType(s, &pp, NULL); - p = NewAtom_N(Lineprop, s->length); - bcopy((void *)pp, (void *)p, s->length * sizeof(Lineprop)); -#endif - disp: - n = searchKeyNum(); - if (n > 1 && s->length > (n - 1) * (COLS - 1)) - offset = (n - 1) * (COLS - 1); -#ifdef USE_M17N - while (offset < s->length && p[offset] & PC_WCHAR2) - offset++; -#endif - disp_message_nomouse(&s->ptr[offset], TRUE); -} - -/* peek URL */ -DEFUN(peekURL, PEEK_LINK, "Peek link URL") -{ - _peekURL(0); -} - -/* peek URL of image */ -DEFUN(peekIMG, PEEK_IMG, "Peek image URL") -{ - _peekURL(1); -} - -/* show current URL */ -static Str -currentURL(void) -{ - if (Currentbuf->bufferprop & BP_INTERNAL) - return Strnew_size(0); - return parsedURL2Str(&Currentbuf->currentURL); -} - -DEFUN(curURL, PEEK, "Peek current URL") -{ - static Str s = NULL; -#ifdef USE_M17N - static Lineprop *p = NULL; - Lineprop *pp; -#endif - static int offset = 0, n; - - if (Currentbuf->bufferprop & BP_INTERNAL) - return; - if (CurrentKey == prev_key && s != NULL) { - if (s->length - offset >= COLS) - offset++; - else if (s->length <= offset) /* bug ? */ - offset = 0; - } - else { - offset = 0; - s = currentURL(); - if (DecodeURL) - s = Strnew_charp(url_unquote_conv(s->ptr, 0)); -#ifdef USE_M17N - s = checkType(s, &pp, NULL); - p = NewAtom_N(Lineprop, s->length); - bcopy((void *)pp, (void *)p, s->length * sizeof(Lineprop)); -#endif - } - n = searchKeyNum(); - if (n > 1 && s->length > (n - 1) * (COLS - 1)) - offset = (n - 1) * (COLS - 1); -#ifdef USE_M17N - while (offset < s->length && p[offset] & PC_WCHAR2) - offset++; -#endif - disp_message_nomouse(&s->ptr[offset], TRUE); -} -/* view HTML source */ - -DEFUN(vwSrc, SOURCE VIEW, "View HTML source") -{ - Buffer *buf; - - if (Currentbuf->type == NULL || Currentbuf->bufferprop & BP_FRAME) - return; - if ((buf = Currentbuf->linkBuffer[LB_SOURCE]) != NULL || - (buf = Currentbuf->linkBuffer[LB_N_SOURCE]) != NULL) { - Currentbuf = buf; - displayBuffer(Currentbuf, B_NORMAL); - return; - } - if (Currentbuf->sourcefile == NULL) { - if (Currentbuf->pagerSource && - !strcasecmp(Currentbuf->type, "text/plain")) { -#ifdef USE_M17N - wc_ces old_charset; - wc_bool old_fix_width_conv; -#endif - FILE *f; - Str tmpf = tmpfname(TMPF_SRC, NULL); - f = fopen(tmpf->ptr, "w"); - if (f == NULL) - return; -#ifdef USE_M17N - old_charset = DisplayCharset; - old_fix_width_conv = WcOption.fix_width_conv; - DisplayCharset = (Currentbuf->document_charset != WC_CES_US_ASCII) - ? Currentbuf->document_charset : 0; - WcOption.fix_width_conv = WC_FALSE; -#endif - saveBufferBody(Currentbuf, f, TRUE); -#ifdef USE_M17N - DisplayCharset = old_charset; - WcOption.fix_width_conv = old_fix_width_conv; -#endif - fclose(f); - Currentbuf->sourcefile = tmpf->ptr; - } - else { - return; - } - } - - buf = newBuffer(INIT_BUFFER_WIDTH); - - if (!strcasecmp(Currentbuf->type, "text/html")) { - buf->type = "text/plain"; - if (Currentbuf->real_type && - !strcasecmp(Currentbuf->real_type, "text/html")) - buf->real_type = "text/plain"; - else - buf->real_type = Currentbuf->real_type; - buf->buffername = Sprintf("source of %s", Currentbuf->buffername)->ptr; - buf->linkBuffer[LB_N_SOURCE] = Currentbuf; - Currentbuf->linkBuffer[LB_SOURCE] = buf; - } - else if (!strcasecmp(Currentbuf->type, "text/plain")) { - buf->type = "text/html"; - if (Currentbuf->real_type && - !strcasecmp(Currentbuf->real_type, "text/plain")) - buf->real_type = "text/html"; - else - buf->real_type = Currentbuf->real_type; - buf->buffername = Sprintf("HTML view of %s", - Currentbuf->buffername)->ptr; - buf->linkBuffer[LB_SOURCE] = Currentbuf; - Currentbuf->linkBuffer[LB_N_SOURCE] = buf; - } - else { - return; - } - buf->currentURL = Currentbuf->currentURL; - buf->real_scheme = Currentbuf->real_scheme; - buf->filename = Currentbuf->filename; - buf->sourcefile = Currentbuf->sourcefile; - buf->header_source = Currentbuf->header_source; - buf->search_header = Currentbuf->search_header; -#ifdef USE_M17N - buf->document_charset = Currentbuf->document_charset; -#endif - buf->clone = Currentbuf->clone; - (*buf->clone)++; - - buf->need_reshape = TRUE; - reshapeBuffer(buf); - pushBuffer(buf); - displayBuffer(Currentbuf, B_NORMAL); -} - -/* reload */ -DEFUN(reload, RELOAD, "Reload buffer") -{ - Buffer *buf, *fbuf = NULL, sbuf; -#ifdef USE_M17N - wc_ces old_charset; -#endif - Str url; - FormList *request; - int multipart; - - if (Currentbuf->bufferprop & BP_INTERNAL) { - if (!strcmp(Currentbuf->buffername, DOWNLOAD_LIST_TITLE)) { - ldDL(); - return; - } - /* FIXME: gettextize? */ - disp_err_message("Can't reload...", TRUE); - return; - } - if (Currentbuf->currentURL.scheme == SCM_LOCAL && - !strcmp(Currentbuf->currentURL.file, "-")) { - /* file is std input */ - /* FIXME: gettextize? */ - disp_err_message("Can't reload stdin", TRUE); - return; - } - copyBuffer(&sbuf, Currentbuf); - if (Currentbuf->bufferprop & BP_FRAME && - (fbuf = Currentbuf->linkBuffer[LB_N_FRAME])) { - if (fmInitialized) { - message("Rendering frame", 0, 0); - refresh(); - } - if (!(buf = renderFrame(fbuf, 1))) { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - if (fbuf->linkBuffer[LB_FRAME]) { - if (buf->sourcefile && - fbuf->linkBuffer[LB_FRAME]->sourcefile && - !strcmp(buf->sourcefile, - fbuf->linkBuffer[LB_FRAME]->sourcefile)) - fbuf->linkBuffer[LB_FRAME]->sourcefile = NULL; - delBuffer(fbuf->linkBuffer[LB_FRAME]); - } - fbuf->linkBuffer[LB_FRAME] = buf; - buf->linkBuffer[LB_N_FRAME] = fbuf; - pushBuffer(buf); - Currentbuf = buf; - if (Currentbuf->firstLine) - restorePosition(Currentbuf, &sbuf); - displayBuffer(Currentbuf, B_FORCE_REDRAW); - return; - } - else if (Currentbuf->frameset != NULL) - fbuf = Currentbuf->linkBuffer[LB_FRAME]; - multipart = 0; - if (Currentbuf->form_submit) { - request = Currentbuf->form_submit->parent; - if (request->method == FORM_METHOD_POST - && request->enctype == FORM_ENCTYPE_MULTIPART) { - Str query; - struct stat st; - multipart = 1; - query_from_followform(&query, Currentbuf->form_submit, multipart); - stat(request->body, &st); - request->length = st.st_size; - } - } - else { - request = NULL; - } - url = parsedURL2Str(&Currentbuf->currentURL); - /* FIXME: gettextize? */ - message("Reloading...", 0, 0); - refresh(); -#ifdef USE_M17N - old_charset = DocumentCharset; - if (Currentbuf->document_charset != WC_CES_US_ASCII) - DocumentCharset = Currentbuf->document_charset; -#endif - SearchHeader = Currentbuf->search_header; - DefaultType = Currentbuf->real_type; - buf = loadGeneralFile(url->ptr, NULL, NO_REFERER, RG_NOCACHE, request); -#ifdef USE_M17N - DocumentCharset = old_charset; -#endif - SearchHeader = FALSE; - DefaultType = NULL; - - if (multipart) - unlink(request->body); - if (buf == NULL) { - /* FIXME: gettextize? */ - disp_err_message("Can't reload...", TRUE); - return; - } - else if (buf == NO_BUFFER) { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - if (fbuf != NULL) - Firstbuf = deleteBuffer(Firstbuf, fbuf); - repBuffer(Currentbuf, buf); - if ((buf->type != NULL) && (sbuf.type != NULL) && - ((!strcasecmp(buf->type, "text/plain") && - !strcasecmp(sbuf.type, "text/html")) || - (!strcasecmp(buf->type, "text/html") && - !strcasecmp(sbuf.type, "text/plain")))) { - vwSrc(); - if (Currentbuf != buf) - Firstbuf = deleteBuffer(Firstbuf, buf); - } - Currentbuf->search_header = sbuf.search_header; - Currentbuf->form_submit = sbuf.form_submit; - if (Currentbuf->firstLine) - restorePosition(Currentbuf, &sbuf); - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -/* reshape */ -DEFUN(reshape, RESHAPE, "Re-render buffer") -{ - Currentbuf->need_reshape = TRUE; - reshapeBuffer(Currentbuf); - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -#ifdef USE_M17N -static void -_docCSet(wc_ces charset) -{ - if (Currentbuf->bufferprop & BP_INTERNAL) - return; - if (Currentbuf->sourcefile == NULL) { - disp_message("Can't reload...", FALSE); - return; - } - Currentbuf->document_charset = charset; - Currentbuf->need_reshape = TRUE; - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -void -change_charset(struct parsed_tagarg *arg) -{ - Buffer *buf = Currentbuf->linkBuffer[LB_N_INFO]; - wc_ces charset; - - if (buf == NULL) - return; - delBuffer(Currentbuf); - Currentbuf = buf; - if (Currentbuf->bufferprop & BP_INTERNAL) - return; - charset = Currentbuf->document_charset; - for (; arg; arg = arg->next) { - if (!strcmp(arg->arg, "charset")) - charset = atoi(arg->value); - } - _docCSet(charset); -} - -DEFUN(docCSet, CHARSET, "Change the current document charset") -{ - char *cs; - wc_ces charset; - - cs = searchKeyData(); - if (cs == NULL || *cs == '\0') - /* FIXME: gettextize? */ - cs = inputStr("Document charset: ", - wc_ces_to_charset(Currentbuf->document_charset)); - charset = wc_guess_charset_short(cs, 0); - if (charset == 0) { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - _docCSet(charset); -} - -DEFUN(defCSet, DEFAULT_CHARSET, "Change the default document charset") -{ - char *cs; - wc_ces charset; - - cs = searchKeyData(); - if (cs == NULL || *cs == '\0') - /* FIXME: gettextize? */ - cs = inputStr("Default document charset: ", - wc_ces_to_charset(DocumentCharset)); - charset = wc_guess_charset_short(cs, 0); - if (charset != 0) - DocumentCharset = charset; - displayBuffer(Currentbuf, B_NORMAL); -} -#endif - -/* mark URL-like patterns as anchors */ -void -chkURLBuffer(Buffer *buf) -{ - static char *url_like_pat[] = { - "https?://[a-zA-Z0-9][a-zA-Z0-9:%\\-\\./?=~_\\&+@#,\\$;]*[a-zA-Z0-9_/=\\-]", - "file:/[a-zA-Z0-9:%\\-\\./=_\\+@#,\\$;]*", -#ifdef USE_GOPHER - "gopher://[a-zA-Z0-9][a-zA-Z0-9:%\\-\\./_]*", -#endif /* USE_GOPHER */ - "ftp://[a-zA-Z0-9][a-zA-Z0-9:%\\-\\./=_+@#,\\$]*[a-zA-Z0-9_/]", -#ifdef USE_NNTP - "news:[^<> ][^<> ]*", - "nntp://[a-zA-Z0-9][a-zA-Z0-9:%\\-\\./_]*", -#endif /* USE_NNTP */ -#ifndef USE_W3MMAILER /* see also chkExternalURIBuffer() */ - "mailto:[^<> ][^<> ]*@[a-zA-Z0-9][a-zA-Z0-9\\-\\._]*[a-zA-Z0-9]", -#endif -#ifdef INET6 - "https?://[a-zA-Z0-9:%\\-\\./_@]*\\[[a-fA-F0-9:][a-fA-F0-9:\\.]*\\][a-zA-Z0-9:%\\-\\./?=~_\\&+@#,\\$;]*", - "ftp://[a-zA-Z0-9:%\\-\\./_@]*\\[[a-fA-F0-9:][a-fA-F0-9:\\.]*\\][a-zA-Z0-9:%\\-\\./=_+@#,\\$]*", -#endif /* INET6 */ - NULL - }; - int i; - for (i = 0; url_like_pat[i]; i++) { - reAnchor(buf, url_like_pat[i]); - } -#ifdef USE_EXTERNAL_URI_LOADER - chkExternalURIBuffer(buf); -#endif - buf->check_url |= CHK_URL; -} - -DEFUN(chkURL, MARK_URL, "Mark URL-like strings as anchors") -{ - chkURLBuffer(Currentbuf); - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -DEFUN(chkWORD, MARK_WORD, "Mark current word as anchor") -{ - char *p; - int spos, epos; - p = getCurWord(Currentbuf, &spos, &epos, ":\"\'`<>()[]{}&|;*?$"); - if (p == NULL) - return; - reAnchorWord(Currentbuf, Currentbuf->currentLine, spos, epos); - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -#ifdef USE_NNTP -/* mark Message-ID-like patterns as NEWS anchors */ -void -chkNMIDBuffer(Buffer *buf) -{ - static char *url_like_pat[] = { - "<[!-;=?-~]+@[a-zA-Z0-9\\.\\-_]+>", - NULL, - }; - int i; - for (i = 0; url_like_pat[i]; i++) { - reAnchorNews(buf, url_like_pat[i]); - } - buf->check_url |= CHK_NMID; -} - -DEFUN(chkNMID, MARK_MID, "Mark Message-ID-like strings as anchors") -{ - chkNMIDBuffer(Currentbuf); - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} -#endif /* USE_NNTP */ - -/* render frame */ -DEFUN(rFrame, FRAME, "Render frame") -{ - Buffer *buf; - - if ((buf = Currentbuf->linkBuffer[LB_FRAME]) != NULL) { - Currentbuf = buf; - displayBuffer(Currentbuf, B_NORMAL); - return; - } - if (Currentbuf->frameset == NULL) { - if ((buf = Currentbuf->linkBuffer[LB_N_FRAME]) != NULL) { - Currentbuf = buf; - displayBuffer(Currentbuf, B_NORMAL); - } - return; - } - if (fmInitialized) { - message("Rendering frame", 0, 0); - refresh(); - } - buf = renderFrame(Currentbuf, 0); - if (buf == NULL) { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - buf->linkBuffer[LB_N_FRAME] = Currentbuf; - Currentbuf->linkBuffer[LB_FRAME] = buf; - pushBuffer(buf); - if (fmInitialized && display_ok) - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -/* spawn external browser */ -static void -invoke_browser(char *url) -{ - Str cmd; - char *browser = NULL; - int bg = 0, len; - - CurrentKeyData = NULL; /* not allowed in w3m-control: */ - browser = searchKeyData(); - if (browser == NULL || *browser == '\0') { - switch (prec_num) { - case 0: - case 1: - browser = ExtBrowser; - break; - case 2: - browser = ExtBrowser2; - break; - case 3: - browser = ExtBrowser3; - break; - } - if (browser == NULL || *browser == '\0') { - browser = inputStr("Browse command: ", NULL); - if (browser != NULL) - browser = conv_to_system(browser); - } - } - else { - browser = conv_to_system(browser); - } - if (browser == NULL || *browser == '\0') { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - - if ((len = strlen(browser)) >= 2 && browser[len - 1] == '&' && - browser[len - 2] != '\\') { - browser = allocStr(browser, len - 2); - bg = 1; - } - cmd = myExtCommand(browser, shell_quote(url), FALSE); - Strremovetrailingspaces(cmd); - fmTerm(); - mySystem(cmd->ptr, bg); - fmInit(); - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -DEFUN(extbrz, EXTERN, "Execute external browser") -{ - if (Currentbuf->bufferprop & BP_INTERNAL) { - /* FIXME: gettextize? */ - disp_err_message("Can't browse...", TRUE); - return; - } - if (Currentbuf->currentURL.scheme == SCM_LOCAL && - !strcmp(Currentbuf->currentURL.file, "-")) { - /* file is std input */ - /* FIXME: gettextize? */ - disp_err_message("Can't browse stdin", TRUE); - return; - } - invoke_browser(parsedURL2Str(&Currentbuf->currentURL)->ptr); -} - -DEFUN(linkbrz, EXTERN_LINK, "View current link using external browser") -{ - Anchor *a; - ParsedURL pu; - - if (Currentbuf->firstLine == NULL) - return; - a = retrieveCurrentAnchor(Currentbuf); - if (a == NULL) - return; - parseURL2(a->url, &pu, baseURL(Currentbuf)); - invoke_browser(parsedURL2Str(&pu)->ptr); -} - -/* show current line number and number of lines in the entire document */ -DEFUN(curlno, LINE_INFO, "Show current line number") -{ - Line *l = Currentbuf->currentLine; - Str tmp; - int cur = 0, all = 0, col = 0, len = 0; - - if (l != NULL) { - cur = l->real_linenumber; - col = l->bwidth + Currentbuf->currentColumn + Currentbuf->cursorX + 1; - while (l->next && l->next->bpos) - l = l->next; - if (l->width < 0) - l->width = COLPOS(l, l->len); - len = l->bwidth + l->width; - } - if (Currentbuf->lastLine) - all = Currentbuf->lastLine->real_linenumber; - if (Currentbuf->pagerSource && !(Currentbuf->bufferprop & BP_CLOSE)) - tmp = Sprintf("line %d col %d/%d", cur, col, len); - else - tmp = Sprintf("line %d/%d (%d%%) col %d/%d", cur, all, - (int)((double)cur * 100.0 / (double)(all ? all : 1) - + 0.5), col, len); -#ifdef USE_M17N - Strcat_charp(tmp, " "); - Strcat_charp(tmp, wc_ces_to_charset_desc(Currentbuf->document_charset)); -#endif - - disp_message(tmp->ptr, FALSE); -} - -#ifdef USE_IMAGE -DEFUN(dispI, DISPLAY_IMAGE, "Restart loading and drawing of images") -{ - if (!displayImage) - initImage(); - if (!activeImage) - return; - displayImage = TRUE; - /* - * if (!(Currentbuf->type && !strcmp(Currentbuf->type, "text/html"))) - * return; - */ - Currentbuf->image_flag = IMG_FLAG_AUTO; - Currentbuf->need_reshape = TRUE; - displayBuffer(Currentbuf, B_REDRAW_IMAGE); -} - -DEFUN(stopI, STOP_IMAGE, "Stop loading and drawing of images") -{ - if (!activeImage) - return; - /* - * if (!(Currentbuf->type && !strcmp(Currentbuf->type, "text/html"))) - * return; - */ - Currentbuf->image_flag = IMG_FLAG_SKIP; - displayBuffer(Currentbuf, B_REDRAW_IMAGE); -} -#endif - -#ifdef USE_MOUSE - -static int -mouse_scroll_line(void) -{ - if (relative_wheel_scroll) - return (relative_wheel_scroll_ratio * LASTLINE + 99) / 100; - else - return fixed_wheel_scroll_count; -} - -static TabBuffer * -posTab(int x, int y) -{ - TabBuffer *tab; - - if (mouse_action.menu_str && x < mouse_action.menu_width && y == 0) - return NO_TABBUFFER; - if (y > LastTab->y) - return NULL; - for (tab = FirstTab; tab; tab = tab->nextTab) { - if (tab->x1 <= x && x <= tab->x2 && tab->y == y) - return tab; - } - return NULL; -} - -static void -do_mouse_action(int btn, int x, int y) -{ - MouseActionMap *map = NULL; - int ny = -1; - - if (nTab > 1 || mouse_action.menu_str) - ny = LastTab->y + 1; - - switch (btn) { - case MOUSE_BTN1_DOWN: - btn = 0; - break; - case MOUSE_BTN2_DOWN: - btn = 1; - break; - case MOUSE_BTN3_DOWN: - btn = 2; - break; - default: - return; - } - if (y < ny) { - if (mouse_action.menu_str && x >= 0 && x < mouse_action.menu_width) { - if (mouse_action.menu_map[btn]) - map = &mouse_action.menu_map[btn][x]; - } - else - map = &mouse_action.tab_map[btn]; - } - else if (y == LASTLINE) { - if (mouse_action.lastline_str && x >= 0 && - x < mouse_action.lastline_width) { - if (mouse_action.lastline_map[btn]) - map = &mouse_action.lastline_map[btn][x]; - } - } - else if (y > ny) { - if (y == Currentbuf->cursorY + Currentbuf->rootY && - (x == Currentbuf->cursorX + Currentbuf->rootX -#ifdef USE_M17N - || (WcOption.use_wide && Currentbuf->currentLine != NULL && - (CharType(Currentbuf->currentLine->propBuf[Currentbuf->pos]) - == PC_KANJI1) - && x == Currentbuf->cursorX + Currentbuf->rootX + 1) -#endif - )) { - if (retrieveCurrentAnchor(Currentbuf) || - retrieveCurrentForm(Currentbuf)) { - map = &mouse_action.active_map[btn]; - if (!(map && map->func)) - map = &mouse_action.anchor_map[btn]; - } - } - else { - int cx = Currentbuf->cursorX, cy = Currentbuf->cursorY; - cursorXY(Currentbuf, x - Currentbuf->rootX, y - Currentbuf->rootY); - if (y == Currentbuf->cursorY + Currentbuf->rootY && - (x == Currentbuf->cursorX + Currentbuf->rootX -#ifdef USE_M17N - || (WcOption.use_wide && Currentbuf->currentLine != NULL && - (CharType(Currentbuf->currentLine-> - propBuf[Currentbuf->pos]) == PC_KANJI1) - && x == Currentbuf->cursorX + Currentbuf->rootX + 1) -#endif - ) && - (retrieveCurrentAnchor(Currentbuf) || - retrieveCurrentForm(Currentbuf))) - map = &mouse_action.anchor_map[btn]; - cursorXY(Currentbuf, cx, cy); - } - } - if (!(map && map->func)) - map = &mouse_action.default_map[btn]; - if (map && map->func) { - mouse_action.in_action = TRUE; - mouse_action.cursorX = x; - mouse_action.cursorY = y; - CurrentKey = -1; - CurrentKeyData = NULL; - CurrentCmdData = map->data; - (*map->func) (); - CurrentCmdData = NULL; - } -} - -static void -process_mouse(int btn, int x, int y) -{ - int delta_x, delta_y, i; - static int press_btn = MOUSE_BTN_RESET, press_x, press_y; - TabBuffer *t; - int ny = -1; - - if (nTab > 1 || mouse_action.menu_str) - ny = LastTab->y + 1; - if (btn == MOUSE_BTN_UP) { - switch (press_btn) { - case MOUSE_BTN1_DOWN: - if (press_y == y && press_x == x) - do_mouse_action(press_btn, x, y); - else if (ny > 0 && y < ny) { - if (press_y < ny) { - moveTab(posTab(press_x, press_y), posTab(x, y), - (press_y == y) ? (press_x < x) : (press_y < y)); - return; - } - else if (press_x >= Currentbuf->rootX) { - Buffer *buf = Currentbuf; - int cx = Currentbuf->cursorX, cy = Currentbuf->cursorY; - - t = posTab(x, y); - if (t == NULL) - return; - if (t == NO_TABBUFFER) - t = NULL; /* open new tab */ - cursorXY(Currentbuf, press_x - Currentbuf->rootX, - press_y - Currentbuf->rootY); - if (Currentbuf->cursorY == press_y - Currentbuf->rootY && - (Currentbuf->cursorX == press_x - Currentbuf->rootX -#ifdef USE_M17N - || (WcOption.use_wide && - Currentbuf->currentLine != NULL && - (CharType(Currentbuf->currentLine-> - propBuf[Currentbuf->pos]) == PC_KANJI1) - && Currentbuf->cursorX == press_x - - Currentbuf->rootX - 1) -#endif - )) { - displayBuffer(Currentbuf, B_NORMAL); - followTab(t); - } - if (buf == Currentbuf) - cursorXY(Currentbuf, cx, cy); - } - return; - } - else { - delta_x = x - press_x; - delta_y = y - press_y; - - if (abs(delta_x) < abs(delta_y) / 3) - delta_x = 0; - if (abs(delta_y) < abs(delta_x) / 3) - delta_y = 0; - if (reverse_mouse) { - delta_y = -delta_y; - delta_x = -delta_x; - } - if (delta_y > 0) { - prec_num = delta_y; - ldown1(); - } - else if (delta_y < 0) { - prec_num = -delta_y; - lup1(); - } - if (delta_x > 0) { - prec_num = delta_x; - col1L(); - } - else if (delta_x < 0) { - prec_num = -delta_x; - col1R(); - } - } - break; - case MOUSE_BTN2_DOWN: - case MOUSE_BTN3_DOWN: - if (press_y == y && press_x == x) - do_mouse_action(press_btn, x, y); - break; - case MOUSE_BTN4_DOWN_RXVT: - for (i = 0; i < mouse_scroll_line(); i++) - ldown1(); - break; - case MOUSE_BTN5_DOWN_RXVT: - for (i = 0; i < mouse_scroll_line(); i++) - lup1(); - break; - } - } - else if (btn == MOUSE_BTN4_DOWN_XTERM) { - for (i = 0; i < mouse_scroll_line(); i++) - ldown1(); - } - else if (btn == MOUSE_BTN5_DOWN_XTERM) { - for (i = 0; i < mouse_scroll_line(); i++) - lup1(); - } - - if (btn != MOUSE_BTN4_DOWN_RXVT || press_btn == MOUSE_BTN_RESET) { - press_btn = btn; - press_x = x; - press_y = y; - } - else { - press_btn = MOUSE_BTN_RESET; - } -} - -DEFUN(msToggle, MOUSE_TOGGLE, "Toggle activity of mouse") -{ - if (use_mouse) { - use_mouse = FALSE; - } - else { - use_mouse = TRUE; - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -DEFUN(mouse, MOUSE, "mouse operation") -{ - int btn, x, y; - - btn = (unsigned char)getch() - 32; -#if defined(__CYGWIN__) && CYGWIN_VERSION_DLL_MAJOR < 1005 - if (cygwin_mouse_btn_swapped) { - if (btn == MOUSE_BTN2_DOWN) - btn = MOUSE_BTN3_DOWN; - else if (btn == MOUSE_BTN3_DOWN) - btn = MOUSE_BTN2_DOWN; - } -#endif - x = (unsigned char)getch() - 33; - if (x < 0) - x += 0x100; - y = (unsigned char)getch() - 33; - if (y < 0) - y += 0x100; - - if (x < 0 || x >= COLS || y < 0 || y > LASTLINE) - return; - process_mouse(btn, x, y); -} - -#ifdef USE_GPM -int -gpm_process_mouse(Gpm_Event * event, void *data) -{ - int btn = MOUSE_BTN_RESET, x, y; - if (event->type & GPM_UP) - btn = MOUSE_BTN_UP; - else if (event->type & GPM_DOWN) { - switch (event->buttons) { - case GPM_B_LEFT: - btn = MOUSE_BTN1_DOWN; - break; - case GPM_B_MIDDLE: - btn = MOUSE_BTN2_DOWN; - break; - case GPM_B_RIGHT: - btn = MOUSE_BTN3_DOWN; - break; - } - } - else { - GPM_DRAWPOINTER(event); - return 0; - } - x = event->x; - y = event->y; - process_mouse(btn, x - 1, y - 1); - return 0; -} -#endif /* USE_GPM */ - -#ifdef USE_SYSMOUSE -int -sysm_process_mouse(int x, int y, int nbs, int obs) -{ - int btn; - int bits; - - if (obs & ~nbs) - btn = MOUSE_BTN_UP; - else if (nbs & ~obs) { - bits = nbs & ~obs; - btn = bits & 0x1 ? MOUSE_BTN1_DOWN : - (bits & 0x2 ? MOUSE_BTN2_DOWN : - (bits & 0x4 ? MOUSE_BTN3_DOWN : 0)); - } - else /* nbs == obs */ - return 0; - process_mouse(btn, x, y); - return 0; -} -#endif /* USE_SYSMOUSE */ - -DEFUN(movMs, MOVE_MOUSE, "Move cursor to mouse cursor (for mouse action)") -{ - if (!mouse_action.in_action) - return; - if ((nTab > 1 || mouse_action.menu_str) && - mouse_action.cursorY < LastTab->y + 1) - return; - else if (mouse_action.cursorX >= Currentbuf->rootX && - mouse_action.cursorY < LASTLINE) { - cursorXY(Currentbuf, mouse_action.cursorX - Currentbuf->rootX, - mouse_action.cursorY - Currentbuf->rootY); - } - displayBuffer(Currentbuf, B_NORMAL); -} - -#ifdef USE_MENU -#ifdef KANJI_SYMBOLS -#define FRAME_WIDTH 2 -#else -#define FRAME_WIDTH 1 -#endif - -DEFUN(menuMs, MENU_MOUSE, "Popup menu at mouse cursor (for mouse action)") -{ - if (!mouse_action.in_action) - return; - if ((nTab > 1 || mouse_action.menu_str) && - mouse_action.cursorY < LastTab->y + 1) - mouse_action.cursorX -= FRAME_WIDTH + 1; - else if (mouse_action.cursorX >= Currentbuf->rootX && - mouse_action.cursorY < LASTLINE) { - cursorXY(Currentbuf, mouse_action.cursorX - Currentbuf->rootX, - mouse_action.cursorY - Currentbuf->rootY); - displayBuffer(Currentbuf, B_NORMAL); - } - mainMn(); -} -#endif - -DEFUN(tabMs, TAB_MOUSE, "Move to tab on mouse cursor (for mouse action)") -{ - TabBuffer *tab; - - if (!mouse_action.in_action) - return; - tab = posTab(mouse_action.cursorX, mouse_action.cursorY); - if (!tab || tab == NO_TABBUFFER) - return; - CurrentTab = tab; - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -DEFUN(closeTMs, CLOSE_TAB_MOUSE, - "Close tab on mouse cursor (for mouse action)") -{ - TabBuffer *tab; - - if (!mouse_action.in_action) - return; - tab = posTab(mouse_action.cursorX, mouse_action.cursorY); - if (!tab || tab == NO_TABBUFFER) - return; - deleteTab(tab); - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} -#endif /* USE_MOUSE */ - -DEFUN(dispVer, VERSION, "Display version of w3m") -{ - disp_message(Sprintf("w3m version %s", w3m_version)->ptr, TRUE); -} - -DEFUN(wrapToggle, WRAP_TOGGLE, "Toggle wrap search mode") -{ - if (WrapSearch) { - WrapSearch = FALSE; - /* FIXME: gettextize? */ - disp_message("Wrap search off", TRUE); - } - else { - WrapSearch = TRUE; - /* FIXME: gettextize? */ - disp_message("Wrap search on", TRUE); - } -} - -static int -is_wordchar(int c, const char *badchars) -{ - if (badchars) - return !(IS_SPACE(c) || strchr(badchars, c)); - else - return IS_ALPHA(c); -} - -static char * -getCurWord(Buffer *buf, int *spos, int *epos, const char *badchars) -{ - char *p; - Line *l = buf->currentLine; - int b, e; - - *spos = 0; - *epos = 0; - if (l == NULL) - return NULL; - p = l->lineBuf; - e = buf->pos; - while (e > 0 && !is_wordchar(p[e], badchars)) - e--; - if (!is_wordchar(p[e], badchars)) - return NULL; - b = e; - while (b > 0 && is_wordchar(p[b - 1], badchars)) - b--; - while (e < l->len && is_wordchar(p[e], badchars)) - e++; - *spos = b; - *epos = e; - return &p[b]; -} - -static char * -GetWord(Buffer *buf) -{ - int b, e; - char *p; - - if ((p = getCurWord(buf, &b, &e, 0)) != NULL) { - return Strnew_charp_n(p, e - b)->ptr; - } - return NULL; -} - -#ifdef USE_DICT -static void -execdict(char *word) -{ - char *w, *dictcmd; - Buffer *buf; - - if (!UseDictCommand || word == NULL || *word == '\0') { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - w = conv_to_system(word); - if (*w == '\0') { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - dictcmd = Sprintf("%s?%s", DictCommand, - Str_form_quote(Strnew_charp(w))->ptr)->ptr; - buf = loadGeneralFile(dictcmd, NULL, NO_REFERER, 0, NULL); - if (buf == NULL) { - disp_message("Execution failed", TRUE); - return; - } - else { - buf->filename = w; - buf->buffername = Sprintf("%s %s", DICTBUFFERNAME, word)->ptr; - if (buf->type == NULL) - buf->type = "text/plain"; - pushBuffer(buf); - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -DEFUN(dictword, DICT_WORD, "Execute dictionary command (see README.dict)") -{ - execdict(inputStr("(dictionary)!", "")); -} - -DEFUN(dictwordat, DICT_WORD_AT, - "Execute dictionary command for word at cursor") -{ - execdict(GetWord(Currentbuf)); -} -#endif /* USE_DICT */ - -void -set_buffer_environ(Buffer *buf) -{ - static Buffer *prev_buf = NULL; - static Line *prev_line = NULL; - static int prev_pos = -1; - Line *l; - - if (buf == NULL) - return; - if (buf != prev_buf) { - set_environ("W3M_SOURCEFILE", buf->sourcefile); - set_environ("W3M_FILENAME", buf->filename); - set_environ("W3M_TITLE", buf->buffername); - set_environ("W3M_URL", parsedURL2Str(&buf->currentURL)->ptr); - set_environ("W3M_TYPE", buf->real_type ? buf->real_type : "unknown"); -#ifdef USE_M17N - set_environ("W3M_CHARSET", wc_ces_to_charset(buf->document_charset)); -#endif - } - l = buf->currentLine; - if (l && (buf != prev_buf || l != prev_line || buf->pos != prev_pos)) { - Anchor *a; - ParsedURL pu; - char *s = GetWord(buf); - set_environ("W3M_CURRENT_WORD", s ? s : ""); - a = retrieveCurrentAnchor(buf); - if (a) { - parseURL2(a->url, &pu, baseURL(buf)); - set_environ("W3M_CURRENT_LINK", parsedURL2Str(&pu)->ptr); - } - else - set_environ("W3M_CURRENT_LINK", ""); - a = retrieveCurrentImg(buf); - if (a) { - parseURL2(a->url, &pu, baseURL(buf)); - set_environ("W3M_CURRENT_IMG", parsedURL2Str(&pu)->ptr); - } - else - set_environ("W3M_CURRENT_IMG", ""); - a = retrieveCurrentForm(buf); - if (a) - set_environ("W3M_CURRENT_FORM", form2str((FormItemList *)a->url)); - else - set_environ("W3M_CURRENT_FORM", ""); - set_environ("W3M_CURRENT_LINE", Sprintf("%d", - l->real_linenumber)->ptr); - set_environ("W3M_CURRENT_COLUMN", Sprintf("%d", - buf->currentColumn + - buf->cursorX + 1)->ptr); - } - else if (!l) { - set_environ("W3M_CURRENT_WORD", ""); - set_environ("W3M_CURRENT_LINK", ""); - set_environ("W3M_CURRENT_IMG", ""); - set_environ("W3M_CURRENT_FORM", ""); - set_environ("W3M_CURRENT_LINE", "0"); - set_environ("W3M_CURRENT_COLUMN", "0"); - } - prev_buf = buf; - prev_line = l; - prev_pos = buf->pos; -} - -char * -searchKeyData(void) -{ - char *data = NULL; - - if (CurrentKeyData != NULL && *CurrentKeyData != '\0') - data = CurrentKeyData; - else if (CurrentCmdData != NULL && *CurrentCmdData != '\0') - data = CurrentCmdData; - else if (CurrentKey >= 0) - data = getKeyData(CurrentKey); - CurrentKeyData = NULL; - CurrentCmdData = NULL; - if (data == NULL || *data == '\0') - return NULL; - return allocStr(data, -1); -} - -static int -searchKeyNum(void) -{ - char *d; - int n = 1; - - d = searchKeyData(); - if (d != NULL) - n = atoi(d); - return n * PREC_NUM; -} - -#ifdef __EMX__ -#ifdef USE_M17N -static char * -getCodePage(void) -{ - unsigned long CpList[8], CpSize; - - if (!getenv("WINDOWID") && !DosQueryCp(sizeof(CpList), CpList, &CpSize)) - return Sprintf("CP%d", *CpList)->ptr; - return NULL; -} -#endif -#endif - -void -deleteFiles() -{ - Buffer *buf; - char *f; - - for (CurrentTab = FirstTab; CurrentTab; CurrentTab = CurrentTab->nextTab) { - while (Firstbuf && Firstbuf != NO_BUFFER) { - buf = Firstbuf->nextBuffer; - discardBuffer(Firstbuf); - Firstbuf = buf; - } - } - while ((f = popText(fileToDelete)) != NULL) - unlink(f); -} - -void -w3m_exit(int i) -{ -#ifdef USE_MIGEMO - init_migemo(); /* close pipe to migemo */ -#endif - stopDownload(); - deleteFiles(); -#ifdef USE_SSL - free_ssl_ctx(); -#endif - disconnectFTP(); -#ifdef USE_NNTP - disconnectNews(); -#endif - exit(i); -} - -DEFUN(execCmd, COMMAND, "Execute w3m command(s)") -{ - char *data, *p; - int cmd; - - CurrentKeyData = NULL; /* not allowed in w3m-control: */ - data = searchKeyData(); - if (data == NULL || *data == '\0') { - data = inputStrHist("command [; ...]: ", "", TextHist); - if (data == NULL) { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - } - /* data: FUNC [DATA] [; FUNC [DATA] ...] */ - while (*data) { - SKIP_BLANKS(data); - if (*data == ';') { - data++; - continue; - } - p = getWord(&data); - cmd = getFuncList(p); - if (cmd < 0) - break; - p = getQWord(&data); - CurrentKey = -1; - CurrentKeyData = NULL; - CurrentCmdData = *p ? p : NULL; -#ifdef USE_MOUSE - if (use_mouse) - mouse_inactive(); -#endif - w3mFuncList[cmd].func(); -#ifdef USE_MOUSE - if (use_mouse) - mouse_active(); -#endif - CurrentCmdData = NULL; - } - displayBuffer(Currentbuf, B_NORMAL); -} - -#ifdef USE_ALARM -static MySignalHandler -SigAlarm(SIGNAL_ARG) -{ - char *data; - - if (CurrentAlarm->sec > 0) { - CurrentKey = -1; - CurrentKeyData = NULL; - CurrentCmdData = data = (char *)CurrentAlarm->data; -#ifdef USE_MOUSE - if (use_mouse) - mouse_inactive(); -#endif - w3mFuncList[CurrentAlarm->cmd].func(); -#ifdef USE_MOUSE - if (use_mouse) - mouse_active(); -#endif - CurrentCmdData = NULL; - if (CurrentAlarm->status == AL_IMPLICIT_ONCE) { - CurrentAlarm->sec = 0; - CurrentAlarm->status = AL_UNSET; - } - if (Currentbuf->event) { - if (Currentbuf->event->status != AL_UNSET) - CurrentAlarm = Currentbuf->event; - else - Currentbuf->event = NULL; - } - if (!Currentbuf->event) - CurrentAlarm = &DefaultAlarm; - if (CurrentAlarm->sec > 0) { - mySignal(SIGALRM, SigAlarm); - alarm(CurrentAlarm->sec); - } - } - SIGNAL_RETURN; -} - - -DEFUN(setAlarm, ALARM, "Set alarm") -{ - char *data; - int sec = 0, cmd = -1; - - CurrentKeyData = NULL; /* not allowed in w3m-control: */ - data = searchKeyData(); - if (data == NULL || *data == '\0') { - data = inputStrHist("(Alarm)sec command: ", "", TextHist); - if (data == NULL) { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - } - if (*data != '\0') { - sec = atoi(getWord(&data)); - if (sec > 0) - cmd = getFuncList(getWord(&data)); - } - if (cmd >= 0) { - data = getQWord(&data); - setAlarmEvent(&DefaultAlarm, sec, AL_EXPLICIT, cmd, data); - disp_message_nsec(Sprintf("%dsec %s %s", sec, w3mFuncList[cmd].id, - data)->ptr, FALSE, 1, FALSE, TRUE); - } - else { - setAlarmEvent(&DefaultAlarm, 0, AL_UNSET, FUNCNAME_nulcmd, NULL); - } - displayBuffer(Currentbuf, B_NORMAL); -} - -AlarmEvent * -setAlarmEvent(AlarmEvent * event, int sec, short status, int cmd, void *data) -{ - if (event == NULL) - event = New(AlarmEvent); - event->sec = sec; - event->status = status; - event->cmd = cmd; - event->data = data; - return event; -} -#endif - -DEFUN(reinit, REINIT, "Reload configuration files") -{ - char *resource = searchKeyData(); - - if (resource == NULL) { - init_rc(); - sync_with_option(); -#ifdef USE_COOKIE - initCookie(); -#endif - displayBuffer(Currentbuf, B_REDRAW_IMAGE); - return; - } - - if (!strcasecmp(resource, "CONFIG") || !strcasecmp(resource, "RC")) { - init_rc(); - sync_with_option(); - displayBuffer(Currentbuf, B_REDRAW_IMAGE); - return; - } - -#ifdef USE_COOKIE - if (!strcasecmp(resource, "COOKIE")) { - initCookie(); - return; - } -#endif - - if (!strcasecmp(resource, "KEYMAP")) { - initKeymap(TRUE); - return; - } - - if (!strcasecmp(resource, "MAILCAP")) { - initMailcap(); - return; - } - -#ifdef USE_MOUSE - if (!strcasecmp(resource, "MOUSE")) { - initMouseAction(); - displayBuffer(Currentbuf, B_REDRAW_IMAGE); - return; - } -#endif - -#ifdef USE_MENU - if (!strcasecmp(resource, "MENU")) { - initMenu(); - return; - } -#endif - - if (!strcasecmp(resource, "MIMETYPES")) { - initMimeTypes(); - return; - } - -#ifdef USE_EXTERNAL_URI_LOADER - if (!strcasecmp(resource, "URIMETHODS")) { - initURIMethods(); - return; - } -#endif - - disp_err_message(Sprintf("Don't know how to reinitialize '%s'", resource)-> - ptr, FALSE); -} - -DEFUN(defKey, DEFINE_KEY, - "Define a binding between a key stroke and a user command") -{ - char *data; - - CurrentKeyData = NULL; /* not allowed in w3m-control: */ - data = searchKeyData(); - if (data == NULL || *data == '\0') { - data = inputStrHist("Key definition: ", "", TextHist); - if (data == NULL || *data == '\0') { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - } - setKeymap(allocStr(data, -1), -1, TRUE); - displayBuffer(Currentbuf, B_NORMAL); -} - -TabBuffer * -newTab(void) -{ - TabBuffer *n; - - n = New(TabBuffer); - if (n == NULL) - return NULL; - n->nextTab = NULL; - n->currentBuffer = NULL; - n->firstBuffer = NULL; - return n; -} - -static void -_newT(void) -{ - TabBuffer *tag; - Buffer *buf; - int i; - - tag = newTab(); - if (!tag) - return; - - buf = newBuffer(Currentbuf->width); - copyBuffer(buf, Currentbuf); - buf->nextBuffer = NULL; - for (i = 0; i < MAX_LB; i++) - buf->linkBuffer[i] = NULL; - (*buf->clone)++; - tag->firstBuffer = tag->currentBuffer = buf; - - tag->nextTab = CurrentTab->nextTab; - tag->prevTab = CurrentTab; - if (CurrentTab->nextTab) - CurrentTab->nextTab->prevTab = tag; - else - LastTab = tag; - CurrentTab->nextTab = tag; - CurrentTab = tag; - nTab++; -} - -DEFUN(newT, NEW_TAB, "Open new tab") -{ - _newT(); - displayBuffer(Currentbuf, B_REDRAW_IMAGE); -} - -static TabBuffer * -numTab(int n) -{ - TabBuffer *tab; - int i; - - if (n == 0) - return CurrentTab; - if (n == 1) - return FirstTab; - if (nTab <= 1) - return NULL; - for (tab = FirstTab, i = 1; tab && i < n; tab = tab->nextTab, i++) ; - return tab; -} - -void -calcTabPos(void) -{ - TabBuffer *tab; -#if 0 - int lcol = 0, rcol = 2, col; -#else - int lcol = 0, rcol = 0, col; -#endif - int n1, n2, na, nx, ny, ix, iy; - -#ifdef USE_MOUSE - lcol = mouse_action.menu_str ? mouse_action.menu_width : 0; -#endif - - if (nTab <= 0) - return; - n1 = (COLS - rcol - lcol) / TabCols; - if (n1 >= nTab) { - n2 = 1; - ny = 1; - } - else { - if (n1 < 0) - n1 = 0; - n2 = COLS / TabCols; - if (n2 == 0) - n2 = 1; - ny = (nTab - n1 - 1) / n2 + 2; - } - na = n1 + n2 * (ny - 1); - n1 -= (na - nTab) / ny; - if (n1 < 0) - n1 = 0; - na = n1 + n2 * (ny - 1); - tab = FirstTab; - for (iy = 0; iy < ny && tab; iy++) { - if (iy == 0) { - nx = n1; - col = COLS - rcol - lcol; - } - else { - nx = n2 - (na - nTab + (iy - 1)) / (ny - 1); - col = COLS; - } - for (ix = 0; ix < nx && tab; ix++, tab = tab->nextTab) { - tab->x1 = col * ix / nx; - tab->x2 = col * (ix + 1) / nx - 1; - tab->y = iy; - if (iy == 0) { - tab->x1 += lcol; - tab->x2 += lcol; - } - } - } -} - -TabBuffer * -deleteTab(TabBuffer * tab) -{ - Buffer *buf, *next; - - if (nTab <= 1) - return FirstTab; - if (tab->prevTab) { - if (tab->nextTab) - tab->nextTab->prevTab = tab->prevTab; - else - LastTab = tab->prevTab; - tab->prevTab->nextTab = tab->nextTab; - if (tab == CurrentTab) - CurrentTab = tab->prevTab; - } - else { /* tab == FirstTab */ - tab->nextTab->prevTab = NULL; - FirstTab = tab->nextTab; - if (tab == CurrentTab) - CurrentTab = tab->nextTab; - } - nTab--; - buf = tab->firstBuffer; - while (buf && buf != NO_BUFFER) { - next = buf->nextBuffer; - discardBuffer(buf); - buf = next; - } - return FirstTab; -} - -DEFUN(closeT, CLOSE_TAB, "Close current tab") -{ - TabBuffer *tab; - - if (nTab <= 1) - return; - if (prec_num) - tab = numTab(PREC_NUM); - else - tab = CurrentTab; - if (tab) - deleteTab(tab); - displayBuffer(Currentbuf, B_REDRAW_IMAGE); -} - -DEFUN(nextT, NEXT_TAB, "Move to next tab") -{ - int i; - - if (nTab <= 1) - return; - for (i = 0; i < PREC_NUM; i++) { - if (CurrentTab->nextTab) - CurrentTab = CurrentTab->nextTab; - else - CurrentTab = FirstTab; - } - displayBuffer(Currentbuf, B_REDRAW_IMAGE); -} - -DEFUN(prevT, PREV_TAB, "Move to previous tab") -{ - int i; - - if (nTab <= 1) - return; - for (i = 0; i < PREC_NUM; i++) { - if (CurrentTab->prevTab) - CurrentTab = CurrentTab->prevTab; - else - CurrentTab = LastTab; - } - displayBuffer(Currentbuf, B_REDRAW_IMAGE); -} - -void -followTab(TabBuffer * tab) -{ - Buffer *buf; - Anchor *a; - -#ifdef USE_IMAGE - a = retrieveCurrentImg(Currentbuf); - if (!(a && a->image && a->image->map)) -#endif - a = retrieveCurrentAnchor(Currentbuf); - if (a == NULL) - return; - - if (tab == CurrentTab) { - check_target = FALSE; - followA(); - check_target = TRUE; - return; - } - _newT(); - buf = Currentbuf; - check_target = FALSE; - followA(); - check_target = TRUE; - if (tab == NULL) { - if (buf != Currentbuf) - delBuffer(buf); - else - deleteTab(CurrentTab); - } - else if (buf != Currentbuf) { - /* buf <- p <- ... <- Currentbuf = c */ - Buffer *c, *p; - - c = Currentbuf; - p = prevBuffer(c, buf); - p->nextBuffer = NULL; - Firstbuf = buf; - deleteTab(CurrentTab); - CurrentTab = tab; - for (buf = p; buf; buf = p) { - p = prevBuffer(c, buf); - pushBuffer(buf); - } - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -DEFUN(tabA, TAB_LINK, "Open current link on new tab") -{ - followTab(prec_num ? numTab(PREC_NUM) : NULL); -} - -static void -tabURL0(TabBuffer * tab, char *prompt, int relative) -{ - Buffer *buf; - - if (tab == CurrentTab) { - goURL0(prompt, relative); - return; - } - _newT(); - buf = Currentbuf; - goURL0(prompt, relative); - if (tab == NULL) { - if (buf != Currentbuf) - delBuffer(buf); - else - deleteTab(CurrentTab); - } - else if (buf != Currentbuf) { - /* buf <- p <- ... <- Currentbuf = c */ - Buffer *c, *p; - - c = Currentbuf; - p = prevBuffer(c, buf); - p->nextBuffer = NULL; - Firstbuf = buf; - deleteTab(CurrentTab); - CurrentTab = tab; - for (buf = p; buf; buf = p) { - p = prevBuffer(c, buf); - pushBuffer(buf); - } - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -DEFUN(tabURL, TAB_GOTO, "Open URL on new tab") -{ - tabURL0(prec_num ? numTab(PREC_NUM) : NULL, - "Goto URL on new tab: ", FALSE); -} - -DEFUN(tabrURL, TAB_GOTO_RELATIVE, "Open relative URL on new tab") -{ - tabURL0(prec_num ? numTab(PREC_NUM) : NULL, - "Goto relative URL on new tab: ", TRUE); -} - -void -moveTab(TabBuffer * t, TabBuffer * t2, int right) -{ - if (t2 == NO_TABBUFFER) - t2 = FirstTab; - if (!t || !t2 || t == t2 || t == NO_TABBUFFER) - return; - if (t->prevTab) { - if (t->nextTab) - t->nextTab->prevTab = t->prevTab; - else - LastTab = t->prevTab; - t->prevTab->nextTab = t->nextTab; - } - else { - t->nextTab->prevTab = NULL; - FirstTab = t->nextTab; - } - if (right) { - t->nextTab = t2->nextTab; - t->prevTab = t2; - if (t2->nextTab) - t2->nextTab->prevTab = t; - else - LastTab = t; - t2->nextTab = t; - } - else { - t->prevTab = t2->prevTab; - t->nextTab = t2; - if (t2->prevTab) - t2->prevTab->nextTab = t; - else - FirstTab = t; - t2->prevTab = t; - } - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -DEFUN(tabR, TAB_RIGHT, "Move current tab right") -{ - TabBuffer *tab; - int i; - - for (tab = CurrentTab, i = 0; tab && i < PREC_NUM; - tab = tab->nextTab, i++) ; - moveTab(CurrentTab, tab ? tab : LastTab, TRUE); -} - -DEFUN(tabL, TAB_LEFT, "Move current tab left") -{ - TabBuffer *tab; - int i; - - for (tab = CurrentTab, i = 0; tab && i < PREC_NUM; - tab = tab->prevTab, i++) ; - moveTab(CurrentTab, tab ? tab : FirstTab, FALSE); -} - -void -addDownloadList(pid_t pid, char *url, char *save, char *lock, clen_t size) -{ - DownloadList *d; - - d = New(DownloadList); - d->pid = pid; - d->url = url; - if (save[0] != '/' && save[0] != '~') - save = Strnew_m_charp(CurrentDir, "/", save, NULL)->ptr; - d->save = expandPath(save); - d->lock = lock; - d->size = size; - d->time = time(0); - d->ok = FALSE; - d->next = NULL; - d->prev = LastDL; - if (LastDL) - LastDL->next = d; - else - FirstDL = d; - LastDL = d; - add_download_list = TRUE; -} - -int -checkDownloadList(void) -{ - DownloadList *d; - struct stat st; - - if (!FirstDL) - return FALSE; - for (d = FirstDL; d != NULL; d = d->next) { - if (!d->ok && !lstat(d->lock, &st)) - return TRUE; - } - return FALSE; -} - -static char * -convert_size3(clen_t size) -{ - Str tmp = Strnew(); - int n; - - do { - n = size % 1000; - size /= 1000; - tmp = Sprintf(size ? ",%.3d%s" : "%d%s", n, tmp->ptr); - } while (size); - return tmp->ptr; -} - -static Buffer * -DownloadListBuffer(void) -{ - DownloadList *d; - Str src = NULL; - struct stat st; - time_t cur_time; - int duration, rate, eta; - size_t size; - - if (!FirstDL) - return NULL; - cur_time = time(0); - /* FIXME: gettextize? */ - src = Strnew_charp("<html><head><title>" DOWNLOAD_LIST_TITLE - "</title></head>\n<body><h1 align=center>" - DOWNLOAD_LIST_TITLE "</h1>\n" - "<form method=internal action=download><hr>\n"); - for (d = LastDL; d != NULL; d = d->prev) { - if (lstat(d->lock, &st)) - d->ok = TRUE; - Strcat_charp(src, "<pre>\n"); - Strcat(src, Sprintf("%s\n --> %s\n ", html_quote(d->url), - html_quote(conv_from_system(d->save)))); - duration = cur_time - d->time; - if (!stat(d->save, &st)) { - size = st.st_size; - if (d->ok) { - d->size = size; - duration = st.st_mtime - d->time; - } - } - else - size = 0; - if (d->size) { - int i, l = COLS - 6; - if (size < d->size) - i = 1.0 * l * size / d->size; - else - i = l; - l -= i; - while (i-- > 0) - Strcat_char(src, '#'); - while (l-- > 0) - Strcat_char(src, '_'); - Strcat_char(src, '\n'); - } - if (!d->ok && size < d->size) - Strcat(src, Sprintf(" %s / %s bytes (%d%%)", - convert_size3(size), convert_size3(d->size), - (int)(100.0 * size / d->size))); - else - Strcat(src, Sprintf(" %s bytes loaded", convert_size3(size))); - if (duration > 0) { - rate = size / duration; - Strcat(src, Sprintf(" %02d:%02d:%02d rate %s/sec", - duration / (60 * 60), (duration / 60) % 60, - duration % 60, convert_size(rate, 1))); - if (!d->ok && size < d->size && rate) { - eta = (d->size - size) / rate; - Strcat(src, Sprintf(" eta %02d:%02d:%02d", eta / (60 * 60), - (eta / 60) % 60, eta % 60)); - } - } - Strcat_char(src, '\n'); - if (d->ok) { - Strcat(src, Sprintf("<input type=submit name=ok%d value=OK>", - d->pid)); - if (size < d->size) - Strcat_charp(src, " Download incompleted"); - else - Strcat_charp(src, " Download completed"); - } - else - Strcat(src, Sprintf("<input type=submit name=stop%d value=STOP>", - d->pid)); - Strcat_charp(src, "\n</pre><hr>\n"); - } - Strcat_charp(src, "</form></body></html>"); - return loadHTMLString(src); -} - -void -download_action(struct parsed_tagarg *arg) -{ - DownloadList *d; - pid_t pid; - - for (; arg; arg = arg->next) { - if (!strncmp(arg->arg, "stop", 4)) { - pid = (pid_t) atoi(&arg->arg[4]); - kill(pid, SIGKILL); - } - else if (!strncmp(arg->arg, "ok", 2)) - pid = (pid_t) atoi(&arg->arg[2]); - else - continue; - for (d = FirstDL; d; d = d->next) { - if (d->pid == pid) { - unlink(d->lock); - if (d->prev) - d->prev->next = d->next; - else - FirstDL = d->next; - if (d->next) - d->next->prev = d->prev; - else - LastDL = d->prev; - break; - } - } - } - ldDL(); -} - -void -stopDownload(void) -{ - DownloadList *d; - - if (!FirstDL) - return; - for (d = FirstDL; d != NULL; d = d->next) { - if (d->ok) - continue; - kill(d->pid, SIGKILL); - unlink(d->lock); - } -} - -/* download panel */ -DEFUN(ldDL, DOWNLOAD_LIST, "Display download list panel") -{ - Buffer *buf; - int replace = FALSE, new_tab = FALSE; -#ifdef USE_ALARM - int reload; -#endif - - if (Currentbuf->bufferprop & BP_INTERNAL && - !strcmp(Currentbuf->buffername, DOWNLOAD_LIST_TITLE)) - replace = TRUE; - if (!FirstDL) { - if (replace) { - if (Currentbuf == Firstbuf && Currentbuf->nextBuffer == NULL) { - if (nTab > 1) - deleteTab(CurrentTab); - } - else - delBuffer(Currentbuf); - displayBuffer(Currentbuf, B_FORCE_REDRAW); - } - return; - } -#ifdef USE_ALARM - reload = checkDownloadList(); -#endif - buf = DownloadListBuffer(); - if (!buf) { - displayBuffer(Currentbuf, B_NORMAL); - return; - } - buf->bufferprop |= (BP_INTERNAL | BP_NO_URL); - if (replace) - restorePosition(buf, Currentbuf); - if (!replace && open_tab_dl_list) { - _newT(); - new_tab = TRUE; - } - pushBuffer(buf); - if (replace || new_tab) - deletePrevBuf(); -#ifdef USE_ALARM - if (reload) - Currentbuf->event = setAlarmEvent(Currentbuf->event, 1, AL_IMPLICIT, - FUNCNAME_reload, NULL); -#endif - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -static void -save_buffer_position(Buffer *buf) -{ - BufferPos *b = buf->undo; - - if (!buf->firstLine) - return; - if (b && b->top_linenumber == TOP_LINENUMBER(buf) && - b->cur_linenumber == CUR_LINENUMBER(buf) && - b->currentColumn == buf->currentColumn && b->pos == buf->pos) - return; - b = New(BufferPos); - b->top_linenumber = TOP_LINENUMBER(buf); - b->cur_linenumber = CUR_LINENUMBER(buf); - b->currentColumn = buf->currentColumn; - b->pos = buf->pos; - b->bpos = buf->currentLine ? buf->currentLine->bpos : 0; - b->next = NULL; - b->prev = buf->undo; - if (buf->undo) - buf->undo->next = b; - buf->undo = b; -} - -static void -resetPos(BufferPos * b) -{ - Buffer buf; - Line top, cur; - - top.linenumber = b->top_linenumber; - cur.linenumber = b->cur_linenumber; - cur.bpos = b->bpos; - buf.topLine = ⊤ - buf.currentLine = &cur; - buf.pos = b->pos; - buf.currentColumn = b->currentColumn; - restorePosition(Currentbuf, &buf); - Currentbuf->undo = b; - displayBuffer(Currentbuf, B_FORCE_REDRAW); -} - -DEFUN(undoPos, UNDO, "Cancel the last cursor movement") -{ - BufferPos *b = Currentbuf->undo; - int i; - - if (!Currentbuf->firstLine) - return; - if (!b || !b->prev) - return; - for (i = 0; i < PREC_NUM && b->prev; i++, b = b->prev) ; - resetPos(b); -} - -DEFUN(redoPos, REDO, "Cancel the last undo") -{ - BufferPos *b = Currentbuf->undo; - int i; - - if (!Currentbuf->firstLine) - return; - if (!b || !b->next) - return; - for (i = 0; i < PREC_NUM && b->next; i++, b = b->next) ; - resetPos(b); -} diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index 8f22a68..0000000 --- a/.cvsignore +++ /dev/null @@ -1,25 +0,0 @@ -XXMakefile -Makefile -config.cache -config.log -config.status -config.h -config.param -funcname.tab -funcname.c -funcname1.h -funcname2.h -functable.c -tagtable.c -inflate -mktable -w3m -w3mbookmark -w3mhelperpanel -w3mimgdisplay -version.c -w3mhelp-lynx_en.html -w3mhelp-lynx_ja.html -w3mhelp-w3m_en.html -w3mhelp-w3m_ja.html -posubst diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9bf7ac3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,41 @@ +*.a +*.o +Makefile +/config.cache +/config.log +/config.status +/config.h +/config.param +/entity.h +/funcname.tab +/funcname.c +/funcname1.h +/funcname2.h +/functable.c +/tagtable.c +/inflate +/mktable +/w3m +/w3mbookmark +/w3mhelperpanel +/w3mimgdisplay +/version.c +/w3mhelp-lynx_*.html +/w3mhelp-w3m_*.html +/posubst +/po/stamp-po +/po/POTFILES +/po/*.gmo +/po/Makefile.in +/po/remove-potcdate.sed +/scripts/dirlist.cgi +/scripts/w3mhelp.cgi +/scripts/w3mmail.cgi +/scripts/w3mhelp-funcdesc.*.pl +/scripts/w3mhelp-funcname.pl +/scripts/w3mhelp-funcdesc-stamp +/scripts/xface2xpm +/scripts/multipart/multipart.cgi +/scripts/w3mman/w3mman +/scripts/w3mman/w3mman2html.cgi +/scripts/w3mman/w3mman*.1 diff --git a/Bonus/2ch.cgi b/Bonus/2ch.cgi index 998c202..c52ad8d 100755 --- a/Bonus/2ch.cgi +++ b/Bonus/2ch.cgi @@ -63,7 +63,7 @@ for (0 .. ($lines - 1) / 100) { } $head .= "<a href=\"$cgi/l50\">V50</a>\n"; print <<EOF; -Content-Type: text/html +Content-Type: text/html; charset=Shift_JIS EOF $i = 1; @@ -128,7 +128,7 @@ sub subback { $cmd = "mkdir -p $dir; $WGET -O $tmp $dat >/dev/null 2>&1"; system $cmd; print <<EOF; -Content-Type: text/html +Content-Type: text/html; charset=Shift_JIS EOF @ARGV = ($tmp); @@ -153,7 +153,7 @@ sub post { my $host = $1; my $sock = IO::Socket::INET->new("$host:80") or die; # retrieve posting cookie; this may not work - print "Content-Type: text/html\n\n"; + print "Content-Type: text/html; charset=Shift_JIS\n\n"; print $sock "HEAD /test/bbs.cgi HTTP/1.1\n", "Host: $host\n", diff --git a/Bonus/CVS/Entries b/Bonus/CVS/Entries deleted file mode 100644 index b22f196..0000000 --- a/Bonus/CVS/Entries +++ /dev/null @@ -1,15 +0,0 @@ -/2ch.cgi/1.3/Sat Apr 26 17:01:02 2003// -/README/1.4/Wed Jan 15 15:51:29 2003// -/README.eng/1.4/Wed Jan 15 15:51:30 2003// -/backslash_to_slash.cgi/1.1/Tue Apr 15 14:46:23 2003// -/goodict.cgi/1.2/Sat Apr 12 14:28:56 2003// -/google.cgi/1.1/Fri Jan 10 16:24:01 2003// -/html2latex/1.2/Fri Nov 9 04:59:18 2001// -/htmldump/1.1.1.1/Thu Nov 8 05:16:01 2001// -/makeref/1.1.1.1/Thu Nov 8 05:16:01 2001// -/oldconfigure.sh/1.3/Wed Mar 12 17:20:47 2003// -/scanhist.rb/1.1.1.1/Thu Nov 8 05:16:01 2001// -/smb.cgi/1.3/Fri Jan 31 16:25:12 2003// -/utf8.cgi/1.1/Thu Feb 27 15:14:42 2003// -/wrap3m/1.1.1.1/Thu Nov 8 05:16:01 2001// -D diff --git a/Bonus/CVS/Repository b/Bonus/CVS/Repository deleted file mode 100644 index a8a0516..0000000 --- a/Bonus/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/Bonus diff --git a/Bonus/CVS/Root b/Bonus/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/Bonus/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/Bonus/README b/Bonus/README index af019ce..7e7452c 100644 --- a/Bonus/README +++ b/Bonus/README @@ -1,30 +1,30 @@ 2ch.cgi [w3m-dev 03635] 2ch.cgi - 2ch の dat を直読みする local CGI です。 + 2ch dat 頑帥 local CGI с - w3m file:/cgi-bin/2ch.cgi?http://pc.2ch.net/test/read.cgi/unix/1035755937/ + w3m file:/cgi-bin/2ch.cgi?http://toro.2ch.sc/test/read.cgi/unix/1185784998/ - wget の差分転送(-c)を使います。 - 読んだ dat は ~/.w3m2ch/ 以下に保存します。 - 書き込みはできません。 + wget 綏荵∫(-c)篏帥障 + 茯 dat ~/.w3m2ch/ 篁ヤ篆絖障 + 吾莨若帥с障 smb.cgi [w3m-dev 03634] smb.cgi - SMB にアクセスする local CGI です。 - nmblookup,smbclient を使うので sabma がインストールされている - 必要があります。 - パスワードは、 - 1) ~/.w3m/smb にパスワードが設定されており、 - smbclient の -A オプションを使えるなら - smbclient -A ~/.w3m/smb として渡します。 - 2) 環境変数 PASSWD_FILE (パスワードのみのファイル)が設定 - されている場合は、環境変数 PASSWD_FILE を使います。 - 3) ~/.w3m/smb にパスワードが設定されていれば、 - 環境変数 PASSWD_FD を使って標準入力経由で渡します。 - どちらにせよ、あまり良い事ではないので SMB(CIFS)プロトコルを - 喋る版を希望。 + SMB ≪祉鴻 local CGI с + nmblookup,smbclient 篏帥 sabma ゃ潟鴻若 + 綽荀障 + 鴻若 + 1) ~/.w3m/smb 鴻若荐絎 + smbclient -A 激с潟篏帥 + smbclient -A ~/.w3m/smb 羝<障 + 2) 医紊 PASSWD_FILE (鴻若帥<ゃ)荐絎 + 翫医紊 PASSWD_FILE 篏帥障 + 3) ~/.w3m/smb 鴻若荐絎違 + 医紊 PASSWD_FD 篏帥c罔羣ュ腟宴ф検障 + <障篋с SMB(CIFS)潟 + 絽 google.cgi @@ -32,49 +32,49 @@ google.cgi html2latex - HTMLの文書をLaTeX に変換します.Rubyスクリプトです.不完全です. - ある程度の役には立つかもしれません. + HTML吾LaTeX 紊障鐚Ruby鴻с鐚筝絎с鐚 + 腮綺綵鴻腴ゃ障鐚 - 使用法 + 篏睡羈 html2latex file.html > file.tex - ここに置いてある理由 + 臀 - makeref のための部品取りです :-) + makeref с :-) makeref - HTMLの文書を読み,アンカーに番号を振ります.番号を振った文書を - 標準出力に書き出し,最後にその一覧を出力します.Ruby スクリプトです. + HTML吾茯随≪潟若垩障鐚垩c吾 + 罔羣阪吾冴鐚緇筝荀с阪障鐚Ruby 鴻с鐚 - 使用法 + 篏睡羈 makeref [-url base_url] [file] - -url: 文書のURLを指定します.リンクの一覧を出すときに,そのURLを - 補完するために使います. + -url: 吾URL絎障鐚潟筝荀с冴鐚URL + 茖絎篏帥障鐚 - バグ + - HTMLの記述ミス( < ではなく < を使う,&... の最後に ; を付けない - 等)があると,悲惨な結果になることがあります. + HTML荐菴違( < с < 篏帥鐚&... 緇 ; 篁 + 膈)鐚我腟障鐚 - 半角カナ(JIS X-0201カナ)に対応していません. + 茹(JIS X-0201)絲上障鐚 htmldump - URL からHTML文書を読み,アンカーに番号を振って整形し,標準出力に - 書き出します. + URL HTML吾茯随≪潟若垩c翫就鐚罔羣阪 + 吾冴障鐚 - 使用法 + 篏睡羈 dumphtml [URL] - URL を省略すると,$WWW_HOME の内容を読みます. + URL ャ鐚$WWW_HOME 絎鴻茯帥障鐚 - バグ + - URL の指す文書がHTMLでなかった場合,かわいそうなことになります. - makeref を使っているので,makeref がうまく処理できない文書の表示 - は変になります. + URL 吾HTMLсc翫鐚障鐚 + makeref 篏帥cэmakeref 障с吾茵腓 + 紊障鐚 diff --git a/Bonus/README.eng b/Bonus/README.eng index 2f7507d..f7b1b1c 100644 --- a/Bonus/README.eng +++ b/Bonus/README.eng @@ -3,7 +3,7 @@ [w3m-dev 03635] 2ch.cgi localcgi to read 2ch dat directly - w3m file:/cgi-bin/2ch.cgi?http://pc.2ch.net/test/read.cgi/unix/1035755937/ + w3m file:/cgi-bin/2ch.cgi?http://toro.2ch.sc/test/read.cgi/unix/1185784998/ It uses wget -c. `dat' files are recorded under ~/w3m2ch/. diff --git a/Bonus/goodict.cgi b/Bonus/goodict.cgi index 8f443c1..5fb6581 100755 --- a/Bonus/goodict.cgi +++ b/Bonus/goodict.cgi @@ -1,14 +1,20 @@ #!/usr/bin/perl # ~/.w3m/urimethodmap -# e: file:/cgi-bin/goodict.cgi?%s -# w: file:/cgi-bin/goodict.cgi?%s -# j: file:/cgi-bin/goodict.cgi?%s +# e: file:/cgi-bin/goodict.cgi?%s Englich-Japanese +# w: file:/cgi-bin/goodict.cgi?%s Japanese-English +# j: file:/cgi-bin/goodict.cgi?%s Japanese +# a: file:/cgi-bin/goodict.cgi?%s All +# +# e:0:word start with word +# e:1:word perfect match +# e:2:word end with word +# e:3:word search body text +# e:6:word search title +# e:word perfect match -use NKF; -#$mode = 0; # substring -$mode = 1; # perfect match -#$mode = 3; # search body text +use Encode; +use Encode::Guess qw/euc-jp utf8/; $url = "http://dictionary.goo.ne.jp"; $_ = $ENV{"QUERY_STRING"}; if (/^e:/) { @@ -17,14 +23,22 @@ if (/^e:/) { $kind = 'je'; } elsif (/^j:/) { $kind = 'jn'; +} elsif (/^a:/) { + $kind = 'all' +} +s@^[ewja]:@@ && s@^//@@ && s@/$@@; +if (/^([01236]):/) { + $mode=$1; + s/^[01236]://; +}else{ + $mode="1"; } -s@^[ewjs]:@@ && s@^//@@ && s@/$@@; if ($_) { s/\+/ /g; s/%([\da-f][\da-f])/pack('C', hex($1))/egi; - $_ = nkf("-e", $_); + $_ = encode("utf8", decode("Guess", $_)); s/[\000-\040\+:#?&%<>"\177-\377]/sprintf('%%%02X', unpack('C', $&))/eg; - $url .= "/search.php?MT=$_&kind=$kind&mode=$mode"; + $url .= "/srch/$kind/$_/m$mode"."u/"; } else { $input = "w3m-control: GOTO_LINK"; } @@ -0,0 +1,11 @@ +(C) Copyright 1994-2002 by Akinori Ito +(C) Copyright 2002-2011 by Akinori Ito, Hironori Sakamoto, Fumitoshi Ukai + +Use, modification and redistribution of this software is hereby granted, +provided that this entire copyright notice is included on any copies of +this software and applications and derivations thereof. + +This software is provided on an "as is" basis, without warranty of any +kind, either expressed or implied, as to any matter including, but not +limited to warranty of fitness of purpose, or merchantability, or +results obtained from use of this software. diff --git a/CVS/Entries b/CVS/Entries deleted file mode 100644 index 55c22e0..0000000 --- a/CVS/Entries +++ /dev/null @@ -1,114 +0,0 @@ -/.cvsignore/1.12/Fri Sep 26 20:45:53 2003// -/README/1.1.1.1/Thu Nov 8 05:14:08 2001// -/Str.c/1.8/Tue Dec 24 17:20:46 2002// -/Str.h/1.6/Fri Apr 7 13:35:35 2006// -/TODO/1.21/Sun Apr 4 16:47:20 2004// -/anchor.c/1.33/Sat Apr 8 11:33:16 2006// -/charset-list/1.1/Mon Sep 22 21:02:16 2003// -/config.guess/1.2/Wed Aug 4 17:32:27 2004// -/config.h.dist/1.36/Fri Apr 9 17:18:49 2004// -/config.sub/1.2/Wed Aug 4 17:32:27 2004// -/ctrlcode.h/1.3/Mon Sep 22 21:02:17 2003// -/entity.c/1.7/Wed Sep 24 18:48:59 2003// -/entity.tab/1.1/Fri Nov 9 04:59:17 2001// -/form.h/1.6/Mon Sep 22 21:02:18 2003// -/frame.c/1.34/Fri Sep 26 17:59:51 2003// -/frame.h/1.6/Sat Jan 25 17:42:17 2003// -/func.c/1.27/Fri Sep 26 17:59:51 2003// -/func.h/1.4/Tue Dec 3 16:01:33 2002// -/funcname0.awk/1.1.1.1/Thu Nov 8 05:14:56 2001// -/funcname1.awk/1.1.1.1/Thu Nov 8 05:14:56 2001// -/funcname2.awk/1.1.1.1/Thu Nov 8 05:14:56 2001// -/functable.awk/1.1/Mon Dec 10 17:02:44 2001// -/hash.c/1.5/Mon Apr 7 16:27:10 2003// -/hash.h/1.6/Wed Sep 24 18:48:59 2003// -/history.c/1.11/Fri Sep 26 17:59:51 2003// -/history.h/1.5/Sat Jan 26 17:24:01 2002// -/indep.h/1.16/Mon Sep 22 21:02:19 2003// -/inflate.c/1.7/Thu Jan 31 18:28:24 2002// -/islang.c/1.3/Sat Feb 26 17:06:44 2005// -/istream.h/1.12/Mon Oct 20 16:41:56 2003// -/local.h/1.3/Tue Nov 20 17:49:23 2001// -/map.c/1.30/Wed Sep 24 18:49:00 2003// -/matrix.c/1.8/Mon Apr 7 16:27:10 2003// -/matrix.h/1.7/Thu Jul 18 14:59:02 2002// -/menu.h/1.2/Tue Nov 20 17:49:23 2001// -/mimehead.c/1.10/Sun Oct 5 18:52:51 2003// -/mkinstalldirs/1.1/Tue Sep 23 18:42:25 2003// -/myctype.c/1.7/Mon Sep 22 21:02:20 2003// -/myctype.h/1.6/Mon Sep 22 21:02:20 2003// -/news.c/1.17/Sun Oct 5 18:52:51 2003// -/parsetag.c/1.4/Tue Nov 20 17:49:23 2001// -/parsetag.h/1.2/Tue Nov 20 17:49:23 2001// -/parsetagx.h/1.4/Sat Nov 24 02:01:26 2001// -/posubst.in/1.1/Thu Sep 25 18:15:47 2003// -/regex.h/1.6/Mon Sep 22 21:02:21 2003// -/scrsize.c/1.2/Sat Nov 24 02:01:26 2001// -/search.c/1.31/Tue Mar 23 16:44:02 2004// -/table.h/1.12/Mon Sep 22 21:02:21 2003// -/terms.h/1.10/Thu Jul 15 16:32:39 2004// -/textlist.c/1.6/Mon Apr 7 16:27:11 2003// -/textlist.h/1.6/Mon Jan 20 15:30:22 2003// -/w3mhelp-lynx_en.html.in/1.1/Fri Dec 21 22:02:39 2001// -/w3mhelp-lynx_ja.html.in/1.1/Fri Dec 21 22:02:39 2001// -/w3mhelp-w3m_en.html.in/1.1/Fri Dec 21 22:02:39 2001// -/w3mhelp-w3m_ja.html.in/1.1/Fri Dec 21 22:02:39 2001// -D/Bonus//// -D/Patches//// -D/Symbols//// -D/doc//// -D/doc-jp//// -D/gc//// -D/intl//// -D/libwc//// -D/po//// -D/scripts//// -D/w3m-doc//// -D/w3mimg//// -/keybind.c/1.10/Sat Jun 10 09:52:18 2006// -/keybind_lynx.c/1.8/Sat Jun 10 09:52:18 2006// -/parsetagx.c/1.18/Sat Jun 10 09:52:18 2006// -/mailcap.c/1.13/Tue Jan 23 12:24:11 2007// -/Makefile.in/1.44/Tue Jan 4 09:22:18 2011// -/acinclude.m4/1.45/Tue Jan 4 09:22:18 2011// -/aclocal.m4/1.46/Tue Jan 4 09:22:18 2011// -/backend.c/1.15/Tue Jan 4 09:22:19 2011// -/buffer.c/1.30/Tue Jan 4 09:22:19 2011// -/config.h.in/1.21/Tue Jan 4 09:22:19 2011// -/cookie.c/1.11/Tue Jan 4 09:22:20 2011// -/display.c/1.71/Tue Jan 4 09:22:20 2011// -/etc.c/1.81/Tue Jan 4 09:22:20 2011// -/file.c/1.265/Tue Jan 4 09:22:21 2011// -/fm.h/1.149/Tue Jan 4 09:22:21 2011// -/form.c/1.35/Tue Jan 4 09:22:21 2011// -/ftp.c/1.42/Tue Jan 4 09:22:21 2011// -/html.c/1.32/Tue Jan 4 09:22:21 2011// -/html.h/1.31/Tue Jan 4 09:22:21 2011// -/image.c/1.37/Tue Jan 4 09:22:22 2011// -/indep.c/1.38/Tue Jan 4 09:22:22 2011// -/istream.c/1.27/Tue Jan 4 09:22:22 2011// -/linein.c/1.35/Tue Jan 4 09:22:22 2011// -/local.c/1.35/Tue Jan 4 09:22:22 2011// -/menu.c/1.46/Tue Jan 4 09:22:23 2011// -/mktable.c/1.16/Tue Jan 4 09:22:23 2011// -/proto.h/1.104/Tue Jan 4 09:22:23 2011// -/rc.c/1.116/Tue Jan 4 09:22:23 2011// -/regex.c/1.23/Tue Jan 4 09:22:23 2011// -/symbol.c/1.4/Tue Jan 4 09:22:23 2011// -/table.c/1.58/Tue Jan 4 09:22:23 2011// -/tagtable.tab/1.14/Tue Jan 4 09:22:23 2011// -/terms.c/1.63/Tue Jan 4 09:22:23 2011// -/url.c/1.100/Tue Jan 4 09:22:24 2011// -/w3mbookmark.c/1.12/Tue Jan 4 09:22:24 2011// -/w3mhelperpanel.c/1.14/Tue Jan 4 09:22:24 2011// -/w3mimgdisplay.c/1.19/Tue Jan 4 09:22:24 2011// -/main.c/1.270/Tue Jan 4 09:42:19 2011// -/ABOUT-NLS/1.2/Tue Jan 4 12:39:27 2011// -/config.rpath/1.2/Tue Jan 4 12:39:29 2011// -/entity.h/1.6/Tue Jan 4 12:39:29 2011// -/install-sh/1.8/Tue Jan 4 12:39:29 2011// -/ChangeLog/1.1050/Sat Jan 15 07:52:48 2011// -/NEWS/1.80/Sat Jan 15 03:01:36 2011// -/configure/1.164/Sat Jan 15 03:04:22 2011// -/configure.ac/1.12/Sat Jan 15 03:01:55 2011// -/version.c.in/1.48/Sat Jan 15 07:52:48 2011// diff --git a/CVS/Repository b/CVS/Repository deleted file mode 100644 index 625add0..0000000 --- a/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m diff --git a/CVS/Root b/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m @@ -1,9303 +1,2068 @@ -2011-01-15 Dai Sato <satodai@w3m.jp> +2021-01-02 Tatsuya Kinoshita <tats@debian.org> - * w3m 0.5.2 - * version.c.in: update - * doc/README: version 0.5.2, release date, maintainer - * doc-jp/README: ditto - * po/w3m.pot, ja.po: ditto - * NEWS: update - * configure.ac: version 0.5.2 - * configure: regenerated + * NEWS: Update NEWS for 0.5.3+git20210102. -2011-01-05 SAKAI Kiyotaka <kiyotaka.sakai@ntt-at.co.jp> - - * [w3m-dev 04445] Re: Update documents (README.cookie) - * doc-jp/README.cookie: refer to RFC 2109. - * doc/README.cookie: diito. - -2011-01-05 SAKAI Kiyotaka <kiyotaka.sakai@ntt-at.co.jp> - - * [w3m-dev 04444] Re: error when 'make install' - * w3mimg/win/.cvsignore: added. - -2011-01-04 SAKAI Kiyotaka <kiyotaka.sakai@ntt-at.co.jp> - - * [w3m-dev 04441] error when 'make install' - * update followig files. ABOUT-NLS Makefile.in acinclude.m4 - aclocal.m4 config.rpath configure configure.ac entity.h install-sh - po/ChangeLog po/Makefile.in.in po/Rules-quot po/boldquot.sed - po/en@boldquot.header po/en@quot.header po/insert-header.sin - po/quot.sed po/remove-potcdate.sin - -2010-12-28 Ito Hiroyuki <ZXB01226@nifty.com> - - * [w3m-dev 04440] Update documents (README.cookie) - * doc/README.cookie: added. - * doc-jp/README.cookie: add document about cookie_avoid_wrong_number_of_dots. - -2010-12-24 Ito Hiroyuki <ZXB01226@nifty.com> - - * [w3m-dev 04439] Update documents (README.m17n) - * doc-jp/README.m17n: add documents for options "east_asian_width", "gb18030_as_ucs" and "simple_preserve_space". - * doc/README.m17n: ditto. - -2010-12-24 AIDA Shinra <shinra@j10n.org> - - * [w3m-dev 04437] Re: Windowsw3mimg篁 - * w3mimg/win/win_w3mimg.cpp: remove unused ifdefs. - (load, animate): support "-anim" option. - (show): support "image_scale". - -2010-12-20 AIDA Shinra <shinra@j10n.org> - - * [w3m-dev 04425] Re: Windowsw3mimg篁 - * w3mimgdisplay: supports Windows console (http://www.j10n.org/files/w3m-cvs-1.1040-misc.patch). - * image.c: ditto. - * configure.ac: ditto. - * config.h.in: ditto. - * acinclude.m4: ditto. - * Makefile.in: ditto. - * w3mimg/w3mimg.h: ditto. - * w3mimg/w3mimg.c: ditto. - * w3mimg/Makefile.in: ditto. - * doc/README.img: ditto. - * doc-jp/README.img: ditto. - * w3mimgdisplay.c (main): call "w_op->close(w_op)" before exit. - * w3mimg/win/win_w3mimg.cpp: added. - * w3mimg/win/Makefile.in: added. - -2010-12-20 Ito Hiroyuki <ZXB01226@nifty.com> - - * doc/README.img: add documents about some options. - * doc-jp/README.img: ditto. - -2010-12-15 AIDA Shinra <shinra@j10n.org> - - * [w3m-dev 04424] Windowsw3mimg篁 - * scripts/w3mman/Makefile.in (DESTDIR): removed. - * scripts/multipart/Makefile.in (DESTDIR): removed. - * scripts/Makefile.in (DESTDIR): removed. - * url.c (add_index_file): can specify multiple files as an index file for directories. - * mktable.c (defhashfunc): fi indent of output. - * ftp.c (ftp_login): support IPv6. - * file.c (is_text_type): check if the type is "application/xhtml". - * Makefile.in (DESTDIR): removed. - (GC_LIBS): added. - (EXT_LIBS): use "GC_LIBS". - (entity.h): depend on entity.tab and mktable$(EXT). - (indep.o): depend on entity.h - (mktable$(EXT)): depend on Str.o, hash.o and myctype.o instead of $(ALIB). - -2010-12-15 Kazuhiko <kazuhiko@fdiary.net> - - * [w3m-dev 04419] AC_W3M_EXTLIBS does not check /lib64 - * acinclude.m4 (AC_W3M_EXTLIBS): search /lib64 and /usr/lib64. - -2010-12-11 theme.of.n@gmail.com - - * [w3m-dev 04421] Patch to prevent sending `Referer: ' header from HTTPS to HTTP - * url.c (otherinfo): Don't send Referer: if https:// -> http:// - -2010-10-11 d+w3m@vdr.jp - - * [w3m-dev 04414] Re: "normal" bugs from bugs.debian.org - * doc/w3m.1: add documents about some options. - * doc/FAQ.html: fix typo. - -2010-08-24 Karsten Schoelzel <kuser@gmx.de> - - * [w3m-dev 04393] [patch] locale-related character management - * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=313365 - * libwc/map/ucs_isalpha.map: added - * libwc/map/ucs_islower.map: added - * libwc/map/ucs_isupper.map: added - * libwc/map/mk_ucs_case_map.pl: added - * libwc/map/ucs_case.map: added - * libwc/map/mk_ucs_isdigit_map.pl: added - * libwc/map/ucs_isdigit.map: added - * libwc/ucs.c (wc_any_to_ucs): ceck if cc.ccs == WC_CCS_US_ASCII - (wc_is_ucs_alpha, wc_is_ucs_digit, wc_is_ucs_alnum) - (wc_is_ucs_lower, wc_is_ucs_upper, wc_ucs_toupper) - (wc_ucs_tolower, wc_ucs_totitle): added - * regex.c (match_longchar, match_range_longchar): use wc_any_to_ucs(), wc_ucs_tolower(), wc_ucs_toupper() and wc_ucs_totitle() - * main.c (nextChar, prevChar, getChar, is_wordchar): added - (movLW): use prevChar() and is_wordchar() - (movRW): use nextChar() and is_wordchar() - (getCurWord): remove 4th parameter - (getCurWord): use prevChar(), nextChar() and is_wordchar() - -2010-08-20 Karsten Schoelzel <kuser@gmx.de> - - * [w3m-dev 04401] Re: mailto with options handling - * rc.c: Introduce option mailto_options - * main.c (handleMailto): added - (followA, cmd_loadURL): use handleMailto() - * fm.h (MAILTO_OPTIONS_USE_W3MMAILER, MAILTO_OPTIONS_IGNORE) - (MAILTO_OPTIONS_USE_MAILTO_URL): added - -2010-08-20 Ito Hiroyuki <ZXB01226@nifty.com> - - * [w3m-dev 04402] Re: "normal" bugs from bugs.debian.org - * terms.c (reset_exit_with_value, reset_error_exit): added - (reset_exit): use reset_exit_with_value() - (ttymode_set, ttymode_reset, set_cc, getTCstr) - (sleep_till_anykey): use reset_error_exit() instead of reset_exit() - -2010-08-14 "Adam C. Emerson" <azure@azureprime.com> - - * [w3m-dev 04390] - * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=573789 - * html.c: All elements have the id attribute. - -2010-08-12 Peter J. R. Moulder - - * [w3m-dev 04384] - * http://sourceforge.net/tracker/index.php?func=detail&aid=2987194&group_id=39518&atid=425441 - * html.c: some tags have ALST_NOP attribute - * tagtable.tab: add <span> and </span> - * html.h (HTML_SPAN, HTML_N_SPAN): added - -2010-08-11 SAKAI Kiyotaka <kiyotaka.sakai@ntt-at.co.jp> +2020-12-19 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 04381] Re: check socklen_t - * ftp.c: fix condition (#ifndef HAVE_SOCKLEN_T) + * doc-jp/README.siteconf, doc/README.siteconf: + Add examples of siteconf, set user_agent to Googlebot for Twitter. -2010-08-10 Ito Hiroyuki <ZXB01226@nifty.com> +2020-12-18 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 04379] check socklen_t - * configure.ac: check socklen_t - * ftp.c (ftp_login, ftp_pasv): use socklen_t instead of int + * po/zh_TW.po: Update PO-Revision-Date for zh_TW. -2010-08-09 Ito Hiroyuki <ZXB01226@nifty.com> +2020-12-18 Ambrose Li <ambrose.li@gmail.com> - * [w3m-dev 04374] Re: "important" bugs from bugs.debian.org - * table.c (feed_table_tag): don't show message when rowspan is greater than ATTR_ROWSPAN_MAX - * [w3m-dev 04376] Re: "important" bugs from bugs.debian.org - * table.c (feed_table_tag): fix indent + * file.c: q_level was never initialized, causing random test failures. + This should fix that. + Origin: https://github.com/tats/w3m/pull/159 -2010-08-08 Steven Harms <ZXB01226@nifty.com> + * po/zh_TW.po: Translate new string. + Origin: https://github.com/tats/w3m/pull/158 - * [w3m-dev 04371] Re: "important" bugs from bugs.debian.org - * https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/131993 - * table.c (ATTR_ROWSPAN_MAX): added - (feed_table_tag): maximum value of rowspan is ATTR_ROWSPAN_MAX +2020-12-17 Tatsuya Kinoshita <tats@debian.org> -2010-08-08 d+w3m@vdr.jp + * doc-jp/README.siteconf, doc/README.siteconf: + Update examples of siteconf, forward twitter.com to nitter.net. + Because mobile.twitter.com without JavaScript is unusable anymore. - * [w3m-dev 04360] Re: "important" bugs from bugs.debian.org - * main.c (main): use DEFAULT_COLS - (main): the maximum value of the -cols option is MAXIMUM_COLS - * backend.c (backend): use DEFAULT_COLS - * fm.h (MAXIMUM_COLS, DEFAULT_COLS): added +2020-12-16 Tatsuya Kinoshita <tats@debian.org> -2010-08-04 Ito Hiroyuki <ZXB01226@nifty.com> + * url.c: Use the default ciphers for OpenSSL 1.1 and later. + cf. https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/1325674 + https://src.fedoraproject.org/rpms/w3m/blob/36f14df378762a3a03a6a724583ca5b0ff618ed5/f/Fix-the-cipher-list-string-to-ensure-that-it-contain.patch + https://fedoraproject.org/wiki/Packaging:CryptoPolicies - * [w3m-dev 04369] Re: w3m's bugs from bugs.debian.org - * terms.c (graph_ok): fix condition (UseGraphicChar != GRAPHIC_CHAR_DEC) - * symbol.c (get_symbol): fix condition (UseGraphicChar != GRAPHIC_CHAR_ASCII) - * rc.c (params1): type of graphic_char option is PI_SEL_C - * main.c (main): use GRAPHIC_CHAR_ASCII and GRAPHIC_CHAR_DEC instead of FALSE and TRUE - * fm.h (GRAPHIC_CHAR_ASCII, GRAPHIC_CHAR_DEC, GRAPHIC_CHAR_CHARSET): added +2020-12-09 bptato <nincsnevem662@gmail.com> -2010-08-03 d+w3m@vdr.jp + Small Gopher fixes/improvements + Origin: https://github.com/tats/w3m/pull/157 - * [w3m-dev 04363] Re: w3m's bugs from bugs.debian.org - * doc/w3m.1: revert option -S - * doc-jp/w3m.1: revert option -S, -e, -j and -s - * main.c: remove codes for Debian + * file.c: Fix Gopher binaries causing w3m to be stuck in download mode; + try to guess Gopher image type and fallback to png. -2010-08-03 Ito Hiroyuki <ZXB01226@nifty.com> + * file.c, url.c: Add support for Gopher items 5 and I. - * [w3m-dev 04343] - * file.c (loadGeneralFile): register user name and password for proxy authentication. - * url.c (HTTPrequest): unused variable seen_proxy_auth was removed - * fm.h: global variables proxy_auth_cookie and pauth are removed - * main.c (main): remove option -pauth - * doc/MANUAL.html: ditto - * doc-jp/MANUAL.html: ditto - * doc-jp/w3m.1: ditto - * doc/w3m.1: ditto - * doc/README.passwd: added - * doc-jp/README.passwd: added +2020-11-24 Tatsuya Kinoshita <tats@debian.org> -2010-07-31 Tatsuya Kinoshita <tats@vega.ocn.ne.jp> + * po/POTFILES.in, po/de.po, po/ja.po, po/w3m.pot, po/zh_CN.po: + * po/zh_TW.po: Update PO. - * [w3m-dev 04350] Re: w3m's bugs from bugs.debian.org - * file.c (process_img): Revert the change of using ATTR_TITLE if ATTR_ALT is empty. + * configure: Update configure by autoconf 2.69. -2010-07-30 Ito Hiroyuki <ZXB01226@nifty.com> + * config.h.dist, config.h.in, configure, configure.ac: + Define X_DISPLAY_MISSING when configure --without-x for Imlib2. + cf. https://github.com/NixOS/nixpkgs/commit/3cad8fba2958981307f94b865c2b970b95e10789 - * [w3m-dev 04348] Re: "important" bugs from bugs.debian.org - * file.c (TEXTAREA_ATTR_COL_MAX, TEXTAREA_ATTR_ROWS_MAX): added. - (process_textarea): check cur_textarea_size > TEXTAREA_ATTR_COL_MAX and cur_textarea_rows > TEXTAREA_ATTR_ROWS_MAX +2020-11-22 Tatsuya Kinoshita <tats@debian.org> -2010-07-30 Ito Hiroyuki <ZXB01226@nifty.com> + * gitlog2changelog: Update example to use UTC for gitlog2changelog. - * [w3m-dev 04345] Re: "important" bugs from bugs.debian.org - * file.c (HR_ATTR_WIDTH_MAX): added. - (process_hr): check w > HR_ATTR_WIDTH_MAX + * acinclude.m4, config.h.dist, config.h.in, configure, configure.ac: + Drop HAVE_SYS_ERRLIST. -2010-07-26 d+w3m@vdr.jp +2020-11-22 Parag A Nemade <pnemade@fedoraproject.org> - * [w3m-dev 04237] [patch] cookie avoid [wrong number of dots] - * rc.c: Introduce option cookie_avoid_wrong_number_of_dots. - * fm.h: add global variables cookie_avoid_wrong_number_of_dots and Cookie_avoid_wrong_number_of_dots_domains. - * cookie.c (check_avoid_wrong_number_of_dots_domain): added. - (add_cookie): use check_avoid_wrong_number_of_dots_domain(). + * config.h.in: + Fix compilation error "too few arguments to function 'longjmp'". + Origin: https://src.fedoraproject.org/rpms/w3m/c/e7a12fa28cfbfbb0115ec74994092c1d3b8351d8?branch=master + Bug-MacPorts: https://trac.macports.org/ticket/61356 -2010-07-26 Ito Hiroyuki <ZXB01226@nifty.com> +2020-11-22 Parag Nemade <pnemade@redhat.com> - * acinclude.m4: define AC_W3M_SSL_DIGEST_AUTH + * etc.c, main.c: Fix FTBFS due to redefinition of sys_errlist. + Origin: https://src.fedoraproject.org/rpms/w3m/c/99f30870caac12a3949b6736aa70b7233f4414d5?branch=master + Bug-Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1038009 + Bug-MacPorts: https://trac.macports.org/ticket/61356 -2010-07-25 AIDA Shinra <shinra@j10n.org> +2020-11-15 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 04049] Ctrl-C safe resolver - * fm.h (GRAPHIC_CHAR_ASCII, GRAPHIC_CHAR_CHARSET, GRAPHIC_CHAR_ALL): removed. - * fm.h: UseGraphicChar is initialized as FALSE. - * main.c (sig_chld): use TRUE and FALSE instead of GRAPHIC_CHAR_ALL and GRAPHIC_CHAR_ASCII. - * merge ambiguous width patch ( http://www.j10n.org/files/w3m-cvs-1.914-ambwidth.patch ). + * gitlog2changelog: + Include gitlog2changelog to easily generate ChangeLog. -2010-07-24 Ito Hiroyuki <ZXB01226@nifty.com> + * Makefile.in: Use xz instead of gzip for the dist target. - * [w3m-dev 04326] suppress compile warnings - * file.c (digest_hex): type of the parameter s is "unsigned char *". - (AuthDigestCred): use unsigned char. - (ex_efct): type of the function is "static int". +2020-11-12 Tatsuya Kinoshita <tats@debian.org> -2010-07-20 Sascha Silbe <sascha-debian-bugs-w3m-1@silbe.org> + * Makefile.in: Update the dist target to use git archive. - * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=523159#5 - * url.c (openSSLHandle): add support for TLS SNI (Server Name Indication) + * Bonus/README, Bonus/README.eng: Update examples for 2ch.cgi. -2010-07-19 Karsten Schoelzel <kuser@gmx.de> + * Bonus/2ch.cgi: Add charset=Shift_JIS to 2ch.cgi. - * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329862#20 - * table.c (feed_table_tag): check displayLinkNumber. - * proto.h: add getLinkNumberStr(). - * main.c (do_dump): check displayLinkNumber. - * fm.h: add global variable displayLinkNumber. - * file.c (getLinkNumberStr): added. - (process_input, process_select, HTMLtagproc1): check displayLinkNumber. +2020-11-11 Tatsuya Kinoshita <tats@debian.org> -2010-07-19 Karsten Schoelzel <kuser@gmx.de> + * file.c, proto.h: + Fix compilation errors when USE_GOPHER and not USE_M17N. - * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329863#8 - * rc.c: Introduce option pseudo_inlines. - * fm.h: add global variable pseudoInlines. - * file.c (process_img): check q. +2020-11-11 bptato <nincsnevem662@gmail.com> -2010-07-19 "Trent W. Buck" <twb@cybersource.com.au> + Support Gopher search and binary files. + Origin: https://github.com/tats/w3m/pull/154 - * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=537706#10 - * rc.c (interpret_rc): check line->length before call Strchop(). + * url.c: Remove useless loop. -2010-07-19 Karsten Schoelzel <kuser@gmx.de> + * file.c: Remove unnecessary file_unquote call. - * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=366284#5 - * rc.c (init_rc): check config_file is NULL or not. - (panel_set_option): check config_file instead of no_rc_dir. + * url.c: Remove unnecessary variable assignment. -2010-07-19 Karsten Schoelzel <kuser@gmx.de> + * file.c, proto.h, url.c: + Support Gopher items search (7) and binary file (9). - * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=261174#10 - * terms.c (graph_ok): check UseGraphicChar is GRAPHIC_CHAR_ALL or not. - * symbol.c (get_symbol): check UseGraphicChar. - * rc.c (graphic_char_str): added. - * main.c (sig_chld): use GRAPHIC_CHAR_ASCII and GRAPHIC_CHAR_ALL. - * fm.h (GRAPHIC_CHAR_ASCII, GRAPHIC_CHAR_CHARSET, GRAPHIC_CHAR_ALL): added. - * fm.h: UseGraphicChar is initialized as GRAPHIC_CHAR_ASCII. +2020-10-24 Tatsuya Kinoshita <tats@debian.org> -2010-07-19 Karsten Schoelzel <kuser@gmx.de> + * acinclude.m4, configure: Enable Gopher support by default. - * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=185006#22 - * main.c (sig_chld): save exit code to d->err. - (addDownloadList): initialize d->running and d->err. - (DownloadListBuffer): check d->err. +2020-10-24 bptato <nincsnevem662@gmail.com> - * fm.h (_DownloadList): add running and err. + Fix broken Gopher support. + Origin: https://github.com/tats/w3m/pull/152 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=742455 - * file.c (save2tmp): check returned value of Strfputs(). - (doFileSave): exit code is depend on the returned value of save2tmp(). + * file.c, url.c: + Moved back filetype indicator to the beginning of file names. -2010-07-19 d+w3m@vdr.jp + * file.c: Improved gopher directory display. - * [w3m-dev 04238] [patch] simple preserve space - * rc.c: Introduce option simple_preserve_space. - * fm.h: add global variable SimplePreserveSpace. - * file.c (HTMLlineproc0): check SimplePreserveSpace. + * file.c, url.c: Improved gopher support. -2010-07-18 Karsten Schoelzel <kuser@gmx.de> +2020-09-28 Tatsuya Kinoshita <tats@debian.org> - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=242599#21 - * file.c (is_html_type): added. - (examineFile, loadGeneralFile, _saveBuffer) - (openGeneralPagerBuffer, reloadBuffer): use is_html_type() instead - of strcasecmp(). - (loadGeneralFile): set f.guess_tupe - * display.c (displayBuffer): use is_html_type() instead of strcasecmp(). - * buffer.c (reshapeBuffer): use is_html_type() instead of strcasecmp(). - * backend.c (internal_get): use is_html_type() instead of strcasecmp(). - * main.c (vwSrc, reload, dispI, stopI): use is_html_type() instead of strcasecmp(). - * proto.h: add is_html_type() - * url.c: add "xhtml" to DefaultGuess. + * scripts/w3mman/w3mman.in: Accept section "l" for w3mman. -2010-07-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> +2020-09-25 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 04286] Re: break textform when buffer back - * form.c (form_update_line): set line->size + * scripts/w3mman/w3mman.in: + Assume a local file if the argument contains slash for w3mman. -2010-07-18 d+w3m@vdr.jp +2020-09-25 Dustin Boyd <memreflect@pm.me> - * [w3m-dev 04319] Re: w3m's bugs from bugs.debian.org - * doc/w3m.1: fix typo. - * doc-jp/w3m.1: update + * scripts/w3mman/w3mman2html.cgi.in: Remove -l flag in CGI script. + Origin: https://bugs.freebsd.org/bugzilla/attachment.cgi?id=217947&action=diff + Bug-FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=249305 -2010-07-18 Petr Salinger <Petr.Salinger@seznam.cz> - * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493486 - * terms.c: fix version check logic for FreeBSD +2020-09-15 Tatsuya Kinoshita <tats@debian.org> -2010-07-18 Colin Watson <cjwatson@ubuntu.com> - * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=325699 - * scripts/w3mman/w3mman2html.cgi.in (Content-Type): "MAN_KEEP_FORMATTING=1" + * .cvsignore, libwc/.cvsignore, po/.cvsignore, scripts/.cvsignore: + * scripts/multipart/.cvsignore, scripts/w3mman/.cvsignore: + * w3mimg/.cvsignore, w3mimg/fb/.cvsignore, w3mimg/win/.cvsignore: + * w3mimg/x11/.cvsignore: Remove .cvsignore. -2010-07-18 Ludwig Nussel <ludwig.nussel@...e.de> - * http://www.openwall.com/lists/oss-security/2010/06/14/4 - * istream.c (ssl_check_cert_ident): replace \0 to make full string - visible to user (CVE-2010-2074). + * .gitignore: Add .gitignore. -2007-06-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2020-09-15 Bruno Haible <bruno@clisp.org> - * [w3m-dev 04279] charset - * libwc/ces.h, libwc/charset.c: set charset to Shift_JIS, when locale - is japanese, jp_JP.PCK, ja_JP.IBM-932, ja_JP.IBM-943, or windows-31j. + * url.c: Add support for file://hostname/... URLs. + Origin: https://github.com/tats/w3m/files/3488813/file-hostname-support.diff.gz + Bug-Debian: https://github.com/tats/w3m/issues/120 -2007-06-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2020-09-06 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 04278] Re: segfault on CentOS4.5/libgc6.8 - * term.c: add handling xterm-incompatible terminals without gpm. + * README, doc-jp/README, doc/README: Mention forked version. -2007-06-04 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * configure, configure.ac, doc-jp/README, doc/README, po/Makevars: + * po/de.po, po/ja.po, po/w3m.pot, po/zh_CN.po, po/zh_TW.po: + Drop bug report address. - * [w3m-dev 04271] vi_prec_num - * main.c: make number prefixes working when vi_prec_num=0. + * ChangeLog: Move old ChangeLog entries to ChangeLog.1. + * ChangeLog.1: New file. -2007-05-31 Dai Sato <satodai@w3m.jp> +2020-09-02 bptato <nincsnevem662@gmail.com> - * w3m 0.5.2 - * version.c.in: update - * doc/README: version 0.5.2, release date, maintainer - * doc-jp/README: ditto - * po/w3m.pot, ja.po: ditto - * NEWS: update - * configure.ac: version 0.5.2 - * configure: regenerated + New option space_autocomplete. -2007-05-31 Tsutomu OKADA + * linein.c: + Add closing bracket I somehow forgot about in the previous commit. + Origin: https://github.com/tats/w3m/pull/150 - * [20070530101431@w3mbbs] Re: road to 0.5.2 - * ftp.c: fix typo. - * main.c, mktable.c, w3mbookmark.c, w3mhelperpanel.c: add GC_INIT(). + * fm.h, linein.c, rc.c: Space is now entered in URL fields instead of + triggering file completion, old behavior can be toggled via options. + Origin: https://github.com/tats/w3m/pull/149 -2007-05-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2020-09-01 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 04266] Bug fix when tab browsing - * fm.h, main.c: fix for tab browsing. + * scripts/w3mhelp-funcdesc.ja.pl.in: + Fix broken Japanese help page, convert to UTF-8. -2007-05-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * doc-jp/README.func: Add CURSOR_* commands to Japanese README.func. - * [w3m-dev 04265] compile error when #undef USE_BG_COLOR - * terms.c: add #ifdef __CYGWIN__. +2020-08-31 bptato <nincsnevem662@gmail.com> -2007-05-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + New commands CURSOR_TOP, CURSOR_MIDDLE and CURSOR_BOTTOM. + Origin: https://github.com/tats/w3m/pull/148 - * [w3m-dev 04264] Re: road to 0.5.2 - * po/makefile.in.in, scripts/*/Makefile.in: add datarootdir. + * main.c: Removed an unnecessary variable declaration. -2007-05-29 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * scripts/w3mhelp.cgi.in: Added the other two commands to w3mhelp. - * [w3m-dev 04262] FreeBSD sysmouse (Re: road to 0.5.2) - * configure.ac: unbreak sysmouse support, pointed out by - Travis Poppe <tlp@lickwid.net>. - * configure: regenerated. + * doc-de/README.func, doc/README.func, main.c, proto.h: + * scripts/w3mhelp.cgi.in: + New commands for moving to the top, middle and bottom of buffer. -2007-05-29 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2020-08-31 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 04260] Warning (Re: road to 0.5.2) - * main.c, display.c: delete unused macros, change void to static void. + * w3m-doc/README.html, w3m-doc/community.html.in: + * w3m-doc/configuration.html.in, w3m-doc/contain.wd: + * w3m-doc/copyright.html.in, w3m-doc/define.wd, w3m-doc/detail.html.in: + * w3m-doc/development.html.in, w3m-doc/faq.html.in: + * w3m-doc/function.html.in, w3m-doc/index.html.in: + * w3m-doc/install.html.in, w3m-doc/mkdocs, w3m-doc/operation.html.in: + * w3m-doc/outline.html.in, w3m-doc/prologue.html.in: + * w3m-doc/sample/README, w3m-doc/sample/define.wd: + * w3m-doc/sample/html.wd, w3m-doc/sample/keymap.cgi: + * w3m-doc/sample/s.wd, w3m-doc/sample/sample.html: + * w3m-doc/sample/sample.wd, w3m-doc/sample/w3mdoc.pl: + * w3m-doc/w3mdoc.pl: Drop obsolete w3m-doc. -2007-05-29 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2020-08-29 Ambrose Li <ambrose.li@gmail.com> - * [w3m-dev 04259] long long (Re: road to 0.5.2) - * Makefile.in, aclocal.m4: move 'gc' from $LIBS to $LIBGC. - * configure: regenerated. + * file.c, html.c, html.h, tagtable.tab: + Rudimentary support for the section tag + Origin: https://github.com/tats/w3m/pull/147 -2007-05-29 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * file.c: + Somehow the wrong quotes were used. This should fix the failing tests. + Origin: https://github.com/tats/w3m/pull/139/commits/b9488ffe60963349bf622a7548e3b9dccc6e0728 - * [w3m-dev 04256] Re: road to 0.5.2 - * scripts/Makefile.in, scripts/w3mhelp.cgi.in: add datarootdir. + * po/zh_TW.po: Missed the spurious (_S). + Origin: https://github.com/tats/w3m/pull/145/commits/5d7fb3719e1308d56e5505ab67160b6d8fae34b0 -2007-05-28 Hideyuki SHIRAI <shirai@meadowy.org> +2020-08-24 Ambrose Li <ambrose.li@gmail.com> - * [w3m-dev 04251] Re: road to 0.5.2 - * po/w3m.pot: pot-update. + * etc.c, file.c, fm.h, html.c, html.h, tests/a1.expected: + * tests/a1.html, tests/a2.expected, tests/a2.html, tests/run_tests: + Make w3m's handling of the a element HTML5 compatible (when the stream + is HTML5). + In HTML5 anchors should not be closed when encountering divs, for + example, but should be closed when encountering buttons, for example. + This also fixes a bug in the tokenizing FSM in etc.c that prevented + the !doctype element from being recognized; the fix is necessary + because HTML5 detection dependson checking the !doctype element. + Origin: https://github.com/tats/w3m/pull/146 + Bug: https://sourceforge.net/p/w3m/patches/74/ + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=290460 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=847875 -2007-05-27 Hiroyuki Ito <ZXB01226@nifty.com> + * po/zh_TW.po: Corrections to traditional Chinese translation, + including corrections of a number of serious errors. + Origin: https://github.com/tats/w3m/pull/145 - * [w3m-dev 04252] Re: road to 0.5.2 - * Makefile.in: add datarootdir for Autoconf 2.60 and later. +2020-08-23 Ambrose Li <ambrose.li@gmail.com> -2007-05-23 NOKUBI Takatsugu <knok@daionet.gr.jp> + * entity.c, file.c, fm.h, tests/name_entity_1.expected: + * tests/name_entity_1.html, tests/name_entity_1.opts: + * tests/name_entity_2.expected, tests/name_entity_2.html: + * tests/q1.expected, tests/q1.html, tests/q1.opts, tests/q2.expected: + * tests/q2.html, tests/q3.expected, tests/q3.html, tests/q3.opts: + * tests/q4.expected, tests/q4.html, tests/q4.opts, tests/q5.expected: + * tests/q5.html, tests/q6.expected, tests/q6.html, tests/q6.opts: + * tests/run_tests: Changes the behaviour of the q tag (when m17n and + Unicode are configured) to use "smart" quotes if the display charset + can handle them. Falls back to old behaviour (ASCII quotes with + left/right quote semantics for 6/0 and 2/6) if display charset is + us-ascii. Also changes the behaviour of conv_entity() to convert + left/right quotes and some dashes because named entities are needed + for the new code for the q tag. + Origin: https://github.com/tats/w3m/pull/139 - * [w3m-dev 04155] w3m mingw patch - * config.h, configure.ac, etc.c, file.c, ftp.c, indep.c, istream.c, - local.c, main.c, rc.c, terms.c, url.c: fix for minpw, except for - deleting nsl and dl from configure.ac. - * configure: regenerated. +2020-08-23 Tatsuya Kinoshita <tats@debian.org> -2007-05-23 Hiroyuki Ito <ZXB01226@nifty.com> + * html.c: Add TFLG_END to "/sup", "/sub" and "/figure" for TagMAP. - * [w3m-dev 04233], [w3m-dev 04236] Re: <del>, <s>, <ins>, and so on - * file.c, fm.h, po/ja.po, po/w3m.pot, rc.c, table.c: - expand display_ins_del to select a type of fontify. +2020-08-21 Ambrose Li <ambrose.li@gmail.com> -2007-05-23 Hiroyuki Ito <ZXB01226@nifty.com> + * file.c, html.c, html.h, tagtable.tab: + Rudimentary support for figure, figcaption. + Origin: https://github.com/tats/w3m/pull/136 - * [w3m-dev 04242] Re: Compile error when --without-ssl - * aclocal.m4, configure.ac: add checking ssl before digest_auth. - * configure: regenerated. +2020-08-02 David Spickett <david.spickett@linaro.org> -2007-05-23 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * scripts/w3mhelp.cgi.in: + Show keyboard shortcuts in a consistent order in help. + Origin: https://github.com/tats/w3m/pull/134 + Bug-Debian: https://github.com/tats/w3m/issues/133 - * [w3m-dev 04240] nl_langinfo() requires setlocale() - * fm.h, main.c, menu.c, rc.c: add "#ifdef"s. - * libwc/charset.c: add setlocale() for nl_langinfo(). +2020-07-11 Bjarni Ingi Gislason <bjarniig@rhi.hi.is> -2007-05-23 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * doc/w3m.1: Fix some source formatting in the manual. + - Begin a sentence on a new line. + - Split long lines (> 80). + - Fix warnings from "mandoc -Tlint". + - Remove space at end of lines. + - Change a HYPHEN-MINUS (code 0x55, 2D) to a dash (minus) if it matches + " -[:alpha:]" or \[aq]-[:alpha:] (for options). + - Use the macros .MT/.ME for e-mail addresses. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=963801#5 - * [w3m-dev 03923] <pre> in <table> - * file.c, table.c: avoid extra blanks in pre in table. +2020-05-07 Shun Sakai <sorairolake@protonmail.ch> -2007-05-23 tamo + * Bonus/README, doc-jp/FAQ.html, doc-jp/HISTORY, doc-jp/MANUAL.html: + * doc-jp/README, doc-jp/README.SSL, doc-jp/README.cookie: + * doc-jp/README.cygwin, doc-jp/README.dict, doc-jp/README.func: + * doc-jp/README.img, doc-jp/README.keymap, doc-jp/README.m17n: + * doc-jp/README.mailcap, doc-jp/README.menu, doc-jp/README.migemo: + * doc-jp/README.mouse, doc-jp/README.passwd, doc-jp/README.pre_form: + * doc-jp/README.siteconf, doc-jp/README.tab, doc-jp/STORY.html: + * doc-jp/menu.default, doc-jp/menu.submenu, doc-jp/w3m.1: + * scripts/bm2menu/README, scripts/multipart/README: + * scripts/w3mman/README, w3m-doc/README.html: + * w3m-doc/community.html.in, w3m-doc/configuration.html.in: + * w3m-doc/copyright.html.in, w3m-doc/detail.html.in: + * w3m-doc/development.html.in, w3m-doc/faq.html.in: + * w3m-doc/function.html.in, w3m-doc/index.html.in: + * w3m-doc/install.html.in, w3m-doc/operation.html.in: + * w3m-doc/outline.html.in, w3m-doc/prologue.html.in: + * w3m-doc/sample/README, w3m-doc/sample/define.wd, w3m-doc/sample/s.wd: + * w3m-doc/sample/sample.html, w3m-doc/sample/sample.wd: + * w3mhelp-lynx_ja.html.in, w3mhelp-w3m_ja.html.in: + * w3mimg/fb/readme.txt: + Change the encoding of the Japanese docs to UTF-8. - * [20070121110209@w3mbbs] unnecessary decoding in linein.c - * linein.c: decoding URLs in correct condition. + * COPYING: Add COPYING file. -2007-05-23 Tsutomu OKADA +2020-05-02 Tatsuya Kinoshita <tats@debian.org> - * [20061228000713@w3mbbs] avoid warning for file.c - * html.h: change char to unsigned char for HTML_DL_COMPACT(133). + * NEWS: Update NEWS for 0.5.3+git20200502. -2007-05-23 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2020-03-27 Roland Illig <rillig@NetBSD.org> - * [w3m-dev 04213] update Unicode characters' width - * libwc/ucs.c, libwc/ucs.h, libwc/map/ucs_wide.map: - catch-up to EastAsianWidth-5.0.0.txt. + * main.c: Fix -Wchar-subscripts. + Origin: http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/pkgsrc/www/w3m/patches/patch-main.c?rev=1.1&content-type=text/plain + Bug: https://sourceforge.net/p/w3m/patches/76/ -2007-04-19 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2020-03-16 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 04212] quote URL of local dir - * local.c: quote URLs with non-ASCII local directory names. + * doc-de/MANUAL.html, doc/MANUAL.html: Update documents for GOTO_HOME. -2007-04-19 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * doc-de/README.func, doc-jp/README.func, doc-jp/keymap.default: + * doc/README.func, doc/keymap.default, scripts/w3mhelp.cgi.in: + Add GOTO_HOME to the help page. - * [w3m-dev 04211] input type=image - * file.c, html.[ch]: avoid conflicts between input_alt and img_alt. - fix calculation of labeled line numbers when fold_line=1. +2020-03-11 Tatsuya Kinoshita <tats@debian.org> -2007-04-19 Hiroyuki Ito <ZXB01226@nifty.com> + * doc-jp/README.SSL, po/de.po, po/ja.po, po/w3m.pot, po/zh_CN.po: + * po/zh_TW.po, rc.c: Update documents for ssl_forbid_method. - * [w3m-dev 04197] Re: italic text - * fm.h: display <em> and <i> elements with underline. + * url.c: Extend ssl_forbid_method for TLSv1.2 and TLSv1.3. -2006-12-27 Fumitoshi UKAI <ukai@debian.or.jp> +2020-01-13 We're Yet <58348703+butwerenotthereyet@users.noreply.github.com> - * [SECURITY] fix format string vulnerability - * file.c (inputAnswer) fix format string bug + * keybind.c, main.c, proto.h: Add command to go home. + Origin: https://github.com/tats/w3m/pull/124 -2006-12-07 Hiroyuki Ito <ZXB01226@nifty.com> +2019-11-10 Kyle J. McKay <mackyle@gmail.com> - * [w3m-dev 04185] Re: italic text - * file.c, fm.h, html.c, html.h, tagtable.tab: - display <em> and <i> elements with bold letters. + * entity.tab, indep.c, indep.h: Support ' entity. + Origin: https://github.com/tats/w3m/pull/122 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927409 -2006-12-07 Hideyuki SHIRAI <shirai@meadowy.org> +2019-07-02 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 04184] automatic uncompression in downloading - * rc.c: Add `AutoUncompress'. - (params3): Ditto. - * fm.h: Add `AutoUncompress'. - * file.c (loadGeneralFile): Check `AutoUncompress' when uncompress - data. - (HTMLlineproc2body): Ditto. - * po/w3m.pot: Add new message for `AutoUncompress'. - * po/ja.po: ditto. + * doc-jp/README.siteconf: Update doc-jp for user_agent in siteconf. -2006-12-10 Hiroyuki Ito <ZXB01226@nifty.com> +2019-07-01 Azure <azure@fox.blue> - * [w3m-dev 04159] Re: Is this mailing list still alive? - * cookie.c: accept invalid "set-cookies" headers - when "domainName == .hostName". + * doc/README.siteconf, fm.h, rc.c, url.c: + Allow setting User Agent in Siteconf. + Origin: https://github.com/tats/w3m/pull/119 -2006-12-10 noz +2019-04-21 Laurent Arnoud <laurent@spkdev.net> - * [20051124052846@w3mbbs] LiveHTTPHeaders - * file.c, fm.h, main.c, url.c: add -reqlog option which makes - ~/.w3m/request.log like LiveHTTPHeaders of FireFox. + * fm.h, main.c, url.c: Allow to override User-Agent with -header. + Origin: https://github.com/tats/w3m/pull/113 -2006-08-07 Fumitoshi UKAI <ukai@debian.or.jp> +2019-01-05 Tatsuya Kinoshita <tats@debian.org> - * mailcap.c (acceptableMimeTypes): change default accept: line - w3m should prefer text/html to other text/*. - reported as Debian Bug#374296 + * NEWS: Update NEWS. -2006-06-12 Dai Sato <satodai@w3m.jp> + * config.guess, config.sub: + Update config.* with autotools-dev 20180224.1. - * another fix for [w3m-dev-en 01067] Some more patches - * file.c (loadBuffer): avoid decoding when dump_extra option is specified. +2019-01-05 Akinori Hattori <hattya@gentoo.org> -2006-06-10 Dai Sato <satodai@w3m.jp> + * w3mimg/fb/fb_imlib2.c: Fix dependency for Imlib2. + Bug-Gentoo: https://bugs.gentoo.org/605930 + Origin: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=97d6e3e6839898829e8cce211b97a7fa77f5d06e - * fix for [w3m-dev-en 01067] Some more patches - * file.c (loadGeneralFile): avoid decoding when dump_extra option is specified. +2018-12-22 Tatsuya Kinoshita <tats@debian.org> -2006-06-10 Dai Sato <satodai@w3m.jp> + * scripts/w3mman/w3mman.1.in, scripts/w3mman/w3mman.in: + Fix square brackets. - * [w3m-dev 03992] Change to display progress status when dump_extra option is specified - * file.c (loadHTMLstream): Show progress status when dump_extra option is specified. +2018-12-21 Nemo Inis <nemoinis@hotmail.com> -2006-06-07 Dai Sato <satodai@w3m.jp> + * scripts/w3mman/w3mman.1.in, scripts/w3mman/w3mman.in: + * scripts/w3mman/w3mman2html.cgi.in: + w3mman support for section number during keyword search. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=916968#5 - * [w3m-dev 04129] handling newlines in form values - * parsetagx.c: don't delete newlines in hidden values. +2018-10-26 Ben Wong <bugs.debian.org@wongs.net> -2006-05-29 Dai Sato <satodai@w3m.jp> + * buffer.c, display.c: + Fix that the MarkAllPages option works as originally intended. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911929 - * [w3m-dev-en 01067] Some more patches - * file.c, html.h, url.c: decode content-encoding in all situations. +2018-10-26 Tatsuya Kinoshita <tats@debian.org> -2006-05-29 Dai Sato <satodai@w3m.jp> + * istream.c, url.c: Indentation fix. - * [w3m-dev-en 01067] Some more patches - * main.c: delete calls to GC from wrap_GC_warn_proc to avoid deadlocks. +2018-10-24 Mark Wright <gienah@gentoo.org> -2006-05-29 Dai Sato <satodai@w3m.jp> + * istream.c, url.c: Do not use deprecated features with openssl-1.1. + Bug-Gentoo: https://bugs.gentoo.org/592510 + Bug-Debian: https://github.com/tats/w3m/pull/103 - * [w3m-dev-en 01067] Some more patches - * main.c: fix unsafe usages of SIGWINCH handler. +2018-05-20 Andrew Santosa <santosa_1999@yahoo.com> -2006-05-29 Dai Sato <satodai@w3m.jp> + * po/Makefile.in.in: Added check for : command not producing .gmo file. + Bug-Debian: https://github.com/tats/w3m/pull/99 - * [w3m-dev-en 01067] Some more patches - * keybind(_lynx).c, doc(-jp)/keymap.default: add SHIFT-TAB as a default binding for PREV_LINK. +2018-03-24 Tatsuya Kinoshita <tats@debian.org> -2006-04-08 Dai Sato <satodai@w3m.jp> + * table.c: Respect simple_preserve_space for table cells. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=893902 - * [w3m-dev 04154] Unclosed textarea in table - * table.c: close textarea when table related tags found. +2018-03-23 Mike <barbeque@users.noreply.github.com> -2006-04-08 Dai Sato <satodai@w3m.jp> + Update grammar & spelling in some English READMEs. + Origin: https://github.com/tats/w3m/pull/97 - * [w3m-dev 04153] NEXT_LINK error - * anchor.c, filc.c, fm.h: check A tag in HTMLlineproc2body(). + * doc/README.img: Update README.img. + * doc/README.dict: Update README.dict. + * doc/README.pre_form: Update README.pre_form. + * doc/README.cookie: Update README.cookie. + * doc/README.cookie: Update README.cookie. -2006-04-08 Dai Sato <satodai@w3m.jp> +2018-03-04 Jia Zhouyang <jiazhouyang@nudt.edu.cn> - * [w3m-dev 04152] [PATCH] Add more explanation for the usage of the option setting panel. - * doc(-jp)/FAQ.html, doc-jp/MANUAL.html: add explanations for .w3m/config and -o option. + Fix crashes when some external APIs fail. + Origin: https://github.com/tats/w3m/pull/96 -2006-04-08 Dai Sato <satodai@w3m.jp> + * url.c: Add error handling code for fopen. + Check the return code of fopen, and return when it fails. + * file.c: Add error handling code for fopen. + Check the return value of fopen, and add proper error handling code. + * local.c: Add error handling for chdir. + When chdir fails, print error message and exit. - * [w3m-dev 04150] vi-prec_num - * main.c: fix vi_prec_num switching. +2018-01-25 Tatsuya Kinoshita <tats@debian.org> -2006-04-08 Dai Sato <satodai@w3m.jp> + * ChangeLog, NEWS: Add CVE IDs. + cf. https://security-tracker.debian.org/tracker/source-package/w3m - * [w3m-dev 04146] disable HAVE_LANGINFO_CODESET on cygwin - * configure.ac: avoid AM_LANGINFO_CODESET check for Cygwin. +2018-01-21 Tatsuya Kinoshita <tats@debian.org> -2006-04-07 Dai Sato <satodai@w3m.jp> + * NEWS: Update NEWS. - * [w3m-dev-en 01060] Some patches - * file.c, fm.h, rc.c: Introduce option show_cookie and set it TRUE by default. If set to FALSE received cookies will not be shown. - * This fixes Debian bug #253547: w3m: Too slow receiving cookies. + * scripts/Makefile.in: Do not remove w3mdict.cgi when "make distclean". -2006-04-07 Dai Sato <satodai@w3m.jp> + * config.h.dist, config.h.in, configure, configure.ac, main.c, rc.c: + Make temporary directory safely when ~/.w3m is unwritable. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=888097 + [CVE-2018-6198] - * [w3m-dev-en 01060] Some patches - * parsetagx.c: Replace '\n' (newline) with ' ' (space) in attributes of html tags instead of ignoring them. - * Fixes Debian bug #326167: w3m: new lines in hidden form fields are stripped + * rc.c: Suppress error messages when ~/.w3m is unwritable. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=871425 -2006-04-07 Dai Sato <satodai@w3m.jp> +2018-01-20 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev-en 01060] Some patches - * scripts/w3mman/w3mman*.in: Add w3mman -l <file> command line argument for viewing of local man files. - * Fixes Debian bug #138805: w3mman -l doesn't work. + * config.guess, config.sub: + Update config.* with autotools-dev 20171216.1. -2006-04-07 Dai Sato <satodai@w3m.jp> + * table.c: Prevent negative indent value in feed_table_block_tag(). + Bug-Debian: https://github.com/tats/w3m/issues/88 [CVE-2018-6196] - * [w3m-dev-en 01060] Some patches - * libwc/detect.c: Use the hint instead of US_ASCII in wc_auto_detect. - * Fixes Debian bug #291735: w3m shouldn't "simplify" page's charset +2018-01-06 Tatsuya Kinoshita <tats@debian.org> -2006-04-07 Dai Sato <satodai@w3m.jp> + * doc-jp/README.SSL: Doc fix for ssl_forbid_method. - * [w3m-dev-en 01060] Some patches - * Str.h, table.c: Use Strnew_charp() instead of the wrong Strnew(). - * Fixes SF bug #895351 Strnew called with argument in table.c. + * po/de.po, po/ja.po, po/w3m.pot, po/zh_CN.po, po/zh_TW.po, rc.c: + * url.c: Fix multi-character character constant for ssl_forbid_method. -2006-02-10 Dai Sato <satodai@w3m.jp> +2018-01-06 se <se@example.com> - * http://dog.w3m.jp/bbs/spool/until200602.html#20060210153135@keijiwan - * url.c: replace pclose passed to localcgi_post/get() with fclose in openURL() + * po/de.po, po/ja.po, po/w3m.pot, po/zh_CN.po, po/zh_TW.po, rc.c: + * url.c: Extend ssl_forbid_method to disable TLSv1.1. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=874218#5 -2006-02-09 Dai Sato <satodai@w3m.jp> +2018-01-06 Tatsuya Kinoshita <tats@debian.org> - * http://vimrc.hp.infoseek.co.jp/w3m-pclose.html - * file.c: replace pclose with fclose in the end of uncompress_stream() + * w3mimg/fb/fb_w3mimg.c: Accept TERM=fbterm. + cf. https://bushowhige.blogspot.jp/2015/01/fbterm-w3m-img.html + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=590668 -2005-02-27 Fumitoshi UKAI <ukai@debian.or.jp> +2017-12-27 Tatsuya Kinoshita <tats@debian.org> - * configure.ac: rename from configure.in. this is for autoconf2.50 + * form.c: Prevent invalid columnPos() call in formUpdateBuffer(). + Bug-Debian: https://github.com/tats/w3m/issues/89 [CVE-2018-6197] -2005-02-27 NOMIYA Masaru <nomiya@ttmy.ne.jp> + * main.c: Typo fix in fusage(). + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=878106 - * [w3m-dev 04143] Patch for OS/2 - * config.h.in: ifdef HAVE_SETPGRP - * configure.in: define USE_BINMODE_STREAM for *os2-emx* - * islang.c: ULONG -> unsigned long - * main.c: ULONG -> unsigned long + * doc-jp/README.tab, doc/README.tab, main.c: English fix. + cf. [emacs-w3m:12706], http://emacs-w3m.namazu.org/ml/msg12598.html -2005-02-15 Fumitoshi UKAI <ukai@debian.or.jp> +2017-12-24 HIGUCHI Daisuke (VDR dai) <dai@debian.org> - * [w3m-dev-en 01045] From newbie: problem with w3m-0.5.1 installation - * acinclude.m4 (AC_W3M_SSL): define USE_SSL after ssl library found + * scripts/w3mman/w3mman.1.in, terms.c: Fix spelling error. -2005-01-19 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> +2017-08-27 Kyle J. McKay <mackyle@gmail.com> - * [w3m-dev 04133] mouse_end() should preced reset_tty()? - * terms.c (reset_exit): mouse_end() should precede reset_tty() + Correct <base ...> parsing and do not turn a form's GET into POST. + Bug-Debian: https://github.com/tats/w3m/pull/93 -2005-01-05 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + * form.c: + form.c: do not gratuitously turn GET into POST. + When encountering a <form ...> tag that contains these values: + method="get" enctype="multipart/form-data" + Do not transform the method into POST to accomodate enctype. + Instead behave in the compatible way that all other browsers + behave in this instance and ignore the enctype parameter + (treating it as the default application/x-www-form-urlencoded) + and perform a "GET" just as the method parameter requests. + This behavior produces far more compatible results than + gratuitously changing the "get" into a "post" which can + result in unexpected "405 Method Not Allowed" errors. + Signed-off-by: Kyle J. McKay <mackyle@gmail.com> - * [w3m-dev 04130] [w3m-dev 04131] [w3m-dev 04132] Multiple challeges in *-Authenticate header - * file.c (skip_auth_token): added - (extract_auth_val): ',' is end of token - (extract_auth_param): use skip_auth_token - (AuthDigestCred): parse qop and calc cnonce correctly - (findAuthentication): use skip_auth_token + * file.c: + file.c: compute correct base URL when not absolute. + When a server makes use of the PATH_INFO feature in a CGI, + the returned pages may often have a <base href="..." /> tag + specifying the URL of the CGI itself as the base. + However, to avoid hard-coding the scheme and host into such + a base href, the href value will often omit the scheme, host + and port. + Make sure that when parsing any such base href value that + any omitted components are taken from the current URL rather + than taken as being from a bare, absolute file:/// URL. + Signed-off-by: Kyle J. McKay <mackyle@gmail.com> -2004-11-09 Fumitoshi UKAI <ukai@debian.or.jp> +2017-01-02 Tatsuya Kinoshita <tats@debian.org> - * w3mimg/fb/fb_gdkpixbuf.c (fb_image_load): - fix unused variable `i' - * w3mimg/x11/x11_w3mimg.c (x11_load_image): - ditto + * NEWS: Update NEWS. -2004-11-09 Hiroyuki Ito <ZXB01226@nifty.com> +2016-12-24 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 04128] Re: w3mimgdisplay - * acinclude.m4 (AC_W3M_IMAGE): check not yes - * aclocal.m4, configure: regen - * w3mimg/fb/fb_gdkpixbuf.c (fb_image_load): - fb_image_fill in case GDK_PIXBUF_FRAME_DISPOSE - * w3mimg/x11/x11_w3mimg.c (get_animation_size): - return n - (x11_load_image): - fill in case GDK_PIXBUF_FRAME_DISPOSE + * libwc/wtf.c: + Prevent overflow beyond the end of string in wtf_parse1(). + Bug-Debian: https://github.com/tats/w3m/issues/68 -2004-11-05 Hiroyuki Ito <ZXB01226@nifty.com> + * libwc/wtf.c: + Revert "Prevent overflow beyond the end of string in wtf_parse1()". + This reverts commit 998b6f91d4b02e8bf90b7744dfabc8cccdf9d4f9. + Bug-Debian: https://github.com/tats/w3m/issues/86 + cf. http://emacs-w3m.namazu.org/ml/msg12505.html - * [w3m-dev 04117] Re: start attribute and value attribute on ordered lists - * file.c (HTMLtagproc1): allow negative value for start attr + * form.c: + Preserve one byte for end of string character in form_update_line(). + Bug-Debian: https://github.com/tats/w3m/issues/68#issuecomment-266214643 -2004-10-14 Fumitoshi UKAI <ukai@debian.or.jp> + * form.c: + Prevent invalid form_update_line() call in formUpdateBuffer(). + Bug-Debian: https://github.com/tats/w3m/issues/82 - * Bug#276246: w3m's locale parsing should at least see '@euro' modifier - * config.h (HAVE_LANGINFO_CODESET): added - * configure.in (AM_LANGINFO_CODESET): added - * libwc/charset.c: #include <langinfo.h> - (wc_charset_to_ces): use nl_langinfo(CODESET) +2016-12-20 Tatsuya Kinoshita <tats@debian.org> -2004-09-30 Hiroyuki Ito <ZXB01226@nifty.com> + * form.c: + Revert "Preserve one byte for end of string character in form_update_line()". + This reverts commit a4152aaaea5cb51c9018880a1295e498c38889bf. - * [w3m-dev 04108] PIPE_BUF - * main.c (pipeBuf): set buf->currentURL.file to prevent - segfault by "PIPE_BUF cat;VIEW SOURCE;" +2016-12-18 Tatsuya Kinoshita <tats@debian.org> -2004-08-31 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + * file.c: Prevent heap-use-after-free read in HTMLlineproc0(). + Bug-Debian: https://github.com/tats/w3m/issues/81 - * [w3m-dev 04104] w3mmail.cgi - * scripts/w3mmail.cgi.in: strip ^M + * file.c: Prevent infinite loop in feed_textarea(). + Bug-Debian: https://github.com/tats/w3m/issues/85 -2004-08-17 Hiroyuki Ito <ZXB01226@nifty.com> + * form.c: + Revert "Prevent overflow beyond the end of string in form_update_line()". + This reverts commit 9ccaa1dd0dac6f9b35a649ae9901c225421500f6. - * [w3m-dev 04099] Re: w3m-img gtk2 - * w3mimg/fb/fb_gdkpixbuf.c (fb_image_load): fix resize bug + * form.c: + Revert "Prevent overflow beyond the end of string in form_update_line()". + This reverts commit e0efc127ff20cbeb931847af1c9b353056340fbd. -2004-08-06 Hiroyuki Ito <ZXB01226@nifty.com> +2016-12-15 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 04097] Re: w3m-img gtk2 - * w3mimg/fb/fb_gdkpixbuf.c (draw): no need bg - (get_animation_size): use GTimeVal - (fb_image_load): use GTimeVal - fix for animation - * w3mimg/x11/x11_w3mimg.c (get_animation_size): use GTimeVal - (x11_load_image): use GTimeVal - fix for animation + * libwc/wtf.c: + Prevent overflow beyond the end of string for wtf to wcs macros. + Bug-Debian: https://github.com/tats/w3m/issues/77 -2004-08-05 Fumitoshi UKAI <ukai@debian.or.jp> + * libwc/wtf.c: + Revert "Prevent overflow beyond the end of string for wtf to wcs macros". + This reverts commit b4d27ba5ccffaa38e968c2bf3a8eeb9cd43928ff. - * [w3m-dev 04096] w3m-img gtk2 - * acinclude.m4 (AC_W3M_IMAGE): add USE_GTK2 - add --with-imagelib=gtk2 - * aclocal.m4 config.guess config.sub configure: regen - * config.h.in: add USE_GTK2 - * w3mimg/fb/fb_gdkpixbuf.c: support USE_GTK2 - * w3mimg/fb/fb_img.h: add fb_image_init() - * w3mimg/fb/fb_imlib2.h: fb_image_init() stub - * w3mimg/fb/fb_w3mimg.c: call fb_image_init() - * w3mimg/x11/x11_w3mimg.c: support USE_GTK2 + * file.c, libwc/wtf.c, libwc/wtf.h: + Prevent overflow beyond the end of string in caller of get_mclen(). + Bug-Debian: https://github.com/tats/w3m/issues/59 + Bug-Debian: https://github.com/tats/w3m/issues/73 + Bug-Debian: https://github.com/tats/w3m/issues/74 + Bug-Debian: https://github.com/tats/w3m/issues/75 + Bug-Debian: https://github.com/tats/w3m/issues/76 + Bug-Debian: https://github.com/tats/w3m/issues/78 + Bug-Debian: https://github.com/tats/w3m/issues/79 + Bug-Debian: https://github.com/tats/w3m/issues/80 + Bug-Debian: https://github.com/tats/w3m/issues/83 + Bug-Debian: https://github.com/tats/w3m/issues/84 -2004-08-03 WATANABE Katsuyuki <knabe@sannet.ne.jp> + * file.c: + Revert "Prevent overflow beyond the end of string in proc_mchar()". + This reverts commit 512ed467d12615f5ef40d0d28272e5662d8438ea. - * [w3m-dev 04095] build fix when configure with --enable-messagel10n - * main.c (main): locale and textdomain initialization if ENABLE_NLS - * menu.c (initMenu): use _() instead of gettext() - * rc.c (show_params): use _() instead of gettext() + * table.c: + Revert "Prevent overflow beyond the end of string in visible_length()". + This reverts commit a932f78a6d8c105036ffeedf01215c1f6a0e0b71. -2004-07-18 WATANABE Katsuyuki <knabe@sannet.ne.jp> + * table.c: + Revert "Prevent overflow beyond the end of string in skip_space()". + This reverts commit e757b43bcf8c439c167f62b6d3317ee9518cabbf. - * [w3m-dev 04094] Re: option panel: gettextize select list - * rc.c (load_option_panel): don't gettext&wc_conv colorstr - several times + * table.c: + Revert "Prevent overflow beyond the end of string in visible_length_plain()". + This reverts commit f763b8ebf5441cb44d2c0234565fadd5eb1c87a5. -2004-07-16 WATANABE Katsuyuki <knabe@sannet.ne.jp> + * form.c: + Revert "Prevent overflow beyond the end of string in textfieldrep()". + This reverts commit 77d8d8d6576d8afc0f6b2e09bb88c7ca9dba58bb. - * [w3m-dev 04093] bookmark charset - * add global variable: BookmarkCharset. - * main.c:adBmark(): remove condition LANG = JA. - * main.c: buffername encode by BookmarkCharset when add bookmark. - * main.c: BookmarkCharset pass to w3mbookmark. - * w3mbookmark.c: ditto. - -2004-07-16 WATANABE Katsuyuki <knabe@sannet.ne.jp> - - * [w3m-dev 04092] remove __CYGWIN__ && LANG == JA - * remove condition LANG == JA && __CYGWIN__ - * cygwin_mouse_btn_swapped enabled when before 1.5.x - -2004-07-16 WATANABE Katsuyuki <knabe@sannet.ne.jp> - - * [w3m-dev 04091] option panel: gettextize select list - * rc.c: gettextize option select list. - * rc.c: add gettextize message. - * po/w3m.pot: ditto. - * po/ja.po: ditto. - -2004-07-14 Fumitoshi UKAI <ukai@debian.or.jp> - - * Debian Bug#259053 - * doc/FAQ.html, doc-jp/FAQ.html: ~/.mailcap -> ~/.w3m/mailcap - -2004-05-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * based on [w3m-dev 04079] - SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> - * Makefile.in: (libwc/libwc.a): always make in libwc subdir - (w3mimg/w3mimg.a): always make in w3mimg subdir - -2004-05-03 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev-en 01007] - * libwc/Makefile.in (CFLAGS): need @CPPFLAGS@ - -2004-05-03 Fumitoshi UKAI <ukai@debian.or.jp> - - * version.c.in: cvs version - -2004-04-29 Fumitoshi UKAI <ukai@debian.or.jp> - - * w3m 0.5.1 - * version.c.in: update - * doc/README: version 0.5, release date, maintainer - * doc-jp/README: ditto - * NEWS: update - * configure.in: version 0.5.1 - * po/w3m.pot, ja.po: update-po - -2004-04-27 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> - - * [w3m-dev 04068] install-sh problem - [w3m-dev 04069] install-sh problem 2 - * Makefile.in (MAKE_ARGS): delete INSTALL - * install-sh: replace with X Consortium install-sh (from automake) - -2004-04-27 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 04073] Re: run configure in another directory - * Makefile.in (CFLAGS): include dir here - (DEFS): delete include dirs - (libwc/libwc.a): pass OPTS only - (w3mimg/w3mimg.a): pass OPTS only - * libwc/Makefile.in (CFLAGS): fixed - * w3mimg/Makefile.in (CFLAGS): added - (fb x11): pass OPTS only - * w3mimg/fb/Makefile.in (CFLAGS): added - * w3mimg/x11/Makefile.in (CFLAGS): added - -2004-04-23 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> - - * [w3m-dev 04066] --disable-color - * rc.c (load_option_panel): #ifdef USE_COLOR - -2004-04-22 Masao Uebayashi <uebayasi@pultek.co.jp> - - * fix build error for --enable-m17n --disable-unicode - * libwc/detect.c (wc_create_detect_map): #ifdef USE_UNICODE - -2004-04-17 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 04064] authentication - closes: Bug#:244029: w3m: HTTP basic authentication annoyance - * fm.h (auth_cookie): deleted - * proto.h (find_auth_cookie): deleted - (add_auth_cookie): deleted - (add_auth_user_passwd): added - (invalidate_auth_user_passwd): added - * etc.c (auth_pass): add bad flag - delete file - (dir_under): deleted - (add_auth_pass_entry): add override flag - no need to check file - (find_auth_pass_entry): delete file - check bad flag - check uname - (find_auth_user_passwd): find by pu->user - (add_auth_user_passwd): added - (invalidate_auth_user_passwd): added - (parsePasswd): add no override - ignore file - (find_auth): deleted - (find_auth_cookie): deleted - (dump_auth_cookie): deleted - (add_auth_cookie): deleted - * file.c (getAuthCookie): add *uname, *pwd - rewrite - (loadGeneralFile): delete ss, add uname, pwd - use add_auth_user_passwd instead of add_auth_cookie - * url.c (HTTPrequest): don't authorization here - it should be done in getAuthCookie in loadGeneralFile - through extra_header - * ftp.c (openFTPStream): add uname - use find_auth_user_passwd instead of find_auth_cookie - use add_auth_user_passwd instead of add_auth_cookie - -2004-04-10 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> - - * [w3m-dev 04063] about Makefile - * Makefile.in (DEFS): use CGIBIN_DIR instead of LIB_DIR - (MAKE_ARGS): ditto - (distclean): rm -f - * config.h.dist: use CGIBIN_DIR instead of LIB_DIR - * indep.c (w3m_lib_dir): ditto - * scripts/Makefile.in: ditto - * scripts/multipart/Makefile.in: ditto - * w3mimg/Makefile.in (clearn): remove w3mimg.a - -2004-04-05 AIDA Shinra <shinra@j10n.org> - - * [w3m-dev 04049] w3m-cvs-1.914-misc.patch - * Makefile.in (funcname.tab): dont modify when target is unchanged. - (CFLAGS): need $(CPPFLAGS)? - * config.h.in: add HAVE_STDINT_H, HAVE_INTTYPES_H - * configure.in: s/AC_CANONICAL_SYSTEM/AC_CANONICAL_HOST/ - don't use AC_CYGWIN - don't use $CYGWIN, use $host_os *cygwin* - AC_DEFINE in AC_CHECK_HEADER (float.h, sys/select.h) - add stdint.h, inttypes.h - * etc.c (find_auth_pass_entry): host is case insensitive - * libwc/wc_types.h: use stdint.h or inttypes.h - * main.c (MAIN); need GC_init() - -2004-04-01 Fumitoshi UKAI <ukai@debian.or.jp> - - Debian Bug#241192 w3m ipv6 FQDN resolution failure - * etc.c (FQDN): need to set ai_flags AI_CANONNAME, since we need - ai_canonname here. + * file.c: + Revert "Prevent overflow beyond the end of string in proc_mchar()". + This reverts commit e79d0ec2a00369a6af24007a1f2bb5e876e2c847. -2004-03-31 AIDA Shinra <shinra@j10n.org> +2016-12-13 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 04050] SSL verify - * url.c (openSSLHandle): don't load verify locations if - both ssl_ca_file and ssl_ca_path is NULL. - -2004-03-24 Fumitoshi UKAI <ukai@debian.or.jp> - - * fix search problem on different charset page than display charset - * proto.h (conv_search_string): added - * search.c (migemostr): use conv_search_string - (conv_search_string): added - * main.c (srchcore): use conv_search_string - (reMark): ditto - * menu.c (menu_search_forward): ditto - (menu_search_backward): ditto - (menu_search_next_previous): ditto + * file.c: Prevent overflow beyond the end of string in proc_mchar(). + Bug-Debian: https://github.com/tats/w3m/issues/80 + cf. https://github.com/tats/w3m/issues/59 -2004-03-23 Fumitoshi UKAI <ukai@debian.or.jp> + * form.c: Prevent overflow beyond the end of string in textfieldrep(). + Bug-Debian: https://github.com/tats/w3m/issues/79 - * rc.c: cleanup LANG == JA + * form.c: + Preserve one byte for end of string character in form_update_line(). + Bug-Debian: https://github.com/tats/w3m/issues/82 + cf. https://github.com/tats/w3m/issues/68#issuecomment-266214643 -2004-03-23 Fumitoshi UKAI <ukai@debian.or.jp> +2016-12-10 Tatsuya Kinoshita <tats@debian.org> - * main.c (main): DisplayCharset also follow locale + * libwc/wtf.c: Prevent overflow beyond the end of string in wtf_len(). + cf. https://github.com/tats/w3m/issues/57 -2004-03-23 Fumitoshi UKAI <ukai@debian.or.jp> + * etc.c: Prevent negative array index for realColumn in calcPosition(). + Bug-Debian: https://github.com/tats/w3m/issues/69 - * scripts/w3mhelp.cgi.in: use charset parramter - * scripts/w3mhelp-funcdesc.en.pl.in: add charset - * scripts/w3mhelp-funcdesc.ja.pl.in: ditto + * libwc/wtf.c: + Prevent overflow beyond the end of string in wtf_parse1(). + Bug-Debian: https://github.com/tats/w3m/issues/68 -2004-03-22 Fumitoshi UKAI <ukai@debian.or.jp> + * Str.c: Prevent heap-buffer-overflow in Strnew_size(). + Bug-Debian: https://github.com/tats/w3m/issues/72 - * main.c (main): don't use SystemCharset for default of - DisplayChaset, DocumentCharset + * table.c: + Prevent overflow beyond the end of string in visible_length_plain(). + Bug-Debian: https://github.com/tats/w3m/issues/76 -2004-03-22 Fumitoshi UKAI <ukai@debian.or.jp> + * libwc/wtf.c: + Prevent overflow beyond the end of string for wtf to wcs macros. + Bug-Debian: https://github.com/tats/w3m/issues/77 - * w3m 0.5 - * version.c.in: update - * doc/README: version 0.5, release date, maintainer - * doc-jp/README: ditto - * NEWS: update + * form.c: + Prevent overflow beyond the end of string in form_update_line(). + Bug-Debian: https://github.com/tats/w3m/issues/78 -2004-03-22 Fumitoshi UKAI <ukai@debian.or.jp> +2016-12-08 Tatsuya Kinoshita <tats@debian.org> - * main.c (main): DisplayCharset and DocumentCharset also follow - locale configuration - * Makefile.in (distclean): distclean libwc - * libwc/Makefile.in: add distclean - * scripts/multipart/Makefile.in: add distclean - * scripts/w3mman/Makefile.in: add distclean - * scripts/Makefile.in: add distclean + * form.c: + Prevent overflow beyond the end of string in form_update_line(). + Bug-Debian: https://github.com/tats/w3m/issues/75 -2004-03-22 Fumitoshi UKAI <ukai@debian.or.jp> + * table.c: Prevent overflow beyond the end of string in skip_space(). + Bug-Debian: https://github.com/tats/w3m/issues/74 - * w3mimg/Makefile.in (distclean): rm -f w3mimg.a + * table.c: + Prevent overflow beyond the end of string in visible_length(). + Bug-Debian: https://github.com/tats/w3m/issues/73 -2004-03-22 Akihiro Sagawa <sagawa@sohgoh.net> + * libwc/wtf.c: + Prevent overflow beyond the end of string in wtf_strwidth(). + Bug-Debian: https://github.com/tats/w3m/issues/57 - * [w3m-dev 04046] - * configure.in (AC_W3M_IPv6): should check it after ext libs + * libwc/wtf.c: + Revert "Prevent overflow beyond the end of string in wtf_strwidth()". + This reverts commit d345c0950dfdef065b7377ecad0e4bc1d2601bf8. -2004-03-22 Akihiro Sagawa <sagawa@sohgoh.net> +2016-12-07 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 04045] - * Makefile.in (DEFUNS): need $(top_srcdir) + * file.c: Prevent heap-use-after-free in HTMLlineproc0(). + Bug-Debian: https://github.com/tats/w3m/issues/65 -2004-03-21 Fumitoshi UKAI <ukai@debian.or.jp> + * file.c: Prevent negative values for offset and pos in push_link(). + Bug-Debian: https://github.com/tats/w3m/issues/64 - * Makefile.in (install-po): fix for broken sh. - reported in [w3m-dev 04043] Re: w3m 0.5 + * file.c: Prevent overflow beyond the end of string in proc_mchar(). + Bug-Debian: https://github.com/tats/w3m/issues/59 -2004-03-13 Fumitoshi UKAI <ukai@debian.or.jp> + * libwc/wtf.c: + Prevent overflow beyond the end of string in wtf_strwidth(). + Bug-Debian: https://github.com/tats/w3m/issues/57 - * [w3m-dev 04041] spell-miss in configure - * acinclude.m4 (AC_W3M_M17N): fix help-string - suggested by sakane@d4.bsd.nes.nec.co.jp (Yoshinobu Sakane) +2016-12-05 Yixun Lan <dlan@gentoo.org> -2004-02-06 MANTANI Nobutaka <nobutaka@nobutaka.com> + * html.h: Explictily include <time.h> to avoid build err. + While disable ssl, we will got a undefine time_t err. + Bug-Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=601498 + Origin: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8ee43ba4e036db70fff258f3edb2f0335385e93f - * [w3m-dev 04038] --disable-m17n problem in form.c - * form.c (form_update_line): fix for disable-m17n +2016-12-05 Tatsuya Kinoshita <tats@debian.org> -2004-01-10 ABE Yuji <cbo46560@pop12.odn.ne.jp> + * table.c: + Prevent array index out of bounds for tridvalue in feed_table_tag(). + Bug-Debian: https://github.com/tats/w3m/issues/71 - * [w3m-dev 04030] PUSH_TAG macro - * table.c (PUSH_TAG): fixed problem in --disable-m17n + * table.c: Prevent negative array index in set_integered_width(). + Bug-Debian: https://github.com/tats/w3m/issues/70 -2003-12-09 WATANABE Katsuyuki <knabe@sannet.ne.jp> + * table.c: + Prevent array index out of bounds for tabattr in feed_table_tag(). + Bug-Debian: https://github.com/tats/w3m/issues/60 - * [w3m-dev 04025] mismatch message in ja.po - * po/ja.po: fix wrong messages + * file.c: Prevent negative array index in process_textarea(). + Bug-Debian: https://github.com/tats/w3m/issues/58 -2003-12-09 WATANABE Katsuyuki <knabe@sannet.ne.jp> + * file.c: + Prevent negative array index for marks in HTMLlineproc2body(). + Bug-Debian: https://github.com/tats/w3m/issues/61 - * [w3m-dev 04024] fix: drive letter - * url.c (parseURL2): fix for SUPPORT_DOS_DRIVE_PREFIX + * file.c: + Prevent negative value of row for pushTable() in HTMLlineproc0(). + Bug-Debian: https://github.com/tats/w3m/issues/67 -2003-12-09 YONETANI Tomokazu <qhwt@myrealbox.com> + * file.c: Prevent negative array index in getMetaRefreshParam(). + Bug-Debian: https://github.com/tats/w3m/issues/63 - * [w3m-dev 04022] $^ - * Makefile.in (DEFUNS): added - funcname.tab: don't use $^ - * w3mimg/Makefile.in (w3mimg.a): don't use $^ + * anchor.c: + Prevent negative array index for marks in shiftAnchorPosition(). + Bug-Debian: https://github.com/tats/w3m/issues/62 -2003-12-09 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> +2016-11-27 Kuang-che Wu <kcwu@google.com> - * [w3m-dev 04021] Deeply nested table - * file.c (completeHTMLstream): check obuf->table_level + * file.c: Fix uninitialized variable in process_img(). fix #44. + Bug-Debian: https://github.com/tats/w3m/issues/44 + Origin: https://github.com/tats/w3m/pull/50/commits/41a607b06e4475101de59e5c623b9e5f76594a21 -2003-10-26 Fumitoshi UKAI <ukai@debian.or.jp> + * menu.c: Fix menu buffer-overflow. + Origin: https://github.com/tats/w3m/pull/49/commits/7e1c05dd90cf42a308e854881ea3813aed000d2e - * Bug#217509: segfaults if TERM is not set - * terms.c (check_cygwin_console): check TERM==NULL - (set_tty): check TERM==NULL +2016-11-27 Tatsuya Kinoshita <tats@debian.org> -2003-10-23 ABE Yuji <cbo46560@pop12.odn.ne.jp> + * ChangeLog, NEWS: Add CVE IDs. + cf. https://security-tracker.debian.org/tracker/source-package/w3m + http://www.openwall.com/lists/oss-security/2016/11/24/1 - * [w3m-dev 04011] accessing to an `https' URI with a fragment via a proxy - * url.c (HTTPrequestURI): drop fragment - (openURL): don't clear pu->label +2016-11-20 Tatsuya Kinoshita <tats@debian.org> -2003-10-23 ABE Yuji <cbo46560@pop12.odn.ne.jp> + * NEWS: Update NEWS. - * [w3m-dev 04010] support for deprecated __ss_family - * acinclude.m4 (AC_W3M_IPv6): check __ss_family - * config.h.in: add HAVE_OLD_SS_FAMILY - * ftp.c (ftp_pasv): ifdef HAVE_OLD_SS_FAMILY +2016-11-19 Tatsuya Kinoshita <tats@debian.org> -2003-10-23 ABE Yuji <cbo46560@pop12.odn.ne.jp> + * NEWS: Update NEWS. - * [w3m-dev 04009] ./configure --disable-image problem - * file.c (loadHTMLstream): if defined(USE_M17N) +2016-11-18 Tatsuya Kinoshita <tats@debian.org> -2003-10-22 Fumitoshi UKAI <ukai@debian.or.jp> + * ChangeLog, NEWS: Add CVE IDs. + cf. https://security-tracker.debian.org/tracker/source-package/w3m + http://www.openwall.com/lists/oss-security/2016/11/18/3 - * [w3m-dev 04006] checking GC_version for libgc - reported by SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> - * acinclude.m4 (AC_W3M_GC): check GC_init instead of GC_version + * libwc/ucs.map: Fix type mismatch for pcsw_ucs_map_size. + cf. https://github.com/tats/w3m/issues/43 -2003-10-21 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + * libwc/ucs.c, libwc/ucs.map: + Prevent global-buffer-overflow in wc_any_to_ucs(). + Bug-Debian: https://github.com/tats/w3m/issues/43 [CVE-2016-9632] - * [w3m-dev 03996] HELP_DIR and funcname.tab - * configure.in (HELP_DIR): don't eval - * scripts/w3mhelp.cgi: subst @prefix@ for $helpdir +2016-11-17 Tatsuya Kinoshita <tats@debian.org> -2003-10-21 Fumitoshi UKAI <ukai@debian.or.jp> + * url.c: Prevent global-buffer-overflow in parseURL(). + Bug-Debian: https://github.com/tats/w3m/issues/41 [CVE-2016-9630] - * #include <openssl/...> - suggested by ABE Yuji <cbo46560@pop12.odn.ne.jp> - [w3m-dev 03998] problem about pkg-config check for OpenSSL - * html.h: #include <openssl/...> - * istream.c: ditto - * istream.h: ditto - * url.c: ditto + * file.c: Prevent deref null pointer in HTMLlineproc0(). + Bug-Debian: https://github.com/tats/w3m/issues/42 [CVE-2016-9631] -2003-10-20 ABE Yuji <cbo46560@pop12.odn.ne.jp> - - * [w3m-dev 04002] Re: function and w3m-control - * url.c (getURLScheme): accept numeric in scheme +2016-11-15 Tatsuya Kinoshita <tats@debian.org> -2003-10-18 Fumitoshi UKAI <ukai@debian.or.jp> + * table.c: Prevent deref null pointer in renderCoTable(). + Bug-Debian: https://github.com/tats/w3m/issues/20#issuecomment-260649537 - * [w3m-dev 03996] HELP_DIR and funcname.tab - reported by SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> - * configure.in: don't use posix shell syntax $(..) - * funcname.tab: deleted + * file.c, proto.h, table.c: + Prevent infinite recursion with nested table and textarea. + Bug-Debian: https://github.com/tats/w3m/issues/20#issuecomment-260590257 + [CVE-2016-9439] -2003-10-11 Fumitoshi UKAI <ukai@debian.or.jp> + * table.c: + Revert "Prevent infinite recursion with nested table and textarea". + This reverts commit f393faf55975a94217df479e1bd06ee4403c6958. - * scripts/Makefile.in (w3mhelp-funcname.pl): depends ../funcname.tab - * Makefile.in (IMGOBJS): deleted - (indep.o): depends on fm.h funcname1.h - (IMGDISPLAY): depends on w3mimg/w3mimg.a - (w3mimg/w3mimg.a): renamed from w3mimg - * acinclude.m4 (AC_W3M_IMAGE): modify IMBOBJS - * w3mimg/Makefile.in (AR): added - (RANLIB): added - (IMGOBJS): added - (w3mimg.a): added - -2003-10-11 qhwt@myrealbox.com - - * [w3m-dev 03990] Re: post-m17n merge problem? - * Makefile.in (MAN1): need $(top_srcdir) - (MAN1_JA): ditto - (LOBJS): depends on fm.h funcname1.h - (INFLATE): depends on $(ALIB) - (libwc/libwc.a): renamed from libwc - (IMGDISPLAY): depends on $(IMGOBJS) instead of w3mimg - depends on $(ALIB) - (w3mimgdisplay.o): depends on w3mimg/w3mimg.h - * acinclude.m4 (AC_W3M_M17N): WCTARGET is libwc/libwc.a - * configure.in (HELP_DIR): expand ${prefix} - -2003-10-08 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03985] Re: support for 307 Temporary Redirect - * file.c (loadGeneralFile): support 307 Temporary Redirect - -2003-10-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * fix build error --disbable-m17n - * config.h.in: undef USE_M17N, USE_UNICODE - * etc.c (url_unquote_conv): USE_M17N - * file.c (convertLine): USE_M17N - (loadHTMLStream): fix ifdef USE_IMAGE->USE_M17N - (loadBuffer): fix USE_M17N - (getNextPage): fix USE_M17N - * fm.h (USE_M17N): don't define USE_M17N in case LANG == JA - (this should be done by configure) - (wc_ces): dummy typedef - (wc_Str_conv): fix non-m17n macro args - (wc_Str_conv_strict): ditto - * ftp.c (loadFTPDir): fix undefined USE_M17N - * mimehead.c (decodeWord): ditto - (decodeMIME): ditto - * news.c (loadNewsgroup): ditto - * proto.h (convertLine): ditto - (loadGopherDir): ditto - (loadFTPDir): ditto - (loadNewsgroup): ditto - (decodeWord): ditto - (decodeMIME): ditto - (url_unquote_conv): ditto - * terms.c (SETCH): ditto - -2003-10-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * --with-imagelib request on [w3m-dev 03981] - from Mamoru KOMACHI <usata@sodan.ecc.u-tokyo.ac.jp> - * acinclude.m4 (AC_W3M_IMAGE): add --with-imagelib - -2003-10-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * fix problem reported on [w3m-dev 03981] - from Mamoru KOMACHI <usata@sodan.ecc.u-tokyo.ac.jp> - * configure.in: add AC_SUBST(HELP_DIR) - * Makefile.in (HELP_DIR): use AC_SUBT(HELP_DIR) - * scripts/Makefile.in: add PACKAGE, VERSION, DOMAIN - use PACKAGE instead of package: - CGIBIN_DIR,AUXBIN_DIR,CONF_DIR - add HELP_DIR - add SUBDIRS - (install unstall): do $(SUBDIRS) - * scripts/multipart/Makefile.in: add PACKAGE,VERSION,DOMAIN - use PACKAGE instead of package: - CGIBIN_DIR,AUXBIN_DIR,CONF_DIR - add HELP_DIR - * scripts/w3mman/Makefile.in: add PACKAGE,VERSION,DOMAIN - use PACKAGE instead of package: - CGIBIN_DIR,AUXBIN_DIR,CONF_DIR - add HELP_DIR - add BIN_DIR, MAN1_DIR - LIB_TARGETS->CGIBIN_TARGETS - fix INSTALL_MAN - * scripts/w3mman/w3mman.1.in: - change @LIB_DIR@ to @libexecdir@/@PACKAGE@/cgi-bin/ - -2003-10-01 Akira TAGOH <at@gclab.org> - - * acinclude.m4 (AC_W3M_SSL): use PKG_CHECK_MODULES - -2003-09-29 Fumitoshi UKAI <ukai@debian.or.jp> - - * Makefile.in (distclean): remove posubst - * Makefile.in (functable.c): fix cannot open file `b' for reading - -2003-09-27 Fumitoshi UKAI <ukai@debian.or.jp> - - * funcname.tab: generated from DEFUN - * main.c menu.c: use DEFUN - * conv.c ucs_eucjp.h ucs_latin1.h: deleted - -2003-09-26 Fumitoshi UKAI <ukai@debian.or.jp> - - * add posubst, compile-time message l10n - * Makefile.in: @POSUBST@ - * acinclude.m4(AC_W3M_M17N): add POSUBST, POLANG - --enable-messagel10n - * configure.in (W3M_LANG): subst - (AM_GET_GNUTEXT): if messagel10n enabled, don't use NLS - (AC_OUTOUT): add posubst, chmod +x - * menu.c: remove if LANG == JA messages - * rc.c: ditto - -2003-09-26 Fumitoshi UKAI <ukai@debian.or.jp> - - * remove ./intl - * configure.in: external fo AM_GNU_GETTEXT - * Makefile.in: remove intl, INTLTARGET - -2003-09-25 Fumitoshi UKAI <ukai@debian.or.jp> - - * fix [w3m-dev 03975] Re: gettextize - * Makefile.in: add INTLTARGET, NLSTARGET - cleanup - * configure.in: INTLTARGET=intl,NLSTARGET=po if USE_NLS - -2003-09-25 Fumitoshi UKAI <ukai@debian.or.jp> - - * gettextize - * Makefile.in: updated - * menu.c: gettextize - * rc.c: gettextize - * intl/.cvsignore: added - * po/.cvsignore: added - * po/Makevars: added - * po/Makevars.template: removed - * po/POTFILES.in: updated - * po/w3m.pot: created - * po/ja.po: created - -2003-09-24 Fumitoshi UKAI <ukai@debian.or.jp> - - * based on [w3m-dev 03970] - SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> - * acinclude.m4 (AC_W3M_IMAGE): add IMGTARGETS - * w3mimg/Makefile.in (all): use @IMGTARGETS@ - -2003-09-24 Fumitoshi UKAI <ukai@debian.or.jp> - - * gettextize initial modifications - * configure.in Makefile.in aclocal.m4 config.h.in: - update to support NLS - * ABOUT-NLS: added - * config.rpath: added - * mkinstalldirs: added - * intl/: added - * po/: added - * fm.h: NLS support - * main.c (main): add gettext trigger - -2003-09-23 Fumitoshi UKAI <ukai@debian.or.jp> - - * more autoconfisicate - -2003-09-23 Fumitoshi UKAI <ukai@debian.or.jp> - - * merge m17n patch (w3m-0.4.1-m17n-20030308.patch.gz) - * add libwc - -2003-09-23 Fumitoshi UKAI <ukai@debian.or.jp> - - * version.c.in: cvs version - -2003-09-23 Fumitoshi UKAI <ukai@debian.or.jp> - - * w3m 0.4.2 - * version.c.in: update - * doc/README: version 0.4.2, release date - * doc-jp/README: ditto - * NEWS: update - -2003-09-23 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03967] Re: IPv4/IPv6 only option patch - * NEWS: options: -4, -6 - * fm.h (DNS_ORDER_INET_ONLY): added - (DNS_ORDER_INET6_ONLY): added - (ai_family_order_table): [3]->[7] - * main.c (fusage): add -4/-6 - (main): -4/-6 mapped to dns_order=4/dns_order=6 - * rc.c (dnsorders): add DNS_ORDER_INET_ONLY, DNS_ORDER_INET6_ONLY - * url.c (dnsorders): add 3-6 - -2003-09-16 Hiroyuki Ito <hito@crl.go.jp> - - * [w3m-dev 03960] - * acinclude.m4 (AC_W3M_CHECK_VER): fix version check logic - -2003-08-30 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03958] w3mimgdisplay on jfbterm - * w3mimg/fb/fb_w3mimg.c (w3mimg_fbopen): check TERM=jfbterm - -2003-08-29 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03957] Location: from local-CGI - * file.c (loadGeneralFile): don't parse header for local file - redirected by Location: from local-CGI + * anchor.c: Prevent deref null pointer in shiftAnchorPosition(). + Bug-Debian: https://github.com/tats/w3m/issues/40 [CVE-2016-9629] -2003-08-12 TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> +2016-11-14 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03950] rel attribute of anchor tag - * html.c (ALST_A): add ATTR_REL - (MAXA_A): +1 - -2003-07-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03945] Re: application/xhtml+xml support - * Makefile.in (ETC_DIR): added - (CONF_DIR): added - (DEFS): add CONF_DIR - (MAKE_ARGS): add CONF_DIR - * config.h.in (SYS_MAILCAP): use CONF_DIR - (SYS_URIMETHODMAP): use CONF_DIR - * func.c (sys_current_keymap_file): added - (interpret_keymap): added - (initKeymap): use interpret_keymap - (interpret_mouse_action): added - (initMouseAction): use interpret_mouse_action - * indep.c (w3m_conf_dir): added - * indep.h (w3m_conf_dir): added - * menu.c (interpret_menu): added - (initMenu): use interpret_menu - * proto.h (confFile): added - * rc.c (init_rc): read config file by interpret_rc - (confFile): added - -2003-07-23 Takahashi Youichirou <nikuq@hk.airnet.ne.jp> - - * [w3m-dev 03942] Save history - * history.c (saveHistory): check tmpfile write error - -2003-07-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03941] fix character encoding for 'v' - * main.c (vwSrc): use document_code as DisplayCode - -2003-07-23 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> - - * [w3m-dev 03939] next/prev visited link - * funcname.tab (NEXT_VISITED): added - (PREV_VISITED): added - * main.c (_nextA): added - (_prevA): added - (nextVA): added - (prevVA): added - * proto.h (nextVA): added - (prevVA): added - * doc/README.func (NEXT_VISITED): added - (PREV_VISITED): added - * doc-jp/README.func (NEXT_VISITED): added - (PREV_VISITED): added - * NEWS: func: NEXT_VISITED, PREV_VISITED - + * file.c: Prevent null pointer deref due to bad form id. + Bug-Debian: https://github.com/tats/w3m/issues/39 [CVE-2016-9628] -2003-07-14 Hiroyuki Ito <hito@crl.go.jp> + * display.c, file.c, fm.h, symbol.c: + Prevent array index out of bounds for symbol. + Bug-Debian: https://github.com/tats/w3m/issues/38 [CVE-2016-9627] - * [w3m-dev 03938] clear region margin - * w3mimgdisplay.c (clearMargin): added - (GetOption): add -margin - (ClearImage): clear margin - * w3mi,g/w3mimg.h (w3mimg_op): clear_margin - * w3mimg/fb/fb.c (fb_clear): x,y must be >= 0 - * w3mimg/x11/x11_w3mimg.c (x11_clear): x,y must be >= 0 - -2003-07-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03937] <center> in <table> - * table.c (feed_table_tag): fix <center>,</center>,<div>,</div>, - <p>,<br>,<nobr>,</nobr>,<wbr> - check_rowcol() for <img> - -2003-07-10 Fumitoshi UKAI <ukai@debian.or.jp> - - * w3mimg/fb/fb_img.h (get_image_size): add missing prototypes - * w3mimg/fb/fb.c (fb_clear): unused variable `j' - -2003-07-09 Hiroyuki Ito <hito@crl.go.jp> - - * [w3m-dev 03935] Re: clear image - * w3mimg/fb/fb.c (fb_get_packed_color): added - (fb_image_pset): use fb_get_packed_color - (fb_image_fill): use fb_get_packed_color - (fb_clear): use tmp to store pixels +2016-11-13 Tatsuya Kinoshita <tats@debian.org> -2003-07-09 ABE Yuji <cbo46560@pop12.odn.ne.jp> + * file.c: + Prevent null pointer dereference in HTMLlineproc2body for textarea_int. + Bug-Debian: https://github.com/tats/w3m/issues/32#issuecomment-260170163 - * [w3m-dev 03934] Re: clear image - * w3mimg/x11/x11_w3mimg.c (x11_clear): s/FALSE/False/ - -2003-07-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03931] Re: clear image - * w3mimgdisplay.c (ClearImage): offset - * w3mimg/fb/fb.c (fb_clear): memcpy by pixel_size - -2003-07-08 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03929] clear image - * image.c (syncImage): added - (drawImage): rewrite using syncImage() - (clearImage): use clear image command (6) - * w3mimgdisplay.c: change protocol - 2 => terminate drawing - 6 => clear image - (main): '2' calls TermImage() - '6' calls ClearImage() - TermImage() when exit - (TermImage): renamed from ClearImage - (ClearImage): rewritten to call w_op->clear() - * w3mimg.h/w3mimg.h (w3mimg_op): add clear() - * w3mimg/fb/fb.c (fb_clear): added - * w3mimg/fb/fb.h (fb_clear): added - * w3mimg/fb/fb_img.c (fb_image_clear): added - * w3mimg/fb/fb_w3mimg.c (w3mfb_clear): added - (w3mimg_fbopen): initialize wop->clear - * w3mimg/x11/x11_w3mimg.c (x11_clear): added - (w3mimg_x11open): initialize wop->clear +2016-11-12 Tatsuya Kinoshita <tats@debian.org> -2003-07-08 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * NEWS: Update NEWS. - * [w3m-dev 03927] deflate - * file.c (compression_decoder): .deflate for application/x-deflate's - extension + * table.c: Prevent infinite recursion with nested table and textarea. + Bug-Debian: https://github.com/tats/w3m/issues/20 -2003-06-19 Fumitoshi UKAI <ukai@debian.or.jp> +2016-11-09 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03916] Re: charset attribute of anchor tag - requested by TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> - for emacs-w3m - * html.c (ALST_A): add ATTR_CHARSET - (MAXA_A): +1 + * table.c: Check indent_level to prevent infinite recursion. + Bug-Debian: https://github.com/tats/w3m/issues/37 [CVE-2016-9626] -2003-06-18 ABE Yuji <cbo46560@pop12.odn.ne.jp> +2016-11-07 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03914] a fragment in the Referer URI - * url.c (otherinfo): strip URI fragment + * file.c: Prevent infinite recursion in HTMLlineproc0. + Bug-Debian: https://github.com/tats/w3m/issues/36 [CVE-2016-9625] -2003-06-13 Hiroyuki Ito <hito@crl.go.jp> + * NEWS, w3m-doc/install.html.in: + Update documents for included w3mdict.cgi. - * [w3m-dev 03913] fix gif animation support - * w3mimg/fb/fb_gdkpixbuf.c (fb_image_load): fix gif animation - * w3mimg/x11/x11_w3mimg.c (x11_load_image): ditto +2016-11-07 ITOH Yasufumi <itohy@NetBSD.org> -2003-05-15 Akinori Ito <aito@fw.ipsj.or.jp> + * main.c: Fix suspend (^Z) behavior. + Suspend the job w3m belongs to, not w3m only. + Signed-off-by: Thomas Klausner <wiz@NetBSD.org> + Bug-Debian: https://github.com/tats/w3m/pull/34 + Origin: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/www/w3m/patches/patch-ab?rev=1.4&content-type=text/x-cvsweb-markup - * [w3m-dev 03902] Re: table rendering - * table.c (check_relative_width): check n_leftcell - check w <= r +2016-11-07 Tatsuya Kinoshita <tats@debian.org> -2003-05-14 ABE Yuji <cbo46560@pop12.odn.ne.jp> + * form.c: Prevent dereference near-null pointer in formUpdateBuffer. + Bug-Debian: https://github.com/tats/w3m/issues/35 [CVE-2016-9624] - * [w3m-dev 03901] body with status-code 401 - * file.c (loadGeneralFile): show page when 401, 407 + * file.c: Prevent crash after allocate string of negative size. + Bug-Debian: https://github.com/tats/w3m/issues/33 [CVE-2016-9623] -2003-05-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * file.c: Prevent memory exhausted due to repeat appending "</table>". + Bug-Debian: https://github.com/tats/w3m/issues/23 [CVE-2016-9633] - * [w3m-dev 03900] Re: table rendering - * table.c (check_relative_width): j loop starts from 0 + * file.c: Prevent null pointer dereference in HTMLlineproc2body. + Bug-Debian: https://github.com/tats/w3m/issues/32 [CVE-2016-9622] -2003-05-14 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> +2016-10-31 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03899] minor fixes - * acinclude.m4: fix s/SSLCFLAGS/SSL_CFLAGS/ - * doc/README: update, fix typo - * doc-jp/FAQ.html: update, fix URL - * doc-jp/README: update - * doc-jp/README.SSL: update - * doc-jp/README.cookie: update - * doc-jp/README.img: update URL - * doc-jp/README.migemo: update - * doc-jp/STORY.html: fix URL + * table.c, table.h, textlist.h: + Revert "Treat table height as int instead of short". + This reverts commit 0c9aebb26a16ad3acc69b2e87ffd216d43879cb6. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842623 -2003-05-14 Akinori Ito <aito@fw.ipsj.or.jp> +2016-10-30 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03898] Re: table rendering - * table.c (check_relative_width): added - (set_table_matrix): use check_relative_width + * NEWS: Update NEWS. -2003-05-13 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * fm.h: Set use_dictcommand to 1 by default. - * [w3m-dev 03896] html_quote in textarea in frame - * frame.c (createFrameFile): fix html_quote in textarea in frame + * scripts/Makefile.in: Add w3mdict.cgi to LIB_TARGETS. -2003-05-13 Hironori SAKAMOTO <h-saka@lsi.nec.co.jp> + * config.h.dist: Typo fix for USE_DICT. - * [w3m-dev 03895] type=image support of pre_form - * form.c (loadPreFOrm): add image - (preFormUpdateBuffer): add FORM_INPUT_IMAGE - * doc/README.pre_form: update - * doc-jp/README.pre_form: ditto +2016-10-30 Boruch Baum <boruch-baum@gmx.com> -2003-05-11 Fumitoshi UKAI <ukai@debian.or.jp> + * scripts/w3mdict.cgi: Add w3mdict.cgi to use a dictd dictionary query. + Bug-Debian: https://github.com/tats/w3m/issues/30 - * [w3m-dev 03891] Re: urimethodmap and relative URL - * url.c (parseURL2): copy scheme part into pu->file when SCM_UNKNOWN +2016-10-09 Tatsuya Kinoshita <tats@debian.org> -2003-05-07 Hiroyuki Ito <hito@crl.go.jp> + * form.c: + Fix incorrect dereference in formUpdateBuffer when MENU_SELECT. + cf. https://github.com/tats/w3m/commit/ec9eb22e008a69ea9dc21fdca4b9b836679965ee + https://github.com/tats/w3m/issues/28 - * [w3m-dev 03889] Progress bar in Download List Panel - * main.c (DownloadListBuffer): calculation in double +2016-10-08 Tatsuya Kinoshita <tats@debian.org> -2003-05-07 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + * table.c, table.h, textlist.h: + Treat table height as int instead of short. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838952 - * [w3m-dev 03888] autodetect ssl - * acinclude.m4 (AC_W3M_SSL): use SSL_* - * configure.in: move AC_W3M_SSL after AC_W3M_EXTLIBS + * form.c: Prevent global-buffer-overflow write in formUpdateBuffer. + Bug-Debian: https://github.com/tats/w3m/issues/29 [CVE-2016-9429] [CVE-2016-9621] -2003-05-03 Hiroyuki Ito <hito@crl.go.jp> + * form.c: Fix null pointer dereference in formUpdateBuffer. + Bug-Debian: https://github.com/tats/w3m/issues/28 [CVE-2016-9443] - * [w3m-dev 03887] Re: I-search problem - * main.c (dispincsrch): don't move cursor if not found. +2016-08-30 Kuang-che Wu <kcwu@google.com> -2003-04-27 qhwt@myrealbox.com + * Str.c: Fix potential heap buffer corruption due to Strgrow. + Origin: https://github.com/tats/w3m/pull/27 [CVE-2016-9442] - * [w3m-dev 03886] Re: POSTing patch (Re: User-Agent for Bonus/2ch.cgi) - * Bonus/2ch.cgi: posting +2016-08-29 Tatsuya Kinoshita <tats@debian.org> -2003-04-20 qhwt@myrealbox.com + * anchor.c: + Prevent segfault due to buffer overflows in addMultirowsForm. + Bug-Debian: https://github.com/tats/w3m/issues/21 [CVE-2016-9425] + Bug-Debian: https://github.com/tats/w3m/issues/26 [CVE-2016-9428] - * [w3m-dev 03883] User-Agent for Bonus/2ch.cgi - * Bonus/2ch.cgi: User-Agent + * form.c: Prevent segfault for formUpdateBuffer. + Bug-Debian: https://github.com/tats/w3m/issues/13#issuecomment-242981906 -2003-04-19 Fumitoshi UKAI <ukai@debian.or.jp> +2016-08-24 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03882] Re: Bug#189460: w3m: <q> tag is not recognized - * file.c (HTMLtagproc1): add HTML_Q, HTML_N_Q - * html.c (TagMAP): add "q", "/q" - * html.h (HTML_Q): added - (HTML_N_Q): added - * tagtable.tab: add q, /q + * table.c: Prevent segfault with malformed table_alt. + Bug-Debian: https://github.com/tats/w3m/issues/24 [CVE-2016-9441] -2003-04-15 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * form.c: Prevent segfault for formUpdateBuffer. + Bug-Debian: https://github.com/tats/w3m/issues/22 [CVE-2016-9440] - * [w3m-dev 03880] Re: convert \ -> / in URL - * Bonus/backslash_to_slash.cgi: added + * table.c: Truncate max_width for renderTable. + Bug-Debian: https://github.com/tats/w3m/issues/25 [CVE-2016-9426] -2003-04-15 Masanori Kobayasi <zap03216@nifty.ne.jp> +2016-08-20 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03878] I-search problem - * linein.c (inputLineHistSearch): don't call incrfunc twice - * main.c (dispincsrch): fix search loop problem + * file.c, parsetagx.c: Fix uninitialised values for <i> and <dd>. + Bug-Debian: https://github.com/tats/w3m/issues/16 + [CVE-2016-9435] [CVE-2016-9436] -2003-04-14 Fumitoshi UKAI <ukai@debian.or.jp> + * file.c, parsetagx.c: + Revert "Fix uninitialised values for <i> and <dd>". + This reverts commit 0fba2f1a6eb6861206ad120a02af2643938082cd. + cf. https://github.com/tats/w3m/commit/0fba2f1a6eb6861206ad120a02af2643938082cd#commitcomment-18703355 - * [w3m-dev 03875] Re: SSL & compressed stream - * file.c (loadGeneralFile): check t_buf != NULL - * url.c (openURL): don't initialize URLFile here - (init_stream): 0 clear URLFile +2016-08-19 Tatsuya Kinoshita <tats@debian.org> -2003-04-14 Fumitoshi UKAI <ukai@debian.or.jp> + * file.c, parsetagx.c: Fix uninitialised values for <i> and <dd>. + Bug-Debian: https://github.com/tats/w3m/issues/16 - * [w3m-dev 03873] SSL & compressed stream - * file.c (loadGeneralFile): always update ssl_certificate - * url.c (openURL): initialize URLFile +2016-08-18 Kuang-che Wu <kcwu@google.com> -2003-04-12 NAKAJIMA Mikio <minakaji@osaka.email.ne.jp> + * table.c: Fix table rowspan and colspan. + Origin: https://github.com/tats/w3m/pull/19 + Bug-Debian: https://github.com/tats/w3m/issues/8 [CVE-2016-9422] - * [w3m-dev 03872] goodict.cgi - * Bonus/goodict.cgi: adapt new goo dict web page +2016-08-18 Tatsuya Kinoshita <tats@debian.org> -2003-04-11 Fumitoshi UKAI <ukai@debian.or.jp> + * file.c: Prevent segfault with malformed input_alt. + Bug-Debian: https://github.com/tats/w3m/issues/18 [CVE-2016-9438] - * configure.in (AUXBIN_TARGETS): don't reset, move to head + * file.c: Prevent segfault with incorrect button type. + Bug-Debian: https://github.com/tats/w3m/issues/17 [CVE-2016-9437] -2003-04-10 Fumitoshi UKAI <ukai@debian.or.jp> +2016-08-17 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03870] Re: configure --help - * acinclude.m4 (AC_W3M_IMAGE): fix help message - (AC_W3M_SSL): fix typo + * file.c: Prevent segfault with incorrect form_int fid. + Bug-Debian: https://github.com/tats/w3m/issues/15 [CVE-2016-9434] -2003-04-09 Fumitoshi UKAI <ukai@debian.or.jp> + * libwc/iso2022.c: Prevent segfault when iso2022 parsing. + Bug-Debian: https://github.com/tats/w3m/issues/14 [CVE-2016-9433] - * [w3m-dev 03865] Re: configure --help - * acinclude.m4 (AC_W3M_ANSI_COLOR): depends USE_COLOR - (AC_W3M_BG_COLOR): depends USE_COLOR - (AC_W3M_W3MMAILER): depends external_uri_loader - * fm.h: undef USE_BG_COLOR ifndef USE_COLOR + * form.c: Prevent segfault for formUpdateBuffer. + Bug-Debian: https://github.com/tats/w3m/issues/13 [CVE-2016-9432] -2003-04-09 Fumitoshi UKAI <ukai@debian.or.jp> + * file.c, form.c: + Prevent negative array index for selectnumber and textareanumber. + Bug-Debian: https://github.com/tats/w3m/issues/12 [CVE-2016-9424] - * [w3m-dev 03864] doc/README - * doc/README doc-jp/README: update +2016-08-16 Tatsuya Kinoshita <tats@debian.org> -2003-04-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * file.c: Truncate large values of table attributes. + Bug-Debian: https://github.com/tats/w3m/issues/11 - * [w3m] local cookie string is too easy to guess. - * fm.h (Local_cookie): deleted - * local.c (Local_cookie): static - (writeLocalCookie): localCookie() - (setLocalCookie): deleted - (localCookie): added - * main.c (main): delete srand48(), setLocalCookie() - (adBmark): s/Local_cookie/localCookie()/ - * proto.h (setLocalCookie): deleted - (localCookie): added - * rc.c (load_option_panel): s/Local_cookie/localCookie()/ +2016-08-15 Tatsuya Kinoshita <tats@debian.org> -2003-04-08 Fumitoshi UKAI <ukai@debian.or.jp> + * form.c: Prevent segfault for formUpdateBuffer. + Bug-Debian: https://github.com/tats/w3m/issues/9 [CVE-2016-9423] + Bug-Debian: https://github.com/tats/w3m/issues/10 [CVE-2016-9431] - * [w3m-dev 03858] configure cleanup - * acinclude.m4 configure.in: update +2016-08-09 Tatsuya Kinoshita <tats@debian.org> -2003-04-08 Fumitoshi UKAI <ukai@debian.or.jp> + * file.c: Prevent segfault with malformed input type. + Bug-Debian: https://github.com/tats/w3m/issues/7 [CVE-2016-9430] - * [w3m-dev 03856] <gc.h> - * backend.c entity.c fm.h hash.c indep.c indep.h matrix.c - textlist.c: s/"gc.h"/<gc.h>/ +2016-08-08 Tatsuya Kinoshita <tats@debian.org> -2003-04-08 ABE Yuji <cbo46560@pop12.odn.ne.jp> + * Makefile.in, configure, configure.ac, scripts/w3mman/Makefile.in: + Install German manpages. - * [w3m-dev 03849] fix no INET6 - * ftp.c: no need ifdef INET6 +2016-08-08 Markus Hiereth <post@hiereth.de> -2003-04-08 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * doc-de/MANUAL.html, doc/MANUAL.html: + Update MANUAL.html in English and German. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772341#90 - * [w3m-dev 03846] fix use_history - * main.c (main): move loadHistory + * doc-de/FAQ.html, doc/FAQ.html: Update FAQ.html in English and German. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772341#85 -2003-04-08 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * scripts/w3mman/w3mman.1.in, scripts/w3mman/w3mman.de.1.in: + Update manpage for w3mman in English and German. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772341#80 - * [w3m-dev 03844] w3mhelp.cgi update - * scripts/w3mhelp-funcdesc.en.pl.in: add %menu_funcdesc - * scripts/w3mhelp-funcdesc.ja.pl.in: add %menu_funcdesc - update %title - * scripts/w3mhelp-funcname.pl.in: add %menu_funcname - add %menu_keyfunc - * scripts/w3mhelp.cgi.in: modified for menu - link to keymap + * doc-de/w3m.1, doc/w3m.1: + Update manpage for w3m in English and German. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772341#75 -2003-04-07 Fumitoshi UKAI <ukai@debian.or.jp> +2016-07-18 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03843] cleanup macros - * config.h.dist config.h.in etc.c file.c fm.h ftp.c linein.c - main.c rc.c: - delete EMACS_LIKE_LINEEDIT, VI_PREC_NUM, LABEL_TOPLINE, - NEXTPAGE_TOPLINE, FTPPASS_HOSTNAMEGEN - use_mark default FALSE - emacs_like_lineedit default FALSE - vi_prec_num default FALSE - add UseHistory, use_history - * NEWS: rc: use_history + * NEWS: Update NEWS. -2003-04-05 ABE Yuji <cbo46560@pop12.odn.ne.jp> + * fm.h: Set default_url to 1 by default. - * [w3m-dev 03838] W3M_LIBS splitted from LIBS - * Makefile.in (W3M_LIBS): added - * acinclude.m4 (AC_W3M_TERMLIB): use W3M_LIB - (AC_W3M_SSL): ditto - * configure.in (W3M_LIBS): added +2016-06-20 Tatsuya Kinoshita <tats@debian.org> -2003-04-04 Hiroyuki Ito <hito@crl.go.jp> + * doc-de/README.func, scripts/w3mhelp-funcdesc.de.pl.in: + Trim trailing spaces. - * [w3m-dev 03837] Re: gif animation with no delay_time - * w3mimg/fb/fb_gdkpixbuf.c (get_animation_size): add delay - check delay_time - (get_image_size): no need delay time - (fb_image_load): check delay - (draw): no bg - * w3mimg/fb/fb_w3mimg.c (w3mfb_show_image): delete delay skip loop - * w3mimg/x11/x11_w3mimg.c (get_animation_size): add delay - check delay_time - (x11_load_image): check delay - (x11_get_image_size): no need delay time +2016-06-20 Markus Hiereth <post@hiereth.de> -2003-03-28 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + * doc-de/README.func, scripts/w3mhelp-funcdesc.de.pl.in: + Update German help messages. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765682#47 - * doc(-jp)/keymap.default: ';' is quoted +2016-06-19 Tatsuya Kinoshita <tats@debian.org> -2003-03-28 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + * doc-de/README.func, scripts/w3mhelp-funcdesc.de.pl.in: + Convert German help messages to UTF-8. - * Makefile.in: distclean removes core + * main.c: Update description of SOURCE and VIEW. -2003-03-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> +2016-06-19 Markus Hiereth <post@hiereth.de> - * [w3m-dev 03836] CFLAGS for SSL in configure - * acinclude.m4 (AC_W3M_SSL): add -I$dir/include to CFLAGS + * doc-de/README.func, doc/README.func: + Update description of SOURCE and VIEW. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765682#37 -2003-03-28 ABE Yuji <cbo46560@pop12.odn.ne.jp> +2016-06-19 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03834] Re: gif animation with no delay_time - * w3mimg/x11/x11_w3mimg.c (x11_load_image): fix delay check + * NEWS: Update NEWS. -2003-03-27 ABE Yuji <cbo46560@pop12.odn.ne.jp> + * doc-de/README.func: Update German messages. - * [w3m-dev 03833] gif animation with no delay_time - * w3mimg/fb/fb_w3mimg.c (w3mfb_show_image): skip delay<=0 - * w3mimg/x11/x11_w3mimg.c (x11_image): add delay - (x11_img_new): initialize delay - (x11_load_image): initialize delay - (x11_show_image): jump to last image if delay<=0 + * doc/README.func, main.c, menu.c: Update English messages. -2003-03-27 WATANABE Katsuyuki <knabe@sannet.ne.jp> + * doc-jp/README.func, scripts/w3mhelp-funcdesc.ja.pl.in: + Update Japanese help messages. - * [w3m-dev 03831] fix typo - * acinclude.m4 (AC_W3M_LANG): SYSTEM_CODE - * configure.in: fix typo CYGIN +2016-06-19 Markus Hiereth <post@hiereth.de> -2003-03-27 Hiroyuki Ito <hito@crl.go.jp> + * doc-de/README.func, scripts/w3mhelp-funcdesc.de.pl.in: + Update German help messages. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765682 - * [w3m-dev 03830] Image size of gif animation - * w3mimg/fb/fb_gdkpixbuf.c (get_animation_size): added - (get_image_size): use get_animation_size() - (fb_image_load): ditto - * w3mimg/x11/x11_w3mimg.c (get_animation_size): added - (x11_load_image): use get_animation_size() - (x11_get_image_size): ditto + * doc/README.func, scripts/w3mhelp-funcdesc.en.pl.in: + * scripts/w3mhelp.cgi.in: Update English help messages. -2003-03-25 Hiroyuki Ito <hito@crl.go.jp> +2016-05-11 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03829] w3mimgdisplay -anim - * w3mimgdisplay.c (maxAnim): added, default 100 - (main): add --anim option, w_op->max_anim - * w3mimg/w3mimg.h (w3mimg_op): add max_anim - * w3mimg/fb/fb_gdkpixbuf.c (fb_image_load): add max_anim - * w3mimg/fb/fb_img.h (fb_image_load): add max_anim args - * w3mimg/fb/fb_imlib2.c (fb_image_load): add max_anim args - * w3mimg/fb/fb_w3mimg.c (w3mfb_load_image): pass max_anim - * w3mimg/x11/x11_w3mimg.c (x11_load_image): max_anim + * config.guess, config.sub: + Update config.* with autotools-dev 20160430.1. -2003-03-24 Daiki Ueno <ueno@unixuser.org> +2016-04-14 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03828] possible typo in nextA - * main.c (nextA): fix typo? + * doc-de/README.func, doc-jp/README.func, doc/README.func: + * w3m-doc/sample/keymap.cgi: Cleanup obsolete INIT_MAILCAP. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=820902 -2003-03-22 Fumitoshi UKAI <ukai@debian.or.jp> + * NEWS: Update NEWS. - * [w3m-dev 03827] Re: checking for GC_version... no - * configure.in: add dl for extlibs +2016-04-08 Tatsuya Kinoshita <tats@debian.org> -2003-03-20 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * libwc/johab.c: Fix segfault on bogus text for wc_N_to_johab1. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=820373 - * [w3m-dev 03825] re-anchor for fold line - * anchor.c (reAnchorPos): fix for fold line +2016-04-07 Tatsuya Kinoshita <tats@debian.org> -2003-03-20 Fumitoshi UKAI <ukai@debian.or.jp> + * libwc/map/big5_ucs.map, libwc/map/cns11643_ucs.map: + * libwc/map/gb12345_ucs.map, libwc/map/gb2312_ucs.map: + * libwc/map/gbk_ucs.map, libwc/map/hkscs_ucs.map: + * libwc/map/jisx0208x0212x0213_ucs.map, libwc/map/ksx1001_ucs.map: + * libwc/map/sjis_ext_ucs.map, libwc/map/uhc_ucs.map, libwc/ucs.c: + * libwc/ucs.map: Fix segfault on bogus text for wc_any_to_ucs. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=820162 - * [w3m-dev-en 00910] Re: autoconf: env MAKE not respected - * Makefile.in (SET_MAKE): added - (SHELL): added +2016-04-03 Tatsuya Kinoshita <tats@debian.org> -2003-03-19 Fumitoshi UKAI <ukai@debian.or.jp> + * doc/FAQ.html, doc/MANUAL.html: Update English documents. - * [w3m-dev-en 00908] Re: autoconf: --without-migemo is a nop - * acinclude.m4 (AC_W3M_MIGEMO): dont define USE_MIGEMO - when with_migemo=no +2016-04-03 Markus Hiereth <markus.hiereth@freenet.de> -2003-03-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * doc/FAQ.html, doc/MANUAL.html: Update English documents. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772341#25 - * [w3m-dev 03823] Re: etc.c: treatment for "%7E" is added to expandName() - * url.c (parseURL2): file unquote - * etc.c (expandName): revert previous changes +2016-04-02 Tatsuya Kinoshita <tats@debian.org> -2003-03-14 Fumitoshi UKAI <ukai@debian.or.jp> + * configure, configure.ac, doc-de/README.func, scripts/Makefile.in: + * scripts/w3mhelp-funcdesc.de.pl.in, scripts/w3mhelp.cgi.in: + Support German translated help messages (translation is in progress). + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765682 - * [w3m-dev 03822] Re: etc.c: treatment for "%7E" is added to expandName() - * etc.c (expandName): rewrite with strncasecmp + * doc-jp/w3m.1, doc/w3m.1: Update manpage footers to w3m 0.5.3. -2003-03-14 Fumitoshi UKAI <ukai@debian.or.jp> + * doc-jp/MANUAL.html, doc-jp/w3m.1, w3m-doc/outline.html.in: + * w3mhelp-lynx_ja.html.in, w3mhelp-w3m_ja.html.in: + Update Japanese documents for extbrowser4..9. - * [w3m-dev 03821] fix for pmake - * Makefile.in: use $(srcdir)/... instead of $< +2016-04-02 Justin B Rye <justin.byam.rye@gmail.com> -2003-03-13 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + * doc/FAQ.html, doc/MANUAL.html, doc/README.func, doc/menu.submenu: + * main.c, menu.c, scripts/w3mhelp-funcdesc.ja.pl.in: + * scripts/w3mhelp.cgi.in, w3mhelp-lynx_en.html.in: + * w3mhelp-w3m_en.html.in: English fixes. + cf. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772341#15 + Origin: https://lists.debian.org/debian-l10n-english/2014/12/msg00002.html + Origin: https://lists.debian.org/debian-l10n-english/2014/12/msg00030.html + Origin: https://lists.debian.org/debian-l10n-english/2015/02/msg00011.html - * etc.c: treatment for "%7E" is added to expandName() +2016-03-30 Leo Famulari <leo@famulari.name> -2003-03-13 Fumitoshi UKAI <ukai@debian.or.jp> + * url.c: Disable RC4. + Origin: http://git.savannah.gnu.org/cgit/guix.git/commit/?id=62339e2d493bf87a3aabe12e45458581e9705d83 - * [w3m-dev 03819] support cd build && ../configure - * Makefile.in: add VPATH - add MV - use $(top_srcdir), $<, $@ - * acinclude.m4 (AC_W3M_VERSION): use $srcdir - * configure.in (AC_W3M_VERSION): move - * mktable.c (main): basename +2016-03-29 Tatsuya Kinoshita <tats@debian.org> -2003-03-13 Fumitoshi UKAI <ukai@debian.or.jp> + * url.c: Fix variable is reassigned a value before the old one has + been used. - * Makefile.in (distclean): added + * regex.c: Fix printf format specifier mismatch when REGEX_DEBUG. -2003-03-13 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * w3mimg/fb/fb.c: Fix invalid braces when not Linux or FreeBSD. - * [w3m-dev 03818] fix autoconf - * Makefile.in (CGIBIN_DIR): added - (AUXBIN_DIR): added - (HELP_DIR): added - (RC_DIR): added - (MAKE_ARGS): added - (TARGET): use $(package) - (MAN1_TARGET): ditto - (install): use $(*_DIR) - * acinclude.m4 (AC_W3M_TERMLIB): added - (AC_W3M_GC): default search prefix /usr /usr/local $HOME - fix searches - (AC_W3M_SSL): fix bugs - * config.h (RC_DIR): remove tailing / - (SYS_MAILCAP): use ETC_DIR - (SYS_MIMETYPES): ditto - (USER_MIMETYPES): homedir - * configure.in: quote - (AC_W3M_TERMLIB): use - * Bonus/oldconfigure.sh: rewrite - -2003-03-12 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03816] --enable-lynx => --enable-keymap=lynx - * acinclude.m4 (AC_W3M_KEYMAP): --enable-lynx => --enable-keymap=lynx - * Bonus/oldconfigure.sh: ditto - -2003-03-12 Yuji Abe <cbo46560@pop12.odn.ne.jp> - - * [w3m-dev 03814] fix autoconf - * acinclude.m4: quote variables - * Bonus/oldconfigure.sh: configure using old config.param - -2003-03-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03812] fix autoconf - * acinclude.m4 (AC_W3M_IMAGE): default is autodetect x11,fb - -2003-03-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03810] fix autoconf - * acinclude.m4 (AC_W3M_EXTLIBS): use $dir - (AC_W3M_GC): PREFIX is optional - (AC_W3M_SSL): PREFIX is optional - with_ssl=yes, check usual dirs - use $dir - (AC_W3M_IPv6): use $dir - -2003-03-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03809] fix autoconf - * acinclude.m4 (AC_W3M_CHECK_VER): accept version like "1.9.13-2" - -2003-03-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03808] fix autoconf - * acinclude.m4 (AC_W3M_GC): --with-gc takes PREFIX - check include first - (AC_W3M_CHECK_VER): show checking message - (AC_W3M_IMAGE): if gdkpixbuf found, don't check imlib* - -2003-03-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * Makefile.in (MODEL): delete @W3M_TARGET@ - * configure.in: AC_SUBST(W3M_TARGET) - -2003-03-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * which: deleted - * makeallmomdel: deleted - -2003-03-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03804] fix autoconf - * acinclude.m4 (AC_W3M_MENU): default enabled - (AC_W3M_MOUSE): default enabled - (AC_W3M_COOKIE): default enabled - (AC_W3M_LANG): can't detect locale here. - autoconf set LANG=C - (AC_W3M_DIGEST_AUTH): default enabled - (AC_W3M_SSL): default enabled - * configure.in (AC_W3M_DIGEST_AUTH): added - -2003-03-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03804] fix autoconf - * config.h.in (EAMCS_LIKE_LINEEDIT): define - (VI_PREC_NUM): define - (USE_MARK): define - (LABEL_TOPLINE): define - (NEXTPAGE_TOPLINE): define - (FTPPASS_HOSTNAMEGEN): define - (SHOW_PARAMS): define - (VIEW_UNSEENOBJECTS): define - (ID_EXT): define - -2003-03-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03804] fix autoconf - * acinclude.m4 (AC_W3M_MODEL): deleted - (AC_W3M_COLOR): default enable - (AC_W3M_ANSI_COLOR): default enable - (AC_W3M_BG_COLOR): default enable - (AC_W3M_SHOW_PARAMS): deleted - (AC_W3M_DICT): default enable - (AC_W3M_HISTORY): default enable - (AC_W3M_VIEW_UNSEENOBJECTS): deleted - (AC_W3M_FORMAT_NICE): deleted - (AC_W3M_ID_EXT): deleted - (AC_W3M_FTPPASS_HOSTNAMEGEN): deleted - (AC_W3M_NNTP): default enabled - (AC_W3M_LANG): autodetect whether japanese is enabled - (AC_W3M_KANJI_SYMBOLS): default enabled - (AC_W3M_EMACS_LIKE_LINEEDIT): deleted - (AC_W3M_VI_PREC_NUM): deleted - (AC_W3M_MARK): deleted - (AC_W3M_LABEL_TOPLINE): deleted - (AC_W3M_NEXTPAGE_TOPLINE): deleted - (AC_W3M_SSL): fix without ssl - (AC_W3M_IMAGE): default enabled - (AC_W3M_XFACE): check uncompface - (AC_W3M_IPv6): enable_ipv6 if inet6 lib found - * configure.in (AC_PROG_CPP): added - -2003-03-11 Yuji Abe <cbo46560@pop12.odn.ne.jp> - - * [w3m-dev 03803] fix autoconf - * acinclude.m4 (AC_W3M_MIGEMO): add missing test - needs quote - (AC_W3M_SSL): delete x - -2003-03-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03802] fix autoconf - * acinclude.m4 (AC_W3M_CHECK_VER): warn only - -2003-03-11 Yuji Abe <cbo46560@pop12.odn.ne.jp> - - * [w3m-dev 03801] fix autoconf - * acinclude.m4 (AC_W3M_BG_COLOR): fix typo - (AC_W3M_KANJI_SYMBOLS): check enable_japanese != 'no' - (AC_W3M_KEYMAP): needs {} - (AC_W3M_EXTLIBS): don't modify libdir, use extlibdir - (AC_W3M_SSL): missing x - (AC_W3M_IMAGE): add AC_DEFINE(USE_IMAGE) - * config.h.in: s/USE_KANJI_SYMBOLS/KANJI_SYMBOLS/ - add SIZEOF_LONG_LONG - don't use //, use /* */ - * configure.in: add AC_CHECK_SIZEOF(long long, 0) - -2003-03-10 Fumitoshi UKAI <ukai@debian.or.jp> - - * autoconfiscate - * Makefile.in: added - * acinclude.m4: added - * aclocal.m4: added (generated from acinclude.m4 by aclocal) - * configure.in: added - * config.h.in: added - * config.guess: added - * config.sub: added - * .cvsignore: add Makefile config.cache config.log config.status - * configure: generated by autoconf - * gc/: deleted - * XMakefile: deleted - * XXMakefile: deleted - * NEWS: autoconficate - -2003-03-10 Fumitoshi UKAI <ukai@debian.or.jp> - - * version.c.in: cvs version - -2003-03-07 Fumitoshi UKAI <ukai@debian.or.jp> - - * w3m 0.4.1 - * version.c.in: update - * doc/README: version 0.4.1, release date - * doc-jp/README: ditto - * NEWS: update - -2003-03-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03794] displayBuffer() when CurrentTab == NULL. - * display.c (displayBuffer): check buf - * linein.c (inputLineHistSearch): check CurrentTab - (next_dcompl): check CurrentTab - (_editor): check CurrentTab - * main.c (resize_screen): check CurrentTab - -2003-03-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03793] incremental search fix - * main.c (dispincsrch): revert sbuf.pos fix - start from next position in next forward search - (srch): start from next position in forward saerch - if not found, restore original position - (srch_nxtprv): start from next position in next forward search - * search.c (forwardSearch): search from current position - -2003-03-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03792] URL match string - incremental search fix - * main.c (chkURLBuffer): allow - at end of URL string - (dispincsrch): start from current position in case of - incremental search - * search.c (forwardSearch): found if same position - (backwardSearch): ditto + * local.c: Fix uninitialized variable when not HAVE_PUTENV. -2003-03-03 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * w3mimgdisplay.c: Fix realloc mistake for DrawImage. - * [w3m-dev 03788] UFhalfclose - * file.c (UFhalfclose): closeNews() for SCM_NEWS,NNTP + * file.c: Fix mistake of unescape spaces for _doFileCopy. + cf. [w3m-dev-en 00751], [w3m-dev-en 00752] on 2002-06-09 -2003-02-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * url.c: Fix style of array index is used before limits check. + Bug: https://sourceforge.net/p/w3m/feature-requests/25/ - * [w3m-dev 03783] pipe to "command1 | command2" - * Bonus/utf8.cgi: added +2016-03-22 Tatsuya Kinoshita <tats@debian.org> -2003-02-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * menu.c, proto.h: Fix build failure when not USE_MOUSE for sgrmouse. + cf. https://twitter.com/naota344/status/711541592167854081 - * [w3m-dev 03784] ftp directory support - * ftp.c (AbortLoading): added - (KeyAbort): added - (openFTPStream): remove '~' in realpathname? - (loadFTPDir): remove '~' in realpathname? - keyabort - new ex_ftpdir_name_size_date() - add symlink information to flist - (XD_CTOD): deleted - (EX_COUNT_DIGIT): added - (ex_ftpdir_name_size_date): add **link - accept device file - loose date check for localized server +2016-03-20 Tatsuya Kinoshita <tats@debian.org> -2003-02-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * rc.c: Fix reverse ordered config parameters. - * [w3m-dev 03783] pipe to "command1 | command2" - * etc.c (myExtCommand): redirect to subshell - * main.c (pipeBuf): conv_to_system(cmd) - shell_quote() - set buf->filename, buf->buffername +2016-03-19 Tatsuya Kinoshita <tats@debian.org> -2003-02-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * doc/FAQ.html: Update FAQ for extbrowser. - * [w3m-dev 03782] real linenumber for EDIT and EDIT_SCREEN - * main.c (cur_real_linenumber): added - (editBf): use cur_real_linenumber instead of CUR_LINENUMBER - (editScr): ditto +2016-03-14 Tatsuya Kinoshita <tats@debian.org> -2003-02-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * po/de.po, po/ja.po, po/w3m.pot, po/zh_CN.po, po/zh_TW.po, rc.c: + Update PO strings for extbrowser2..9. - * [w3m-dev 03781] Debian Bug report logs - #181897: w3m submits query urls with "extra" - * main.c (_followForm): remove tailling '?' +2016-03-13 Tatsuya Kinoshita <tats@debian.org> -2003-02-25 Hironori SAKAMOTO <h-saka@lsi.nec.co.jp> + * acinclude.m4, configure: + Set firefox instead of mozilla to default browser. - * [w3m-dev-en 00891] Re: w3m 0.4 has been released! - * image.c (getCharSize): set W3M_TTY here, before Imgdisplay invoke - (openImgdisplay): no need setting W3M_TTY here + * po/Makefile.in.in, po/de.po, po/ja.po, po/w3m.pot, po/zh_CN.po: + * po/zh_TW.po: Update PO strings for extbrowser4..9. -2003-02-25 Fumitoshi UKAI <ukai@debian.or.jp> + * doc-jp/MANUAL.html, doc/MANUAL.html, fm.h, main.c, rc.c: + Add extbrowser4, extbrowser5, ..., and extbrowser9. + e.g. + - extbrowser8 url=%s && printf %s "$url" | xsel && printf %s "$url" | xsel -b & + - extbrowser9 mpv %s & + cf. https://github.com/spcmd/w3m - * version.c.in: cvs version +2016-02-28 Tatsuya Kinoshita <tats@debian.org> -2003-02-24 Fumitoshi UKAI <ukai@debian.or.jp> + * menu.c: Fix SIGFPE for ACCESSKEY. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=779092 - * w3m 0.4 - * version.c.in: update - * doc/README: version 0.4, release date - * doc-jp/README: ditto - * NEWS: update + * doc/README.func, main.c: Typo fix for ACCESSKEY. + cf. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=779092#5 -2003-02-24 patakuti@t3.rim.or.jp +2015-12-20 Franz Thoma <franz.thoma@tngtech.com> - * [w3m-dev 03772] Compilation error on Cygwin B20.1 - * terms.c (term_title): use Sprintf() instead of snprintf() - * doc-jp/README.cygwin doc/README.cygwin: add note about B20.1 + * w3mimg/x11/x11_w3mimg.c: Fix semi-transparent artifacts in w3m-img + when used with 32-bit color (e.g. urxvt). + imlib_render_image_on_drawable_at_size() tended to leave nasty + semi-transparent artifacts in 32-bit mode. Apparently, resizing an + image in 32-bit mode affects the alpha channel even if there is no + transparency in the image. With this patch, resizing is done in + 24-bit mode (or whatever depth the original image has) before + converting the image to 32-bit and rendering it on the display. + Origin: https://gist.github.com/fmthoma/f76a1b44e00d5ca972bb + cf. https://github.com/hut/ranger/issues/86#issuecomment-166027119 -2003-02-21 WATANABE Katsuyuki <knabe@sannet.ne.jp> +2015-12-17 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03765] Re: README.cygwin - * doc/README.cygwin: translated + * w3mimg/x11/x11_w3mimg.c: + Wrap render_pixbuf_to_pixmap_32() in USE_GTK2. -2003-02-21 Fumitoshi UKAI <ukai@debian.or.jp> +2015-12-17 Araki Ken <arakiken@users.sf.net> - * doc/README: update + * w3mimg/x11/x11_w3mimg.c: + w3mimgdisplay supports 32 bit depth screen. (e.g. gnome-terminal) + Origin: https://bitbucket.org/arakiken/w3m/commits/f9c22db8cfd1aaba9bb7301ef9ba51ed88d8bb40 -2003-02-21 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> +2015-12-17 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03762] Re: README.cygwin - * doc/README.cygwin: translated + * w3mimg/x11/x11_w3mimg.c: + Revert "Fix handling visuals and colormaps incorrectly". + This reverts commit e24b4064daf3e022e370788a8c7267db40c37dda. -2003-02-21 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> +2015-11-19 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03761] eliminate compiler warnings - * ftp.c (ftp_login): Str tmp - * table.c (feed_table_tag): p is used ifdef ID_EXT + * fm.h: Accept cookies by default. -2003-02-21 WATANABE Katsuyuki <knabe@sannet.ne.jp> + * fm.h: Set argv_is_url to 1 by default. + Bug-Arch: https://bugs.archlinux.org/task/47102 - * [w3m-dev 03760] Re: README.cygwin - * doc-jp/README: update +2015-11-18 Tatsuya Kinoshita <tats@debian.org> -2003-02-19 Fumitoshi UKAI <ukai@debian.or.jp> + * config.guess, config.sub: + Update config.* with autotools-dev 20150820.1. - * 0.4 release candidate 3 - * version.c.in: update +2015-11-11 Mingye Wang (Arthur2e5) <arthur200126@gmail.com> -2003-02-19 Atsushi YOKOYAMA <yoko-a@cmh.fuchu.toshiba.co.jp> + * po/LINGUAS, po/zh_CN.po, po/zh_TW.po: + Add zh_CN and zh_TW translations. + Please note that the zh_TW translation is machine-converted using + OpenCC from zh_CN, and needs to be further polished by actual zh_TW + speakers. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804732#10 - * [w3m-dev 03758] Re: SVR4 signal behavior - * etc.c (reset_signals): use mySignal() - (setup_child): ditto - (myExec): ditto - (mySignal): added, use sigaction if available - * fm.h (TRAP_ON): use mySignal - (TRAP_OFF): ditto - * istream.c (ISclose): ditto - * main.c (sig_chld): ditto - (main): ditto - (do_dump): ditto - (resize_hook): ditto - (resize_handler): ditto - (srchcore): ditto - (readsh): ditto - (SigAlarm): ditto - * proto.h (mySignal): added - * terms.c (error_dump): use mySignal() - (set_int): ditto - (mouse_init): ditto +2015-10-24 BwackNinja <BwackNinja@gmail.com> -2003-02-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * w3mimg/x11/x11_w3mimg.c: + Fix handling visuals and colormaps incorrectly. + cf. https://github.com/hut/ranger/issues/86 + Origin: https://gist.github.com/BwackNinja/60a344730170f9ce2163 + Bug-Arch: https://bugs.archlinux.org/task/46836 + Bug: https://sourceforge.net/p/w3m/patches/72/ - * [w3m-dev 03753] Fixed multipart.cgi - * scripts/multipart/multipart.cgi.in: remove w3m-control - use input hidden - add form_encode +2015-10-10 Tatsuya Kinoshita <tats@debian.org> -2003-02-18 WATANABE Katsuyuki <knabe@sannet.ne.jp> + * cookie.c: Remove incomplete special_domain tests. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=385702 - * [w3m-dev 03749] README.cygwin - * doc-jp/README.cygwin: added - * doc/README: updated +2015-10-04 Gaetan Bisson <bisson@archlinux.org> -2003-02-17 Fumitoshi UKAI <ukai@debian.or.jp> + * scripts/w3mhelp.cgi.in: Do not use defined(%hash). + Origin: https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/w3m&id=d9e0a4f0b461c9e2177cd9e64a10581386650503 + Bug-Arch: https://bugs.archlinux.org/task/45608 - * 0.4 release candidate 2 - * version.c.in: update +2015-09-06 Tatsuya Kinoshita <tats@debian.org> -2003-02-13 Fumitoshi UKAI <ukai@debian.or.jp> + * file.c: Do not use C99-style comments. - * [w3m-dev 03742] Re: Bug##180814: w3m: Missing w3mimgdisplay message at startup - * image.c (getCharSize): stderr redirect to omit /bin/sh error message +2015-09-06 David Crosby <dave@dafyddcrosby.com> -2003-02-13 Fumitoshi UKAI <ukai@debian.or.jp> + * file.c: Mitigate issue #16 found by @kcwu. + * table.c: Fix stack overflow found by @kcwu. + Origin: https://github.com/dafyddcrosby/sw3m + Bug-sw3m: https://github.com/dafyddcrosby/sw3m/issues/16 - * XMakefile (install-core): fix for broken non-POSIX /bin/sh +2015-08-21 Tatsuya Kinoshita <tats@debian.org> -2003-02-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * doc-jp/keymap.lynx, doc/keymap.lynx: Fix unknown key. + Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/265144 + Bug: https://sourceforge.net/p/w3m/bugs/48/ - * [w3m-dev-en 00868] fix mark_all_pages - * anchor.c (reAnchorAny): next_line process for MarkAllPages +2015-08-11 David Crosby <dave@dafyddcrosby.com> -2003-02-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev-en 00867] fix installation problem - * XMakefile (install-core): test AUXBIN_TARGETS - -2003-02-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * version.c.in: cvs version - -2003-02-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * 0.4 release candidate 1 - * version.c.in: update - -2003-02-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03737] local-CGI POST - * local.c (localcgi_post): use tmp file - -2003-02-08 Hiroyuki Ito <hito@crl.go.jp> - - * [w3m-dev 03736] dirlist sort - * scripts/dirlist.cgi.in (right_dir): use cmp for filename comparison - -2003-02-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03735] Re: make error of checkType arg - * etc.c (checkType): delete USE_ANSI_COLOR - * file.c (addnewline): macro for USE_ANSI_COLOR - (readHeader): rewrite of USE_ANSI_COLOR - (HTMLlineproc2body): ditto - (addnewline2): ditto - (addnewline): ditto - (loadBuffer): ditto - (getNextPage): ditto - * proto.h (checkType): macro for USE_ANSI_COLOR - -2003-02-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03733] Re: display decoded URL - * display.c (make_lastline_link): buf->document_code - -2003-02-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03732] Re: scroll() is slow ? - * configure (use_raw_scroll): added - (config.h) use_raw_scroll - * config.h.dist (USE_RAW_SCROLL): added - * display.c (displayBuffer): ifdef USE_RAW_SCROLL - * proto.h (scroll): ifdef USE_RAW_SCROLL - (rscroll): ditto - (need_clrtoeol): if 0 - (terms.c): if 0 need_clrtoeol - (scroll_raw): ifdef USE_RAW_SCROLL - -2003-02-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: rc: decode_url - -2003-02-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03730] display decoded URL - * anchor.c (link_list_panel): support DecodeURL - * display.c (make_lastline_link): support DecodeURL - * etc.c (url_unquote_conv): added - * fm.h (DecodeURL): added - * history.c (historyBuffer): support DecodeURL - * indep.c (QUOTE_MAP): added - (HTML_QUOTE_MAP): added - (html_quote_char): deleted - (url_quote): use is_url_quote - (file_quote): use is_file_quote - (is_url_safe): deleted - (Str_form_quote): use is_url_unsafe - (Str_url_unquote): add safe args - (is_shell_safe): delete - (shell_quote): use is_shell_unsafe - * indep.h (QUOTE_MAP): added - (HTML_QUOTE_MAP): added - (HTML_QUOTE_MASK): added - (SHELL_UNSAFE_MASK): added - (URL_QUOTE_MASK): added - (FILE_QUOTE_MASK): added - (URL_UNSAFE_MASK): added - (GET_QUOTE_TYPE): added - (is_html_quote): added - (is_shell_unsafe): added - (is_url_quote): added - (is_file_quote): added - (is_url_unsafe): added - (html_quote_char): added - (html_quote_char): deleted - (Str_url_unquote): added safe - (form_unquote): Str_url_unquote changes - * linein.c (_prev): support DecodeURL - (_next): ditto - * main.c (goURL0): support DecodeURL - (_peekURL): ditto - (curURL): ditto - * map.c (follow_map_panel): support DecodeURL - (append_map_info): ditto - (append_link_info): ditto - (append_frame_info): ditto - (page_info_panel): ditto - * menu.c (initSelectMenu): delete SCM_LOCAL_CGI - support DecodeURL - (initSelTabMenu): delete SCM_LOCAL_CGI - support DecodeURL - (link_menu): support DecodeURL - * parsetagx.c (parse_tag): is_html_quote - * proto.h (url_unquote_conv): added - * rc.c (CMT_DECODE_URL): added - (params1): add decode_url - * url.c (openURL): Str_url_unquote non safe - -2003-02-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03729] buf fix of reAnchorNewsheader() - * anchor.c (reAnchorAny): check l->bpos - (reAnchorNewsheader): check l->bpos - strlen(*q) - lineBuf[l->size] - -2003-02-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03728] IPv6 hostname - * url.c (parseURL): rewrite IPv6 address parser - -2003-02-04 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03724] Re: view source, edit source - * buffer.c (reshapeBuffer): initialize buf->width first - * display.c (displayBuffer): no need to check buf>sourcefile - -2003-02-01 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03721] PATH_INFO support of local CGI - * local.c (CGIFN_DROOT): deleted - (CGIFN_LIBDIR): added - (CGIFN_MODE): deleted - (CGIFN_CONTAIN_SLASH): deleted - (check_local_cgi): rewrite - (cgi_filename): rewrite - (localcgi_post): support PATH_INFO - * url.c (openURL): rewrite - * Bonus/smb.cgi: use PATH_INFO - -2003-02-01 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03720] mark remains - * main.c (srchcore): PREC_NUM - -2003-01-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03719] Re: Too slow when loading big file with fold_line=1 - * file.c (addnewline): check i <l->len - -2003-01-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03718] Too slow when loading big file with fold_line=1 - * etc.c (nextColumn): added - (calcPosition): use New_N - rewrite with nextColumn - (columnLen): added - * file.c (addnewline): rewrite with columnLen - * proto.h (columnLen): added - -2003-01-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03717] print newline before exec shell command. - * main.c (execsh): print newline - -2003-01-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03715] initial currentLine when pager mode. - * file.c (getNextPage): fix cur - -2003-01-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03714] -cols 1 -dump -o fold_line=1 - * file.c (addnewline): check i == 0, i == l->len - * fm.h (_INIT_BUFFER_WIDTH): added - (INIT_BUFFER_WIDTH): use _INIT_BUFFER_WIDTH - -2003-01-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03713] search with "$" - * search.c (forwardSearch): check l->next && l->next->bpos - (backwardSearch): check l->size, l->next && l->next->bpos - -2003-01-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03712] buf fix of LINE_INFO - * main.c (curlno): rewrite - -2003-01-30 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03709] Re: view source, edit source - * display.c (displayBuffer): INIT_BUFFER_WIDTH - * file.c (_saveBuffer): added - (saveBuffer): use _saveBuffer - (saveBufferBody): added - * main.c (vmSrc): saveBufferBody - * proto.h (saveBufferBody): added - -2003-01-30 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + Fix resource leaks, dead assignments, divide-by-zero, and so on. + Origin: https://github.com/dafyddcrosby/sw3m - * [w3m-dev-en 00852] Re: Enhancement: content type detection of files - * url.c (DefaultGuess): remove upppercases - (guessContentTypeFromTable): rewrite, strcasecmp + * buffer.c: Check for presence of prevl before using. -2003-01-30 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * html.h: Adjust UFclose to remove false positive of CWE-481. - * [w3m-dev 03708] Re: Don't stop loading image when moving to next page. - * config.h.dist (lstat): define ifndef HAVE_LSTAT - * configure (config.h) ditto - * display.c (fmTerm): new loadImage - (save_current_buf): only ifdef USE_BUFINFO - (displayBuffer): new loadImage - * etc.c (setup_child): TrapSignal - * file.c (loadGeneralFile): TRAP_OFF, TRAP_ON - (loadHTMLstream): ditto - (loadGopherDir): ditto - (loadBuffer): ditto - (loadImageBuffer): ditto - (getNextPage): ditto - (save2tmp): ditto - * fm.h (TrapSignal): added - (TRAP_ON): added - (TRAP_OFF): added - * form.c (HAVE_LSTAT): deleted - * frame.c (createFrameFile): TRAP_OFF, TRAP_ON - * image.c (image_buffer): added - (deleteImage): new loadImage - (getAllImage): initialize image_buffer - (loadImage): rewrite - * main.c (main): new loadImage - (checkDownloadList): remove ifdef HAVE_LSTAT - * news.c (loadNwesgroup): TRAP_ON, TRAP_OFF - * proto.h (loadImage): add buf arg - * url.c (openSocket): TRAP_ON, TRAP_OFF - (check_no_proxy): TRAP_ON, TRAP_OFF - -2003-01-29 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03707] Don't stop loading image when moving to next page. - * display.c (save_current_buf): required when defined USE_IMAGE - (displayBuffer): stop only buffer changed - * image.c (loadImage): IMG_FLAG_START load from maxLoadImage - -2003-01-29 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03706] X-Image-URL: support, bug fix of reshapeBuffer() - * buffer.c (reshapeBuffer): rewrite - * file.c (readHeader): rewrite - -2003-01-29 NAKAJIMA Mikio <minakaji@osaka.email.ne.jp> - - * [w3m-dev 03705] goodict.cgi (was: Re: google.cgi (was: Re: keymap key SEARCH string)) - * Bonus/goodict.cgi: added - -2003-01-29 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03700] Re: google.cgi (was: Re: keymap key SEARCH string) - * main.c (goURL0): check relative or *url == '#' - -2003-01-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03689] Re: fold patch - * fm.h (BufferPos): add bpos - * main.c (save_buffer_position): bpos initialize - (resetPos): reset bpos - -2003-01-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03686] Re: fold patch - * buffer.c (writeBufferCache): rewrite - (readBufferCache): rewrite - * etc.c (calcPosition): short -> int realColumn - * fm.h (Line): short -> int len,width,size,bpos,bwidth - (BufferPoint): short->int pos - (Buffer): short->int currentColumn,pos,visualpos - (BufferPos): short->int currentColumn,pos - * frame.h (frameset_queue): short->int pos,currentColumn - * main.c (clear_mark): short->int pos - (dispincsrch): short->int pos - (backBf): short->int pos - (set_buffer_environ): short->int prev_pos - -2003-01-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03684] Re: fold patch - * file.c (PSIZE): added - (HTMLlineproc2body): outc,outp is created by NewAtom_N - use PSIZE - -2003-01-25 Fumitoshi UKAI <ukai@debian.or.jp> - - * file.c (getNextPage): no need volatile for code - -2003-01-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03683] interrupt in getNextPage() - * file.c (getNextPage): trap SIGINT - -2003-01-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03682] open null file on tab - * display.c (displayBuffer): if empty, clear() - -2003-01-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03681] Re: fold patch - * buffer.c (reshapeBuffer): buf->pos, sbuf.currentLine fix - FoldLine - * display.c (arrangeCursor): buf->pos fix - (restorePosition): buf->pos fix - -2003-01-24 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: func: RESHAPE - rc: fold_line - -2003-01-24 Fumitoshi UKAI <ukai@debian.or.jp> - - * fix compiler warnings - * display.c (displayBuffer): fix suggest parentheses around && within || -2003-01-24 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03667] fold patch - * anchor.c (reAnchorPos): rewrite - (reAnchorWord): delete reseq_anchor() - (reAnchorAny): use l->size - delete reseq_anchor() - * backend.c (internal_get): pass TRUE to saveBuffer - * buffer.c (newBuffer): delete n->linelen - (reshapeBuffer): rewrite - * display.c (displayBuffer): FoldLine - (redrawLine): l->bpos - (cursorUp0): added - (cursorUp): rewrite - (cursorDown0): added - (cursowDown): rewrite - (cursorRight): check l->next - l->bwidth - (cursorLeft): l->prev && l->bpos - l->bwidth - (arrangeCursor): buf->currentLine->bwidth - buf->cursorX - * etc.c (checkType): **oporp - rewrite - (calcPosition): realColumn allocated by New_reuse - * file.c (addnewline): add nlines arg - (propBuffer): deleted - (colorBuffer): deleted - (readHeader): propBuffer - FOLD_BUFFER_WIDTH - (HTMLlineproc2body): rewrite - (addnewline2): added - (addnewline): rewrite - (loadBuffer): propBuffer, colorBuffer - (saveBuffer): cont arg - (getNextPage): rewrite - * fm.h (LINELEN): 256 - (FNLEN): deleted - (Line): add size, bpos, bwidth - (Buffer): delete linelen - (INIT_BUFFER_WIDTH): check showLineNum - (FOLD_BUFFER_WIDTH): added - (FoldLine): added - * funcname.tab (RESHAPE): added - * main.c (do_dump): pass FALSE to saveBuffer - (nscroll): rewrite - (clear_mark): l->size - (shiftvisualpos): rewrite - (pipeBuf): pass TRUE to saveBuffer - (linebeg): check line->prev && line->bpos - (linend): check line->next, line->next->bpos - (editScr): pass TRUE to saveBuffer - (svBuf): pass TRUE to saveBuffer - (vmSrc): pass TRUE to saveBuffer - (reshape): added - (curlno): rewrite - * mimehead.c (LINELEN): deleted - * proto.h (reshape): added - (saveBuffer): add cont arg - (cursorUp0): added - (cursorDown0): added - (checkType): change type oprop, ocolor, delete check_color, len - * rc.c (CMT_FOLD_LINE): added - (params1): add fold_line - (sync_with_option): check PagerMax - * search.c (set_mark): l->size - (forwardSearch): rewrite - (backwardSearch): rewrite - * doc/README.func (RESHAPE): added - * doc-jp/README.func (RESHAPE): added - * scripts/w3mhelp.cgi.in (Buffer operation): add reshape - -2003-01-24 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * etc.c (next_status): after = is R_ST_VALUE - R_ST_VALUE > => R_ST_NORMAL - R_ST_VALUE SP => R_ST_TAG - (read_token): R_ST_VALUE - (correct_irrtag): R_ST_VALUE - * rm.h (R_ST_VALUE): added - (ST_IS_REAL_TAG): rewrite - (ST_IS_COMMENT): deleted - (ST_IS_TAG): deleted - * parsetagx.c (parse_tag): skip too long tagname - skip too long attrname - if attrvalue has quote char, need reconstruct - if unknown attr, need reconstruct - * table.c (visible_length): R_ST_VALUE - -2003-01-24 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03680] showProgress() on fast system - * file.c (showProgress): check line len, time - -2003-01-24 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03679] Re: cleanup for pipe - * etc.c (open_pipe_rw): check stdin, stdout - * file.c (uncompress_stream): rewrite - -2003-01-23 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03678] Re: config.param is clear when configure -help - * configure: don't override config.param - -2003-01-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03677] view source, edit source - * buffer.c (discardBuffer): unlink header source - * file.c (loadFile): delete skip header - * fm.h (BP_SOURCE): deleted - (SkipHeader): deleted - * main (editBf): cleanup - (vmSrc): cleanup - -2003-01-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03676] cleanup for pipe - * etc.c (open_pipe_rw): added - * file.c (uncompress_stream): rewrite using open_pipe_rw - * image.c (openImgdisplay): rewrite using open_pipe_rw - * local.c (localcgi_popen_rw): deleted - (localcgi_post): rewrite using open_pipe_rw - * proto.h (open_pipe_rw): added - * search.c (migemor): initialized to NULL - (migemow): initialized to NULL - (migemo_pid): initialized to 0 - (open_migemo): rewrite using open_pipe_rw - -2003-01-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03675] x-face - * file.c (xface2xpm): use getImage() - (readHeader): check same file - (loadImageBuffer): rewrite - (lessopen_stream): shell_quote() - -2003-01-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03674] -dump problem - * file.c (loadGeneralFile): return NULL when dump - * main.c (dump_source): deleted - (dump_head): deleted - (dupm_extra): deleted - (do_dump): added - (main): singal when dump - -2003-01-23 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> - - * [w3m-dev 03671] Re: config.param is clear when configure -help - * configure: test -f config.param - -2003-01-22 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03665] imlib2 support (on X11) - * configure: X11 inline image with Imlib2 - fix typo in fb/imlib2 - * w3mimg/x11/x11_w3mimg.c: USE_IMLIB2 - (x11_load_image): USE_IMLIB2 - (x11_show_image): USE_IMLIB2 - (x11_free_image): USE_IMLIB2 - (x11_get_image_size): USE_IMLIB2 - -2003-01-22 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03664] config.param is clear when configure -help - * configure: config.param created after arg parsing - -2003-01-21 Fumitoshi UKAI <ukai@debian.or.jp> - - * map.c (follow_map_menu): if USE_IMAGE or MENU_MAP - * proto.h (follow_map_menu): ditto - -2003-01-21 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03660] Re: fputs -> Strfputs - * Str.h (Strncmp_charp): paren - (Strncasecmp_charp): ditto - (Strinsert): ditto - (Strshrinkfirst): ditto - * display.c (disp_err_message): added - * file.c (loadGeneralFile): don't put function in macro arg - (saveBuffer): ditto - * frame.c (createFrameFile): ditto - * proto.h (disp_err_message): macro->function - * table.c (pushdata): if data is NULL, use "" - (suspend_or_pushdata): if line is NULL, use "" - * textlist.h (pushText): don't use (s) twice in a macro - -2003-01-21 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03659] Can't download from SSL. - * istream.c (ISfileno): case IST_SSL - -2003-01-21 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03658] Re: Other user can see local cookie. - * fm.h (rc_dir): init(NULL) - * rc.c (config_file): deleted - (init_rc): use rc_dir - -2003-01-21 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03657] fputs -> Strfputs - * form.c (form_fputs_decode): use Strfputs() - -2003-01-19 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03655] Re: file.c:image_source when undef USE_IMAGE - * map.c (follow_map_menu): fix warnings - -2003-01-19 WATANABE Katsuyuki <knabe@sannet.ne.jp> - - * [w3m-dev 03654] file.c:image_source when undef USE_IMAGE - * file.c (readHeader): image_source ifdef USE_IMAGE - (loadGeneralFile): ditto - (uncompress_stream): ditto - -2003-01-19 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03653] SourceForge.net: 576032 w3m https crashes with OpenSSL-0.9.7 - * istream.c (ssl_check_cert_ident): use sk_GENERAL_NAME_free() - -2003-01-18 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03652] Re: Debian bug #176981 - * file.c (checkHeader): always remove_space - (loadGeneralFile): no need remove_space - -2003-01-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03651] Debian bug #176981 - * file.c (checkRedirection): added - (loadGeneralFile): check redirection - t_buf only is created when it is NULL - remove_space - -2003-01-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03647] expandName() and expandPath() - * etc.c (openSecretFile): use expandPath - (expandName): rewrite - (file_to_url): use expandPath - * file.c (_doFileCopy): use expandPath - (doFileSave): use expandPath - * indep.c (expandPath): rewrite - * linein.c (inputLineHistSearch): use expandPath - (next_dcompl): use expandPath - (doComplete): use expandPath - * local.c (set_cgi_environ): rewrite - * mailcap.c (loadMailcap): use expandPath - * main.c (svBuf): use expandPath - (addDownloadList): use expandPath - * rc.c (init_rc): use expandPath - (rcFile): rewrite - (auxbinFile): use expandPath - (libFile): use expandPath - (etcFile): use expandPath - (helpFile): use expandPath - * url.c (loadMimeTypes): use expandPath - (loadURIMethods): use expandPath - -2003-01-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03646] setup child process, local CGI - * etc.c (reset_signals): static - don't ignore SIGUSR1 - (close_all_fds_except): static - DEV_NULL_PATH - (setup_child): added - (myExec): rewrite - (mySystem): rewrite - * file.c (readHeader): check image_source - (loadGeneralFile): check image_source - (doExternal): use setup_child - (_doFileCopy): use setup_child - (doFileSave): use setup_child - (uncompress_stream): check image_source - use setup_child - * image.c (getCharSize): no need stderr redirect - (openImgdisplay): use setup_child - (loadImage): use setup_child - (getImageSize): no need stderr redirect - * local.c (writeLocalCookie): check Local_cookie_file - (localcgi_popen_rw): added - (localcgi_popen_r): deleted - (localcgi_post): rewrite - (localcgi_get): deleted - * proto.h (localcgi_get): defined by localcgi_post - (reset_signals): deleted - (close_all_fds_except): deleted - (close_all_fds): deleted - (setup_child): added - * search.c (open_migemo): use setup_child, myExec - * w3mimgdisplay.c (main): use DEV_NULL_PATH - -2003-01-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03644] Re: Other user can see local cookie. - * cookie.c (save_cookies): return if no_rc_dir - * etc.c (tmpf_base): add cookie - (tmpfname): use tmp_dir instead of rc_dir - * file.c (loadGeneralFile): cookie is not passed via URL - * fm.h (TMPF_COOKIE): incl - (MAX_TMPF_TYPE): incl - (no_rc_dir): added - (tmp_dir): added - (config_file): added - * local.c (Local_cookie_file): added - (writeLocalCookie): added - (setLocalCookie): dont set environment LOCAL_COOKIE - (localcgi_post): writeLocalCookie - (localcgi_get): writeLocalCookie - * main.c (config_filename): deleted - (cmd_loadURL): arg FormList - (main): rewrite config_file, rc - (ldhelp): no cookie in URL - (cmd_loadURL): arg FormList - (goURL0): cmd_loadURL change - (cmd_loadBuffer): cmd_loadURL change - (adBmark): cookie is posted - (follow_map): cmd_loadURL change - (linkMn): cmd_loadURL change - (reinit): init_rc change - * proto.h (create_option_search_table): deleted - (init_rc): no args - * rc.c (create_option_search_table): static - (init_rc): no args - rewrite - (optionpanel_src1): rewrite - (load_option_panel): html_quote - (panel_set_option): no_rc_dir - * w3mbookmark.c: rewrite - * w3mhelperpanel.c: rewrite - * scripts/dirlist.cgi.in: rewrite - * scripts/w3mhelp.cgi.in: rewrite - * scripts/w3mmail.cgi.in: rewrite - * scripts/multipart/multipart.cgi.in: rewrite - -2003-01-16 Fumitoshi UKAI <ukai@debian.or.jp> - - * file.c (loadGopherDir): convertLine RAW_MODE - * ftp.c (loadFTPDir): ditto - -2003-01-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03642] Re: cleanup (don't close connection of news server) - * local.c (localcgi_post): localcgi_popen_r first - -2003-01-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03641] Re: cleanup (don't close connection of news server) - * ftp.c (ftp_command): fix fwrite arg - * news.c (news_command): fix fwrite arg - -2003-01-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03640] Re: cleanup (don't close connection of news server) - * anchor.c (_put_ahchor_news): always conv_str - (_put_anchor_all): always conv_str - * etc.c (close_all_fds): deleted - (close_all_fds_except): added, except fd=f is left open - * file.c (guess_filename): added - (UFhalfclose): added - (convertLine): cleanup_line if not raw mode - check uf - (readHeader): always convertLine - (loadGeneralFile): rewrite - (loadGopherDir): return Str, args change to ParsedURL and code - rewrite - (saveBuffer): always conv_str - (_doFileCopy): close_all_fds - (doFileSave): close_all_fds_except - (uncompress_stream): dup, close_all_fds_except - * form.c (form_fputs_decode): always conv_str - (input_textarea): convertLine - * frame.c (createFrameFile): convertLine - * ftp.c (loadFTPDir): arg code - rewrite - (readFTPDir): convertLine - * html.h (UFfileno): added - * image.c (loadImage): close_all_fds - * indep.h (RAW_MODE): added - * local.c (loadLocalDir): return Str - (dirBuffer): rewrite - (localcgi_popen_r): close_all_fds - * main.c (main): check SCM_LOCAL - print err_msg - * news.c (news_command): args cmd and arg - (news_quit): news_command - (openNewsStream): news_command - (readNewsgroup): deleted - (loadNewsgroup): added - (closeNews): added - * proto.h (loadGopherDir): update - (conv_str): define for no JP_CHARSET - (readFTPDir): deleted - (loadFTPDir): added - (readNewsgroup): deleted - (loadNewsgroup): added - (dirBuffer): deleted - (loadLocalDir): added - (close_all_fds): defined by close_all_fds_except - (close_all_fds_except): added - -2003-01-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03639] Re: smb.cgi - * Bonus/2ch.cgi: change password handling - * Bonus/README: update - * Bonus/README.eng: ditto - -2003-01-12 qhwt@myrealbox.com - - * [w3m-dev 03636] segfault in main.c - * main.c (main): check newbuf->currentURL.file - -2003-01-12 Fumitoshi UKAI <ukai@debian.or.jp> - - * Bonus/README.eng: sync with Bonus/README - -2003-01-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03635] 2ch.cgi - * Bonus/2ch.cgi: added - * Bonus/README: update - -2003-01-12 Fumitoshi UKAI <ukai@debian.or.jp> - - * Bonus/README.eng: sync with Bonus/README - -2003-01-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03634] smb.cgi - * Bonus/smb.cgi: added - * Bonus/README: update - -2003-01-12 Fumitoshi UKAI <ukai@debian.or.jp> - - * ftp.c (ftp_pasv): ftp_command response - (readFTPDir): masked declaration of realpathname - -2003-01-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03633] Re: cleanup (don't close connection of news server) - * file.c (FTPhalfclose): deleted - (loadGeneralFile): closeFTP when doFileSave is done - (_doFileCopy): return int - (doFileMove): return int - (doFileSave): return int - * ftp.c: rewrite - * main.c (w3m_exit): disconnectFTP - * proto.h (_doFileCopy): return int - (doFileMove): return int - (doFileSave): return int - (openFTP): deleted - (openFTPStream): return InputStream - (closeFTP): no arg - (Ftpfclose): disconnectFTP - * url.c (openFTPstream): deleted - -2003-01-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * fix compiler warnings - * html.h (UFclose): value computed but not used - -2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03632] cleanup (don't close connection of news server) - * file.c (loadSomething): remove UFclose nntp:,news: - (loadFile): UFclose - (loadGeneralFile): always UFclose - * html.h (UFclose): only reset when ISclose ==0 - * istream.c (ISclose): return int - (ISfileno): flag IST_UNCLOSE - * istream.h (ISclose): return int - (IST_UNCLOSE): added - * news.c (news_close): reset IST_UNCLOSE - (news_open): set IST_UNCLOSE - -2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03631] display current form item - * form.c (form2str): rewrite - * istream.c (ssl_get_certificate): fix typo - * map.c (follow_map_panel): valign=top - (append_map_info): valign=top - (append_link_info): valign=top - (append_frame_info): <pre_int> - html_quote ssl_certificate - (page_info_panel): rewrite, html_quote - -2003-01-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * doc/README.pre_form: update - * doc-jp/README.pre_form: ditto - -2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03630] improved pre_form - * form.c (pre_form): add re_url, name - (add_pre_form): add name - rewrite - (loadPreForm): add "form" - (preFormUpdateBuffer): handle re_url - -2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03629] delete tmp file - * etc.c (tempfname): always file to delete - * file.c (xface2xpm): no need fileToDelete - (readHeader): ditto - (loadGeneralFile): ditto - (loadHTMLBuffer): ditto - (loadHTMLString): ditto - (loadGopherDir): ditto - (loadImageBuffer): ditto - (doExternal): rewrite - (doFileSave): no need fileToDelete - (uncompress_stream): ditto - * fm.h (CurrentPid): added - * image.c (getImage): cache->touch to delete - * local.c (setLocalCookie): use CurrentPid - (localcgi_post): fileToDelete - * main.c (main): CurrentPid - (pipeBuf): no need fileToDelete - (query_from_followform): CurrentPid - (vmSrc): no need fileToDelete - -2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03628] Re: Error occured while reset - * file.c (doExternal): bufp = NULL, return 1 - (uncompress_stream): tempfname fileToDelete - -2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03626] Re: relative URL - * url.c (parseURL2): copy if scheme is local or local-cgi - -2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03625] keymap key SEARCH string - * main.c (srch): accept command argument - (reMark): accept command argument - * Bonus/google.cgi: added - -2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03622] Re: Error occured while reset - * file.c (uncompress_stream): child process initialized - * terms.c (close_tty): close unless stdin,out,err - (reset_tty): flush_tty, close_tty - (write1): flush_tty - (refresh): flush_tty - (flush_tty): check ttyf - -2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03620] -m option and header - * buffer.c (reshapeBuffer): fix reading from stdin - fix -m option - * display.c (redrawNLine): rewrite - (redrawLine): return l instead of l->next - (redrawLineImage): ditto - * file.c (loadFile): read header even if skip header - (loadGeneralFile): read header even if skip header - * fm.h (SkipHeader): added - * main.c (main): check whether reading from stdin - SkipHeader - -2003-01-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03619] Re: Error occured while reset - * file.c (process_img): check image.ext - (HTMLlineproc2body): check image.ext - (loadImageBuffer): url, ext is in URLFile - * frame.c (unloadFrame): no need to push to fileToDelete - (copyFrame): no need to reset FB_TODELETE - (resetFrameElement): f_body->source, buf->sourcefile - (frame_download_source): buf->source - buf->sourcefile reset - * frame.h (FB_NOCACHE): deleted - (FB_TODELETE): deleted - * main.c (vmSrc): Currentbuf->sourcefile - need_reshape if images exist - -2003-01-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03617] sourcefile when Content-Encoding: is specified. - * file.c (uncompress_stream): add src arg - (examineFile): change uncompress_stream - (loadGeneralFile): change uncompress_stream - (doExternal): src - (uncompress_stream): ext - tmpfile with same ext - -2003-01-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03616] Re: data: URL scheme - * file.c (loadGeneralFile): check SCM_DATA - (loadImageBuffer): newBuffer() - * html.h (SCM_DATA): added - * indep.c (url_unquote): deleted - (Str_url_unquote): renamed from Str_form_unquote - + is decoded is_form only - * indep.h (url_unquote): deleted - (Str_url_unquote): added - (Str_form_unquote): define by Str_url_unquote - * main.c (followA): file_unquote - (cmd_loadURL): file_unquote - * url.c (DefaultPort): add for data: - (schemetable): add "data" - (DefaultFile): SCM_FTPDIR - (parseURL): scheme copied from current - (parseURL2): SCM_DATA - check SCM_FTP, SCM_FTPDIR - (_parsedURL2Str): add data in scheme_str - handle SCM_DATA - SCM_FTPDIR - (openURL): file_unquote - handle SCM_DATA - -2003-01-08 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03611] relative URL - * news.c (openNewsStream): don't skip '/' for nntp: - (readNewsgroup): cleanup - * url.c (parseURL): don't copy user & password - (parseURL2): fix for group, don't copy user & password - -2003-01-07 Fumitoshi UKAI <ukai@debian.or.jp> - - * fix build warnings - * url.c (parseURL2): fix comparison between pointer and integer - * news.c (readNewsgroup): variable `scheme',`group',`list' might be clobbered by `longjmp' or `vfork' - -2003-01-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03610] Re: news:<newsgroup> - * anchor.c (_put_anchor_news): check '<' - (reAnchorNewsheader): added - * file.c (loadSomething): Subject: as buffername - (checkHeader): check buf->document_header - (loadGeneralFile): reAnchorNewsheader - * html.h (SCM_NNTP_GROUP): added - * main.c (main): delete USE_NNTP in switch (newbuf->real_scheme) - (chkNMIDBuffer): lowercase in url_like_pat - * news.c (add_news_message): add scheme, group as arg - (openNewsStream): check SCM_NNTP_GROUP - check current_news.host - (readNewsgroup): rewrite to support nntp:,news: extension - * proto.h (reAnchorNewsheader): added - * url.c (DefaultPort): add 119 for nntp group - (parseURL2): rewrite to support nntp:,news: extension - (_parsedURL2Str): add for SCM_NNTP_GROUP - (openURL): rewrite to support nntp:,news: extension - -2002-12-28 Fumitoshi UKAI <ukai@debian.or.jp> - - * fix build errors - * display.c (make_lastline_message): fix error for undef JP_CHARSET - * news.c (readNewsgroup: `code' always required - - * gcc -Wall -Werror clean - * file.c (loadHTMLstream): unused variable `p' - * news.c (news_command): unused variable `c' - (news_open): unused variable `tmp' - (readNewsgroup): volatile page, qgroup, flag, start, end - uninitialized variable `page' - * url.c (openURL): unused variable `fw', `r', `stream' - -2002-12-28 Fumitoshi UKAI <ukai@debian.or.jp> - - * rc: nntpserver, nntpmode, max_news - -2002-12-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03608] news:<newsgroup> - * XMakefile (LSRCS): add news.c - (LOBJS): add news.o - * file.c (loadSOmething): don't UFclose() for nntp/news - (readHeader): remove . at beginning of line for news - img link to file: - (loadGeneralFile): add SCM_NEWS_GROUP - don't UFclose() for nntp/news - (loadHTMLstream): . line check for news - (loadBuffer): . line check for news - * fm.h (NNTP_server): added - (NNTP_mode): added - (MaxNewsMessage): added - * html.h (SCM_NEWS_GROUP): added - * main.c (main): NNTP_server or NNTPSERVER - NNTP_mode or NNTPMODE - add SCM_NEWS_GROUP - (followA): remove news:..@.. check - (cmd_loadURL): remove news:...@.. check - (w3m_exit): disconnectNews - * proto.h (openNewsStream): added - (readNewsgroup): added - (disconnectNews): added - * rc.c (CMT_NNTP_SERVER): added - (CMT_NNTP_MODE): added - (CMT_MAX_NEWS): added - (params9): add nntpserver, nntpmode, max_news - * url.c (DefaultPort): add 119 for news group - (parseURL2): news:..@... is SCM_NEWS_GROUP - (_parsedURL2Str): add news for SCM_NEWS_GROUP - (openURL): cleanup SCM_NEWS - add SCM_NEWS_GROUP - * news.c: added - -2002-12-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03607] mymktime: time zone support - * etc.c (get_zone): added - (mymktime): parse timezone - -2002-12-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03606] Re: clean up displayBuffer() - * main.c (followA): B_FORCE_REDRAW - (follow_map): ditto - -2002-12-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03604] http response code and content-type - * file.c (loadGeneralFile): don't guessContentType if http errors - -2002-12-26 Hiroyuki Ito <hito@crl.go.jp> - - * [w3m-dev 03602] Re: w3mimgdisplay core dump - * w3mimgdisplay.c (DrawImage): check load_image, imageBuf[n].pixmap - * w3mimg/fb/fb_w3mimg.c (w3mfb_show_image): check img->pixmap - * w3mimg/x11/x11_w3mimg.c (x11_show_image): check img->pixmap - -2002-12-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03601] Re: meta refresh - * main.c (LastEvent): added - (pushEvent): add to LastEvent - -2002-12-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03600] Re: meta refresh - * main.c (main): move add_download_list - -2002-12-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03598] restore cursor when download list panel is updated. - * main.c (stopDownload): delete->replace - (ldDL): use DownloadListBuffer() - -2002-12-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03597] Re: meta refresh - * main.c (Event): next, linked list - (N_EVENT_QUEUE): deleted - (eventQueue): deleted - (n_event_queue): deleted - (CurrentEvent): added - (main): event processing, add CurrentEvent linked list - (pushEvent): add Event to CurrentEvent - (SigAlarm): Currentbuf->event - * proto.h (pushEvent): rename args - -2002-12-25 Hiroaki Shimotsu <shim@d5.bs1.fc.nec.co.jp> - - * [w3m-dev 03596] LIST - * anchor.c (link_list_panel): check internal - -2002-12-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03595] tolower, toupper - * Str.c (Strlower): TOLOWER - (Strupper): TOUPPER - * backend.c: delete ctype.h - * etc.c (gethtmlcmd): TOLOWER - * file.c (readHeader): TOLOWER - (checkOverWrite): TOLOWER - (guess_charset): TOLOWER - * ftp.c: delete ctype.h - * indep.c (strcasecmp): TOLOWER - (strncasecmp): TOLOWER - (strcasematch): TOLOWER - * istream.c: include myctype.h - (ssl_get_certificate): TOLOWER - * mailcap.c (mailcapMatch): TOLOWER - * main.c (_quitfm): TOLOWER - * menu.c (accesskey_menu): TOLOWER - * mimehead.c: include myctype.h - (decodeWord): TOUPPER - * mktable.c: delete ctype.h, include myctype.h - (main): IS_SPACE - * myctype.h: delete ctype.h - (TOLOWER): added - (TOUPPER): added - * parsetagx.c (parse_tag): TOLOWER - * rc.c (str_to_bool): TOLOWER - (str_to_color): TOLOWER - * regex.c: delete ctype.h, include myctype.h - (TOLOWER): added - (TOUPPER): added - (regmatch1): TOLOWER - (matchWhich): TOLOWER, TOUPPER - -2002-12-22 Fumitoshi UKAI <ukai@debian.or.jp> - - * mimehead.c (decodeWord): don't use toupper() (requires ctype.h) - -2002-12-22 ABE Yuji <cbo46560@pop12.odn.ne.jp> - - * [w3m-dev 03594] mime decode with encoding named 'b' & 'q' - * mimehead.c (decodeWord): toupeer(method) - -2002-12-22 Fumitoshi UKAI <ukai@debian.or.jp> - - * file.c (discardline): not used - -2002-12-22 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03593] Re: segmentation fault when <title> exist after <img> - * file.c (cur_title): added - (save_obuf): deleted - (process_title): added - (process_n_title): added - (feed_title): added - (HTMLtagproc1): rewrite HTML_TITLE, HTML_N_TITLE, - HTML_TITLE_ALT, HTML_N_HEAD, HTML_HEAD - (HTMLlineproc0): check RB_TITLE - (completeHTMLstream): add RB_TITLE - (loadHTMLstream): initialize cur_title - -2002-12-21 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03590] segmentation fault when <title> exist after <img> - * file.c (save_line): deleted - (save_prevchar): deleted - (save_obuf): added - (HTMLtagproc1): bcopy save_obuf - -2002-12-20 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03588] include time.h in ftp.c - * ftp.c: include <time.h> - -2002-12-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03583] w3mman - * scripts/w3mman/README: W3MMAN_W3M, W3MMAN_MAN - * scripts/w3mman/w3mman.1.in: add ENVIRONMENT - * scripts/w3mman/w3mman.in: $ENV{'W3MMAN_W3M'}, $ENV{'W3MMAN_MAN'} - * scripts/w3mman/w3mman2html.cgi.in: $ENV{'W3MMAN_MAN'} - hyphenation - -2002-12-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03582] add config options graphic_char and use_proxy - * NEWS: rc: graphic_char, use_proxy - * fm.h (Do_no_use_proxy): macro using use_proxy - (use_proxy): added - (no_graphic_char): deleted - (UseGraphicChar): added - * main.c (main): UseGraphicChar, use_proxy - * rc.c (CMT_GRAPHIC_CHAR): added - (CMT_USE_PROXY): added - (params1): graphic_char - (params4): use_proxy - * terms.c (graph_ok): UseGraphicChar - -2002-12-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03581] MARK_URL, MARK_WORD - * main.c (chkWORD): accept ()[]{}&|;*?$ as anchor - -2002-12-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03580] Re: clean up displayBuffer() - * main.c (main): force redraw - -2002-12-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03579] Re: clean up displayBuffer() - * display.c (displayBuffer): re calcTabPos() when force or image redraw - * main.c (_mark): force redraw - (reinit): redraw image - * search.c (backwardSearch): found_last - -2002-12-19 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03584] Re: meta refresh - * main.c (DefaultAlarm): fix initialize value - -2002-12-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03578] meta refresh - * file.c (getMetaRefreshParam): do nothing if refresh_interval < 0 - (HTMLtagproc1): rewrite refresh - (HTMLlineproc2body): add HTML_META - * fm.h (BP_RELOAD): deleted - (Buffer): add event - (AL_IMPLICIT_DONE): deleted - (AL_ONCE): deleted - (AL_RESTORE): deleted - (AlarmEvent): added - * main.c (AlarmEvent): deleted - (PrevAlarm): deleted - (DefaultAlarm): added - (CurrentAlarm): point to DefaultAlarm - (main): CurrentKeyData, CurrentCmdData - handle Currentbuf->event - (SigAlarm): CurrentAlarm is pointer - (copyAlarmEvent): deleted - (setAlarm): setAlarmEvent pass &DefaultAlarm - (setAlarmEvent): arg event - (ldDL): no BP_RELOAD - * proto.h (setAlarmEvent): arg event - -2002-12-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03577] incorrect table width - * table.c (dv2sv): fix move direction - (set_integered_width): ditto - (check_table_height): ditto - (feed_table_tag): ditto - -2002-12-17 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03576] Re: news support - * anchor.c (_put_anchor_news): convert to document code and quote - (_put_anchor_all): convert to document code - * main.c (chkNMIDBuffer): change url_like_pat - -2002-12-15 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: rc: preserve_timestamp - -2002-12-15 Takahashi Youichirou <nikuq@hk.airnet.ne.jp> - - * [w3m-dev 03574] Re: preserve timestamp - * ftp.c (getFtpModtime): don't call localtime,gettime in same expr - -2002-12-15 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03573] Re: Bug#172851: w3m: In form, takes hostname as baseref for relative URI action - * url.c (parseURL): if empty is URL, base URL is used - -2002-12-15 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03571] base=0 -> 10 in toNumber() - * parsetagx.c (toNumber): strtol base=10 - -2002-12-15 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03570] meta tag in frame - * frame.c (createFrameFile): fix meta equiv parse in frame - -2002-12-15 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03569] Re: preserve timestamp - * file.c (loadGeneralFile): PresetveTimestamp - (_doFileCopy): is_pipe, PreserveTimestamp - (doFileSave): PreserveTImestamp - * fm.h (PreserveTimestamp): added - * rc.c (CMT_PRESERVE_TIMESTAMP): added - (params3): add preserve_timestamp - -2002-12-15 Takahashi Youichirou <nikuq@hk.airnet.ne.jp> - - * [w3m-dev 03568] Re: preserve timestamp - * etc.c (USE_COOKIE): moved - * file.c (utime.h): include - (setModtime): added - (loadGeneralFile): set f.modtime - (_doFileCopy): setModtime() - (doFileSave): setModtime() - * ftp.c (getFtpModtime): added - (openFTP): pass URLFile, set modtime - * html.h (URLFile): add modtime - * proto.h (openFTP): arg URLFile *uf - (mymktime): always - * url.c (init_stream): initialize modtime - (openFTPStream): pass URLFile - (openURL): openFTPStream - -2002-12-13 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03567] default keybinding - * doc-jp/keymap.default (C-q,C-t,(,),+,-,D,L,T,m,r,{,|,}, - M-c,M-k,M-l,M-m,M-o,M-t): assign - * doc/keymap.default: ditto - * keybind.c: ditto - * doc-jp/keymap.lynx (C-q,C-t,C-u,(,),,,.,;,D,L,T,W,[,], - m,r,w,{,|,},M-<,M->,M-W,M-c,M-g, - M-k,M-l,M-m,M-n,M-o,M-p,M-t,M-w): assign - * doc/keymap.lynx: ditto - * keybind_lynx.c: ditto - * doc-jp/menu.default (Main): Select,SelectTab,TAB_LINK - * doc/menu.default: ditto - -2002-12-13 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03566] configure prefix - * configure: add X prefix for expr args - -2002-12-13 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03564] clean up displayBuffer() - * display.c (delayed_msg): static - (drawAnchorCursor): static - (redrawBuffer): define - (redrawNLine): static - (redrawLine): static - (redrawLineRegion): static - (do_effects): static - (do_color): static - (make_lastline_link): added - (make_lastline_message): added - (displayBuffer): rewrite with make_lastline_message() - (drawAnchorCursor0): added - (drawAnchorCursor): added - * main.c (main): remove onA() - (keyPressEventProc): remove onA() - (disp_srchresult): static - disp_message TRUE - (isrch): remove onA() - (srch): displayBuffer - remove onA() - (srch_nxtprv): remove onA() - (pipeBuf): disp_message TRUE - (pipesh): disp_message TRUE - (readsh): disp_message TRUE - (_mark): dispBuffer - (_followForm): break, always dispBuffer - (drawAnchorCursor0): deleted - (drawAnchorCursor): deleted - (onA): deleted - (anchorMn): delete onA() - (svBuf): displayBuffer B_NORMAL - (reload): disp_err_message TRUE - displayBuffer - (rFrame): displayBuffer - (invoke_browser): displayBuffer - (extbrz): disp_err_message TRUE - (process_mouse): onA -> displayBuffer - (movMs): delete onA() - (menuMs): onA -> displayBuffer - (closeTMs): disp_message TRUE - (wrapToggle): disp_message TRUE - (execdict): disp_message TRUE - (SigAlarm): displayBuffer, delete onA - (reinit): displayBuffer - * map.c (getCurrentMapLabel): deleted - (retrieveCurrentMapArea): added - * proto.h (redrawBuffer): deleted - (redrawNLine): deleted - (redrawLine): deleted - (redrawLineRegion): deleted - (do_effects): deleted - (do_color): deleted - (message_list): deleted - (getCurrentMapLabel): deleted - (retrieveCurrentMapArea): added - -2002-12-13 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03563] Directory Traversal Vulnerabilities in FTP Clients - * file.c (guess_save_name): pass guess_filename - -2002-12-13 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03562] #undef BUFINFO - * config.h.dist (BUFINFO): undef - * configure (use_bufinfo): n - * main.c (saveBufferInfo): ifdef USE_BUFINFO - * proto.h (reloadBuffer): if 0 - (saveBufferInfo): ifdef USE_BUFINFO - -2002-12-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03559] Re: use select instead of signal for loading images - * fm.h (Buffer): add image_loaded - * image.c (W3M_SIGIMG): deleted - (image_lock): deleted - (need_load_image): deleted - (load_image_handler): deleted - (load_image_next): deleted - (getAllImage): check image_loaded - (loadImage): delete image_lock - delete IMG_FLAG_NEXT - * main.c (main): check image_loaded - * proto.h (sleep_till_anykey): return int - * terms.c (sleep_till_anykey): return int - -2002-12-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03558] long title is displayed over tab region - * display.c (redrawNLine): check l < 0 - use addnstr - -2002-12-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03554] Re: Undo/Redo - * doc/README.func (REDO): added - (UNDO): added - * doc-jp/README.func (REDO): added - (UNDO): added - * scripts/w3mhelp.cgi.in: (Page/Cursor motion): add undoPos, redoPos - -2002-12-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: func: REDO, UNDO - -2002-12-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03553] Undo/Redo - * fm.h (Buffer): add undo - (BufferPos): added - * funcname.tab (REDO): added - (UNDO): added - * main.c (save_buffer_position): added - (main): save_buffer_position - (resetPos): added - (undoPos): added - (redoPos): added - * proto.h (undoPos): added - (redoPos): added - -2002-12-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03552] Re: link list - * menu.c (accesskey_menu): check hseq - (list_menu): check hseq - -2002-12-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03551] Re: External URI loader - * file.c (loadGeneralFile): fix SCM_UNKNONWN - -2002-12-10 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: func: LIST, LIST_MENU, MOVE_LIST_MENU - -2002-12-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03549] link list - * anchor.c (addMultirowsImg): add a->slave - (getAnchorText): arg AnchorList *al - (link_list_panel): added - * funcname.tab (LIST): added - (LIST_MENU): added - (MOVE_LIST_MENU): added - * main.c (anchorMn): added - (accessKey): use anchorMn() - (listMn): added - (movlistMn): added - (linkLst): added - * map.c (searchMapList): not static - * menu.c (accesskey_menu): pass AnchorList to getAnchorText() - (lmKeys): added - (lmKeys2): added - (nlmKeys): added - (nlmKeys2): added - (lmGoto): added - (lmSelect): added - (list_menu): added - * proto.h (linkLst): added - (listMn): added - (movlistMn): added - (list_menu): added - (searchMapList): added - (getAnchorText): arg AnchorList *al - (link_list_panel): added - * doc/README.func (LIST): added - (LIST_MENU): added - (MOVE_LIST_MENU): added - * doc-jp/README.func (LINK_MENU): fix message - (LIST): added - (LIST_MENU): added - (MOVE_LIST_MENU): added - * scripts/w3mhelp.cgi.in (Page/Cursor motion): add movlistMn - (Hyperlink operation): add linkLst linkMn - -2002-12-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03548] close anchor before <img align=...> - * file.c (process_img): use div_int - (process_hr): use div_int - (process_idattr): don't close_anchor - (CLOSE_A): added - (HTMLtagproc1): </p> close anchor - <dl>,<ul>,<ol>,<blockquote>,<li>,<dt>,<dd> close anchor - <noframes> close anchor - <pre> close anchor - <center> close anchor - <div> close anchor - add DIV_INT - <form> close anchor - * html.c (TagMAP): add div_int - * html.h (HTML_DIV_INT): added - (HTML_N_DIV_INT): added - * tagtable.tab (div_int): added - (/div_int): added - -2002-12-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03544] Can't display "1&2" in table - * file.c (HTMLlineproc0): continue -> R_ST_NORMAL - -2002-12-10 Fumitoshi UKAI <ukai@debian.or.jp> - - * file.c (loadGeneralFile): missing `{', fix indent for SCM_UNKNOWN - * main.c (set_buffer_environ): unused variables `prev_col' - -2002-12-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03543] External URI loader (Debian closes: Bug#169962) - * file.c (loadGeneralFile): rewrite SCM_UNKNOWN - -2002-12-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03542] news support - * file.c (loadGeneralFile): NNTP as well as NEWS - * indep.c (url_unquote_char): check % hex hex - (url_unquote): unquote except \0, \n, \r - -2002-12-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03541] Re: W3M_LINE_NO / W3M_CURRENT_COLUMN - * main.c (goLine): check searchKeyData() - (set_buffer_environ): W3M_CURRENT_* - -2002-12-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03536] <del>, <s> - * file.c (HTMLtagproc1): <s>..</s> is [S:...:S] - (HTMLtagproc0): <del> will delete <table> - * fm.h (RB_S): added - * html.c (TagMAP): <s>,</s> - move <internal>, </internal> - * html.h (HTML_S): added - (HTML_N_S): added - (HTML_INTERNAL): renumed - (HTML_N_INTERNAL): ditto - (MAX_HTMLTAG): add 2 - * rc.c (CMT_DISP_INS_DEL): update - * table.c (feed_table_tag): add HTML_S, HTML_N_S - * table.h (TBLM_S): added - (TBLM_ANCHOR): renum - * tagtable.tab: (strike, s): HTML_S - (/strike, /s): HTML_N_S - -2002-12-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03535] close anchor, quote < - * file.c (HTMLtagproc1): close_anchor - * frame.c (createFrameFile): quote < - -2002-12-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03534] cleanup file.c - * file.c (HTMLlineproc2body): cleanup - -2002-12-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * version.c.in: w3m/0.3.2.2+cvs - * NEWS: 0.3.2.2 - -2002-12-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * security fix - * file.c (process_img): html_quote() - -2002-12-06 Takahashi Youichirou <nikuq@hk.airnet.ne.jp> - - * [w3m-dev 03530] save history - * history.c (saveHistory): save tmpfile and rename - -2002-12-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: func: ACCESSKEY, LINK_MENU - -2002-12-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03529] Support of title, accesskey of anchor - * anchor.c (putAnchor): arg title, key - initialize slave - (registerHref): arg title, key - (registerName): title = NULL, key = '\0' - (registerForm): title = NULL, key = '\0' - (_put_anchor_news): title = NULL, key = '\0' - (_put_anchor_all): title = NULL, key = '\0' - (addMultirowsImg): register title, accesskey - (addMultirowsForm): title = NULL, key = '\0' - (getAnchorText): added - * display.c (displayBuffer): show title if any - * file.c (set_breakpoint): use bcopy - (back_to_breakpoint): use bcopy - (flushline): s/anchor/anchor.url/ - s/anchor_hseq/anchor.hseq/ - s/anchor_target/anchor.target/ - add anchor.* - (close_effect0): s/anchor/anchor.url/ - s/anchor_hseq/anchor.hseq/ - (close_anchor): use bzero - (process_img): ATTR_TITLE, - (HTMLtagproc1): s/anchor/anchor.url/ - target, referer, title, accesskey, hseq - (HTMLlineproc2body): ATTR_TITLE, ATTR_ACCESSKEY - (init_henv): use bzero - * fm.h (Anchor): add title, accesskey, slave - (Breakpoint): use Anchor - (struct readbuffer): use Anchor - * funcname.tab (ACCESSKEY): added - (LINK_MENU): added - * html.c (ALST_A): add ATTR_TITLE, ATTR_ACCESSKEY - (ALST_IMG): add ATTR_TITLE - (ALST_IMG_ALT): add ATTR_TITLE - (AttrMAP): add accesskey, renum - * html.h (ATTR_ACCESSKEY): added - (ATTR_*): renum 50->60 - * main.c (linkMn): added - (accessKey): added - * menu.c (LinkMenu): deleted - (LinkV): deleted - (initLinkMenu): deleted - (lmGoURL): deleted - (popupMenu): delete initLinkMenu() - (initMenu): delete Link - (link_menu): added - (accesskey_menu): added - * proto.h (linkMn): added - (link_menu): added - (accessKey): added - (accesskey_menu): added - (putAnchor): arg title, key - (registerHref): arg title, key - (registerImg): arg title - (getAnchorText): added - * doc/README.func (ACCESSKEY): added - (LINK_MENU): added - * doc-jp/README.func (ACCESSKEY): added - (LINK_MENU): added - * scripts/w3mhelp.cgi.in (Hyperlink operation): add linkMn accessKey - -2002-12-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03528] area without alt - * map.c (getCurrentMapLabel): when a->alt is empty - -2002-12-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03527] fix frame.c - * frame.c (createFrameFile): move need_reconstruct - -2002-12-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03526] Re: fix doc*/README.func, w3mhelp.cgi.in - * scripts/w3mhelp.cgi.in: (load_keymap): - always upcase ESC,SPC,TAB,DEL,UP,DOWN,RIGHT,LEFT - -2002-12-05 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03525] Re: sync option - * func.c (initKeymap): delete check force, keymap_initialized - -2002-12-05 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03524] fix doc*/README.func, w3mhelp.cgi.in - * doc/README.func (REINIT): added - * doc-jp/README.func (REINIT): added - * scripts/w3mhelp.cgi.in (Page/Cursor motion): - add moveR1 movL1 movD1 movU1 ldown1 lup1 - (File/Stream operation): add pipeBuf - (Miscellany): add dispVer execCmd reinit - (load_keymap): rewrite - (norm_key): rewrite - -2002-12-05 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: rc: display_ins_del - -2002-12-05 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03523] Re: del/ins - * file.c (HTMLtagproc1): check displayInsDel, RB_DEL - * fm.h (RB_DEL): added - (displayInsDel): added - * rc.c (CMT_DISP_INS_DEL): added - (display_ins_del): added - * table.c (feed_table_tag): check displayInsDel, TBLM_DEL - * table.h (TBLM_DEL): added - (TBLM_ANCHOR): renum - (struct table_mode): unsigned int pre_mode - -2002-12-05 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03522] newline around <pre>..</pre> - * file.c (HTMLtagproc1): break before <pre>/after </pre> if necessary - -2002-12-05 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03521] sync option - * display.c (redrawNLine): calcTabPos() - * func.c (initKeymap): return if keymap_initialized - * main.c (calcTabPos): no more static - (main): move sync_with_option, initCookie, setLocalCookie - move backend - move initKeymap, initMouseAction, initMenu - remove calcTabPos - add displayBuffer - (numTab): static - (deleteTab): delete calcTabPos - (moveTab): delete calcTabPos - * proto.h (calcTabPos): added - -2002-12-05 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev-en 00841] Re: w3m segfaults if the terminal is not writable - * terms.c (reset_tty): don't close stderr - -2002-12-04 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03516] Re: 2 stroke keybinding - * func.c (keymap_initialized): initialized to FALSE - (setKeymap): push KeyData - -2002-12-04 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: 2 stroke keybinding - func: MULTIMAP - -2002-12-04 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03515] 2 stroke keybinding - * func.c (setKeymap): add map - K_MULTI support - (getKey2): added - (getKey): rewrite to use getKey2() - * func.h (K_MULTI): added - (MULTI_KEY): added - * funcname.tab (MULTIMAP): added - * main.c (escKeyProc): added - (escmap): rewrite to use escKeyProc() - (escbmap): rewrite to use escKeyProc() - (escdmap): rewrite to use escKeyProc() - (multimap): added - * proto.h (multimap): added - -2002-12-04 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03514] Effect of tab title - * display.c (redrawNLine): rewrite, do without clrtoeolx() - -2002-12-04 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03512] Re: HTML parser - * table.c (feed_table_tag): HTML_N_SELECT, HTML_N_CAPTION - -2002-12-04 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03510] waiting time when cookie was rejected. - * file.c (readHeader): display cookie warnings for only 1 sec - -2002-12-04 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03509] HTML parser - * file.c (close_textarea): delete - (HTMLtagproc1): rewrite - delete HTML_EOL - move HTML_LISTING, HTML_N_LISTING - add HTML_PRE_PLAIN, HTML_N_PRE_PLAIN - add HTML_PLAINTEXT - end_tag - (HTMLlineproc0): s/str/line/ - rewrite - (completeHTMLstream): </textarea> if necessary - * fm.h (struct readbuffer): delete ignore_tag - add end_tag - (RB_XMPMODE): deleted - (RB_LSTMODE): deleted - (RB_SCRIPT): added - (RB_STYLE): added - (RB_*): renumber - (R_ST_EOL): added - (R_ST_*): renumber - (ST_IS_TAG): check R_ST_EOL - * form.c (form_fputs_decode): remove <eol> handling - * frame.c (newFrame): remove_space() - (CASE_TABLE_TAG): added - (createFrameFile): rewrite - * html.c (TagMAP): delete eol - add pre_plain, /pre_plain - * html.h (HTML_EOL): deleted - (HTML_PRE_PLAIN): added - (HTML_N_PRE_PLAIN): added - * table.c (visible_length): rewrite - (visible_length_plain): added - (maximum_visible_length_plain): added - (do_refill): R_ST_EOL - (table_close_select): end_tag - (table_close_textarea): end_tag - (TAG_ACTION_PLAIN): added - (feed_table_tag): rewrite - (feed_table): rewrite - * table.h (TBLM_*) reassign - (struct table_mode): delete ignore_tag - add end_tag - * tagtable.tab (eol): deleted - (pre_plain): added - (/pre_plain): added - -2002-12-03 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03505] Re: coredump when ssl error - * file.c (loadGeneralFile): term_raw(), SIGINT before retry - -2002-12-03 AIDA Shinra <aida-s@jcom.home.ne.jp> - - * [w3m-dev 03504] coredump when ssl error - * file.c (loadGeneralFile): term_raw, SIGINT - -2002-12-03 Fumitoshi UKAI <ukai@debian.or.jp> - - * remove ununsed variables - * file.c (addLink): unused variable `t' - * menu.c (lmGoURL): unused variable `pu' - -2002-12-03 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03501] link tag support - * buffer.c (reshapeBuffer): initialize formlist, linklist, - maplist, hmarklist, imarklist - * file.c (addLink): added - (HTMLlineproc2body): add HTML_LINK - (loadHTMLstream): use HTMLlineproc0 not in R_ST_NORMAL - (reloadBuffer): initialize linklist, maplist, - hmarklist, imarklist - * fm.h (LINK_TYPE_NONE): added - (LINK_TYPE_REL): added - (LINK_TYPE_REV): added - (LinkList): added - (Buffer): add linklist - * html.c (ALST_LINK): added - (TagMAP): add link - (AtrMAP): add rel, rev, title - * html.h (HTML_LINK): added - (ATTR_REL): added - (ATTR_REV): added - (ATTR_TITLE): added - * map.c (append_map_info): anchor - (append_link_info): added - (page_info_panel): append_link_info - * menu.c (LinkMenu): added - (linkV): added - (initLinkMenu): added - (lmGoURL): added - (popupMenu): initLinkMenu() - (initMenu): w3mMenuList new 4 - add "Link" - * tagtable.tab (link): added - -2002-11-29 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m bug] internal tag - * display.c (loadHTMLstream): HTMLlineproc0 internal - -2002-11-29 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03498] Re: parse <!-- ... --> in <script> - * file.c (HTMLlineproc0): tag in textarea - * frame.c (createFrameFile): fix comment processing in frame - -2002-11-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03497] incorrect image size - * image.c (getImageSize): invoke w3mimgdiplay -size instead of "5;..." - * w3mimgdisplay.c (defined_size): added - (main): if defined_size get_image_size() - (GetOption): -size - -2002-11-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03496] parse <!-- ... --> in <script> - * etc.c (read_token): check <pre> - * file.c (HTMLlineproc0): remove comment processing - check pre mode - comment processing move - -2002-11-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03495] local CGI can't work - * local.c: #include "hash.h" - (set_environ): env string put in hash - -2002-11-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03494] Number of line is few when pager mode. - * display.c (redrawLine): buf->rootY - -2002-11-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03493] scroll menu - * menu.c (mLineU): added - (mLineD): added - (MenuKeymap): C-r, C-s, J, K - (mouse_scroll_line): added - (process_mMouse): drag - BTN4, BTN5 - * doc-jp/README.menu: update - -2002-11-27 Fumitoshi UKAI <ukai@debian.or.jp> - - * version.c.in: w3m/0.3.2.1+cvs - -2002-11-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03491] Re: case insensitive regexp search - * regex.c (matchWhich): tolower - -2002-11-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * use local_cookie for support local-cgi commands - * file.c (loadGeneralFile): pass Local_cookie to DirBufferCommand - * fm.h (Local_cookie): Str - * local.c (setLocalCookie): Str, set_environ() - (set_cgi_environ): remove LOCAL_COOKIE - * main.c (ldhelp): pass Local_cookie - (adBmark): ditto - * rc.c (optionpanel_src1): cookie - (load_option_panel): pass Local_cookie - * w3mbookmark.c (main): check Local_cookie - * w3mhelperpanel (main): ditto - * scripts/dirlist.cgi.in: ditto - * scripts/w3mhelp.cgi.in: ditto - * scripts/multipart/multipart.cgi.in: ditto - -2002-11-27 Fumitoshi UKAI <ukai@debian.or.jp> - - * frame.c (createFrameFile): html_quote() - -2002-11-27 Hiroyuki Ito <hito@crl.go.jp> - - * [w3m-dev 03488] meta refresh in frame - * file.c (getMetaRefreshParam): added - (HTMLtagproc1): use getMetaRefreshParam() - * frame.c (createFrameFile): check meta refresh - * proto.h (getMetaRefreshProgram): added - -2002-11-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * w3m 0.3.2.1 security fix - * frame.c (createFrameFile): html_quote() - -2002-11-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03486] fix of displayLineInfo - * display.c (displayBuffer): don't divide by 0 - -2002-11-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03485] fix mouse menu position - * main.c (do_mouse_action): use anchor_map is no active_map - check top left corner - (FRAME_WIDTH): added - (menuMs): adjust cursorX using FRAME_WIDTH - -2002-11-26 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: func: CLOSE_TAB_MOUSE, MENU_MOUSE, MOVE_MOUSE, TAB_MOUSE - -2002-11-26 Fumitoshi UKAI <ukai@debian.or.jp> - - * doc/README.mouse_menu: deleted - * doc/README.mouse: added - * doc-jp/README.mouse_menu: deleted - * doc-jp/README.mouse: added - -2002-11-26 Fumitoshi UKAI <ukai@debian.or.jp> - - * map.c (follow_map_menu): MapArea *a is used ifdef MENU_MAP - * func.c (initMouseAction): remove unsed variables: x, width, map - -2002-11-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03478] mouse action configuration - * display.c (displayBuffer): mouse_menu -> mouse_action.menu_str - mouse_action.lastline_str - (redrawNLine): mouse_menu -> mouse_action.menu_str - * fm.h (MouseMenuMap): deleted - (MouseActionMap): added - (MouseAction): added - (mouse_action): added - * func.c (default_mouse_action): added - (setMouseAction0): added - (setMouseAction1): added - (setMouseAction2): added - (initMouseMenu): deleted - (initMouseAction): added - * funcname.tab (CLOSE_TAB_MOUSE): added - (MENU_MOUSE): added - (MOVE_MOUSE): added - (TAB_MOUSE): added - * main.c (main): initMouseMenu() -> initMouseAction() - mouse_menu -> mouse_action - (posTab): mouse_menu -> mouse_action - check y > LastTab->y - (mouse_menu_action): deleted - (do_mouse_action): added - (process_mouse): mouse_menu -> mouse_action - do_mouse_action() - (movMs): added - (menuMs): added - (tabMs): added - (closeTMs): added - (reinit): initMouseMenu() -> initMouseAction() - resource: MOUSE_MENU -> MOUSE - (calcTabPos): mouse_menu -> mouse_action - * menu.c (mainMn): mouse_menu -> mouse_action - (selMn): mouse_menu -> mouse_action - (tabMn): mouse_menu -> mouse_action - (initMenu): add SelectTag to w3mMenuList - * proto.h (movMs): added - (menuMs): added - (tabMs): added - (closeTMs): added - (initMouseMenu): deleted - (initMouseAction): added - * rc.c (sync_with_option): initMouseMenu() -> initMouseAction() - * doc/README.func (CLOSE_TAB_MOUSE): added - (MENU_MOUSE): added - (MOVE_MOUSE): added - (TAB_MOUSE): added - * doc-jp/README.func (CLOSE_TAB_MOUSE): added - (MENU_MOUSE): added - (MOVE_MOUSE): added - (TAB_MOUSE): added - -2002-11-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03476] Re: Bug#170506: w3m: Unable to use mozilla bugzilla - * file.c (HTMLtagproc1): initialize ignore_tag in table_mode - (HTMLtagproc0): check table_level - * table.c (feed_table_tag): set mode->ignore_tag - * table.h (struct table_mode): add ignore_tag - -2002-11-25 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03471] Re: SETPGRP() - * configure: SETPGRP() always defined - * proto.h (close_all_fds): added - (myExec): #ifdef HAVE_SETPGRP - * etc.c (close_all_fds): added - (myExec): #ifdef HAVE_SETPGRP - (mySystem): #ifndef -> #ifdef - * file.c (_doFileCopy): delete #ifdef HAVE_SETPGRP - (doFileSave): ditto - * image.c (openImgdisplay): delete #ifdef HAVE_SETPGRP - use close_all_fds() - * search.c (open_migemo): ditto - -2002-11-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03466] Re: background download when external viewer - * file.c (doExternal): UFclose(&uf); - -2002-11-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03464] Re: case insensitive regexp search - (rewrite [w3m-dev 03462] by Hiroyuki Ito <hito@crl.go.jp>) - * regex.c (matchWhich): add int - (newRegex0): igncase - (regmatch1): matchWhich with re->mode & RE_IGNCASE - (matchWhich): add igncase - -2002-11-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03459] background download when external viewer - * etc.c (myExec): added - (mySystem): rewrite to use myExec() - * file.c (doExternal): run background if BackgroundExtViewer - * proto.h (myExec): added - -2002-11-23 Fumitoshi UKAI <ukai@debian.or.jp> - - * doc/README.mouse_menu: delete column 10 limit - * doc-jp/README.mouse_menu: ditto - -2002-11-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03458] Re: mouse menu - * display.c (displayBuffer): nTab2 -> nTab, mouse_menu - * fm.h (nTab2): deleted - (MouseMenuMap): added - (MouseMenu): added - (LIMIT_MOUSE_MENU): added - * func.c (initMouseMenu): delete mouse_menu_map initialization - conv_from_system - mouse_menu->width - * main.c (main): mouse_menu->in_action = FALSE - (posTab): check mouse_menu - (mouse_menu_action): add y arg - mouse_menu_width check - (process_mouse): nTab2 -> nTab, mouse_menu - (nTabLine): deleted - (calcTabPos): check mouse_menu - * menu.c (mainMn): x, y - (selMn): mouse_menu check - (tabMn): mosue_menu check - * proto.h (nTabLine): deleted - -2002-11-22 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: options: -N - -2002-11-22 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03457] open URL of command line on each new tabs - * main.c (delBuffer): static - (fusage): -N - (main): add open_new_tab for -N - -2002-11-22 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03456] tiling of tab - * display.c (displayBuffer): use LastTab->y - (redrawNLine): fix column calculation - * fm.h (TabBuffer): add x1, x2, y - * main.c (calcTabPos): added - (main): calcTabPos() - (mouse_scroll_line): rewrite - (process_mouse): use LastTab->y - (_newT): calcTabPos() - (calcTabPos): added - (deleteTab): calcTabPos() - (moveTab): calcTabPos() - -2002-11-22 Fumitoshi UKAI <ukai@debian.or.jp> - - * doc/README.mouse_menu: added - * doc-jp/README.mouse_menu: added - -2002-11-22 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03455] mouse menu - * configure (config.h): MOUSE_FILE - * display.c (displayBuffer): nTab -> nTab2, N_TAB -> nTabLine() - (redrawNLine): nTab -> nTab2, N_TAB -> nTabLine() - mouse_menu support - * fm.h (nTab2): added - (N_TAB): deleted - (NO_TABBUFFER): added - (struct _MouseMenu): added - (mouse_menu_map): added - (mouse_menu): added - * func.c (initMouseMenu): added - * main.c (main): initMouseMenu() - (posTab): mouse_menu support - (mouse_menu_action): added - (process_mouse): mouse_menu support - (reinit): initMouseMenu() - (nTabLine): added - (moveTab): check NO_TABBUFFER - * proto.h (nTabLine): added - (initMouseMenu): added - * rc.c (sync_with_option): initMouseMenu() - -2002-11-22 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: func: NEXT, PREV - -2002-11-22 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03454] next / previous buffer - * funcname.tab (NEXT): added - (PREV): added - * main.c (nextBf): added - (prevBf): added - * proto.h (nextBf): added - (prevBf): added - * doc/README.func (NEXT): added - (PREV): added - * doc-jp/README.func (NEXT): added - (PREV): added - * scripts/w3mhelp.cgi.in (Buffer operation): nextBf prevBf - -2002-11-20 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: rc: image_map_list - -2002-11-20 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03452] image map - * display.c (displayBuffer): use getCurrentMapLabel() - * fm.h (MapArea): delete ifdef MENU_MAP - (image_map_list): added - * main.c (followA): don't call retrieveCurrentImg() ifdef USE_IMAGE - use retrieveCurrentMap() ifndef USE_IMAGE - (_followForm): indent - (drawAnchorCursor0): add AnchorList - (drawAnchorCuror): pass AnchorList to drawAnchorCursor0 - (follow_map): follow_map_panel - * map.c (searchMapList): added - (nearestMapArea): n, min default value to -1 - (searchMapArea): added - (getCurrentMapLabel): added - (getMapXY): moved - (retrieveCurrentMap): added - (follow_map_menu): parsed_tagarg -> name - rewrite to search map list/area - (follow_map_panel): parsed_tagarg -> name - rewrite to search map list/area - (newMapArea): delete ifdef MENU_MAP - (append_map_info): added - (page_info_panel): append_map_info - * proto.h (follow_map_menu): parsed_tagarg -> name - (follow_map_panel): parsed_tagarg -> name - (getCurrentMapLabel): added - (retrieveCurrentMap): added - * rc.c (CMT_IMAGE_MAP_LIST): added - (image_map_list): added - -2002-11-20 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> - - * [w3m-dev 03450] Re: cygwin console on Win9X - * terms.c (mouse_init): ifdef __CYGWIN__ - (mouse_end): ditto - -2002-11-19 Fumitoshi UKAI <ukai@debian.or.jp> - - * ftp.c (ftp_fclose): void return - -2002-11-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03444] download from ftp. - * file.c (FTPhalfclose: static - (loadGeneralFile): UFclose - FTPhalfclose for SCM_FTP - UFclose before signal back - (loadImageBuffer): UFclose before signal back - (openGeneralPagerBuffer): UFclose - * ftp.c (ftp_fclose): added - (Ftpfclose): dont read response(), but ftp_fclose() - (FtpBye): ftp_fclose() - -2002-11-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03449] Add DOWNLOAD_LIST to doc*/README.func and scripts/w3mhelp.cgi.in - * doc-jp/README.func (DOWNLOAD_LIST): added - * doc/README.func (DOWNLOAD_LIST): added - * scripts/w3mhelp.cgi.in (Miscellany): add ldDL - -2002-11-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03448] Some fixes - * url.c (KeyAbort): SIGNAL_RETURN - * .cvsginore: delete w3mimgsize - * scripts/.cvsignore: delete xface2xbm - * scripts/xface2xbm.in: deleted - -2002-11-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03447] Re: Open download list panel on new tab - * main.c (download_action): buffer management deleted - (ldDL): buffer management moved here - -2002-11-19 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: rc: open_tab_dl_list - -2002-11-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03446] Open download list panel on new tab - * fm.h (open_tab_dl_list): added - * main.c (download_action): buffer delete when download done - (ldDL): open buf in new tab if open_tab_dl_list - * rc.c (CMT_OPEN_TAB_DL_LIST): added - (open_tab_dl_list): added - -2002-11-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03445] download list for "w3m foo.tar.gz" - * main.c (main): display download list - -2002-11-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03443] Can't display "echo only_one_line | w3m" - * display.c (redrawNLine): check 1st line - -2002-11-16 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03442] Re: setting form on loading - * form.c (preFormUpdateBuffer): ifdef MENU_SELECT - -2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03441] charset of save file - * file.c (_doFileCopy): use conv_from_system() - (doFileSave): conv_from_system() - * main.c (DownloadListBuffer): conv_from_system() - -2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03440] Re: restore alarm event - * fm.h (BP_RELOAD): added - (DOWNLOAD_LIST_TITLE): added - * main.c (main): if BP_RELOAD, do reload - (reload): if buffer is DOWNLOAD_LIST, ldDL() - (DownloadListBuffer): rewrite with DOWNLOAD_LIST_TITLE - (download_action): delete "update" - don't delete prev buffer - (ldDL): rewrite to do reload - -2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03439] restore alarm event - * fm.h (AL_RESTORE): added - * main.c (alarm_sec): deleted - (alarm_status): deleted - (alarm_buffer): deleted - (alarm_event): deleted - (AlarmEvent): added - (CurrentAlarm): added - (PrevAlarm): added - (main): rewrite with CurrentAlarm - (SigAlarm): rewrite with CurrentAlarm - (copyAlarmEvent): added - (setAlarm): if AL_RESTORE, copy back from PrevAlarm - rewrite with CurrentAlarm - -2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03438] Re: segmentation fault by large complex table. - * table.c (check_table_height): check MAXROWCELL - * table.h (MAXROWCELL): added - -2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03437] Re: Check image size - * fm.h (MAX_IMAGE_SIZE): changed to 2048 - -2002-11-16 Hiroyuki Ito <hito@crl.go.jp> - - * [w3m-dev 03436] Check image size - * file.c (process_img): check w > MAX_IMAGE_SIZE - (HTMLlineproc2body): check w,h > MAX_IMAGE_SIZE - * fm.h (MAX_IMAGE_SIZE): added - * image.c (getImageSize): check w,h,width,height > MAX_IMAGE_SIZE - -2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03435] save image with SAVE - * buffer.c (discardBuffer): check image - * file.c (loadImageBuffer): add st - IMG_FLAG_DONE_REMOVE - s/sourcefile/mailcap_source/ - * fm.h (IMG_FLAG_DONT_REMOVE): added - * image.c (drawImage): & IMG_FLAG_LOADED - (deleteImage): & IMG_FLAG_DONT_REMOVE - (showImageProgress): & IMG_FLAG_LOADED - (getImage): & IMG_FLAG_LOADED - (getImageSize): & IMG_FLAG_LOADED - * main.c (vmSrc): delete ifdef USE_IMAGE - -2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03434] Re: cygwin console on Win9X - * terms.c (cygwin_mouse_btn_swapped): ifdef USE_MOUSE - (lastConMouse): deleted - (check_win9x): static - (read_win32_console): static - (GetConsoleHwnd): static - (cygwin_version): ifdef USE_MOUSE, static - (check_cygwin_console): static - (NEED_XTERM_ON): added - (NEED_XTERM_OFF): added - (NEED_CYGWIN_ON): added - (NEED_CYGWIN_OFF): added - (XTERM_TITLE): static char[] - (SCREEN_TITLE): static char[] - (CYGWIN_TITLE): static char[] - (term_title): check title_str - * terms.h (LASTLINE): added - (is_xterm): deleted - (enable_win9x_console_input): extern - (disable_win9x_console_input): extern - (NEED_XTERM_ON): deleted - (NEED_XTERM_OFF): deleted - -2002-11-16 WATANABE Katsuyuki <katsuyuki_1.watanabe@toppan.co.jp> - - * [w3m-dev 03433] cygwin console on Win9X - * configure (config.h): SUPPORT_WIN9X_CONSOLE_MBCS - * linein.c (inputLineHistSearch): enable_win9x_console_input() - disable_win9x_console_input() - * main.c (mouse): cygin_mouse_btn_swapped - * terms.c (is_xterm): static - (isLocalConsole): added - (cygwin_mouse_btn_swapped): added - (check_win32_console): deleted - (check_win9x): added - (init_win32_console_handle): check ttyslot() - (enable_win9x_console_input): added - (disable_win9x_console_input): added - (read_win32_console_input): delete ifdef MOUSE - (cmp_tv): deleted - (subtract_tv): deleted - (GetConsoleHwnd): added - (cygwin_version): added - (select_or_poll_win32_console): deleted - (check_cygwin_console): added - (select_win32_console): deleted - (set_tty): check_cygin_console() - (term_title): SetConsoleTitle() - (CYGWIN_ON): added - (CYGIN_OFF): added - (mouse_init): NEED_CYGWIN_ON - (mouse_end): NEED_CYGWIN_OFF - * terms.h (cygwin_mouse_btn_swapped): added - (enable_win9x_console_input): added - (disable_win9x_console_input): added - (NEED_CYGWIN_ON): added - (NEED_CYGWIN_OFF): added - -2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03432] Re: tab browser - * display.c (displayBuffer): s/buf->LINES/LASTLINES/ in cygwin - -2002-11-16 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: func: DOWNLOAD_LIST - -2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03431] save file by background process - * file.c (loadGeneralFile): use _doFileCopy() - (_doFileCopy): renamed from doFileCopy() - lock - fork & save - (doFileSave): lock - fork & save - * fm.h (DownloadList): added - (FirstDL): added - (LastDL): added - * form.c (struct internal_action): add download - * funcname.tab (DOWNLOAD_LIST): added - * html.h (URLFile): add url - * main.c (dump_extra): add add_download_list - (main): add_download_list, ldDL() - (_quitfm): added - (quitfm): rewrite with _quitfm() - (qquitfm): ditto - (w3m_exit): stopDownload() - (addDownloadList): added - (checkDownloadList): added - (convert_size3): added - (DownloadListBuffer): added - (download_action): added - (stopDownload): added - (ldDL): added - * proto.h (ldDL): added - (convert_size): added - (convert_size2): added - (doFileCopy): deleted - (_doFileCopy): added - (addDownloadList): added - (stopDownload): added - (checkDownloadList): added - (download_action): added - * url.c (openURL): save url in uf - -2002-11-15 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03430] disable display of alarm command - * main.c (SigAlarm): remove display_message_nsec() - (setAlarm): show sec - -2002-11-15 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: env,rc: https_proxy - -2002-11-15 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03429] https proxy - * fm.h (HTTPS_proxy): added - (HTTPS_proxy_parsed): added - * main.c (main): check https_proxy - * rc.c (CMT_HTTPS_PROXY): added - (https_proxy): added - (parse_proxy): HTTPS_proxy - * url.c (openURL): for HTTPS, use HTTPS_proxy - (schemeToProxy): HTTPS_proxy_parsed - -2002-11-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03428] install manual as w3m.exe.1 on Cygwin - * XMakefile (MAN1_TARGET): added - (HELP_TARGET): added - (install): use MAN1_TARGET, HELP_TARGET - (uninstall): use MAN1_TARGET, uninstall HELP_TARGET - -2002-11-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03427] Re: Select the nearest map area as default. - * map.c (newMapArea): accept sign chars - if points is not enough, return as SHAPE_UNKNOWN - -2002-11-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03425] charset of title - * display.c (displayBuffer): buffername converted to system coding - for term title - -2002-11-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03424] Content length - * file.c (loadGeneralFile): current_content_length before do_download - (save2tmp): current_content_length move before return - -2002-11-12 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03422] Re: setting form on loading - * form.c (loadPreForm): initialize name - check textarea, name for /textarea - -2002-11-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03418] Re: tab browser - * display.c (redrawNLine): s/clrtoeol/clrtoeolx/ - move rootY - -2002-11-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03417] install_w3mimgdisplay - * configure: define install_w3mimgdisplay - after use_w3mimg_fb determined - -2002-11-12 Akira TAGOH <at@gclab.org> - - * [w3m-dev 03415] fix a build issue for 64bit arch - * gcmain.c: deleted - * main.c: no need gcmain.c - s/MAIN/main/ - * mktable.c: ditto - * w3mbookmark.c: ditto - * w3mhelperpanel.c: ditto - -2002-11-12 Fumitoshi UKAI <ukai@debian.or.jp> - - * doc/w3m.1: update - * doc-jp/w3m.1: update - * NEWS: update: -show-option - -2002-11-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03414] Re: show parameter - * main.c (fusage): add -show-option - (MAIN): check -show-option - -2002-11-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03413] Re: setting form on loading - * form.c (loadPreForm): add textarea - (preFormUpdateBuffer): submit if value is matched as well - case FORM_TEXTAREA - case FORM_SELECT ifdef MENU_SELECT - -2002-11-12 Yuji Abe <cbo46560@pop12.odn.ne.jp> - - * [w3m-dev 03411] do AUXBIN_TARGETS - * scripts/Makefile (all): add AUXBIN_TARGETS - (clean): add AUXBIN_TARGETS - -2002-11-12 AIDA Shinra <aida-s@jcom.home.ne.jp> - - * [w3m-dev 03408] edit From in w3mail.cgi - * scripts/w3mmail.cgi.in: edit from as well - -2002-11-12 AIDA Shinra <aida-s@jcom.home.ne.jp> - - * [w3m-dev 03408] fix Bug#87472 - MOUSE_SCROLL_LINE should be a run-time option - * fm.h (relative_wheel_scroll): added - (fixed_wheel_scroll_count): added - (relative_wheel_scroll_ratio): added - * main.c (mouse_scroll_line): added - (process_mouse): s/MOUSE_SCROLL_LINE/mouse_scroll_line()/ - * menu.c (MOUSE_SCROLL_LINE): deleted - * terms.h (MOUSE_SCROLL_LINE): deleted - * rc.c (CMT_RELATIVE_WHEEL_SCROLL): added - (CMT_RELATIVE_WHEEL_SCROLL_RATIO): added - (CMT_FIXED_WHEEL_SCROLL_COUNT): added - (wheelmode): added - (params3): add relative_wheel_scroll, - relative_wheel_scroll_ratio, - fixed_wheel_scroll_count - * NEWS: updated - -2002-11-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03407] char GlobalKeymap -> unsigned char GlobalKeymap - * fm.h (GlobalKeymap): char->unsigned char - (EscKeymap): ditto - (EscBKeymap): ditto - (EscDKeymap): ditto - (PcKeymap): ditto - * keybind.c: ditto - * keybind_lynx.c: ditto - -2002-11-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03406] - * scripts/Makefile: add AUXBIN_DIR - update LIB_DIR, HELP_DIR - xface2xpm installed in AUXBIN_DIR - * scripts/multipart/Makefile: update LIB_DIR - * scripts/w3mman/Makefile: update LIB_DIR - -2002-11-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03405] Re: tab browser - * main.c (moveTab): B_FORCE_REDRAW - -2002-11-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03401] w3mhelp.cgi - * proto.h (tabMn): nulcmd ifndef USE_MENU - * scripts/w3mhelp-funcdesc.en.pl.in: add LINEEDIT:EDITOR - * scripts/w3mhelp-funcdesc.ja.pl.in: add LINEEDIT:EDITOR - Tab operation - * scripts/w3mhelp-funcname.pl.in: add LINEEDIT:EDITOR C-o - * scripts/w3mhelp.cgi.in: add tabA in Hyperlink operation - add tabURL, tabrURL in File/Stream operation - add Tab operation - add lineedit_editor in Line edit mode - -2002-11-10 NOMIYA Masaru <nomiya@ttmy.ne.jp> - - * [w3m-dev 03399] - * XMakefile: ;; -> ; - -2002-11-10 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03398] auxbindir - * XMakefile: EXT_TARGETS -> LIB_TARGETS, AUXBIN_TARGETS - * config.h.dist: add AUXBIN_DIR - LIB_DIR is cgi-bin - * configure: add -auxbindir - add AUXBIN_DIR - LIB_DIR is cgi-bin - EXT_TARGETS -> LIB_TARGETS, AUXBIN_TARGETS - * file.c (compression_decoder): libfile_p -> auxbin_p - (check_command): libfile_p -> auxbin_p - use w3m_auxbin_dir() instead of w3m_lib_dir() - (acceptableEncoding): libfile_p -> auxbin_p - (xface2xpm): use auxbinFile() instead of libFile() - (uncompress_stream): libfile_p -> auxbin_p - use auxbinFile() instead of libFile() - * image.c (getCharSize): use w3m_auxbin_dir() instead of w3m_lib_dir() - (openImgdisplay): use w3m_auxbin_dir() instead of w3m_lib_dir() - * indep.c (w3m_auxbin_dir): added - * indep.h (w3m_auxbin_dir): added - * proto.h (auxbinFile): added - * rc.c (auxbinFile): added - (libFile): #if 0, no longer used - (helpFile): used only #ifndef USE_HELP_CGI - * NEWS: separate auxbindir and libdir (local-CGI, file:///$LIB/) - -2002-11-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03396] Re: meta refresh problem - * main.c (MAIN): AL_IMPLICIT -> alarm_status - (SigAlarm): AL_IMPLICIT -> alarm_status - -2002-11-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03391] use editor when input at last line - * linein.c (_editor): added - -2002-11-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03390] some fixes related with form - * form.c (input_textarea): goto input_end - unlink(tmpf); - * main.c (_followForm): s/TEXT/Password/ - -2002-11-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03388] meta refresh problem - * fm.h (AL_IMPLICIT_DONE): 3->4 - (AL_ONCE): 8 - (AL_IMPLICIT_ONCE): (AL_IMPLICIT|AL_ONCE) - * main.c (MAIN): & AL_IMPLICIT, & AL_IMPLICIT_DONE - (SigAlarm): & AL_IMPLICIT, & AL_IMPLICIT_DONE, & AL_ONCE - (setAlaramEvent): & AL_IMPLICIT - -2002-11-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03387] Re: tab browser - * buffer.c (newBuffer): buf->LINES initialize - (gotoLine): use buf->LINES - (gotoRealLine): use buf->LINES - * display.c (displayBuffer): check by buf->LINES - (redrawNLine): buf->LINES - (redrawLine): buf->LINES - (redrawLineImage): no need buf->rootY - (cursorDown): buf->LINES - (arrangeCursor): buf->LINES - * etc.c (columnSkip): buf->LINES - (lineSkip): buf->LINES - (currentLineSkip): buf->LINES - * fm.h (Buffer): add LINES - * main.c (nscroll): Currentbuf->LINES - (pgFore): Currentbuf->LINES - (pgBack): Currentbuf->LINES - (ctrCsrV): Currentbuf->LINES - (movD): Currentbuf->LINES - (movU): Currentbuf->LINES - (_goLine): Currentbuf->LINES - (drawAnchorCursor): Currentbuf->LINES - (setOpt): B_REDRAW_IMAGE - (newT): B_REDRAW_IMAGE - (closeT): B_REDRAW_IMAGE - (nextT): B_REDRAW_IMAGE - (prevT): B_REDRAW_IMAGE - (moveTab): B_NORMAL - -2002-11-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03386] Re: Interrupt in no_proxy_check() - * file.c (getAuthCookie): term_cbreak() - (loadGeneralFile): term_cbreak() - term_raw() - preFormUpdateBuffer() before term_raw() - (loadHTMLstream): term_raw() - -2002-11-07 Katsumi@yamaoka.cc - - * [w3m-dev 03385] install-sh typo - * install-sh: s/'/"/ - -2002-11-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03383] Select the nearest map area as default. - * fm.h (MapArea): add center_x, center_y - * map.c (nearestMapArea): added - (follow_map_menu): initial by nearestMapArea() - (newMapArea): set center_x, center_y - -2002-11-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03382] Interrupt in no_proxy_check() - * url.c (check_no_proxy): SIGINT trap by KeyAbort - -2002-11-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03380] fix configure - * configure: s/INSTALL_W3MIMGDISPLAY/install_w3mimgdisplay/ - already define - * config.h.dist (INSTALL_W3MIMGDISPLAY): added - -2002-11-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03379] setuid w3mimgdisplay and check console tty - * XMakefile: w3mimgdisplay install by INSTALL_W3MIMGDISPLAY - * configure: ask setuid w3mimgdisplay - (w3mimgdisplay_setuid): added - (INSTALL_W3MIMGDISPLAY): added - * etc.c (mySystem): close until FOPEN_MAX - * image.c (openImgdisplay): setenv W3M_TTY - stderr to /dev/null - close until FOPEN_MAX - * install-sh: -o, -g for owner, group - * proto.h (ttyname_tty): added - * search.c (open_migemo): stderr to /dev/null - close until FOPEN_MAX - * terms.c (ttyname_tty): added - * w3mimgdisplay.c: include <sys/types.h>, <unistd.h> - W3MIMGDISPLAY_SETUID - stderr to /dev/null - * w3mimg/w3mimg.c: include <sys/types.h>, <unistd.h> - W3MIMGDISPLAY_SETUID - * w3mimg/fb/fb_w3mimg.c (check_tty_console): added - -2002-11-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03377] sync_with_option - * etc.c (loadPassword): reset passwords - * form.c (loadPreForm): reset PreForm - * main.c (option_assigned): deleted - (parse_proxy): deleted - (MAIN): move initCookie(), setLocalCookie() - after sync_with_option() - delete parseURL for *_proxy - s/WrapSearch/WrapDefault/ - move initKeymap(), initMenu() after setupscreen() - sync_with_option() after init_rc() - * rc.c (pre_form_file): move in params9 (network settting) - (sync_with_option): initKeymap(), initMenu() is done - if fmInitialized - (init_rc): delete sync_with_option() - -2002-11-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03375] NULL check of CurrentTab - * display.c (disp_message_nsec): check CurrentTab - * file.c (doExternal): check CurrentTab - * image.c (loadImage): check CurrentTab - -2002-11-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03374] disable_secret_security_check - * etc.c (openSecurityFile): disable_secret_security_check - * fm.h (disable_secret_security_check): added - * rc.c (CMT_DISABLE_SECRET_SECURITY_CHECK): added - (disable_secret_security_check): added - * NEWS: rc: disable_secret_security_check - -2002-11-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * NEWS: update - -2002-11-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * rc.c (CMT_PRE_FORM_FILE): added - (pre_form_file): added - -2002-11-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * doc-jp/README.tab: added [w3m-dev 03372] - * doc/README.tab: brief translation - -2002-11-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03372] tab browser - * display.c (displayBuffer): add ny - rootY offset by tab - tab line - (cursorDown): offset rootY - (arrangeCursor): offset rootY - * etc.c (columnSkip): offset rootY - (lineSkip): offset rootY - (currentLineSkip): offset rootY - * file.c (HTMLlineproc2body): ATTR_TARGET - * fm.h (MapArea): add target - (Buffer): add rootY - (TabBuffer): added - (Currentbuf): comment out - (Firstbuf): comment out - (CurrentTab): added - (FirstTab): added - (LastTab): added - (open_tab_blank): added - (close_tab_back): added - (nTab): added - (TabCols): added - (N_TAB): added - (Currentbuf): CurrentTab->currentBuffer - (Firstbuf): CurrentTab->firstBuffer - * funcname.tab (CLOSE_TAB): added - (NEW_TAB): added - (NEXT_TAB): added - (PREV_TAB): added - (TAB_GOTO): added - (TAB_GOTO_RELATIVE): added - (TAB_LEFT): added - (TAB_LINK): added - (TAB_MENU): added - (TAB_RIGHT): added - * html.c (ALST_AREA): add ATTR_TARGET - * image.c (showImageProgress): offset rootY - * main.c (_newT): added - (followTab): added - (moveTab): added - (check_target): added - (MAIN): init tab related values - buf => tab - (nscroll): offset rootY - (pgFore): offset rootY - (pgBack): offset rootY - (ctrCsrV): offset rootY - (_movD): offset rootY - (_movU): offset rootY - (_goLine): offset rootY - (_mark): offset rootY - (followA): check target - (_followForm): offset rootY - (drawAnchorCursor0): offset rootY - (drawAnchorCursor): offset rootY - (backBf): check close_tab_back - (follow_map): rewrite for tab, check target - (posTab): added - (process_mouse): tab operation - offset rootY - (deleteFiles): for all buffers in all tabs - (newTab): added - (newT): added - (numTab): added - (deleteTab): added - (closeT): added - (nextT): added - (prevT): added - (followTab): added - (tabA): added - (tabURL0): added - (tabURL): added - (tabrURL): added - (moveTab): added - (tabR): added - (tabL): added - * map.c (follow_map_menu): return MapArea - (newMapArea): add target args - * menu.c (SelTabMenu): added - (SelTabV): added - (initSelTabMenu): added - (smChTab): added - (smDelTab): added - (MainMenuItem): add Select Tab - on New Tab - (popupMenu): add initSelTabMenu() - offset rootY - (mainMn): offset rootY - (selMn): offset rootY - (initSelectMenu): offset rootY - (tabMn): added - * proto.h (newT): added - (closeT): added - (nextT): added - (prevT): added - (tabA): added - (tabURL): added - (tabrURL): added - (tabR): added - (tabL): added - (newTab): added - (deleteTab): added - (follow_map_menu): return MapArea - (newMapArea): add target arg - (tabMn): added - * rc.c (CMT_OPEN_TAB_BLANK): added - (CMT_CLOSE_TAB_BACK): added - (open_tab_blank): added - (close_tab_back): added - * doc/README.func (CLOSE_TAB): added - (NEW_TAB): added - (NEXT_TAB): added - (PREV_TAB): added - (TAB_GOTO): added - (TAB_GOTO_RELATIVE): added - (TAB_LEFT): added - (TAB_LINK): added - (TAB_MENU): added - (TAB_RIGHT): added - * doc-jp/README.func: ditto doc/README.func - -2002-11-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * doc-jp/README.pre_form: added [w3m-dev 03373] - * doc/README.pre_form: brief translation - -2002-11-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * etc.c (PASS_IS_READABLE_MSG): deleted - (FILE_IS_READABLE_MSG): added - (openPasswdFile): deleted - (openSecretFile): delete error_msg arg - (loadPasswd): use openSecretFile() - * form.c (next_token): delete unused static decl - (FILE_IS_READABLE_MSG): deleted - (loadPreForm): no need pass error_msg - * proto.h (openSecretFile): delete error_msg arg - -2002-11-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03373] setting form on loading - * config.h.dist (PRE_FORM_FILE): added - * configure (PRE_FORM_FILE): added - * etc.c (openPasswdFile): define by openSecretFile() - (openSecretFile): renamed, not static - * file.c (loadGeneralFile): preFOrmUpdateBuffer() - * fm.h (Buffer): add submit - (pre_form_file): added - * form.c (struct pre_form_item): added - (struct pre_form): added - (next_token): added - (PreForm): added - (add_pre_form): added - (add_pre_form_item): added - (loadPreForm): added - (preFormUpdateBuffer): added - * frame.c (renderFrame): add preFormUpdateBuffer() - * main.c (MAIN): buf->submit check - * proto.h (preFormUpdateBuffer): added - (openSecretFile): added - (loadPreForm): added - * rc.c (sync_with_option): add loadPreForm() - -2002-11-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03371] segmentation fault by large complex table. - * table.c (bsearch_2short): indexarry char to short - (bsearch_double): ditto - (dv2sv): ditto - (table_rule_width): ditto - (set_integrated_width): ditto - (check_table_height): ditto - (feed_table_tag): ditto - * table.h (struct table_cell): index, eindex char to short - -2002-11-05 Fumitoshi UKAI <ukai@debian.or.jp> - - * w3m 0.3.2 - * version.c.in: update - * doc/README: version 0.3.2, release date - * doc-jp/README: ditto - * NEWS: update - -2002-11-05 Fumitoshi UKAI <ukai@debian.or.jp> - - * scripts/w3mhelp.cgi.in: add chkWORD - -2002-11-04 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev-en 00827] Re: w3m-cvs segfaults on news://<mid> URLs - * url.c (openURL): check pu->file for news: - -2002-10-31 Fumitoshi UKAI <ukai@debian.or.jp> - - * fix compilation warnings - * w3mimgdisplay.c: add #include <string.h> for strlen, strcmp - * w3mimg/fb/fb.c: add #include <string.h> for memset - * w3mimg/fb/fb_w3mimg.c: add #include <string.h> for memset - -2002-10-31 Fumitoshi UKAI <ukai@debian.or.jp> - - * 0.3.2 release candidate 4 - * version.c.in: update - -2002-10-31 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03365] ~/.netrc support - * etc.c (add_auth_pass_entry): add netrc arg - add new entry to tail - (find_auth_pass_entry): ent->host == NULL is "default" - (loadPasswd): rewrite with next_token, parsePasswd, - openPasswdFile - load ~/.netrc - (next_token): added - (parsePasswd): added - (openPasswdFile): added - * ftp.c (openFTP): use find_auth_user_passwd - * NEWS: ~/.netrc - -2002-10-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03363] refresh download - * file.c (HTMLtagproc1): alarm is implicit once - * fm.h (AL_IMPLICIT_ONCE): added - * main.c (searchKeyData): reset CurrentKeyData, CurrentCmdData - (SigAlarm): CurrentCmdData is saved to data - message displayed on AL_EXPLICIT - clear alarm when AL_IMPLICIT_ONCE - (setAlarmEvent): AL_IMPLICIT_ONCE - -2002-10-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03362] Re: support for http://user:pass@www.url.com - * etc.c (loadPasswd): accept host, passwd - -2002-10-31 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03359] support for http://user:pass@www.url.com - * etc.c (find_auth_user_passwd): use ParsedURL for args - use user and passwd if these are defined in ParsedURL - * file.c (getAuthCookie): change find_auth_user_passwd() - * proto.h (find_auth_user_passwd): change prototype - * NOTE: http://user:pass@www.url.com is NOT RECOMMENDED - for security reasons. + * ftp.c: Move sockent for splint. -2002-10-30 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * cookie.c: Use unsigned int for max_count. - * [w3m-dev 03357] tab in <pre> in <ul>,<ol>,... - * file.c (HTMLlineproc2): check indent for tabstop + * libwc/iso2022.c: Add missing comparision that made if always true. -2002-10-30 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * Str.c: Use fgetc in while loops, use int instead of char. - * [w3m-dev 03354] display current line number - * display.c (displayBuffer): %3d -> %d + * mailcap.c: Adjust len to size_t. -2002-10-29 Fumitoshi UKAI <ukai@debian.or.jp> + * history.c: Check return value of rename. - * 0.3.2 release candidate 3 - * version.c.in: update + * main.c: Adjust while loop. -2002-10-29 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * news.c: Check dup call for errors. - * [w3m-dev 03352] w3mimgsize is not necessary. - * XMakefile (IMGSIZE): removed - * config.h.dist (IMGSIZE): removed - * configure (imgtarget): remove IMGSIZE - (config.h): remove IMGSIZE - * rc.c (CMT_IMGSIZE): removed - * doc/README.img: remove imgsize - * w3mimgsize.c: removed + * file.c: Remove unused value. -2002-10-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * ftp.c: dup can give a negative value. - * [w3m-dev 03351] w3m core dump - * table.c (feed_table_tag): fix rendering problem (maybe security hole?) + * main.c: Use int for c. -2002-10-28 Fumitoshi UKAI <ukai@debian.or.jp> + * table.c: Initialize new_tabwidth at declaration. - * [w3m-dev-en 00796] - * configure: expand here. ($var in Makefile is $v + ar) - * XMakefile: clean w3mimg/**/*.o + * local.c: Remove overflow on readlink. -2002-10-28 Fumitoshi UKAI <ukai@debian.or.jp> + * anchor.c, file.c, istream.c, main.c, menu.c, rc.c, table.c, terms.c: + * url.c: Remove dead assignments flagged by Clang static analysis. - * [w3m-dev-en 00795] - * configure: IMLIB_CONFIG, IMLIB2_CONFIG, GDKPIXBUF_CONFIG - * rc.c (CMT_DISP_IMAGE): need if not defined USE_IMAGE + * w3mbookmark.c: + Move fclose to fix dereference after null check (Coverity). -2002-10-27 Fumitoshi UKAI <ukai@debian.or.jp> + * file.c: Fix resource leak in AuthDigestCred. - * 0.3.2 release candidate 2 - * version.c.in: update + * buffer.c: Fix resource leak in readBufferCache. -2002-10-26 Fumitoshi UKAI <ukai@debian.or.jp> + * cookie.c: Fix resource leak in load_cookies. - * [w3m-dev-en 00788] - * fm.h (displayImage): FALSE ifndef USE_IMAGE - * rc.c (displayImage): display_image even if USE_IMAGE undefined - (sync_with_options): display_image is forced to be FALSE - ifndef USE_IMAGE + * frame.c: Fix resource leak. -2002-10-26 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev-en 00783] hsaka@mth.biglobe.ne.jp (Hironori SAKAMOTO) - add display_lineinfo option - * display.c (displayBuffer): check displayLineInfo - * fm.h (displayLineInfo): added - * rc.c (CMT_DISPLINEINFO): added - (display_lineinfo): added - * NEWS (rc: display_lineinfo): add + * w3mhelperpanel.c: Fix resource leak. -2002-10-26 Fumitoshi UKAI <ukai@debian.or.jp> + * w3mbookmark.c: Fix resource leak and a null return value dereference. - * [w3m-dev-en 00781] "Clemens Fischer" <ino-waiting@gmx.net> - zope doesn't recognize implied *LWS in accept-language - * rc.c (sync_with_option): remove optional LWS + * linein.c: Fix a divide-by-zero. -2002-10-26 Fumitoshi UKAI <ukai@debian.or.jp> + * cookie.c: Change total_dot_number to unsigned int. - * [w3m-dev-en 00780] "Carlo E. Prelz" <fluido@fluido.as> - always print on screen the relative position - * display.c (displayBuffer): relative position + * cookie.c: Free tmp. -2002-10-26 Fumitoshi UKAI <ukai@debian.or.jp> + * local.c: Remove unreachable return. - * 0.3.2 release candidate 1 - * version.c.in: update +2015-08-10 Alan Grow <alangrow@gmail.com> -2002-10-26 Gary Johnson <garyjohn@spk.agilent.com> + * url.c (HTTPrequest): + - Use Content-Type instead of Content-type. + - Use Content-Length instead of Content-length. + Origin: https://github.com/acg/w3m/commit/5946c2784d4eae46ec06e52390e43a874b3395fc - * [w3m-dev-en 00777] patch to fix w3m-0.3.1 word break problem - * file.c (is_period_char): - 0x203A - SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - (is_beginning_char): - 0x2018 - LEFT SINGLE QUOTATION MARK - 0x2039 - SINGLE LEFT-POINTING ANGLE QUOTATION MARK - (is_word_char): add several chars ifndef JP_CHARSET - add ':' and '*' +2015-08-09 Egmont Koblinger <egmont@users.sourceforge.net> -2002-10-17 Hiroyuki Ito <hito@crl.go.jp> + * terms.c: Support sgrmouse for skip_escseq. + * menu.c: Adjust comments for keymaps. + Origin: https://sourceforge.net/p/w3m/patches/65/#e2aa - * [w3m-dev 03342] - * doc/README.img: updated - * doc-jp/README.img: updated +2015-08-09 Tatsuya Kinoshita <tats@debian.org> -2002-10-17 Daiki Ueno <ueno@unixuser.org> + * keybind_lynx.c: Support sgrmouse for Lynx-like key binding. + cf. https://sourceforge.net/p/w3m/patches/65/ - * [w3m-dev 03341] white space is needed to close an empty-element tag - * parsetagx.c (parse_tag): extract tagname until '/' +2015-08-09 IWAMOTO Kouichi <sue@iwmt.org> -2002-10-11 Fumitoshi UKAI <ukai@debian.or.jp> + * menu.c: Support SGR style mouse handler for menu. + cf. https://github.com/tats/w3m/issues/5 + Origin: https://gist.github.com/ttdoda/83fbcf676a21da28432b + Bug: https://sourceforge.net/p/w3m/patches/65/ - * [w3m-dev 03339] Re: Debian Bug#164098 w3m: <sup> is not properly supported - * file.c (HTMLtagproc1): HTML_SUP, HTML_N_SUP, HTML_SUB, HTML_N_SUB - * html.c (TagMAP): sup, /sup, sub, /sub - * html.c (HTML_SUP): added - (HTML_N_SUP): added - (HTML_SUB): added - (HTML_N_SUB): added - * table.c (feed_table_tag): HTML_SUP, HTML_N_SUP, HTML_SUB, HTML_N_SUB - * tagtable.tab (sup): added - (/sup): added - (sub): added - (/sub): added +2015-08-06 Richard Quirk <richard@quirk.es> -2002-10-11 Hiroyuki Ito <hito@crl.go.jp> + Fix problems reported by cppcheck, clang --analyze and gcc warnings. + Origin: https://github.com/tats/w3m/pull/6 - * [w3m-dev 03337] delete unused functions in fb.c etc. (Re: canna patch) - * w3mimg/fb/fb.c (fb_image_rotate): delete - (fb_frame_rotate): delete - (fb_pset): delete - (fb_get_color): delete - (fb_clear): delete - (fb_cmap_disp): delete - (fb_fscrn_disp): delete - (fb_vscrn_disp): delete - * w3mimg/fb/fb.h (fb_image_rotate): delete - (fb_frame_rotate): delete - (fb_pset): delete - (fb_get_color): delete - (fb_clear): delete - (fb_cmap_disp): delete - (fb_fscrn_disp): delete - (fb_vscrn_disp): delete - * w3mimg/fb/fb_img.c (fb_image_draw_simple): delete - * w3mimg/fb/fb_img.h (fb_image_draw_simple): delete - - * w3mimg/fb/license.txt: removed, follow w3m license - -2002-10-09 AIDA Shinra <aida-s@jcom.home.ne.jp> - - * [w3m-dev 03336] proxy check for https authorization: - * url.c (HTTPrequest): check CONNECT request for ssl - -2002-10-06 Hiroyuki Ito <hito@crl.go.jp> - - * [w3m-dev 03333] x11 image animation - * w3mimg/x11/x11_w3mimg.c (struct x11_image): added - (x11_img_new): added - (resize_image): added - (x11_load_image): rewrite GdkPixbuf - (x11_show_image): rewrite GdkPixbuf - (x11_free_image): rewrite GdkPixbuf - -2002-10-02 Yuji Abe <cbo46560@pop12.odn.ne.jp> - - * [w3m-dev 03332] Re: hang up when seeing web page that contains xbm file - * w3mimg/x11/x11_w3mimg.c (x11_load_image): transparent support - -2002-10-02 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> - - * [w3m-dev 03331] Re: hang up when seeing web page that contains xbm file - * configure: check gdk-pixbuf-config existence - -2002-10-01 Yuji Abe <cbo46560@pop12.odn.ne.jp> - - * [w3m-dev 03330] Re: hang up when seeing web page that contains xbm file - * w3mimg/x11/x11_w3mimg.c (x11_load_image): scaling - -2002-09-30 Yuji Abe <cbo46560@pop12.odn.ne.jp> - - * [w3m-dev 03327] gdk-pixbuf support for w3m-img/x11 - * configure (use_w3mimg_x11) Imlib1 or GdkPixbuf - check gdkpixbuf - * w3mimg/x11/x11_w3mimg.c (USE_GDKPIXBUF): added - (x11_init): USE_GDKPIXBUF - (x11_load_image): USE_GDKPIXBUF - (x11_get_image_size): USE_GDKPIXBUF - -2002-09-30 qhwt@myrealbox.com - - * [w3m-dev 03325] Re: hang up when seeing web page that contains xbm file - * w3mimgdisplay.c (main): always return response - even if size is unknown - -2002-09-29 Hiroaki Shimotsu <shim@d5.bs1.fc.nec.co.jp> - - * [w3m-dev 03323] EDITOR - * main.c (MAIN): use not_null() + * Str.c, Str.h: Strnew_charp and co do not modify the char* input. -2002-09-29 AIDA Shinra <aida-s@jcom.home.ne.jp> - - * Re: [w3m-dev 03320] Re: Passwords - * etc.c (dir_under): same path is ok - * file.c (loadGeneralFile): if missing, return NULL - ssl cert already checked - * html.h (URLFILE): add ssl_certificate - * istream.c (ssl_get_certificate): change args - * istream.h (ssl_get_certificate): ditto - * url.c (openSSLHandle): add p_cert - ssl certificate check here - (HTTPrequest): auth_cookie fix - -2002-09-25 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03321] Bug#162104: file descriptors 1 and 2 are closed rather than reopened to /dev/null - * etc.c (mySystem): fd 0,1,2 redirect /dev/null, close all other fds - -2002-09-25 AIDA Shinra <aida-s@jcom.home.ne.jp> - - * [w3m-dev 03319] mailto - * main.c (followA): mailto - * main.c (cmd_loadURL): mailto - * url.c (_parsedURL2Str): mailto: query - -2002-09-25 AIDA Shinra <aida-s@jcom.home.ne.jp> - - * [w3m-dev 03318] Re: Passwords - * etc.c (struct auth_path): added - (passwords): added - (dir_under): added - (add_auth_pass_entry): added - (find_auth_pass_entry): added - (find_auth_user_passwd): added - (loadPasswd): added - (find_auth): dir_under() - (add_auth_cookie): check file - * file.c (find_auth_user_passwd): removed - (getAuthCookie): use delText() - check proxy - (get_auth_cookie): removed - (loadGeneralFile): auth_pu - * proto.h (schemeToProxy): added - (get_auth_cookie): removed - (loadPasswd): added - (find_auth_user_passwd): added - * rc.c (sync_with_option): loadPasswd() - * textlist.c (delValue): added - * textlist.h (delValue): added - (delText): added - * url.c (HTTPrequest): seen_www_auth - (schemeToProxy): added - -2002-09-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03312] Re: Passwords - * config.h.dist: PASSWD_FILE - * file.c (find_auth_user_passwd): return if passwd_file == NULL - -2002-09-11 Yuuichi Teranishi <teranisi@gohome.org> - - * [w3m-dev 03311] Re: Passwords - * configure (config.h): default PASSWD_FILE - * fm.h (passwd_file): default PASSWD_FILE - -2002-09-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03307] add password_file support - * file.c (find_auth_user_passwd): added - * fm.h (passwd_file): added - * rc.c (CMT_PASSWDFILE): added - (passwdfile): added - -2002-09-09 Hiroyuki Ito <hito@crl.go.jp> - - * [w3m-dev 03300] framebuffer: 8bit color support - * w3mimg/fb/fb.c: support FB_VISUAL_PSEUDOCOLOR 256 colors - -2002-09-09 Hironori SAKAMOTO <h-saka@lsi.nec.co.jp> - - * [w3m-dev 03299] remove file before copying (install-sh) - * install-sh: remove file before copying - -2002-09-09 Hironori SAKAMOTO <h-saka@lsi.nec.co.jp> - - * [w3m-dev 03298] [ -f instead of [ -e (configure) - * configure: use test -f instead of test -e - -2002-09-09 Hironori SAKAMOTO <h-saka@lsi.nec.co.jp> - - * [w3m-dev 03297] TERM=mlterm - * terms.c (w3m_term_info_list): add mlterm - -2002-09-09 Hironori SAKAMOTO <h-saka@lsi.nec.co.jp> - - * [w3m-dev 03296] fix configure (strtoq) - * configure (strtoq): fix missing semicolon - -2002-09-06 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03292] Re: load file at cursor - * anchor.c (reAnchorPos): added - (reAnchorWord): added - (reAnchorAny): rewrite to use reAnchorPos() - * funcname.tab (MARK_WORD): added - * keybind.c (;) MARK_WORD - * main.c (getCurWord): added - (chkWORD): added - (is_wordchar): added - (getCurWord): added - (GetWord): rewrite to use getCurWord() - * proto.h (chkWORD): added - (reAnchorWord): added - * doc/README.func: add MARK_WORD - * doc/keymap.default: add MARK_WORD - * doc-jp/README.func: add MARK_WORD - * doc-jp/keymap.default: add MARK_WORD - * NEWS: add MARK_WORD - -2002-08-28 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 03291] parsetagx.c:toNumber() - * parsetagx.c (toNumber): don't parse non-number value as 0, - just ignore - -2002-08-28 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 03290] Re: Forward: Bug#157098: wrong file presentation on large files - * indep.c (strtoclen): need defined() - -2002-08-21 Fumitoshi UKAI <ukai@debian.or.jp> - - * Debian Bug#157098: wrong file presentation on large files - from "Eduard Bloch" <blade@debian.org> - * configure (clen_t): added - (HAVE_STRTOLL): added - (HAVE_STRTOQ): added - (HAVE_ATOLL): added - (HAVE_ATOQ): added - * config.h.dist: ditto - * file.c (current_content_length): s/int/clen_t/ - (loadGeneralFile): s/atoi/strtoclen/ - (convert_size): s/int/clen_t/ - (convert_size2): s/int/clen_t/ - (showProgress): s/int/clen_t/ - (loadHTMLstream): s/int/clen_t/ linelen, trbyte - (loadBuffer): ditto - (getNextPage): s/int/clen_t/ linelen - (save2tmp): s/int/clen_t/ linelen, trbye - (_MoveFile): s/int/clen_t/ linelen, trbye - * fm.h (_Buffer): s/int/clen_t/ linelen, trbye - * ftp.c (size_int2str): s/long/clen_t/ - (ex_ftpdir_name_size_date): s/long/clen_t/ - * indep.c (strtoclen): added - * indep.h (strtoclen): added - * proto.h (showProgress): s/int/clen_t/ - -2002-07-31 Fumitoshi UKAI <ukai@debian.or.jp> - - * Debian Bug#154766: w3m-img: support DirectColor framebuffer visuals? - from Colin Watson <cjwatson@debian.org> - * w3mimg/fb/fb.c (fb_open): accept FB_VISUAL_DIRECTCOLOR - -2002-07-30 Hiroyuki Ito <hito@crl.go.jp> - - * [w3m-dev 03282] Re: w3m-img for framebuffer update - * w3mimg/fb/fb.c (fb_image_new): ignore no image - calloc multiple images - (fb_image_fill): added - (fb_image_draw): width, height fix - (fb_image_rotate): fix typo - (fb_image_copy): added - (fb_frame_new): added - (fb_freme_free): added - (fb_frame_rotate): added - * w3mimg/fb/fb.h (FB_IMAGE): add num, id, delay - (fb_frame_new): added - (fb_frame_free): added - (fb_frame_rotate): added - * w3mimg/fb/fb_gdkpixbuf.c (get_image_size): animation support - (fb_image_load): animation support - (draw): add bg, x, y, w, h args - * w3mimg/fb/fb_img.h (fb_image_load): return FB_IMAGE** - * w3mimg/fb/fb_imlib2.c (fb_image_load): return FB_IMAGE** - * w3mimg/fb/fb_w3mimg.c (w3mfb_show_image): animation support - -2002-07-23 Hiroyuki Ito <hito@crl.go.jp> - - * [w3m-dev 03280] w3m-img without w3mimgsize - * fm.h (Imagesize): deleted - * image.c (getImageSize): rewrite to use w3mimgdisplay - instead of w3mimgsize - * rc.c (params1): remove imgsize, merged to imgdisplay - -2002-07-23 Hiroyuki Ito <hito@crl.go.jp> - - * [w3m-dev 03279] w3m-img for framebuffer update - http://homepage3.nifty.com/slokar/fb/w3mfb.patch.gz - * w3mimg/fb/readme.txt: update - * w3mimg/fb/fb.c: update - * w3mimg/fb/fb.h: update - * w3mimg/fb/fb_gdkpixbuf.c: update - * w3mimg/fb/fb_img.c: update - * w3mimg/fb/fb_img.h: update - * w3mimg/fb/fb_imlib2.c: update - * w3mimg/fb/fb_w3mimg.c: update - * w3mimg/fb/fb_gdkpixbuf.h: deleted - * w3mimg/fb/fb_imlib2.h: deleted - * w3mimg/w3mimg.h (w3mimg_op): add get_image_size() - * w3mimg/x11/x11_w3mimg.c: update - * w3mimgdisplay.c (main): use get_image_size() - * w3mimgsize.c (main): use get_image_size() - -2002-07-19 Hideyuki SHIRAI <shirai@rdmg.mgcs.mei.co.jp> - - * [w3m-dev 03277] compile error on Solaris7 - * w3mimg/w3mimg.c: include <stdio.h> for NULL - -2002-07-19 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> - -a * [w3m-dev 03276] compile error on EWS4800 - * file.c (extract_auth_val): fix warnings - * w3mimg/w3mimg.c: include <stdlib.h> - -2002-07-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03275] fix of multipart.cgi - * scripts/multipart/multipart.cgi.in: check REQUEST_METHOD first - need $count for POST - -2002-07-18 Fumitoshi UKAI <ukai@debian.or.jp> - - * w3mimgdisplay.c (main): '5' for w3mimgsize - -2002-07-18 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> - - * [w3m-dev 03270] Re: w3m-img for framebuffer merged - * w3mimg/x11/x11_w3mimg.c (w3mimg_x11open): unsigned int nchildren - -2002-07-18 Fumitoshi UKAI <ukai@debian.or.jp> - - * XMakefile (w3mimg/w3mimg): added - (w3img/fb) fixed - * w3mimg/w3mimg.h (w3mimg_open): deleted to avoid compilation warnings - * w3mimg/w3mimg.c: added - * configure (imgobjs): add w3mimg/w3mimg.o + * local.c: Close temp file if pipe open fails. -2002-07-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * rc.c: Avoid passing null to strlen. - * [w3m-dev 03272] Re: w3m-img for framebuffer merged (Re: Re: w3m-img for framebuffer) - * XMakefile (w3mimg/x11): chdir - (w3mimg/fb): chdir + * file.c: Initialise hidden_input to NULL. + This prevents a possible use of garbage value on line 3017. -2002-07-18 Fumitoshi UKAI <ukai@debian.or.jp> + * file.c: Use pclose for pipe. - * [w3m-dev 03273] Re: w3m-img for framebuffer merged - * configure (use_w3mimg_fb): check linux, use test -c +2015-08-05 IWAMOTO Kouichi <sue@iwmt.org> -2002-07-18 Fumitoshi UKAI <ukai@debian.or.jp> + * main.c: Fix that SGR style mouse handler has off-by-one problem. + cf. https://github.com/tats/w3m/issues/5 + Origin: https://gist.github.com/ttdoda/30c189a63d483beeb207 + Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/1390768 + Bug: https://sourceforge.net/p/w3m/patches/65/ - * merge w3m-img for framebuffer support - * w3mimg/w3mimg.h: created - * w3mimg/x11/x11_w3mimg.c: created - * w3mimg/fb/fb_w3mimg.c: created - * w3mimgsize.c w3mimgdisplay.c: modified - * configure: modified - * XMakefile: modified - * config.h.dist: updated +2015-07-31 yshl <yshl@takechiyo.net> -2002-07-18 ZXB01226@nifty.com + * Bonus/goodict.cgi: + - Use Encode.pm instead of NKF. + - Update to the current URL. + - Enable to select search mode. + Origin: https://github.com/tats/w3m/pull/4 - * w3m-img for framebuffer support - * http://homepage3.nifty.com/slokar/fb/ - * w3mimg/fb/fb.c w3mimg/fb/fb.h - w3mimg/fb/fb_img.c w3mimg/fb/fb_img.h - w3mimg/fb/fb_gdkpixbuf.c w3mimg/fb/fb_gdkpixbuf.h - w3mimg/fb/fb_imlib2.c w3mimg/fb/fb_imlib.h - w3mimg/fb/readme.txt w3mimg/fb/license.txt: added +2015-07-20 Tatsuya Kinoshita <tats@debian.org> -2002-07-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + * README: Add short description. - * [w3m-dev 03263] fix lastA segfault - * main.c (lastA): fix lastA segfault when no anchor found + * doc-jp/FAQ.html, doc/FAQ.html: Mention GOPHER_PROXY and FTP_PROXY. -2002-07-18 Fumitoshi UKAI <ukai@debian.or.jp> +2015-07-05 Tatsuya Kinoshita <tats@debian.org> - * version.c.in: cvs version + * doc-jp/FAQ.html, doc/FAQ.html: Mention HTTPS_PROXY. + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=791425 -2002-07-16 Fumitoshi UKAI <ukai@debian.or.jp> +2015-06-27 yshl <yshl@takechiyo.net> - * w3m 0.3.1 - * version.c.in: update - * doc/README: version 0.3, release date - * doc-jp/README: ditto - * NEWS: update + * doc-jp/README.SSL: Modify certdata2pem.rb to assume the encoding + of the certdata.txt to be UTF-8. + Origin: https://github.com/tats/w3m/pull/3 -2002-07-12 WATANABE Katsuyuki <katsuyuki_1.watanabe@toppan.co.jp> +2015-06-23 Daniel Schepler <dschepler@gmail.com> - * [w3m-dev 03255] update cygwin info - * doc-jp/README: update - * doc/README: update - * doc-jp/README.cygwin: deleted - * doc/README.cygwin: deleted + * terms.c: Wrap the functions used by image.c in USE_IMAGE. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=789539 -2002-07-10 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> +2015-05-09 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03240] doc-jp update - * doc-jp/MANUAL.html: update - * doc-jp/README: update - * doc-jp/README.SSL: update - * doc-jp/README.img: update + * doc-jp/README.siteconf, doc/README.siteconf: + Update examples of siteconf for twitter.com. -2002-07-10 Fumitoshi UKAI <ukai@debian.or.jp> +2015-05-03 Tatsuya Kinoshita <tats@debian.org> - * gc/: import gc6.1alpha5 + * main.c: Correct GC version confirmation. -2002-07-09 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> +2015-05-02 yshl <yshl@takechiyo.net> - * delete old mail addresses of aito-san from docs - * delete old ftp site from w3m-doc/install.html.in + * main.c: Correct GC version confirmation. + Origin: https://github.com/tats/w3m/pull/2 -2002-07-01 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> +2015-04-29 Markus Hiereth <post@hiereth.de> - * [w3m-dev 03235] topA/lastA with prec_num - * main.c: add prec_num to topA() and lastA() + * po/de.po: Update German translation. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=783383 -2002-06-24 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2015-04-29 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03233] "obuf->flag |= RB_IGNORE_P" after <body> tag - * file.c (HTMLtagproc1): no need RB_IGNORE_P after <body> tag + * po/Makevars, po/de.po, po/ja.po, po/w3m.pot, rc.c: + Update PO strings for display_borders. -2002-06-18 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> +2015-04-26 yshl <yshl@takechiyo.net> - * [w3m-dev 03215] Re: Boehm GC 6.1alpha5 - * XMakefile: add "base_lib gc.a" for making GC + * main.c: Use GC_oom_fn instead of GC_set_oom_fn for gc-7.1. + Origin: https://github.com/tats/w3m/pull/1 -2002-06-18 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> +2015-02-03 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03212] lstat() in form.c - * form.c: define lstat unless HAVE_LSTAT - (form_write_from_file): always check lstat() + * po/de.po, po/ja.po, po/w3m.pot: Update PO. -2002-06-17 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> +2015-02-02 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03214] strtoul() in frame.c - * frame.c (parseFrameSetLength): strtoul() -> strtol() + * file.c, fm.h, rc.c: + New option "display_borders" to display 0 pixel table borders. + cf. http://d.hatena.ne.jp/rubikitch/20101120 -2002-06-10 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> +2015-01-24 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev-en 00752] Re: tab completion weirdness in w3m 0.3 - * file.c (doFileCopy): same fix as [w3m-dev-en 00751] + * acinclude.m4, configure, version.c.in: + Update to 0.5.3+gitYYYYMMDD (generate from ChangeLog). -2002-06-10 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> +2015-01-15 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev-en 00751] Re: tab completion weirdness in w3m 0.3 - * main.c (svBuf): unescape spaces when input is filename - * proto.h (unescape_spaces): added + * alloc.h, main.c: Drop C99 features. -2002-06-08 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> +2015-01-15 Scarlett <scarlett@xavin.net> - * [w3m-dev 03207] strchr(), strcasecmp(), and strncasecmp() - * etc.c (strchr): removed - (strcasecmp): removed - (strncasecmp): removed - * indep.c (strchr): moved, cast - (strcasecmp): moved, fix the case that s1 = "" - (strncasecmp): moved, fix the case that s1 is shorter than s2 - * indep.h (strchr): added - (strcasecmp): added - (strncasecmp): added + Add overflow detection. + Origin: http://marc.info/?l=openbsd-ports&m=142090828929750&w=2 + * main.c: Call exit(1) when out of memory to avoid dereferencing null + pointers when gc's malloc fails. + * alloc.h: Replacements for w3m's allocation macros which add + overflow detection and concentrate the macros in one file. + * indep.h, libwc/charset.c, libwc/status.c, matrix.c: Use the + overflow-detecting allocation macros from alloc.h. -2002-06-06 Fumitoshi UKAI <ukai@debian.or.jp> +2015-01-15 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03206] Re: dict - * main.c (execdict): quote word + * Str.c, cookie.c, map.c: + Do not use C99 printf format specifiers and asprintf. -2002-06-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> +2015-01-15 Scarlett <scarlett@xavin.net> - * [w3m-dev 03204] INET6 - * main.c (fversion): s/USE_INET6/INET6/ + Correct printf arguments and use asprintf. + Origin: http://marc.info/?l=openbsd-ports&m=142090828929750&w=2 + * Str.c: Use asprintf() instead of rolling our own printf string + length detection. + * cookie.c: Pass the char pointer in the string struct to printf %s + instead of the string struct itself. + Print time_t using %lld instead of %ld to allow for 64-bit time_t. + * main.c: Print a long int using the correct format specifier. + * map.c: Print size_t using the correct format specifier. -2002-06-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> +2014-12-06 Araki Ken <arakiken@users.sf.net> - * [w3m-dev 03203] dict - * main.c (execdict): fix loadGeneralFile() + Support OSC 5379 remote imaging and sixel graphics. + Origin: https://bitbucket.org/arakiken/w3m/branch/remoteimg (2014-11-16) -2002-06-02 Tushar Samant <scribble@pobox.com> + * doc/README.sixel, terms.c: Add README.sixel. W3M_IMG2SIXEL + environmental variable enables to specify options of img2sixel. - * [w3m-dev-en 00748] PATCH: Reinitialize w3m while running - * funcname.tab (INIT_MAILCAP): deleted - (REINIT): added - * main.c (config_filename): added - (reinit): added - * proto.h (reinit): added - * rc.c (rc_initialized): deleted - * w3mhelperpanel.c (editMailcap): use REINIT MAILCAP + * image.c, terms.c: + Add n_terminal_image argument to put_image_{sixel|osc5379}(). + Use struct winsize to calculate ppc and ppl. -2002-06-02 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + * terms.c: If SCREEN_VARIANT=sixel on GNU screen, exec img2sixel + without -P option. - * [w3m-dev 03200] Re: New configuration option ``keymap_file'' and new command ``DEFINE_KEY'' - * fm.h: add <sts/stat.h>, unistd.h> - * fm.h (keymap_file): added - * func.c (keymap_initialized): added - (current_keymap_file): added - (setKeymap): added - (initKeymap): rewrite to use setKeymap() - * funcname.tab (DEFINE_KEY): added - * main.c (MAIN): initKeymap(TRUE) - (defKey): added - * proto.h (defKey): added - (setKeymap): added - (initKeymap): add force param - * rc.c (CMT_KEYMAP_FILE): added - (params3): add keymap_file - (sync_with_option): add initKeymap(FALSE) - * doc/README.func (DEFINE_KEY): added - * doc-jp/README.func: (DEFINE_KEY): added - * scripts/w3mhelp.cgi.in: add defKey - * NEWS: - func: DEFINE_KEY - rc: keymap_file + * terms.c: ttymode_set() -> ttymode_reset(). -2002-06-02 Hiroaki Shimotsu <shim@d5.bs1.fc.nec.co.jp> + * terms.c: Fix. - * [w3m-dev 03196] C-w - * linein.c (inputLineHistSearch) move_word changed - * linein.c (setStrType): add space to termchar + * terms.c: Support GNU screen. -2002-05-15 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + * terms.c: Show GIF (except animation GIF) correctly. - * [w3m-dev 03191] typo in file.c:extract_auth_val()? - * file.c (extract_auth_val): s/177/0177/ + * main.c, terms.c: img2sixel exits by Ctrl+C. Enable GIF Animation if + 'I' is pressed to show it. -2002-05-15 Tsutomu OKADA <okada@furuno.co.jp> + * image.c: Add declaration of get_pixel_per_cell(). - * [w3m-dev 03190] a tiny patch for configure - * configure (ask_choice): reset default value + * terms.c: Show the first frame of animation gif files. -2002-04-27 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + * terms.c: system() -> fork()&execvp() - * [w3m-dev 03185] Re: cmd_mark in main.c, rev 1.60 broke unmark? - * main.c (cmd_mark): deleted - (_mark): xor PE_MARK - (reMark): or PE_MARK + * display.c: Draw underline on anchor which contains cboth text and + images. -2002-04-27 Fumitoshi UKAI <ukai@debian.or.jp> + * etc.c: Remove close_tty() from setup_child() because close_tty() + sometimes interrupts loadGeneralFile() in loadImage() and corrupt + image data can be cached in ~/.w3m. - * scripts/.cvsignore: add xface2xpm + * image.c: Minor fix. -2002-04-26 Tushar Samant <scribble@pobox.com> - - * [w3m-dev-en 00733] Submission: "English" patch - * rc.c: update english + * image.c: Cache image files if at all possible and convert them to + sixel when -sixel option is specified. -2002-04-25 Fumitoshi UKAI <ukai@debian.or.jp> + * image.c: Init pixel_per_{char|line}_i if get_pixel_per_cell() fails. - * [w3m-dev-en 00730] Re: Patch for a more flexible dictionary lookup - * NEWS: rc: use_dictcommand, dictcommand - * main.c (execdict): use url_quote_conv() instead of cURLcode() - * proto.h (cURLcode): deleted - * doc-jp/README.dict: updated + * display.c, file.c, fm.h, image.c, main.c, terms.c: + Add -sixel option which supports image processing by img2sixel. -2002-04-25 Tushar Samant <scribble@pobox.com> + * image.c: Don't download image files whose size is specified in + <img> tag. - * [w3m-dev-en 00729] Re: Patch for a more flexible dictionary lookup - * config.h.dist (DICT): define - * configure (use_dict): default y - * fm.h (DICTCMD): deleted - (UseDictCommand): added - (DictCommand): added - * main.c (execdict): rewrite to use DictCommand, loadGeneralFile() - * rc.c (CMT_USE_DICTCOMMAND): added - (CMT_DICTCOMMAND): added - (params1): use_dictcommand, dictcommand added - * doc/README.dict: updated + * image.c: Minor fixes of parseImageHeader(). -2002-04-21 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + * image.c: Determine the format of an image file by its header data + not by its file name suffix. - * [w3m-dev 03181] KEYBIND_SRC was not passed to scripts/Makefile - * Makefile (all-scripts): pass KEYBIND_SRC + * image.c: Read width and height from jpeg, png and gif files directly + instead of executing w3mimgdisplay -size. -2002-04-17 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + * display.c: display.c: Draw underline on anchor text which is not + overlapped with any image. - * [w3m-dev 03178] Parser of ``cols'' and ``rows'' - * frame.c (parseFrameSetLength): added - (newFrameSet): use parseFrameSetLength() + * terms.c: Clear fd_set by FD_ZERO() before select(). -2002-04-17 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 03177] SIGUSR1 --> W3M_SIGIMG in image.c - * image.c (W3M_SIGIMG): added - (load_image_handler): s/SIGUSR1/W3M_SIGIMG/ - (load_image_next): ditto - (loadImage): ditto - -2002-04-17 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 03176] no Content-Type in http response header - * file.c (loadGeneralFile): guess content-type from filename - -2002-04-09 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03169] Can't calculate table height if number of cells > 20. - * table.c (check_table_height): change row, rowspan, indexarray, height - from array to pointer + * file.c: nw and ni are rounded up instead of rounded off to show + every corner of images. -2002-04-09 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * terms.c: Change time to wait for the response of "\x1b[14t\x1b[18t" + from 0.1 sec to 0.5 sec. - * [w3m-dev 03167] xface2xbm -> xface2xpm (current imlib can't handle XBM) - * configure: s/XFACE2XBM/XFACE2XPM/ - * config.h.dist: ditto - * file.c (xface2xpm): renamed from xface2xbm - modified for xpm - (readHeader): s/xface2xbm/xface2xpm/ - * scripts/Makefile (LIB_TARGETS): s/xface2xbm/xface2xpm/ - * scripts/xface2xpm.in: added + * image.c: + - clearImage() works. + - Use cached image files created by w3m in getImage(). -2002-03-30 Fumitoshi UKAI <ukai@debian.or.jp> + * file.c: Hack for alignment. - * [w3m-dev 03162] Re: "ttp:" is marked instead of "http:" by MARL_URL - * main.c (chkURLBuffer): "mailto" removed when USE_W3MMAILER - in this case, chkExternalURIBuffer() will mark mailto: URL. + * fm.h, image.c, terms.c: + - Adjust the image size to the terminal cell size. + - If the image size is specified in html source, skip to load the image. -2002-03-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * display.c, fm.h, image.c, main.c, terms.c, w3mimg/x11/x11_w3mimg.c: + Support remote image by OSC 5379 show_picture sequence. - * [w3m-dev 03160] Re: "ttp:" is marked instead of "http:" by MARL_URL - * NEWS: mark_all_pages - * anchor.c (reAnchorAny): check MarkAllPages - * fm.h (MarkAllPages): added - * rc.c (CMT_MARK_ALL_PAGES): added - (mark_all_pages): added - -2002-03-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03159] "ttp:" is marked instead of "http:" by MARL_URL - * main.c (chkURLBuffer): check internal URLs first - -2002-03-28 Fumitoshi UKAI <ukai@debian.or.jp> - - * terms.c (set_tty): s/term_info/w3m_term_info/g; - struct term_info is defined in FreeBSD's sys/consio.h - reported by KOIE Hidetaka <hide@koie.org> - -2002-03-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03146] Re: header option - * main.c (make_optional_header_string): cleanups - -2002-03-28 Yuuichi Teranishi <teranisi@gohome.org> - - * [w3m-dev 03145] header option - * main.c (MAIN): hide args for security - -2002-03-23 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 03140] Forward: Bug#139305: - w3m: EXTERN_LINK does not work if href ends with ampersand - * main.c (invoke_browser): check bg by browser - -2002-03-21 Fumitoshi UKAI <ukai@debian.or.jp> - - * terms.c (term_title): use ttyf instead of stderr - -2002-03-20 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03137] Re: w3mman.1 - * XMakefile (MAN1): added - (MAN1_JA): added - (install-core): install man - (install-scripts): pass MAN_DIR - (uninstall): uninstall man, pass MAN_DIR to subdirs - * config.h.dist (MAN_DIR): added - (MAN1_DIR): added - (MAN1_JA_DIR): added - * configure: -mandir - (config.h): add MAN_DIR, MAN1_DIR, MAN1_JA_DIR - * scripts/w3mman/Makefile (MAN1_DIR): added - -2002-03-20 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03136] Add COMMAND to execute multiple commands - * fm.h (CurrentMenuData): deleted - (CurrentCmdData): added - * func.c (getKey): check next char of ^ - (getWord): get word until ';' - (getQWord): rewrite using Str - * funcname.tab (COMMAND): added - * main.c (MAIN): delete CurrentMenuData - initialize CurrentCmdData - (searchKeyData): use CurrentCmdData - (execCmd): added - (SigAlarm): delete CurrentMenuData, use CurrentCmdData - * menu.c (action_menu): delete CurrentMenuData, use CurrentCmdData - * proto.h (execCmd): added - * doc/README.func (ALARM): capitalize - (COMMAND): added - * doc-jp/README.func (COMMAND): added - -2002-03-20 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03135] commit of [w3m-dev 03006] is incomplete. - * file.c (HTMLlineproc2body): check form_int fid attr - update forms[] - fix buf->formlist - -2002-03-16 Fumitoshi UKAI <ukai@debian.or.jp> - - * part of [w3m-dev-en 00713] contrib: unofficial "current page info" patch, updated for w3m-0.3 - by Moritz Barsnick <barsnick@gmx.net> - * map.c (page_info_panel): s/line/lines/ - s/byte/bytes/ - anchor for URL of current anchor - -2002-03-16 Fumitoshi UKAI <ukai@debian.or.jp> - - * -title support - modified [w3m-dev-en 00710] contrib: unofficial "xterm title" patch, updated for w3m-0.3 - by Moritz Barsnick <barsnick@gmx.net> - * NEWS: -title - * fm.h (displayTitleTerm): added - * proto.h (term_title): added - * main.c (fusage): add -title - (MAIN): add -title - (quitfm): term_title("") - * display.c (displayBuffer): term_title() - * terms.c (title_str): added - (TERM_INFO): added - (term_info): modified from mouse_term_info - (term_info_list): modified from xterm_mouse_term - add "screen" - (set_tty): check displayTitleTerm - (term_title): added - -2002-03-16 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03132] Re: Reload image - * file.c (loadGeneralFile): b->type = "text/html" - * file.c (loadImageBuffer): comment out getImageSize() - image_flag = IMG_FLAG_AUTO - * file.c (openGeneralPagerBuffer): buf->type = "text/html" - * frame.c (resetFrameElement): if (buf->mailcap_source) ... - * frame.c (frame_download_source): if (buf->mailcap_source) ... - * main.c (vwSrc): #ifdef USE_IMAGE - -2002-03-16 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03133] Re: w3mman.1 - * scripts/w3mman/Makefile (MAN1_TARGETS): added - (MAN_TARGETS): use $(MAN_TARGETS) - (INSTALL_MAN): added - (install): use $MAN1_TARGETS, $(INSTALL_MAN) - * scripts/w3mman/w3mman2html.cgi.in: $PAGER='cat' - -2002-03-15 Fumitoshi UKAI <ukai@debian.or.jp> - - * scripts/.cvsignore: add xface2xbm - -2002-03-15 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03130] w3mman.1 - * scripts/w3mman/.cvsignore: add w3mman.1 - * scripts/w3mman/Makefile (MAN_DIR): added - (MAN_TARGETS): added - (all): add $(MAN_TARGETS) - (.in): replace @LIB_DIR@ - (install): install $(MAN_TARGETS) - (uninstall): uninstall $(MAN_TARGETS) - (clean): clean $(MAN_TARGETS) - * scripts/w3mman/w3mman.1.in: added - * scripts/w3mman/w3mman2html.cgi.in: undef $PAGER - -2002-03-15 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03129] Re: X-Face - * configure (use_xface): ask - * fm.h (_Buffer): add header_source - * buffer.c (reshapeBuffer): fix reshape when reading stdin with image - fix disappearing header when reading stdin - * file.c (xface2xbm): check file existence - * file.c (readHeader): save to tmp file - X-Face when activeImage & displayImage - * main.c (dispI): comment out checking content type - * main.c (stopI): ditto - * scripts/xface2xbm.in: update compface URL - read from file $XF - write to file $XBM - -2002-03-15 Fumitoshi UKAI <ukai@debian.or.jp> - - * proto.h (readHeader): added - -2002-03-14 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03127] X-Face - * NEWS: X-Face support - * configure (use_xface): added - * config.h.dist (USE_XFACE): added - (XFACE2XBM): added - * file.c (xface2xbm): added - (readHeader): X-Face: handling - * scripts/Makefile (LIB_TARGETS): add xface2xbm - * scripts/xface2xbm.in: added +2014-12-06 Olaf Hering <olh@suse.de> -2002-03-14 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * parsetagx.c: Fix crash in parse_tag() during every start. + Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3m/w3m-parsetagx-crash.patch?expand=1 - * [w3m-dev 03126] reshapeBuffer() and -m option - * buffer.c (reshapeBuffer): fix reshapeBuffer() in case of -m option - -2002-03-14 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03125] w3m -m < image - * file.c (openGeneralPagerBuffer): use internal viewer for -m option + * fm.h: Change the default to alt_entity=0. + Change the default for the option "Use ASCII equivalents to + display entities" from YES to NO. + Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3m/w3m-0.5.1-no-ASCII-equivalents-by-default.patch?expand=1 + Bug-Novell: https://bugzilla.novell.com/show_bug.cgi?id=247397 -2002-03-13 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * anchor.c, libwc/gb18030.c, libwc/ucs.c, regex.c: + Fix a few harmless uninitialized variables. + Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3m/w3m-uninitialized.patch?expand=1 - * [w3m-dev 03116] Re: aligned block in <td align="center"> - * file.c (flushline): align if align="align" - * fm.h (RB_LEFT): change value - (RB_ALIGN): include RB_LEFT - (RB_INTABLE): added - * table.c (do_refill): obuf.flag |= RB_INTABLE +2014-12-06 Peter Poeml <poeml@suse.de> -2002-03-11 WATANABE Katsuyuki <katsuyuki_1.watanabe@toppan.co.jp> + * terms.c: Prevent segfault when editing a textarea field with vi. + Add fix for segfault that can occur when editing a textarea field + with vi, and returning to w3m (it seems to happen if the terminal + is not writable, as when using w3m after 'su - some_user') + Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3m/w3m-0.4.1-textarea-segfault.dif?expand=1 - * [w3m-dev 03110] Re: gopher broken - * file.c (loadGeneralFile): #ifdef USE_GOPHER +2014-12-04 Tatsuya Kinoshita <tats@debian.org> -2002-03-11 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * acinclude.m4: Follow updated configure. - * [w3m-dev 03106] Re: displayBuffer - * display.c (displayBuffer): revert previous changes - * file.c (process_img): remove space in src attribute +2014-12-03 Yusuke Baba <babayaga1@y8.dion.ne.jp> -2002-03-10 Rei FURUKAWA <furukawa@tcp-ip.or.jp> + * configure, w3mimg/fb/fb.c, w3mimg/fb/fb.h, w3mimg/fb/fb_w3mimg.c: + Support FreeBSD framebuffer. + Origin: http://www.ac.auone-net.jp/~baba/w3m-img/index.html + Bug-FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=122673 - * [w3m-dev 03096] displayBuffer - * display.c (displayBuffer): buf->need_reshape = 0 to prevent recursive - displayBuffer calls +2014-12-02 Naohiro Aota <naota@gentoo.org> -2002-03-09 Fumitoshi UKAI <ukai@debian.or.jp> + * acinclude.m4, configure, w3mimg/fb/fb_gdkpixbuf.c: + * w3mimg/x11/x11_w3mimg.c: + Depend on gdk-pixbuf instead of gtk when gtk2. + Origin: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-client/w3m/files/w3m-0.5.3-gdk-pixbuf.patch?revision=1.1 - * [w3m-dev 03095] Re: gopher broken - (Re: Bug#137287: w3m: segfault on gopher://xxxx.xxx URI) - * file.c (loadGopherDir): html_quote(url_quote_conv()) +2014-12-02 Jeroen Roovers <jer@gentoo.org> -2002-03-09 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * acinclude.m4, configure: Add tinfo to with_termlib. + Fix building against sys-libs/ncurses[tinfo]. + Origin: https://504588.bugs.gentoo.org/attachment.cgi?id=372650 + Bug-Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=504588 - * [w3m-dev 03092] Reload image - * file.c (loadImageBuffer): cache->index = 0 +2014-12-01 OBATA Akio <obache@netbsd.org> -2002-03-09 Fumitoshi UKAI <ukai@debian.or.jp> + * acinclude.m4, configure: + Assume defined PKG_CONFIG points right location when gtk2. + Origin: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/www/w3m/patches/patch-aa?rev=1.13&content-type=text/x-cvsweb-markup + Origin: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/www/w3m/patches/patch-ak?rev=1.1&content-type=text/x-cvsweb-markup - * [w3m-dev 03093] Re: gopher broken - (Re: Bug#137287: w3m: segfault on gopher://xxxx.xxx URI) - * file.c (loadGopherDir): fix ->ptr - q should be url_quote() - * url.c (openURL): url_unquote() for gopher selector +2014-12-01 Vsevolod Stakhov <vsevolod@FreeBSD.org> -2002-03-09 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * config.h.in: Disable USE_EGD for LibreSSL. + Disable use of RAND_egd as it is absent in FreeBSD. + This also fixes build error with LibreSSL. + Origin: https://bz-attachments.freebsd.org/attachment.cgi?id=144635 + Bug-FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191852 + Bug-FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191956 - * [w3m-dev 03090] Re: gopher broken - (Re: Bug#137287: w3m: segfault on gopher://xxxx.xxx URI) - * file.c (loadGeneralFile): if loadGopherDir, type is real_type - * file.c (loadGopherDir): rewrite to use loadHTMLstream() +2014-12-01 zimous <zimous@matfyz.cz> -2002-03-08 Fumitoshi UKAI <ukai@debian.or.jp> + * po/ja.po: Set Language tag properly for Japanese translation. + Origin: https://512722.bugs.gentoo.org/attachment.cgi?id=378452 + Bug-Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=512722 - * [w3m-dev 03088] gopher broken - (Re: Bug#137287: w3m: segfault on gopher://xxxx.xxx URI) - * file.c (form_max): initial value should be -1 - * file.c (loadGopherDir): </A> +2014-11-30 Tatsuya Kinoshita <tats@debian.org> -2002-03-08 YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp> + * doc/w3m.1: Typo fix. - * [w3m-dev 03087] vi +1 emptyfile - * etc.c (myEditor): line > 1 +2014-11-30 Markus Hiereth <post@hiereth.de> -2002-03-06 Christian Weisgerber <w3m-dev-en@mips.inka.de> + * doc/w3m.1: Miscellaneous changes to improve English manpage. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30 - * [w3m-dev-en 00699] - * configure: define SETPGRP() instead of setpgrp() - * etc.c (mySystem): use SETPGRP() instead of setpgrp() - * image.c (openImgdisplay): ditto - * search.c (open_migemo): ditto - * url.c: revert changes by Dai Sato on 2002-02-01 - since stdio.h and config.h is included with this order - in fm.h +2014-11-29 Markus Hiereth <post@hiereth.de> -2002-03-06 Fumitoshi UKAI <ukai@debian.or.jp> + * doc/w3m.1: Improve FILES. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=403634 - * version.c.in: 0.3+cvs + * doc/w3m.1: Improve EXAMPLES. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=380560 -2002-03-06 Fumitoshi UKAI <ukai@debian.or.jp> + * doc/w3m.1: Improve explanation about option -N. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=345084 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=530468 - * w3m 0.3 - * version.c.in: update - * doc/README: version 0.3, release date - * doc-jp/README: ditto - * NEWS: update + * doc/w3m.1: Note that -cols only affects when HTML is rendered. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=285251 -2002-03-06 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * doc/w3m.1: Add more info on configuration. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=268211 - * [w3m-dev 03084] A temporary file remains when pipe + 'v' - * proto.h (saveBufferDelNum): deleted - * file.c (saveBufferDelNum): deleted - * file.c (saveBuffer): saveBufferDelNum() renamed - * main.c (vwSrc): tmpfname() recorded as fileToDelete - use saveBuffer() instead of saveBufferDelNum() +2014-11-29 Justin B Rye <justin.byam.rye@gmail.com> -2002-03-04 Fumitoshi UKAI <ukai@debian.or.jp> + * scripts/w3mman/w3mman.1.in: Tweak for W3MMAN_W3M. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771003#5 - * doc-jp/MANUAL.html: add note about file:/cgi-bin - * doc/MANUAL.html: ditto + * scripts/w3mman/w3mman.1.in: English fixes. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#25 -2002-03-01 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2014-11-29 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03073] frame + image - * file.c (loadGeneralFile): w3m_dump & ~DUMP_FRAME - * file.c (loadImageBuffer): comment out if (frame_source) + * version.c.in: Update to 0.5.3+debian-19+. -2002-03-01 Fumitoshi UKAI <ukai@debian.or.jp> +2014-11-29 Justin B Rye <justin.byam.rye@gmail.com> - * [w3m-dev 03072] Proxy-Authorization (Re: Re: https through proxy) - * file.c (loadGeneralFile) delete Proxy-Authorization set here - * fm.h (HR_FLAG_PROXY): added - * main.c (MAIN): need "Basic " for proxy_auth_cookie - * url.c (HTTPrequest): add seen_proxy_auth - if proxy and no Proxy-Authorization: header seen and - has proxy_auth_cookie, use it - * url.c (openURL): hr->flag |= HR_FLAG_PROXY - - * file.c (loadGeneralFile) comment indent fix - * html.c (TagMAP): ditto + * scripts/w3mman/w3mman2html.cgi.in: Fix Perl warnings. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771004 -2002-02-28 Fumitoshi UKAI <ukai@debian.or.jp> +2014-10-21 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03070] Re: https through proxy - * url.c (openURL): pass extra_header (Proxy-Authorization:) + * version.c.in: Update to 0.5.3+debian-19 -2002-02-26 Fumitoshi UKAI <ukai@debian.or.jp> + * po/LINGUAS: Correct LINGUAS to a whitespace separated list - * [w3m-dev 03067] Re: https through proxy - * file.c (loadGeneralFile): comment out ssl_get_certificate here +2014-10-21 Markus Hiereth <markus.hiereth@freenet.de> -2002-02-26 Fumitoshi UKAI <ukai@debian.or.jp> + * po/LINGUAS, po/de.po: Add German translation + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763964 - * [w3m-dev-en 00691] Re: w3m 0.2.5.1 fails to recognize '<dt id="XXX">' - * html.c: ATTR_CORE for dt, dd, blockquote, caption +2014-10-15 Tatsuya Kinoshita <tats@debian.org> -2002-02-26 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * version.c.in: Update to 0.5.3+debian-18 - * [w3m-dev 03064] Re: SELECTED form value - * form.c (formResetBuffer): set inititial value + * doc-jp/README.SSL: Update README.SSL to follow default values -2002-02-23 HIDAI Ken-ichi <hidai@nmn.jp> + * config.sub: Update config.sub with autotools-dev 20140911.1 - * [w3m-dev 03060] doc-jp/README.migemo - * doc-jp/README.migemo: added + * fm.h: Disable SSLv3 by default [CVE-2014-3566] + cf. https://blog.mozilla.org/security/2014/10/14/the-poodle-attack-and-the-end-of-ssl-3-0/ -2002-02-23 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2014-10-15 Ludwig Nussel <ludwig.nussel@suse.de> - * [w3m-dev 03059] table + hborder + rowspan + valign=bottom - * table.c (renderTable): add case BORDER_NOWIN: + * fm.h: Force ssl_verify_server on and disable SSLv2 support + Origin: http://www.openwall.com/lists/oss-security/2010/06/14/4 -2002-02-20 Fumitoshi UKAI <ukai@debian.or.jp> +2014-10-13 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03057] Re: Bug#134350: w3m: Forgets (http auth) login information upon reload (or almost anything else) - * etc.c (find_auth): add `file' - check file as well - * etc.c (find_auth_cookie): add `file' - * etc.c (add_auth_cookie): add `file' - * file.c (AuthBasicCred): add "Basic " - * file.c (AuthDigestCred): add "Digest " - * file.c (getAuthCookie): if h_auth == NULL, get recorded cookie - * file.c (get_auth_cookie): get recorded cookie - * file.c (loadGeneralFile): don't clear add_auth_cookie_flag - by redirection - add_auth_cookie if authorization is required and passed - * fm.h (auth_cookie): add file - * ftp.c (openFTP): follow change auth_cookie - * proto.h (get_auth_cookie): added - * proto.h (find_auth_cookie): add `file' - * proto.h (add_auth_cookie): add `file' - * url.c (openURL): get_auth_cookie + * version.c.in: Update to 0.5.3+debian-17+ -2002-02-20 Fumitoshi UKAI <ukai@debian.or.jp> +2014-10-04 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03058] mailer - * NEWS: rc: mailer - * fm.h (Mailer): change default - * main.c (MAIN): $MAILER will be used as "mailer" - * main.c (followA): if "mailer" defined & simple mailto: URL, - use mailer instead of w3mmail.cgi - * main.c (cmd_loadURL): ditto - * rc.c (params6): remove ifndef USE_W3MMAILER + * libwc/ambwidth_map.awk, libwc/map/ucs_ambwidth.map: + Fix incorrect generation of ucs_ambwidth_map -2002-02-15 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2014-08-22 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03056] DISPLAY_IMAGE, STOP_IMAGE don't work. - * main.c (dispI): fix DISPLAY_IMAGE - * main.c (stopI): fix STOP_IMAGE + * version.c.in: Update to 0.5.3+debian-17 -2002-02-14 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * config.guess: + Update config.guess to 2014-03-23 with autotools-dev 20140510.1 - * [w3m-dev 03055] LIB_DIR -> w3m_lib_dir() - * image.c (getCharSize): s/LIB_DIR/w3m_lib_dir()/ - * image.c (openImgdisplay): ditto - * image.c (getImageSize): ditto + * config.sub: + Update config.sub to 2014-05-01 with autotools-dev 20140510.1 -2002-02-14 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2014-08-22 Micah Cowan <micah@addictivecode.org> - * [w3m-dev 03048] garbage of images on the right edge of termical. - * display.c (redrawLineImage): fix width calculation + * main.c: Support Boehm GC 7.2. + Replace Gentoo's patch to prevent segfaults due to infinite recursion. + Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=080_gc72.patch;att=1;bug=758831 + Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758831 + Bug-Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=555467 + Bug: http://sourceforge.net/p/w3m/patches/63/ + Bug: http://sourceforge.net/p/w3m/patches/59/ -2002-02-14 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2014-08-22 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03053] Re: SSL indicator - * main.c (dump_extra): Output SSL certificate. + * main.c: + Revert "Support Boehm GC 7.2" (w3m-0.5.2-gc72.patch from Gentoo) + This reverts commit 4331db3e3e673ac4dbfe8e9f2b42a8e0478dc98a. -2002-02-12 Katsumi Yamaoka <yamaoka@jpl.org> +2014-06-23 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03038] LDFLAGS - * XMakefile: refer to LDFLAGS when linking - * configure: add -ldflags=* + * version.c.in: Update to 0.5.3+debian-16 -2002-02-12 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> + * url.c: Disable ciphers that use keys smaller than 128 bits + Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/1325674 - * [w3m-dev 03036] - * display.c (displayBuffer): ifdef USE_SSL +2014-01-04 Tatsuya Kinoshita <tats@debian.org> -2002-02-10 Fumitoshi UKAI <ukai@debian.or.jp> + * version.c.in: Update to 0.5.3+debian-15 - * [w3m-dev 03034] check buf - * frame.c (frame_download_source): buf->ssl_certificate can be used - only if buf != NULL && buf != NO_BUFFER +2014-01-03 Tatsuya Kinoshita <tats@debian.org> -2002-02-10 Fumitoshi UKAI <ukai@debian.or.jp> + * version.c.in: Update to 0.5.3+debian-14 - * [w3m-dev 03033] SSL indicator - * display.c (displayBuffer): show SSL indicator + * acinclude.m4, configure: Use pkg-config to build with imlib2 1.4.6 -2002-02-08 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> + * doc/HISTORY, doc/README.cookie, doc/README.m17n: + Prefer US-ASCII rathar than Japanese encodings in English documents - * [w3m-dev 03025] fix image loading on EWS4800 - * image.c (loadImage): exit if symlink failed - exit if fopen failed +2013-12-27 Tatsuya Kinoshita <tats@debian.org> -2002-02-08 Fumitoshi UKAI <ukai@debian.or.jp> + * doc-jp/MANUAL.html, doc/MANUAL.html: + Cleanup unusable links in MANUAL.html + Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=517315 - * [w3m-dev 03022] SSL certificates of frame body - * frame.h (frame_body): add ssl_certificate - * frame.c (frame_download_source): save ssl_certificate - * map.c (append_frame_info): display ssl_certificate of frame_body + * version.c.in: Update to 0.5.3+debian-13+ -2002-02-08 Fumitoshi UKAI <ukai@debian.or.jp> +2013-12-17 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 03021] Bug#132934: w3m should recognize file:/uris - in chkURLBuffer function - * main.c (chkURLBuffer): add "file:" - -2002-02-08 Yuji Abe <cbo46560@pop12.odn.ne.jp> - - * [w3m-dev 03017] URI scheme is case insensitive - * url.c (searchURIMethods): s/strcmp/strcasecmp/ - -2002-02-08 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 03011] segmentation fault on <input> tag without <form> - * file.c (process_input): tmp initialization fix - -2002-02-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [emacs-w3m:02733] for emacs-w3m better rendering with inline image - * main.c (MAIN): activeImage = TRUE when -halfdump & display_image=1 - -2002-02-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 03006] fix form order in table - * file.c (process_form): static - fix form index order - method should be quoted - * file.c (process_form): added - * file.c (HTMLlineproc2body): add form_id - * html.c (ALST_FORM_INT): added - * html.c (form_int): update - -2002-02-07 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 03005] fix Bad cert ident - * istream.c (ssl_match_cert_ident): added - * istream.c (ssl_check_cert_ident): use ssl_match_cert_ident() - -2002-02-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02999] don't ask accept bad cert when background downloading - * file.c (getAuthCookie): if QuietMessage, return NULL - * file.c (inputAnswer): if QuietMessage, input "n" + * version.c.in: Update to 0.5.3+debian-13 -2002-02-05 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02991] form support in w3m -halfdump foo.html|w3m -halfload - * fm.h (DUMP_HALFEXTRA): deleted - * proto.h (process_select): return Str - * file.c (process_img): process_form() fix - * file.c (process_input): process_form() fix - * file.c (process_select): return Str - process_form() fix - * file.c (process_textarea): process_form() fix - * file.c (process_form): support -halfdump - * file.c (HTMLtagproc1): delete case HTML_FORM_INT, HTML_N_FORM_INT - process_{form,select,textarea}() fix - * file.c (HTMLlineproc2body): support -halfload - HTML_INTERNAL, HTML_N_INTERNAL, - HTML_FORM_INT, HTML_FORM_INT, - HTML_TEXTAREA_INT, HTML_N_TEXTAREA_INT, - HTML_SELECT_INT, HTML_N_SELECT_INT, - HTML_OPTION_INT, HTML_TITLE_ALT - * file.c (print_internal_information): fix -halfdump - * file.c (loadHTMLstream): no DUMP_HALFEXTRA - * html.h: add HTML_INTERNAL, HTML_N_INTERNAL, - HTML_SELECT_INT, HTML_N_SELECT_INT, - HTML_OPTION_INT, HTML_TEXTAREA_INT, HTML_N_TEXTAREA_INT - * html.c (ALST_TEXTAREA_INT): added - * html.c (ALST_SELECT_INT): added - * html.c: add <internal>, </internal>, <select_int>, </select_int> - <option_int>, <textarea_int>, </textarea_int> - * main.c (MAIN): delete -halfdump_extra - dont output <pre> by -halfdump - * table.c (feed_table_tag): process_{form,select}() fix - add case HTML_INTERNAL, HTML_N_INTERNAL, - HTML_SELECT_INT, HTML_N_SELECT_INT, - HTML_OPTION_INT, HTML_TEXTAREA_INT, HTML_N_TEXTAREA_INT, - * tagtable.tab: add internal, /internal, select_int, /select_int - option_int, textarea_int, /textarea_int - -2002-02-05 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02990] - * file.c (doFileCopy): use Strfgets() instead of fgets() - * file.c (doFileSave): ditto - -2002-02-05 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02989] - * file.c (inputAnswer): use Strfgets() instead of fgets() - -2002-02-04 TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> - - * [w3m-dev 02986] - * file.c (print_internal_information): Don't print boundaries. - Use henv->f instead of stdout. - -2002-02-04 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02984] inline image improvements and cleanups - * config.h.dist (HAVE_SYMLINK) added - * config.h.dist (HAVE_LSTAT): added - * configure: symlink() check - * configure: lstat() check - * fm.h (maxLoadImage): added - * form.c (form_write_from_file): s/HAVE_READLINK/HAVE_LSTAT/ - * image.c: include <sys/stat.h> - * image.c (MAX_LOAD_IMAGE): default 8 - * image.c (max_load_image): deleted - * image.c (n_load_image): added - * image.c (showImageProgress): added - * image.c (loadImage): check load image count - s/HAVE_READLINK/HAVE_LSTAT/ (HAVE_SYMLINK) - showImageProgress - * local.c: include <sys/stat.h> - s/HAVE_READLINK/HAVE_LSTAT/ - * rc.c (CMT_MAX_LOAD_IMAGE): added - * rc.c (max_load_image): added - * doc/README.img: update - * doc-jp/README.img: update - - * file.c (process_img): pre_int fix - -2002-02-04 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02985] inputAnswer() and no "ssl_forbid_method" - * file.c (inputAnswer): buf size is 80 - * url.c (openSSLHandle): if old_ssl_forbid_method == ssl_forbid_method - ssl path is not modified - -2002-02-04 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02980] Re: code_to_str not found ifndef JP_CHARSET - * backend.c (get_mime_charset_name): used only ifdef JP_CHARSET - -2002-02-04 Kazuhiko <kazuhiko@archi.kyoto-u.ac.jp> - - * [w3m-dev 02979] code_to_str not found ifndef JP_CHARSET - * file.c (print_internal_information): ifdef JP_CHARSET - -2002-02-03 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02967] parallel image downloading - * fm.h (ImageCache): add touch, pid - * image.c (getCharSize): retry fscanf - * image.c (drawImage): retry fflush - * image.c (MAX_LOAD_IMAGE): added, default 4 - * image.c (image_cache): change to ImageCache** - * image.c (image_lock): added - * image.c (load_image_handler): signal SIGUSR1 - * image.c (load_image_next): signal SIGUSR1 - * image.c (loadImage): parallel image downloading - * image.c (getImage): initialize touch, pid - * image.c (getImageSize): return value is TRUE or FALSE - retry fscanf - -2002-02-03 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02970] multiple -lnsl -lsocket - * configure: merge bsdlib and extlib detection, use extlib only - add ldflags to extlib - (SYS_LIBRARIES): remove extlib - (LOCAL_LIBRARIES): exlib only - -2002-02-03 TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> - - * [w3m-dev 02964] Print data of forms when halfdump option is set - * backend.c (print_headers): print w3m-current-url and w3m-base-url - * backend.c (print_formlist): deleted - * backend.c (internal_get): remove "if (buf->formlist) {}" - * file.c (print_internal_information): added - * file.c (loadHTMLstream): if halfdump, print_internal_information - if w3m_backend, print_internal_information - * fm.h (DUMP_HALFEXTRA): added - * main.c (-halfdump_extra): added - -2002-02-01 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> - - * [w3m-dev 02972] #include "config.h" - * url.c, mktable.c: fix the order of including files - -2002-02-01 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02968] fix problem with Netscape-Enterprise WWW-authenticate - * file.c (findAuthentication): token is case insensitive - -2002-02-01 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02961] halfdump image is not consistent - * file.c (flushline): check f - * file.c (do_blankline): fix blanklink conditions - -2002-02-01 Fumitoshi UKAI <ukai@debian.or.jp> - - * gcc -Wall -Werror safe - * anchor.c (addMultirowsImg): unused variable: fi - * display.c (redrawLineImage): unused variable: ncol - * file.c (process_img): uninitialized variables: r2, ni, w0, i0, ismap - unused variable: url, ext - * file.c (loadHTMLstream): need volatile image_flag - * image.c (image_index): int - * image.c (getCharSize): need prototype - * image.c (getImage): uninitialized variable: key - return NULL - * map.c (follow_map_menu): used only USE_IMAGE: px, py, map - * map.c (newMapArea): used only USE_IMAGE: p, i, max - * proto.h (addMultirowsImg): added - * w3mimgdisplay.c (main): format string fix - * w3mimgdisplay.c (DrawImage): need (Pixmap) cast - - * inflate.c: indent - -2002-02-01 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * w3m-img merge (w3m-0.2.4+cvs-1.278-img-2.2.patch.gz) - * NEWS: w3m-img merge - * .cvsignore: add w3mimgdisplay, w3mimgsize - * XMakefile: add image.c to SRCS - add image.o to OBJS - add IMGDISPLAY, IMGSIZE - * config.h.dist: USE_IMAGE, IMGSIZE, IMGDISPLAY - * configure: add find_imlib - ask use_image - (config.h) add $imgtarget to EXT_TARGETS - $def_use_image - IMGSIZE, IMGDISPLAY - * fm.h (MAX_IMAGE): added - * fm.h (DEFAULT_PIXEL_PER_CHAR): fix for USE_IMAGE - * fm.h (DEFAULT_PIXEL_PER_LINE): added - * fm.h (B_REDRAW_IMAGE): added - * fm.h (IMG_FLAG_SKIP): added - * fm.h (IMG_FLAG_AUTO): added - * fm.h (IMG_FLAG_START): added - * fm.h (IMG_FLAG_STOP): added - * fm.h (IMG_FLAG_NEXT): added - * fm.h (IMG_FLAG_UNLOADED): added - * fm.h (IMG_FLAG_LOADED): added - * fm.h (IMG_FLAG_ERROR): added - * fm.h (MapArea): added - * fm.h (MapList): s/urls/alts/, add area - * fm.h (ImageCache): added - * fm.h (Image): added - * fm.h (Anchor): add image - * fm.h (Buffer): add imarklist, image_flag, need_reshape - * fm.h (RG_FRAME_SRC): added - * fm.h (ALIGN_MIDDLE): added - * fm.h (ALIGN_TOP): added - * fm.h (ALIGN_BOTTOM): added - * fm.h (QuietMessage): added - * fm.h (Imgdisplay): added - * fm.h (Imgsize): added - * fm.h (activeImage): added - * fm.h (displayImage): added - * fm.h (autoImage): added - * fm.h (useExtImageViewer): added - * fm.h (image_source): added - * fm.h (view_unseenobject): change default if USE_IMAGE - * fm.h (set_pixel_per_char): added - * fm.h (pixel_per_line): added - * fm.h (set_pixel_per_line): added - * fm.h (image_scale): added - * proto.h (dispI): added - * proto.h (stopI): added - * proto.h (deleteImage): added - * proto.h (getAllImage): added - * proto.h (loadImage): added - * proto.h (getImage): added - * proto.h (getImageSize): added - * proto.h (process_img): add width arg - * proto.h (loadImageBuffer): added - * proto.h (follow_map_menu): add a_img arg - * proto.h (getMapXY): added - * proto.h (newMapArea): added - * proto.h (touch_cursor): added - * proto.h (cURLcode): added - * proto.h (initImage): added - * proto.h (termImage): added - * proto.h (addImage): added - * proto.h (drawImage): added - * proto.h (clearImage): added - * anchor.c (addMultirowsImg): added - * buffer.c (discardBuffer): deleteImage if USE_IMAGE - * buffer.c (reshapeBuffer): buf->need_reshape check - * display.c (fmTerm): if activeImage, stop load image - * display.c (fmInit): if displayImage, initImage - * display.c (image_touch): added - * display.c (draw_image_flag): added - * display.c (redrawLineImage): added - * display.c (displayBuffer): buf->need_reshape = TRUE - mode == B_REDRAW_IMAGE - image flag checks - force redraw image in mode == B_REDRAW_IMAGE - displayBuffer if need reshape - drawImage - * display.c (redrawNLine): redrawLineImage - * display.c (redrawLineImage): added - * display.c (disp_message_nsec): return immediately if QuietMessage - * etc.c (reset_signals): ignore SIGUSR1 - * file.c (frame_source): added - * file.c (_MoveFile): added - * file.c (cur_baseURL): added - * file.c (cur_document_code): added - * file.c (cur_iseq): added - * file.c (loadGeneralFile): fix fmInitialized and prevtrap checks - save cur_baseURL - image_source load - loadImageBuffer for "image/*" - frame_source flag - fix b->type when proc is loadImageBuffer - * file.c (process_img): add width arg - parse height and width attr, align - fix for inline-image - * file.c (process_input): fix for form <input type="image"> - * file.c (HTMLtagproc1): pass h_env->limit to process_img() - fix <img_alt> for inline-image - save cur_baseURL - * file.c (HTMLlineproc2body): fix <img_alt> for inline-image - * file.c (loadHTMLstream): fix for inline-image - fix fmInitialized and prevtrap checks - save cur_document_code - save image_flag - * file.c (loadGopherDir): save cur_document_code - fix fmInitialized and prevtrap checks - * file.c (loadImageBuffer): added for inline-image - * file.c (save2tmp): fix fmInitialized and prevtrap checks - * frame.c (frame_download_source): set RG_FRAME_SRC flag - image check - * funcname.tab (DISPLAY_IMAGE): added - * funcname.tab (STOP_IMAGE): added - * html.c (ALST_IMG): add align, ismap - * html.c (ALST_AREA): add shape, coords - * html.c (ALST_IMG_ALT): add width, height, usemap, ismap, hseq, - xoffset, yoffset, top_margin, bottom_margin - * html.c (AttrMap): add shape, coords, ismap, xoffset, yoffset - * html.h (ATTR_SHAPE): added - * html.h (ATTR_COORDS): added - * html.h (ATTR_ISMAP): added - * html.h (ATTR_XOFFSET): added - * html.h (ATTR_YOFFSET): added - * html.h (ATTR_TOP_MARGIN): added - * html.h (ATTR_BOTTOM_MARGIN): added - * html.h (SHAPE_UNKNOWN): added - * html.h (SHAPE_DEFAULT): added - * html.h (SHAPE_RECT): added - * html.h (SHAPE_CIRCLE): added - * html.h (SHAPE_POLY): added - * image.c: added - * main.c (fversion): add USE_IMAGE - * main.c (fusage): -ppl option - * main.c (MAIN): set_pixel_per_char if ppc specified - -ppl option - loadImage - * main.c (pushBuffer): deleteImage - * main.c (quitfm): termImage - * main.c (selBuf): deleteImage - * main.c (followA): fix for inline-image and map area - * main.c (query_from_followform): getMapXY() - * main.c (setOpt): displayBuffer B_REDRAW_IMAGE - * main.c (follow_map): fix calculate x, y - * main.c (dispI): added - * main.c (stopI): added - * map.c: include <math.h> - * map.c (inMapArea): added - * map.c (follow_map_menu): add a_img arg to handle inline-image - * map.c (follow_map_panel): use MapArea - * map.c (getMapXY): added - * map.c (newMapArea): added - * menu.c (smChBuf): deleteImage - * parsetagx.c (toAlign): align top, bottom, middle - * rc.c (P_SCALE): added - * rc.c (CMT_PIXEL_PER_LINE): added - * rc.c (CMT_DISP_IMAGE): added - * rc.c (CMT_AUTO_IMAGE): added - * rc.c (CMT_EXT_IMAGE_VIEWER): added - * rc.c (CMT_IMAGE_SCALE): added - * rc.c (CMT_IMGDISPLAY): added - * rc.c (CMT_IMGSIZE): added - * rc.c (show_param): P_PIXELS - * rc.c (set_param): P_PIXELS - * rc.c (sync_with_option): initImage - * rc.c (to_str): P_PIXELS - * table.c (feed_table_tag): fix <img> for inline-image - * tagtable.tab (image): added - * terms.c (wgetch): retry read when EINTR or EAGAIN - * terms.c (touch_cursor): added - * w3mimgdisplay.c: added - * w3mimgsize.c: added - * doc/README.func (DISPLAY_IMAGE): added - * doc/README.func (STOP_IMAGE): added - * doc/README.img: added - * doc-jp/README.func (DISPLAY_IMAGE): added - * doc-jp/README.func (STOP_IMAGE): added - * doc-jp/README.img: added - * scripts/w3mhelp.cgi.in: show dispI, stopI - * scripts/multipart/multipart.cgi.in: inline image support - -2002-02-01 Fumitoshi UKAI <ukai@debian.or.jp> - - * version.c.in: 0.2.5+cvs - -2002-01-31 Fumitoshi UKAI <ukai@debian.or.jp> - - * w3m 0.2.5 - * version.c.in: update - * doc/README: version 0.2.5, release date - * doc-jp/README: ditto - * NEWS: update - -2002-01-31 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02960] inflate without memmove() - * inflate.c: rewrite without memmove() - -2002-01-31 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * inflate.c: support raw deflate without zlib header - -2002-01-31 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02955] compression_decoders error message - * file.c (uncompress_stream): redirect stderr - * inflate.c (main): print error message - -2002-01-31 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02949] fix for #undef USE_MIGEMO - * main.c (dispincsrch): need #ifdef USE_MIGEMO - -2002-01-31 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02946] toggle migemo - * fm.h (migemo_active): added - * proto.h (inputLineHistSearch): add arg `prop' to incrfunc() - * linein.c (inputLineHistSearch): ditto - * main.c (isrch): ditto - * main.c (dispincsrch): ditto - C-\ toggle migemo - underline when migemo is active - * search.c (migemo_active): deleted - * search.c (migemo_running): added - * search.c (init_migemo): migemo_running - * search.c (migemostr): ditto - * search.c (forwardSearch): migemo_active > 0 - * search.c (backwardSearch): ditto - -2002-01-31 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02942] Digest qop=auth support - * file.c (http_auth): add request to cred() arg - * file.c (AuthBasicCred): ditto - * file.c (AuthDigestCred): ditto - * file.c (AuthDigestCred): support algorithm=MD5, MD5-sess - qop=auth, auth-int - * file.c (qstr_unquote): return NULL if input is NULL - * file.c (none_auth_param): added - * file.c (findAuthentication): skip weak or unknown auth - * file.c (getAuthCookie): add request to arg - * file.c (loadGeneralFile): add request to getAuthCookie() - -2002-01-31 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02934] add auth cookie with unquoted realm - * file.c (loadGeneralFile): need unquote realm - -2002-01-31 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02933] segmentation fault when w3m -dump https: - * file.c (readHeader): use inputAnswer() - * file.c (getAuthCookie): remove term_cbreak() - * file.c (checkOverWrite): use inputAnswer() - * file.c (inputAnswer): added - * istream.c (ssl_get_certificate): use inputAnswer() - * main.c (qquitfm): change prompt - * proto.h (inputAnswer): added - -2002-01-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02931] use POST in multipart.cgi - * scripts/multipart/multipart.cgi.in: support POST method - -2002-01-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02930] Re: fixed w3mmail.cgi - * scripts/w3mmail.cgi.in (lang_header_default): [=_?] should be encoded - * scripts/w3mmail.cgi.in (lang_body_default): '=' should be encoded - -2002-01-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02929] Re: fixed w3mmail.cgi - * file.c (openPagerBuffer): use content_charset as document_code - * file.c (getNextPage): code is document_code or DocumentCode - -2002-01-30 Fumitoshi UKAI <ukai@debian.or.jp> +2013-12-14 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 02928] RFC2617: HTTP Digest authentication - * NEWS: RFC2617: HTTP Digest authentication - * config.h.dist (USE_DIGEST_AUTH): added - * configure (use_digest_auth): added, enabled when openssl found - (because it used openssl/md5.h) - * file.c (auth_param): added - * file.c (http_auth): added - * file.c (extract_auth_val): added - * file.c (qstr_unquote): added - * file.c (extract_auth_param): added - * file.c (get_auth_param): added - * file.c (AuthBasicCred): added - * file.c (digest_hex): added - * file.c (AuthDigestCred): added - * file.c (basic_auth_param): added - * file.c (digest_auth_param): added - * file.c (www_auth): added - * file.c (findAuthentication): added - * file.c (getAuthCookie): rewrite, use http_auth - * file.c (loadGeneralFile): HRequest hr - * file.c (loadGeneralFile): use findAuthentication, new getAuthCookie - * proto.h (HTTPrequestMethod): added - * proto.h (HTTPrequestURI): added - * proto.h (openURL): add `hr' arg - * url.c (HTTPrequestMethod): added - * url.c (HTTPrequestURI): added - * url.c (HTTPrequest): use HTTPrequestMethod and HTTPrequestURI - * url.c (openURL): add `hr' arg - -2002-01-30 SASAKI Takeshi <sasaki@ct.sakura.ne.jp> - - * [w3m-dev 02927] mailto: POST method with w3mmail.cgi - * file.c (loadGeneralFile): pass request even if SCM_UNKNOWN - (for external URI loader) - * scripts/w3mmail.cgi.in: support POST method - -2002-01-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02926] fixed w3mmail.cgi - * scripts/w3mmail.cgi.in: dont MIME encode for preview - * scripts/w3mmail.cgi.in (lang_body): add 7bit/8bit flag arg - * scripts/w3mmail.cgi.in: fix hidden from value - * scripts/w3mmail.cgi.in (lang_setup): check $LC_ALL, $LC_CTYPE - * scripts/w3mmail.cgi.in (lang_header_default): fix MIME encode word - -2002-01-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02920] don't use inttypes.h and/or stdint.h - * mktable.c: remove inttypes.h, uintptr_t, use unsigned long instead - * configure: remove inttypes.h detection - * config.h.dist: remove HAVE_INTTYPES_H - -2002-01-29 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02921] use inttypes.h instead of stdint.h - * configure: check inttypes.h instead of stdint.h - * config.h.dist: s/STDINT_H/INTTYPES_H/ - * mktable.c: use inttypes.h instead of stdint.h - -2002-01-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02919] no need of width - * scripts/w3mmail.cgi.in: no need width=80 for header field name - -2002-01-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02919] wrong table width calculation - * table.c (set_table_matrix0): refine width calculation - -2002-01-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02918] fixed scripts/w3mmail.cgi.in - * scripts/w3mmail.cgi.in: add width=80 for header field name - * scripts/w3mmail.cgi.in (url_unquote): use pack instead of chr - -2002-01-27 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02914] - * history.c (copyHist): added - * history.h (copyHist): ditto - * main.c (goURL0): copyHist(URLHist), push current and anchor URLs - default set by DefaultURLString - -2002-01-26 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02913] wrong table width calculation - * table.c (set_table_matrix0): refine width calculation - -2002-01-26 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02875] rendering a table with inconsistent colspan,rowspan - * table.c (feed_table_tag): don't clear HTT_X|HTT_Y - instead, if set these flags, break the loop - -2002-01-26 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02909] wrong table width calculation (sf.net Bug#506949) - * table.c (correct_table_matrix4): added - * table.c (set_table_matrix0): use correct_table_matrix4() - -2002-01-25 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02908] document code of frame - * frame.c (renderFrame): save document_code if JP_CHARSET - -2002-01-25 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02904] - * rc.c (N_STR): use cpp stringification - -2002-01-25 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02902] mouse inactive after calling some command with ALARM. - * main.c (SigAlarm): mouse_inactive() and mouse_active() - -2002-01-25 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02901] Default URL for GOTO* - * fm.h (DEFAULT_URL_*): added - * fm.h (DefaultURLString): added - * main.c (cmd_loadURL): add arg `referer' - * main.c (goURL0): 2nd arg is `relative' flag - check DefaultURLString - if relative, then current and referer is set - * main.c (ldhelp): cmd_loadURL arg changes - * main.c (deletePrevBuf): ditto - * main.c (cmd_loadBuffer): ditto - * main.c (adBmark): ditto - * main.c (follow_map): ditto - * rc.c (CMT_DEFAULT_URL): added - * rc.c (defaulturls): added - * rc.c (params9): add "default_url" + * config.guess: + Update config.guess to 2013-06-10 with autotools-dev 20130810.1 -2002-01-25 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * config.sub: + Update config.sub to 2013-08-10 with autotools-dev 20130810.1 - * [w3m-dev 02901] DNS_ORDER_* - * fm.h (DNS_ORDER_*): added - * rc.c (dnsorders): use N_S(DNS_ORDER_*) - -2002-01-25 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02901] ACCEPT_BAD_COOKIE_* - * file.c (readHeader): accept_bad_cookie is one of ACCEPT_BAD_COOKIE_* - * fm.h (PERHAPS): deleted - * fm.h (ACCEPT_BAD_COOKIE_*): added - * rc.c (n_s): added - * rc.c (N_S): added - * rc.c (badcookiestr): use N_S(ACCEPT_BAD_COOKIE_*) - -2002-01-24 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2013-12-07 Reinhard Max <max@suse.de> - * [w3m-dev 02896] fid attr value should be in sequence - * table.c (feed_table_tag): s/line/""/ for HTML_FORM,HTML_N_FORM + * local.c: Fix a directory descriptor leak in loadLocalDir. + Patch from openSUSE on 2009-09-07. + Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3m/w3m-closedir.patch + Bug-Novell: https://bugzilla.novell.com/show_bug.cgi?id=531675 -2002-01-24 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02894] Re: goURL - * file.c (HTMLtagproc1): s/goURL/gorURL/ - * keybind.c (EscKeymap): M-u = GOTO_RELATIVE - * keybind_lynx.c (EscKeymap): ditto - * doc/keymap.default: ditto - * doc/keymap.lynx: ditto - * doc-jp/keymap.default: ditto - * doc-jp/keymap.lynx: ditto - * main.c (MAIN): add $HTTP_HOME or $WWW_HOME to history - * main.c (MAIN): add history even if it is local file or local cgi - * main.c (goURL0): change args, def_url -> current - * main.c (goURL0): delete ParsedURL *b_url - * main.c (goURL0): add Buffer *cur_buf - * main.c (goURL0): if current is supplied, use its URL as default - * main.c (goURL0): add URL to history if loadURL succeeded - * main.c (goURL): change args for goURL0() - * main.c (gorURL): ditto - -2002-01-23 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02889] fix scripts/multipart/multipart.cgi.in - * scripts/multipart/multipart.cgi.in: return "" instead of next - -2002-01-23 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02885] Re: goURL - * funcname.tab (GOTO_RELATIVE): added - * main.c (goURL0): renamed from goURL - don't add http:// here, if base URL is NULL, cmd_loadURL() - will add http:// when necessary - * main.c (goURL): go to URL with current URL - * main.c (gorURL): go to relative URL - * proto.h (gorURL): added - * doc/README.func (GOTO_RELATIVE): added - * doc-jp/README.func (GOTO_RELATIVE): ditto - -2002-01-22 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev-en 00670] GOTO behavior change - * main.c (goURL): default URL is current URL - if retry_http specified, and inputed URL is not absolute URL - add http:// to top of url - - * linein.c (InputKeymap): C-w as backword-kill-word - -2002-01-22 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02880] URI_PATTERN - * url.c (URI_PATTERN): better match for % hex hex - * url.c (chkExternalURIBuffer): don't use URI_PATTERN as format string - -2002-01-22 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02879] reset signals - * etc.c (reset_signals): added - * etc.c (mySystem): use reset_signals() - * file.c (uncompress_stream): use reset_signals() - * proto.h (reset_signals): added - * search.c (init_migemo): kill by SIGKILL - * search.c (open_migemo): use reset_signals() - -2002-01-22 Fumitoshi UKAI <ukai@debian.or.jp> - - * url.c (URI_PATTERN): remove \ - -2002-01-22 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02878] fix regexp [-...], [...-], []...] - * regexp.c (newRegex0): if first char is `-' or ']' after '[', - it isn't meta char. - if last char in [..] is `-', it isn't meta char. - -2002-01-22 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02877] some fixes for urimethodmap - * config.h.dist (RC_DIR): remove tailing / - * configure (mailer): if use_w3mmailer = y, don't ask mailer - * configure (RC_DIR): remove tailing / - * fm.h (Mailer): ifndef USE_W3MMAILER - * main.c (MAIN): ifndef USE_W3MMAILER getenv("MAILER") - * rc.c ("mailer"): ifndef USE_W3MMAILER - * regex.c (newRegex0): \ escape kanji chars - * url.c (searchURIMethods): need escape for - - * scripts/w3mmail.cgi.in: move $url, $qurl - * scripts/w3mmail.cgi.in: url_unquote $to - -2002-01-21 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02876] w3mmail.cgi.in backport from w3mmee - * action='file://$0' - * don't add \n to $body's tail - * $body =~ s/\r+\n/\n/g; - * s/@cmd/@opt/ - * url_unquote: + should be unquote too - -2002-01-18 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02873] delete "decode MIME-body" in doc{,-jp}/README - * doc-jp/README: delete "decode MIME-body" - * doc/README: ditto - -2002-01-18 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> - - * [w3m-dev 02872] EWS4800 sh doesn't work ${param-word} - * configure (use_migemo): change migemo URL - * configure (def_migemo_command): fix for EWS4800 - * configure (def_image_viewer): ditto - * configure (def_audio_player): ditto - -2002-01-18 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02871] ignore SIGCHLD (for at least EWS4800) - * search.c (open_migemo): signal(SIGCHLD, SIG_IGN); - -2002-01-18 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02870] don't kill migemo by SIGINT - * main.c (w3m_exit): init_migemo() to kill migemo - * search.c: #include <unistd.h> - * search.c (migemo_active): added - * search.c (migemo_pid): added - * search.c (init_migemo): migemo_active = use_migemo - * search.c (init_migemo): kill migemo_pid - * search.c (open_migemo): s/pid/migemo_pid/ - * search.c (open_migemo): setpgrp() - * search.c (open_migemo): s/use_migemo/migemo_active/ - * search.c (migemostr): ditto - * search.c (forwardSearch): ditto - * search.c (backwardSearch): ditto - -2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02867] mark URL for external URIs - * main.c (chkURLBuffer): chkExternalURIBuffer() - * proto.h (chkExternalURIBuffer): added - * url.c (chkExternalURIBuffer): added - -2002-01-17 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02866] - * search.c: #include <signal.h> - * search.c (open_migemo): ignore SIG_INT for migemo process - * search.c (open_migemo): close_tty() - * search.c (open_migemo): use execl() instead of system() - -2002-01-17 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02865] - * search.c (open_migemo): add flush_tty() - -2002-01-17 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02864] def_migemo_command - * configure (def_migemo_command): default is - migemo -t egrep /usr/local/share/migemo/migemo-dict - -2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02863] discard migemo error message - * search.c (open_migemo): close stderr - -2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02862] SIGPIPE for migemo support - * main.c (SigPipe): added - * main.c (MAIN): signal(SIGPIPE, ) - * search.c: #include <errno.h> - * search.c (migemostr): check fflush() error - * search.c (migemostr): check result string (empty is err) - * search.c (migemostr): if error occured, disable use_migemo - -2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02861] IPv6 configuration check - * configure: force "#define INET6" if socket(AF_INET6, SOCK_STREAM, 0) - failed but use_ipv6=y in config.param - -2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02859] - * config.h.dist (DEF_MIGEMO_COMMAND): added - * configure (DEF_MIGEMO_COMMAND): added - * fm.h (migemo_command): initial value is DEF_MIGEMO_COMMAND - * main.c (migemostr): remove here, move search.c - * main.c (srchcore): dont migemostr() here - * proto.h (init_migemo): added - * rc.c (sync_with_option): init_migemo() - * search.c (init_migemo): added - * search.c (open_migemo): added - * search.c (migemostr): communicate background migemo - * search.c (forwardSearch): if regexCompile for migemostr failed, - try original str - * search.c (backwardSearch): ditto - -2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02855] - * main.c (dispincsrch): for C-s C-s, revert some changes - -2002-01-17 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02854] highlight for incremental search - * NEWS: highlight for incremental search - * display.c (EFFECT_MARK_START): added - * display.c (EFFECT_MARK_END): added - * display.c (EFFECT_MARK_START_C): added - * display.c (EFFECT_MARK_END_C): added - * display.c (EFFECT_MARK_START_M): added - * display.c (EFFECT_MARK_END_M): added - * display.c: define_effect for MARK_{START,END} - * display.c (mark_mode): added - * display.c (redrawLine): if mark_mode - * display.c (do_effects): do_effect2(PE_MARK, ...) - * display.c (do_effects): do_effect1(PE_MARK, ...) - * fm.h (P_EFFECT): changed to 0x01ff - * fm.h (PE_MARK): moved - * fm.h (mark_color): added - * linein.c (inputLineHistSearch): incrfunc(int ch, Str str) - * main.c (clear_mark): added - * main.c (dispincsrch): remove arg `x', `y' - * main.c (dispincsrch): move SAVE_BUFPOSITION() - * main.c (srch): if (result & SR_FOUND) clear_mark() - * main.c (cmd_mark): PE_MARK - * main.c (nextMk): s/PM_MARK/PE_MARK/ - * main.c (prevMk): s/PM_MARK/PE_MARK/ - * proto.h (inputLineHistSearch): change prototype incfunc() - * rc.c (CMT_MARK_COLOR): added - * rc.c (params2): add "mark_color" - * search.c (set_mark): added - * search.c (forwardSearch): use set_mark() - * search.c (backwardSearch): use set_mark() - -2002-01-16 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02851] - * regex.c (newRegex0): fix return NULL; - -2002-01-16 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> - - * [w3m-dev 02847] - * menu.c (initSelectMenu): use /* */ instead of // - -2002-01-16 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02846] - * regex.c (newRegex0): check msg - -2002-01-16 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02845] - * regex.c (newRegex0): check regex->storage[STORAGE_MAX] - -2002-01-16 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02843] w3mmail.cgi.in update - * scripts/w3mmail.cgi.in: add $SENDMAIL_OPT - change html - -2002-01-16 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02841] migemo patch - * NEWS: migemo support - * config.h.dist (USE_MIGEMO): added - * configure: add use_migemo - * fm.h (use_migemo): added - * fm.h (migemo_command: added - * main.c (fversion): add "migemo" - * main.c (migemostr): added - * main.c (srchcore): if use_migemo, use migemostr - * rc.c (CMT_USE_MIGEMO): added - * rc.c (CMT_MIGEMO_COMMAND): added - * rc.c (params3): add use_migemo, migemo_command - -2002-01-16 Fumitoshi UKAI <ukai@debian.or.jp> - - * main.c (fversion): add "external-uri-loader,w3mmailer" - -2002-01-16 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02840] - * scripts/w3mmail.cgi.in: use LOCAL_COOKIE - * scripts/w3mmail.cgi.in: no need HTTP response header - * scripts/w3mmail.cgi.in: fix typo $nkf_NKF - * scripts/w3mmail.cgi.in: eval { use NKF; } is perl5ism - * scripts/multipart/multipart.cgi.in: ditto - -2002-01-16 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02835] - * rc.c: move label_topline, nextpage_topline from param3 to param1 - param7 is SSL Setting - -2002-01-15 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02834] mailto: use external program - * NEWS: use w3mmail.cgi for mailto: URL - * configure: add use_w3mmailer - * frame.c (createFrameFile): ifndef USE_W3MMAILER - * main.c (followA): ifndef USE_W3MMAILER - * main.c (cmd_loadURL): ifndef USE_W3MMAILER - * url.c (schemetable): ifndef USE_W3MMAILER, mailto: become SCM_UNKNOWN - * url.c (parseURL2): ifndef USE_W3MMAILER - * url.c (_parsedURL2Str): ifndef USE_W3MMAILER - * url.c (default_urimethods): added - * url.c (searchURIMethods): check default_urimethods - * scripts/Makefile: add w3mmail.cgi - * scritps/w3mmail.cgi.in: added - * scripts/.cvsignore: ignore w3mmail.cgi - -2002-01-15 Fumitoshi UKAI <ukai@debian.or.jp> - - * file.c (loadGeneralFile): return NULL, not NO_BUFFER - -2002-01-15 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02833] ssl_forbid_method in SSL Setting - * rc.c (params7): ssl_forbid_method moved here - * rc.c (params8): ssl_forbid_method removed here - * rc.c (sections): params7 ifdef USE_SSL - -2002-01-15 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02832] external URI loader support - * NEWS: support external URI loader - * config.h.dist (USE_EXTERNAL_URI_LOADER): added - * config.h.dist (USER_URIMETHODMAP): added - * config.h.dist (SYS_URIMETHODMAP): added - * configure: ask use_external_uri_loader - * file.c (loadGeneralFile): return NO_BUFFER, not NULL - * file.c (loadGeneralFile): add SCM_UNKNOWN for USE_EXTERNAL_URI_LOADER - * fm.h (urimethodmap_files): added - * menu.c (initSelectMenu): SCM_UNKNOWN comment out - * proto.h (initURIMethods): added - * proto.h (searchURIMethods): added - * rc.c (CMT_URIMETHODMAP): added - * rc.c (params6): add urimethodmap - * rc.c (sync_with_option): add initURIMethods() - * url.c (parseURL): if SCM_UNKNOWN, url is saved in pu->file - * url.c (_parsedURL2Str): if SCM_UNKNOWN, url is in pu->file - * url.c (urimethods): added - * url.c (loadURIMethods): added - * url.c (initURIMethods): added - * url.c (searchURIMethods): added - -2002-01-13 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02828] - * url.c (_parsedURL2Str): add '/' at the end when scheme is SCM_FTPDIR - -2002-01-12 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02829] - * file.c (loadGeneralFile): return NO_BUFFER - * file.c (loadGeneralFile): if ssl_get_certificate() fails, - no buffer created - * istream.c (ssl_certificate_validity): deleted - * istream.c (ssl_set_certificate_validity): ditto - * istream.c (accept_this_site): added - * istream.c (ssl_accept_this_site): ditto - * istream.c (ssl_check_cert_ident): 1st arg is `X509 *' - * istream.c (ssl_get_certificate): 2nd arg is `char *hostname' - cert check code moved here from openSSLHandle() - * url.c (free_ssl_ctx): accept_this_site initialized - * url.c (openSSLHandle): remove cert check code here - -2002-01-12 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02827] - * scripts/Makefile: use sed instead of /bin/sh while read; echo loop - -2002-01-12 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02823] - * scripts/Makefile: don't use read -r - because Solaris 8 for x86 doesn't work - -2002-01-12 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02822] Print FTP directory list for -dump_extra option - * file.c (loadGeneralFile): remove FTPDIRtmp, use readFTPDir() instead - save to buf->sourcefile for -dump_extra - * ftp.c (FTPDIRtmp): deleted - * ftp.c (openFTP): delete readFTPDir() part - * ftp.c (readFTPDir): added - * proto.h (readFTPDir): added - -2002-01-11 Akinori Ito <aito@fw.ipsj.or.jp> - - * [w3m-dev 02819] - * regex.c (RegexMatch): loop condition changed (from < to <= ) - * regex.c (regmatch_iter): end condition changed (from >= to >) - * search.c (forwardSearch): next search fix - -2002-01-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02818] - * regex.c (regmatch_iter): return 0 if out of range - -2002-01-11 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02817] - * menu.c (menuBackwardSearch): new regexMatch() - -2002-01-11 aito@fw.ipsj.or.jp - - * [w3m-dev 02815] - * cookie.c (domain_match): use new regex - * main.c (chkURLBuffer): use new regex - * main.c (chkNMIDBuffer): use new regex - * menu.c (menuForwardSearch): new regexMatch() - * regex.c (RegexMatch): negative length means whole string - * regex.c (RegexMatch): new regmatch() - * regex.c (regmatch_sub_anytime): add 5th arg `char *' - * regex.c (regmatch_iter): add 4th arg `char *' - * regex.c (regmatch): add 3rd arg `char *' - * url.c (openSocket): use new regex - -2002-01-10 aito@fw.ipsj.or.jp - - * [w3m-dev 02811] new regexp implementation - * regex.h: remove defines - * regex.h: struct regexchar, struct regex - * regex.c: include stdio.h, stdlib.h, string.h, config.h - * regex.c: remove include fm.h - * regex.c (NULL JP_CHARSET IS_ALPHA IS_KANJI1): define unless defined - * regex.c (RE_*) define - * regex.c (st_ptr): deleted - * regex.c (regmatch): remove 4th arg `int' - * regex.c (newRegex0): rewrite, based on old newRegex - * regex.c (newRegex): use newRegex0() - * regex.c (RegexMatch): rewrite - * regex.c (struct MatchingContext1): added - * regex.c (struct MatchingContext2): added - * regex.c (YIELD): added - * regex.c (regmatch_sub_anytime): added - * regex.c (regmatch_iter): added - * regex.c (regmatch): use regmatch_iter() - * regex.c (regmatch1): rewrite - * regex.c (lc2c): add 2nd arg `len', rewrite - -2002-01-10 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> - - * [w3m-dev 02810] - * scripts/Makefile: read -r - * scripts/w3mhelp.cgi.in: fix bugs displaying "C-" only in some case - -2002-01-08 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02794] - * url.c (parseURL): cleanup - * url.c (parseURL2): file_unquote(pu->file) - -2002-01-07 Fumitoshi UKAI <ukai@debian.or.jp> - - * version.c.in: 0.2.4+cvs - -2002-01-07 Fumitoshi UKAI <ukai@debian.or.jp> - - * w3m 0.2.4 - * version.c.in: update - * doc/README: version 0.2.4, release date - * doc-jp/README: ditto - * NEWS: update - -2002-01-06 Fumitoshi UKAI <ukai@debian.or.jp> +2013-12-07 AIDA Shinra <shinra@j10n.org> - * [w3m-dev 02781] Re: Bug#127883: w3m tries to use xv as default - * config.h.dist (DEF_IMAGE_VIEWER): added - * config.h.dist (DEF_AUDIO_PLAYER): added - * configure (def_image_viewer): added - * configure (def_audio_player): added - * configure (DEF_IMAGE_VIEWER): added - * configure (DEF_AUDIO_PLAYER): added - * mailcap.c (DefaultMailcap): use DEF_IMAGE_VIEWER, DEF_AUDIO_PLAYER - -2002-01-05 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02779] `;' is valid in URL - * main.c (chkURLBuffer): add ; - -2001-12-28 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02772] - * istream.c (ssl_get_certificate): show certificate subject and issuer - * istream.c (ssl_check_cert_ident): add missing NULL for Strcat_m_charp - * url.c (openSSLHandle): close(sock) and SSL_free(handle) on failure - -2001-12-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02770] form element outside <form>..</form> - * main.c (_followForm): check whether parent action is "none" - * form.c (internal_action): add "none" - * form.c (do_internal): check internal_action[i].rout - * file.c (process_input): check cur_form_id - * file.c (process_select): ditto - * file.c (process_textarea): ditto - -2001-12-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02769] <form>..</form> as block element - * file.c (HTMLtagproc1): CLOSE_P for <form>...</form> - * table.c (feed_table_tag): add feed_table_block_tag for <form></form> - -2001-12-28 Hironori Sakamoto <h-saka@lsi.nec.co.jp> - - * [w3m-dev 02765] backend - * backend.c (internal_get): cleanups - * file.c (flushline): remove w3m_backend checks - * file.c (loadHTMLstream): add w3m_backend check - * fm.h (backend_halfdump_str): deleted - * fm.h (backend_halfdump_buf): added - -2001-12-28 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02761] - * file.c (loadcmdout): remove unnecessary buf check - -2001-12-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02760] - * file.c (getshell): check buf == NULL - * main.c (execdict): check buf == NULL - buf->type == NULL, then buf->type is set as "text/plain" - -2001-12-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02759] fold textarea - * fm.h (FoldTextarea): added - * form.c (formUpdateBuffer): check FoldTextarea - * rc.c (CMT_FOLD_TEXTAREA): added - * rc.c (params1): add "fold_textarea" - -2001-12-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02757] - * main.c (execdict): w = conv_from_system(word) - * main.c (dictword): call execdict() only - -2001-12-27 Fumitoshi UKAI <ukai@debian.or.jp> - - * url.c (openSSLHandle): accept_this_file is out of - #ifdef USE_SSL_VERIFY - -2001-12-27 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02753] - * url (ssl_verify_error_string): deleted - * url.c (openSSLHandle): use X509_verify_cert_error_string() - -2001-12-27 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02750] RFC2818 server identity check - * istream.c (ssl_certificate_validity): added - * istream.c (ssl_set_certificate_validity): added - * istream.c (ssl_get_certificate): use ssl_certificate_validity - * istream.h (ssl_set_certificate_validity): added - * url.c (ssl_verity_error_string): added - * url.c (openSSLHandle): add accept_this_site - * url.c (openSSLHandle): dont check by SSL_VERIFY_PEER, - use SSL_get_verify_result() instead - * url.c (openSSLHandle): check peer_certificate() and then - SSL_get_verify_result() - -2001-12-27 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02749] cleanup code for editor,mailer,extbrowser - * etc.c (myExtCommand): added - * etc.c (myEditor): added - * form.c (input_textarea): use myEditor() - * main.c (pipeBuf): use myExtCommand() - * main.c (editBf): use myEditor() - * main.c (editScr): use myEditor() - * main.c (followA): use myExtCommand() - * main.c (cmd_loadURL): use myExtCommand() - * main.c (invoke_browser): use myExtCommand() - * main.c (execdict): use myExtCommand() - * proto.h (myExtCommand): added - * proto.h (myEditor): added - -2001-12-27 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02748] cleanup code for restoring cursor position - * buffer.c (reshapeBuffer): delete top, linenum, cursorY, pos, - currentColumn, formitem - * buffer.c (reshapeBuffer): add sbuf and - use copyBuffer(), restorePosition() - * buffer.c (reshapeBuffer): use chkURLBuffer(), chkNMIDBuffer() - * display.c (in_check_url): deleted - * display.c (displayBuffer): ditto - * display.c (displayBuffer): s/Currentbuf/buf/ - * display.c (arrangeLine): ditto - * display.c (restorePosition): added - * fm.h (TOP_LINENUMBER): added - * fm.h (CUR_LINENUMBER): added - * main.c (editBf): delete type, top, linenum, cursorY, pos, - currentColumn - * main.c (editBf): add sbuf and use copyBuffer(), restorePosition() - * main.c (reload): delete type, top, linenum, cursorY, pos, - currentColumn - * main.c (reload): add sbuf and use copyBuffer(), restorePosition() - * main.c (chkURLBuffer): added - * main.c (chkURL): chkRULBuffer on Currentbuf - * main.c (chkNMIDBuffer): added - * main.c (chkNMID): chkNMIDBuffer on Currentbuf - * proto.h (chkURLBuffer): added - * proto.h (chkNMIDBuffer): added - * proto.h (restorePosition): added - -2001-12-27 "OMAE, jun" <jun-o@dai.meta.ne.jp> - - * [w3m-dev 02735] - * indep.c (bcopy): need (chat *) cast - * indep.c (bzero): use char * instead of void * - -2001-12-26 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02745] - * istream.h: #include <x509v3.h> deleted - * istream.c: #include <x509v3.h> - * istream.c (ssl_check_cert_ident): if subjectAltName dNSName found, - don't try commonName - -2001-12-26 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02743] RFC2818 server identity check - * NEWS: RFC2818 server identity check - * istream.c (ssl_check_cert_ident): added - * istream.h (ssl_check_cert_ident): ditto - * istream.h: #include <x509v3.h> - * url.c (free_ssl_ctx): ssl_ctx = NULL - * url.c (openSSLHandle): arg hostname to check cert id - * url.c (openSSLHandle): check SSL_get_verify_result - if ssl_verify_server - * url.c (openSSLHandle): check server identity by ssl_check_cert_ident - * url.c (openURL): openSSLHandle with pu->host - -2001-12-26 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02715] bugfix in scripts/multipart/multipart.cgi.in - was not applied - * scripts/multipart/multipart.cgi: fix "use NKF" check - -2001-12-26 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02732] fix Debian Bug#126381 - - Passwords entered for HTTPS are used for HTTP - * etc.c (find_auth): add port arg - * etc.c (find_auth_cookie): add port arg - * etc.c (add_auth_cookie): add port arg - * file.c (getAuthCookie): find_auth_cookie(host, port, realm) - * file.c (loadGeneralFile): add_auth_cookie(host, port, realm, ss) - * fm.h (struct auth_cookie): add port - * ftp.c (openFTP): find_auth_cookie(host, port, user) - * ftp.c (openFTP): add_auth_cookie(host, port, user, pwd) - * proto.h (find_auth_cookie): add port - * proto.h (add_auth_cookie): add port - -2001-12-26 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02729] - * doc-jp/README.func (DOWNLOAD): update - * doc-jp/README.func (EDIT): ditto - * doc-jp/README.func (EDIT_SCREEN): ditto - * doc-jp/README.func (SAVE): ditto - * doc/README.func (DOWNLOAD): ditto - * doc/README.func (SAVE): ditto - * doc/README.func (SUBMIT): ditto - * scripts/w3mhelp.cgi.in: $key is normalized by &norm_key - * scripts/w3mhelp.cgi.in: keyfunc update - * scripts/w3mhelp.cgi.in (load_keymap): check data, &norm_key - * scripts/w3mhelp.cgi.in (norm_key): added - -2001-12-26 Fumitoshi UKAI <ukai@debian.or.jp> - - * [#496613] LASTLINE in terms.c - by Kazuhiro NISHIYAMA (znz) - * terms.c (LASTLINE): defined(__CYGWIN__) instead of defined(CYGWIN) - * terms.c (setlinescols): ditto - -2001-12-26 Fumitoshi UKAI <ukai@debian.or.jp> - - * [#496610] #include <sys/wait.h> - by Kazuhiro NISHIYAMA (znz) - * main.c: #if defined(HAVE_WAITPID) || defined(HAVE_WAIT3) - * etc.c: ditto - * file.c: ditto - -2001-12-26 Kazuhiro NISHIYAMA <zn@mbf.nifty.com> - - * [w3m-dev 02725] bcopy, bzero - * etc.c (bcopy): deleted - * etc.c (bzero): deleted - * indep.c (bcopy): added - * indep.c (bzero): added - * indep.c (bcopy): src should be const - * fm.h (bcopy): ditto - -2001-12-25 Kazuhiko <kazuhiko@archi.kyoto-u.ac.jp> - - * [w3m-dev 02727] - * doc-jp/keymap.default (C-r): ISEARCH_BACK - * doc-jp/keymap.default (C-s): ISEARCH - * doc-jp/README.func: fix typo - -2001-12-25 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02726] incremental search - * NEWS: incremental search - * fm.h (inputLineHist) define by inputLineHistSearch - * fm.h (COPY_BUFPOTISION): added - * fm.h (SAVE_BUFPOSITION): ditto - * fm.h (RESTORE_BUFPOSITION): ditto - * funcname.tab (ISEARCH): added - * funcname.tab (ISEARCH_BACK): added - * keybind.c (GlobalKeymap): C-s = ISEARCH, C-r = ISEARCH_BACK - * linein.c (inputLineHistSearch): renamed from inputLineHist, - new arg incrfunc() for increment search - * linein.c (inputLineHistSearch): add cursorX, cursorY - * main.c (srchcore): remove displayBuffer, onA - * main.c (dispincsrch): added - * main.c (isrch): ditto - * main.c (isrchfor): ditto - * main.c (isrchbak): ditto - * main.c (srch): add displayBuffer, onA - * main.c (srch_nxtprv): ditto - * proto.h (isrchfor): added - * proto.h (isrchbak): ditto - * proto.h (inputLineHistSearch): renamed - * doc/keymap.default (C-r): ISEARCH_BACK - * doc/keymap.default (C-s): ISEARCH - * doc/README.func (ISEARCH): added - * doc/README.func (ISEARCH_BACK): ditto - * doc-jp/README.func (ISEARCH): added - * doc-jp/README.func (ISEARCH_BACK): ditto - -2001-12-25 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02723] cleanup resizing - * main.c (resized): renamed to need_resize_screen - * main.c (need_resize_screen): added - * main.c (resize_hook): prototype here - * main.c (resize_handler): ditto - * main.c (MAIN): move signal initialization - * main.c (MAIN): remove duplicate signal initialization - * main.c (resize_screen): added - * proto.h (resize_hook): deleted - * terms.c (mouse_init): remove signal - -2001-12-25 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02721] - * main.c (resize_handler): added - * main.c (MAIN): use resize_handler in getch() - -2001-12-25 WATANABE Katsuyuki <katsuyuki_1.watanabe@toppan.co.jp> - - * [w3m-dev 02714] - * scripts/w3mhelp.cgi.in: $helpdir should be handled by cygwin_pathconv - when $CYGPATH=1 - -2001-12-25 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02715] bugfix in scripts/multipart/multipart.cgi.in - * scripts/multipart/multipart.cgi: fix "use NKF" check - -2001-12-25 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02719] (based on [w3m-dev 02708] comments) - * resize_hook: set resized flag only - * main.c (MAIN): in key input loop, process resize - when resized flag is set - -2001-12-24 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02702] fix problem with emacs-w3m in [w3m-dev 02699] - * main.c (MAIN): remove some flag initialization, its too early? - this code caused problem with emacs-w3m. - -2001-12-23 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02700] search refactoring - * based on http://www.nmn.jp/~hidai/software/w3m/ - * fm.h: add SR_* constants, result value for search - * main.c (srchcore): added - * main.c (disp_srchresult): added - * main.c (srch): added - * main.c (srchfor): use srch() - * main.c (srchbak): use srch() - * main.c (srch_nxtprv): use srchcore() & disp_srch_result() - * search.c (forwardSearch): return SR_* result value - * search.c (backwardSearch): ditto - -2001-12-23 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02699] initialization too late - * main.c (MAIN): initializations moved before arg processing - * debian bug closes: Bug##102445: ignores SIGWINCH while downloading - -2001-12-22 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02696] - * configure: fix bashism of w3mhelp-{lynx,w3m}_{en,ja} expansion - -2001-12-22 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> - - * [w3m-dev 02687] version number in w3mhelp-*.html (+[w3m-dev 02689]) - * configure (cur_ver): w3mhelp*.html version subst - * w3mhelp*.html: deleted - * w3mhelp*.html.in: added + * main.c: Fix crash after SEARCH_NEXT. + Patch from <http://www.j10n.org/files/w3m-cvs-1.1055-search-next.patch>, + [w3m-dev:04473] on 2013-12-07. -2001-12-22 Tsutomu Okada <okada@furuno.co.jp> +2013-11-11 Paul Boekholt <p.boekholt@gmail.com> - * [w3m-dev 02682] - * doc/README: remove README.dj - * doc-jp/README.hp: deleted + * file.c: Add support for single quoted meta refresh URL + Bug: https://sourceforge.net/p/w3m/patches/53/ + Bug-NetBSD: http://gnats.netbsd.org/42400 -2001-12-22 Fumitoshi UKAI <ukai@debian.or.jp> +2013-11-07 Cristian Rodriguez <crrodriguez@opensuse.org> - * [w3m-dev 02692] w3m on linux/ia64 - * mktable.c: #include "config.h" - * mktable.c: #include "stdint.h" or uintptr_t typedef - * mktable.c: use uintptr_t instead of unsigned int - * configure: check pthread on linux - * configure: add gc_cflags for linux/ia64,alpha,s390 - * configure: check stdint.h - * configure (config.h): add $pthreadlib to GCLIB - * configure (config.h): add $def_have_stdint_h - * config.h.dist (HAVE_STDINT_H): added - * Str.c: add #include <stdlib.h> for exit() on some platform (ia64) + * url.c: Use SSL_OP_NO_COMPRESSION if available. + Due to the "CRIME attack" (CVE-2012-4929) HTTPS clients that + negotiate TLS-level compression can be abused for MITM attacks. + * url.c: Use SSL_MODE_RELEASE_BUFFERS if available. + Patch from openSUSE on 2012-11-12: + https://build.opensuse.org/request/show/141054 -2001-12-22 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2013-10-15 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 02690] RC_DIR in scripts - * configure (config.h): add RC_DIR - * config.h.dist: ditto - * XMakefile: pass RC_DIR - * scripts/Makefile: subst RC_DIR - * scripts/dirlist.cgi.in: $RC_DIR initial value - * scripts/w3mhelp.cgi.in: ditto - * scripts/w3mhelp.cgi.in (cygwin_pathconv): added + * Makefile.in: + Depend on funcname.tab to fix parallel make issue of scripts + Bug: https://sourceforge.net/p/w3m/patches/64/ + Bug-Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=362249 -2001-12-22 Fumitoshi UKAI <ukai@debian.or.jp> + * w3mimg/Makefile.in: + Avoid prerequisite $(IMGOBJS) to fix parallel make issue of w3mimg + Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=726188 - * version.c.in: 0.2.3.2+cvs + * acinclude.m4, configure: + Explicitly add -lX11 to IMGX11LDFLAGS only when gtk2 + Bug: https://sourceforge.net/p/w3m/patches/57/ -2001-12-22 Fumitoshi UKAI <ukai@debian.or.jp> + * w3mimg/Makefile.in: Revert "Fix parallel make issue" + This reverts commit aa6f871c6dcc108118142bcc786e4a6ac3d46867. - * w3m 0.2.3.2 - Security fix in w3m/scripts - * version.c.in: update - * w3mhelp-*.html: version 0.2.3.2 - * doc/README: version 0.2.3.2, release date - * doc-jp/README: ditto - * NEWS: added + * Makefile.in: + Revert "Explicitly link w3mimgdisplay with -lX11 to build with gcc 4.5" + This reverts commit 7410954066d68ac2ad6aea638801714447321fec. -2001-12-22 Fumitoshi UKAI <ukai@debian.or.jp> +2013-10-14 AIDA Shinra <shinra@j10n.org> - * scripts/w3mhelp.cgi.in: lang=[a-z][a-z] only + * url.c: Define schemeNumToName() to fix scheme bug. + Patch from <http://www.j10n.org/files/w3m-cvs-1.1055-schemebug.patch>, + [w3m-dev:04470] on 2013-10-14. + Bug: https://sourceforge.net/p/w3m/patches/60/ -2001-12-22 Hironori Sakamoto <h-saka@lsi.nec.co.jp> + * config.h.in, file.c, fm.h, html.h, image.c, indep.c, indep.h: + * istream.c, istream.h, local.c, main.c, mimehead.c, proto.h: + Workaround of GC crash on Cygwin64. + Patch from <http://www.j10n.org/files/w3m-cvs-1.1055-win64gc.patch>, + [w3m-dev:04469] on 2013-10-14. - * Security hole in multipart.cgi.in, w3mman2html.cgi.in - * scripts/w3mhelp.cgi.in: open(F, "< $var") instead of open(F, $var) - * scripts/w3mhelp.cgi.in: fix eval qq{require ...}; - * scripts/multipart/multipart.cgi.in: ditto - * scripts/w3mman/w3mman2html.cgi.in: validate $keyword, $section, $man +2013-10-14 Tatsuya Kinoshita <tats@debian.org> -2001-12-21 Fumitoshi UKAI <ukai@debian.or.jp> + * version.c.in: Update to 0.5.3+debian-12+ - * [w3m-dev-en 00656] - * helpdir default is PREFIX/share/w3m +2013-10-14 Jarek Czekalski <jarekczek@poczta.onet.pl> -2001-12-20 Fumitoshi UKAI <ukai@debian.or.jp> + * terms.c: Fix paren in check_cygwin_console() + Bug: https://sourceforge.net/p/w3m/patches/66/ - * version.c.in: 0.2.3.1-cvs +2013-10-13 Tatsuya Kinoshita <tats@debian.org> -2001-12-20 Fumitoshi UKAI <ukai@debian.or.jp> + * version.c.in: Update to 0.5.3+debian-12 - * w3m 0.2.3.1 - * version.c.in: update - * w3mhelp-*.html: version 0.2.3.1 - * doc/README: version 0.2.3.1, release date - * doc-jp/README: ditto + * doc-jp/MANUAL.html, doc-jp/w3m.1, doc/MANUAL.html, doc/w3m.1: + Update document for the -s option change + Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=75527 -2001-12-20 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * terms.c: Do not fail when LANG is not set. + Check whether the value of LC_ALL, LC_CTYPE or LANG is not NULL in + check_cygwin_console(). + Bug: https://sourceforge.net/p/w3m/patches/66/ - * [w3m-dev 02683] - * configure (def_param): fix wrong behavior unless variable initialized - * configure (def_param): fix unnecessary eval - * configure (ask_choice): ditto +2013-10-12 Tatsuya Kinoshita <tats@debian.org> -2001-12-20 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + * table.h: Bump MAXCOL to 256 + Bug: https://sourceforge.net/p/w3m/feature-requests/24/ - * w3mhelp-*.html, doc/README, doc-jp/README: - * fix version number to 0.2.3. +2013-10-12 Laurence Richert <laurencerichert@yahoo.de> -2001-12-20 Fumitoshi UKAI <ukai@debian.or.jp> + * main.c, proto.h: vim/-perator like handling + - half page scrolling + - jumping to elements numbered by getLinkNumberStr() from Karsten + Schoelzel + Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=724028 - * version.c.in: 0.2.3-cvs +2013-10-12 Tatsuya Kinoshita <tats@debian.org> -2001-12-20 Fumitoshi UKAI <ukai@debian.or.jp> + * doc-jp/README, doc/README: + Mention project page rather than unavailable mailing lists - * w3m 0.2.3 release - * version.c.in: update +2013-10-09 Rafael Laboissiere <rafael@laboissiere.net> -2001-12-20 Fumitoshi UKAI <ukai@debian.or.jp> + * doc/README.img: Fix typo + Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=725892 - * w3m 0.2.3 release condidate 3 - * configure (use_bundled_gclib): added +2013-08-12 Tatsuya Kinoshita <tats@debian.org> -2001-12-20 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * version.c.in: Update to 0.5.3+debian-11+ - * w3m 0.2.3 release candidate 2 - * [w3m-dev 02678] - * configure: get mygcversion from gc/version.h - * Makefile: update GCLIBTGZ + * ChangeLog: Update ChangeLog to use contributor's name -2001-12-20 Fumitoshi UKAI <ukai@debian.or.jp> +2013-08-08 Tatsuya Kinoshita <tats@debian.org> - * w3m 0.2.3 release candidate 1 - * gc/: sync with w3m-0.2.2-inu-1.1/gc - * Patches/ews4800: deleted - * configure: comment out Patches/ews4800 + * version.c.in: Update to 0.5.3+debian-11 -2001-12-20 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2013-08-04 Tatsuya Kinoshita <tats@debian.org> - * [w3m-dev 02655] print version and compile options - * configure: change order of questions - * main.c (fversion): added - * main.c (fusage): use fversion() - * main.c (fusage): add -help, -version - * main.c (MAIN): add -help, -version + * Str.c: Check length for Strchop() -2001-12-20 Tsutomu Okada <okada@furuno.co.jp> + * main.c: Fix potentially segfault of execdict() - * [w3m-dev 02672] - * main.c (wrap_GC_warn_proc): msg_ring initial value - * main.c (SigAlarm): not need #ifdef USE_ALARM, already guarded + * version.c.in: Update to 0.5.3+debian-10+ -2001-12-18 Fumitoshi UKAI <ukai@debian.or.jp> + * file.c: Fix segfault of loadGeneralFile() + Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718612 - * [#493911] too few arguments to function `longjmp' - by Kazuhiro NISHIYAMA (znz) - * configure (LONGJMP): need val argument +2013-08-02 Tatsuya Kinoshita <tats@debian.org> -2001-12-18 Fumitoshi UKAI <ukai@debian.or.jp> + * version.c.in: Update to 0.5.3+debian-10 - * [#493906] missing #ifdef by Kazuhiro NISHIYAMA (znz) - * main.c (sig_chld): #ifdef SIGCHLD - * main.c (SigAlarm): #ifdef USE_ALARM +2013-08-02 Piotr P. Karwasz <piotr.p@karwasz.org> -2001-12-18 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + * scripts/w3mman/w3mman2html.cgi.in: + Correct underline processing and more UTF-8 support for w3mman2html.cgi. + Patch from <https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/680202> + on 2010-11-23. - * [w3m-dev 02670] - * table.c (maximum_visible_length): use strchr() - * table.c (do_refill): use force==2 mode for flushline() +2013-08-01 Hilko Bengen <bengen@debian.org> -2001-12-18 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * entity.c: Ignore SOFT HYPHEN to prevent drawing hyphens everywhere. + Patch from <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=441934> + on 2011-03-01. - * [w3m-dev 02669] delete cURLcode() - * main.c (cURLcode): deleted - * main.c (loadNormalBuf): no need to use cURLcode() - * main.c (followI): ditto - * main.c (query_from_followform): need conv_form_encoding() +2013-08-01 Tatsuya Kinoshita <tats@debian.org> -2001-12-18 Rin Okuyama <okuyama@cna.ne.jp> + * doc-jp/README, doc/README: Update contact list in README + Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=696209 - * [w3m-dev 02668] install-sh: -e option of sh(1) - * install-sh: add set -e +2013-07-30 Tatsuya Kinoshita <tats@debian.org> -2001-12-18 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + * config.guess, config.sub: + Update config.guess and config.sub to supprot aarch64. + Updated with Debian autotools-dev version 20130515.1. - * [w3m-dev 02667] - * terms.c (mouse_init): #ifdef SIGWINCH guard - -2001-12-16 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02666] resizing on xterm with gpm support - * terms.c (mouse_init): check Gpm_Open return value, signal(SIGWINCH) - -2001-12-16 Rin Okuyama <okuyama@cna.ne.jp> - - * [w3m-dev 02664] install-sh -s option - * XMakefile: install-sh -s - * install-sh: support strip option - -2001-12-15 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02663] fix prevA() cause loop - * table.c (do_refill): force flushline - * table.c (feed_table_tag): push line if <a> has no href attr - -2001-12-15 Rin Okuyama <okuyama@cna.ne.jp> - - * [w3m-dev 02659] rc.c (show_srch_str) - * fm.h (show_srch_str): added - * main.c (srch_nxtprv): check show_srch_str - * rc.c (CMT_SHOW_SRCH_STR): added - -2001-12-15 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02657] - * main.c (chkURL): accept URL ending with '=' - -2001-12-15 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02656] - * XMakefile (clean): remove functable.c - * anchor.c (_put_anchor_new): use Strnew_size() and Strcat_charp_n() - * indep.c (getescapechar): use GET_MYCDIGIT - -2001-12-13 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02541] mouse support on cygwin - * linein.c (_esc): ignore ESC M <ch> <ch> <ch> on cygwin - * terms.c (is_xterm): not static on cygwin - * terms.c (ConInV): INPUT_RECORD * -> char * - * terms.c (MouseConToXTerm): deleted - * terms.c (iMouseConXTerm): deleted - * terms.c (expand_win32_console_input_buffer): added - * terms.c (read_win32_console_input): use PeekConsoleInput - and ReadConsole - * terms.c (read_win32_console): use read_win32_console_input() - * terms.c (cmp_tv): added - * terms.c (subtract_tv): added - * terms.c (select_or_poll_win32_console): added - * terms.c (select_win32_console): added - * terms.c (xterm_mouse_term): deleted - * terms.c (mouse_term_info): added - * terms.c (set_tty): modified to use mouse_term_info - * terms.c (sleep_till_anykey): use select_win32_console on cygwin - * terms.c (mouse_init): check is_xterm flag - * terms.c (mouse_end): check is_xterm flag - * terms.h (is_xterm): if cygwin - * terms.h (NEED_XTERM_ON): added - * terms.h (NEED_XTERM_OFF): added - -2001-12-11 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02651] search keymap using hash - * XMakefile (func.c): depends functable.c funcname1.h - * XMakefile (functable.c): generated from funcname.tab - * functable.awk: added - * fm.h (w3mKeyList): deleted - * func.c (w3mKeyList): ditto - * file.c (readHeader): change getFuncList() - * func.c (w3mNFuncList): deleted - * func.c (functable.c): include - * func.c (initKeymap): no need to count w3mFuncList - * func.c (initKeymap): change getFuncList() - * func.c (initKeymap): put data to keyData hashtable - * func.c (countFuncList): deleted - * func.c (getFuncList): use getHash_si() - * func.c (getKeyData): use getHash_iv() - * func.c (addKeyList): deleted - * func.c (searchKeyList): deleted - * func.h (textlist.h): include - * func.h (hash.h): include - * func.h (KEY_HASH_SIZE): added - * func.h (KeyListItem): deleted - * func.h (KeyList): deleted - * hash.c: s/hist/sv/ - * hash.c: add defhashfunc_i(int, void *, iv) - * hash.h: s/hist/sv/ - * hash.h: defhash(int, void *, iv) - * hash.h (putHash_*): added - * hash.h (getHash_*): added - * hash.h (defhashfunc_i): added - * history.c (pushHashHist): s/hist/sv/ - * history.c (getHashHist): s/hist/sv/ - * history.h (Hist): s/hist/sv/ - * main.c (searchKeyData): item deleted - * main.c (searchKeyData): data added - * main.c (searchKeyData): use getKayData() instead of searchKeyList() - * main.c (setAlarm): w3mNFuncList deleted - * main.c (setAlarm): change getFuncList() - * menu.c (w3mNFuncList): deleted - * menu.c (w3mFuncList): deleted - * menu.c (initMenu): no need to count w3mFuncList - * menu.c (setMenuItem): change getFuncList() - * proto.h (countFuncList): deleted - * proto.h (getFuncList): change args - * proto.h (addKeyList): deleted - * proto.h (searchKeyList): deleted - * proto.h (getKeyData): added - -2001-12-11 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02650] - * file.c (readHeader): Strnew_charp_n() should be used - -2001-12-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02647] - * proto.h (arg_is): deleted - * etc.c (arg_is): ditto - * etc.c (searchAnchorArg): ditto - -2001-12-11 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02648] rewrite strCmp() with strcmp() - * indep.c (strCmp): use strcmp() - -2001-12-11 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02441] A patch against functions *_(un)?quote() - * indep.c (url_unquote_char): use GET_MYCDIGIT, instead of sscanf - * indep.c (url_quote): use xdigit[] instead of sprintf() - * myctype.c (MYCTYPE_DIGITMAP): added - * myctype.h (MYCTYPE_DIGITMAP): ditto - * myctype.h (GET_MYCDIGIT): added - -2001-12-11 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02647] - * proto.h (getAnchor): deleted - * etc.c (getAnchor): deleted - -2001-12-09 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02646] Some code cleanups - * configure: use host libgc instead of gc/gc.a on Linux and/or AIX - if possible - * etc.c (get_cmd): deleted, merged into gethtmlcmd() - * etc.c (gethtmlcmd): merge get_cmd() code - * file.c (uncompressed_file_type): initialize slen - * file.c (passthrough): status deleted - * file.c (HTMLlineproc0): istr deleted, gethtmlcmd() argument fix - * fm.h (_GNU_SOURCE): ifndef _GNU_SOURCE - * proto.h (gethtmlcmd): fix prototypes - * terms.c: include <sys/ioctl.h> always - -2001-12-09 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02645] - * configure: fix to prevent rcsid expansion - -2001-12-08 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02641] - * configure: generate version.c from version.c.in - * version.c.in: added - * version.c: deleted, autogenerated from version.c.in - * .cvsignore (version.c): added - -2001-12-07 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02642] - * linein.c (next_dcompl): fix ifdef EMACS_LIKE_LINEEDIT - -2001-12-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02640] - * linein.c (escape_spaces): rewrite - * linein.c (unescape_spaces): rewrite - -2001-12-07 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02638] completion for ! and/or @ - * linein.c (next_compl): check "\\ ", "\\\t" - * linein.c (escape_spaces): added - * linein.c (unescape_spaces): added - * linein.c (doComplete): use unescape_spaces, escape_spaces - -2001-12-07 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02637] - * url.c (openSocket): hostname volatile -> const - * url.c (openSocket): add hname - * url.c (openSocket): copy hostname to hname to be modified safely - * url.c (otherinfo): revert previous change - -2001-12-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02635] dirlist - * file.c (loadGeneralFile): use pu.file instead of pu.real_file - * scripts/dirlist.cgi.in: modified for perl4 - -2001-12-07 Fumitoshi UKAI <ukai@debian.or.jp> - - * [#489463] Host: header is wrong IPv6 literal addr - * url.c (otherinfo): IPv6 address should be quoted with bracket - -2001-12-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> +2013-07-30 Conrad J.C. Hughes <debbugs@xrad.org> - * [w3m-dev 02629] - * linein.c (next_compl): completion for name including space - -2001-12-07 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02633] - * url.c (parseURL2): filename should be quoted here, because - it will be unquote() soon - -2001-12-07 Fumitoshi UKAI <ukai@debian.or.jp> - - * rename install.sh to install-sh - * XMakefile: s/install.sh/install-sh/ - -2001-12-07 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02622] - * tagtable.tab (noframes): added - * tagtable.tab (/noframes): added - * fm.h (RB_NOFRAMES): added - * html.h (HTML_NOFRAMES): added - * html.h (HTML_N_NOFRAMES): added - * html.c (ALST_NOFRAMES): added - * html.c (98 HTML_NOFRAMES): added - * html.c (99 HTML_N_NOFRAMES): added - * file.c (HTMLtagproc1): add HTML_NOFRAMES, HTML_N_NOFRAMES - * file.c (HTMLtagproc1): don't meta refresh if it is in noframes and - auto frame rendering - * main.c (MAIN): use setAlarmEvent() - * main.c (SigAlarm): ditto - * main.c (setAlarm): ditto - * main.c (setAlarmEvent): check if status == AL_UNSET - -2001-12-06 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02619] - * file.c (loadHTMLString): set document type - -2001-12-05 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02618] - * configure: fix typo in --mimetypes - -2001-12-05 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02617] - * scripts/Makefile (HELP_LIBS): added - * scripts/Makefile (all): depends $(HELP_LIBS) - * scripts/Makefile (install): depends $(HELP_LIBS) - * scripts/Makefile (w3mhelp-funcname.pl): split from helplibs - * scripts/Makefile (w3mhelp-funcdesc.pl): split from helplibs, touch - * scripts/Makefile (clean): clean *-stamp - * scripts/.cvsignore: add w3mhelp-funcdesc-stamp - -2001-12-05 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02616] - * buffer.c (gotoLine): use set_delayed_message instead of disp_message - * buffer.c (gotoRealLine): ditto - * display.c (delayed_msg): added - * display.c (displayBuffer): display deleyed_msg if it is set - * display.c (set_delayed_message): added - * proto.h (set_delayed_message): added - -2001-12-05 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02615] - * main.c (goLine): _goLine() called twice when prec_num was set - -2001-12-05 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02614] - * XMakefile (HELP_ALLFILES): added - * XMakefile (INSTALL_PROGRAM): ditto - * XMakefile (INSTALL_SCRIPT): ditto - * XMakefile (INSTALL_DATA): ditto - * XMakefile (install) use INSTALL_{PROGRAM,DATA} - * XMakefile (install-helpfile): cleanup - * XMakefile (install-scripts): pass MKDIR - * XMakefile (uninstall): cleanup - * XMakefile (clean): cleanup - * scripts/Makefile (MKDIR): added - * scripts/Makefile (INSTALL_DATA): added - * scripts/Makefile (install): mkdir, use INSTALL_DATA - * scripts/Makefile (uninstall): added - * scripts/Makefile (clean): ignore errors - * scripts/multipart/Makefile (MKDIR): added - * scripts/multipart/Makefile (install): mkdir - * scripts/multipart/Makefile (uninstall): added - * scripts/multipart/Makefile (clean): ignore errors - * scripts/multipart/Makefile (dist): cleanup - * scripts/w3mman/Makefile (MKDIR): added - * scripts/w3mman/Makefile (install): mkdir - * scripts/w3mman/Makefile (uninstall): added - * scripts/w3mman/Makefile (clean): ignore errors - * scripts/w3mman/Makefile (dist): cleanup - -2001-12-04 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02611] a improvement of find_cookie() - * cookie.c (make_cookie): domainname is passed as argument - * cookie.c (find_cookie): FQDN(pu->host) done only once - * func.c (getQWord): comment reformat - * local.c (check_local_cgi): ditto - -2001-12-04 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02609] - * proto.h: remove duplicate prototypes - -2001-12-04 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02608] - * local.c (localcgi_get): request == NULL means no ? in URL - * url.c (openURL): ditto - -2001-12-03 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02606] - * XMakefile (install-scripts): run pwd outside for loop - -2001-12-03 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02605] $(PWD) / allocStr() - - * XMakefile (install-scripts): use $$TOPDIR instead of $(PWD) - - * indep.c (allocStr): if len is negative, it will copy string in `s' - * display.c (record_err_message): pass -1 as length to allocStr - * etc.c (lastFileName): ditto - * etc.c (mybasename): ditto - * etc.c (FQDN): ditto - * file.c (push_tag): ditto - * func.c (addKeyList): ditto - * history.c (unshiftHist): ditto - * history.c (pushHist): ditto - * indep.c (cleanupName): ditto - * linein.c (inputLineHist): ditto - * local.c (dirBuffer): ditto - * main.c (gotoLabel): ditto - * main.c (searchKeyData): ditto - * parsetagx.c (parsedtag_set_value): ditto - * terms.c (GETSTR): ditto - * textlist.h (pushText): ditto - * url.c (DefaultFile): ditto - * url.c (parseURL): ditto - * url.c (ALLOC_STR): ditto - * url.c (parseURL2): ditto - * url.c (openURL): ditto - * w3mhelperpanel.c (extractMailcapEntry): ditto - -2001-12-02 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02604] - * configure: kanji_symbols=n if lang=EN - * file.c (HTMLlineproc2body): initialize rule - -2001-12-02 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02603] - * scripts/w3mhelp.cgi.in: modified for perl4 - -2001-12-01 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02601] - * Makefile (install-core): added - * Makefile (install-helpfile): added - * configure (use_help_cgi): default yes if perl found - * configure (config.h): add HELP_CGI - * configure (config.h): add $def_use_help_cgi - * main.c (ldhelp): add USE_HELP_CGI code - * scripts/Makefile: use w3mhelp*.pl.in - * scripts/w3mhelp-funcname.pl.in: added - * scripts/w3mhelp-funcdesc.en.pl.in: added - * scripts/w3mhelp-funcdesc.ja.pl.in: added - * scripts/w3mhelp.cgi.in: use %buf_*, %lineedit_* - * scripts/w3mhelp.cgi.in: use %title - - * [w3m-dev 02660] (based on [w3m-dev 02577] - by Kiyokazu SUTO <suto@ks-and-ks.ne.jp>) - * scripts/.cvsignore: add w3mhelp.cgi w3mhelp-*.pl - * scripts/Makefile (HELP_DIR): added - * scripts/Makefile (LIB_TARGETS): add w3mhelp.cgi - * scripts/Makefile (DOCDIRS): added - * scripts/Makefile (all): add helplibs - * scripts/Makefile (.in): subst HELP_DIR, DOCDIRS - * scripts/Makefile (helplibs): added - * scripts/Makefile (install): s/DISTDIR/DESTDIR/ - * scripts/Makefile (install): install w3mhelp-*.pl - - * scripts/w3mhelp.cgi.in: added - - * XMakefile (INSTALL2): deleted - * XMakefile (install): split - * XMakefile (install-core): added - * XMakefile (install-helpfile): added - * XMakefile (all-scripts): HELP_DIR - * XMakefile (install-scripts): HELP_DIR - - * doc/REAMDE.func: add ALARM, SUSPEND - * doc-jp/README.func: ditto - - * config.h.dist: updated - -2001-11-30 Fumitoshi UKAI <ukai@debian.or.jp> - - * url.c (otherinfo): use AcceptLang - * rc.c (sync_with_option): initialize AcceptLang - -2001-11-30 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02599] - * main.c comment reformat - -2001-11-30 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02598] - * url.c (otherinfo): add missing NULL - -2001-11-30 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02597] (based on [w3m-dev 02594] by aito@fw.ipsj.or.jp) - * fm.h (AcceptLang): added - * fm.h (AcceptMedia): added - * rc.c (CMT_ACCEPTENCODING): added - * rc.c (CMT_ACCEPTMEDIA): added - * rc.c (params9): add accept_encoding, accept_media - * rc.c (sync_with_option): initialize AcceptEncoding and AcceptMedia - * url.c (otherinfo): use Strcat_m_charp() - -2001-11-30 aito@fw.ipsj.or.jp - - * [w3m-dev 02594] - * configure: s/dcode/display_code/ - -2001-11-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02596] - * file.c (acceptableEncoding): fix segfault if no decoder found - -2001-11-30 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02595] - * file.c (compression_decoder): add encodings - * file.c (readHeader): use compression_decoder->encodings - -2001-11-30 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02593] - * form.h: comment reformat - * matrix.c: ditto - * menu.c: ditto - * regex.c: ditto - * table.h: ditto - * terms.c: ditto - -2001-11-30 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02592] Accept: and AcceptEncoding: - * url.c (otherinfo): use acceptableEncoding() acceptableMimeTypes() - - * file.c: add compression_decoder - * file.c (check_compress): rewrite by using compression_decoder - * file.c (compress_application_type): ditto - * file.c (uncompressed_file_type): ditto - * file.c (check_command): added - * file.c (acceptableEncoding): added - * proto.h (acceptableEncoding): ditto - * file.c (uncompress_stream): renamed from gunzip_stream - * file.c (uncompress_stream): rewrite by using compression_decoder - * configure: add PATH_SEPARATOR - - * mailcap.c (extractMailcapEntry): static - * mailcap.c (loadMailcap): static - * proto.h (loadMailcap): removed - * mailcap.c (acceptableMimeTypes): added - * proto.h (acceptableMimeTypes): added - - * configure: #define USE_PATH_ENVVAR for __EMX__ - * file.c: GUNZIP_*, BUNZIP2_*, INFLATE_* removed here -> config.h - * file.c (gunzip_stream): s/(GUNZIP|BUNZIP2|INFLATE)_CMD/\1_CMDNAME/ - * configure (config.h): GUNZIP_*, BUNZIP2_*, INFLATE_* moved here - * fm.h (DirBufferCommand): use CGI_EXTENSION - * fm.h (mailcap_list): removed from global -> mailcap.c - * fm.h (UserMailcap): removed from global -> mailcap.c - * mailcap.c: static mailcap_list - * mailcap.c: static UserMailcap - * proto.h (initMimeTypes): moved - * proto.h (get_os2_dft): removed - * rc.c (loadMimeTypes): removed here -> url.c - * rc.c (initMimeTypes): removed here -> url.c - * fm.h (mimetypes_list): removed from global -> url.c - * fm.h (UserMimeTypes): removed from global -> url.c - * url.c: static mimetypes_list - * url.c: static UserMimeTypes - * url.c (loadMimeTypes): moved here - * url.c (initMimeTypes): moved here - -2001-11-30 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02590] - * main.c (_peekURL): peek URL on <input type="image"> - -2001-11-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02589] - * rc.c (params1): remove #ifdef VIEW_UNSEENOBJECTS - -2001-11-29 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02588] - * configure: fix alarm() check - -2001-11-29 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02587] - * file.c (gunzip_stream): s/__CYGWIN__/USE_BINMODE_STREAM/ - - * [w3m-dev 02586] - * configure: typo s/_zdmachdep.c/zmachdep.c/ - - * fix shadow variable - * main.c (HTMLtagproc1): s/refresh/refresh_interval/ - * matrix.c (LUfactor): s/index/indexarray/ - * matrix.c (LUsolve): ditto - * matrix.c (m_inverse): ditto - * matrix.c (LUinverse): ditto - * table.c (bsearch_2short): ditto - * table.c (bsearch_double): ditto - * table.c (dv2sv): ditto - * table.c (check_cell_width): ditto - * table.c (set_integered_width): ditto - * table.c (set_table_width): ditto - * table.c (check_table_height): ditto - * ftp.c: s/ftp/current_ftp/ - * ftp.c (Ftpfclose): ditto - * ftp.c (openFTP): ditto - * ftp.c (closeFTP): ditto - * ftp.c (FtpLogin): save to current_ftp - * ftp.c (openFTP): s/realpath/realpathname/ - * ftp.c (openFTP): remove i - - * ftp.c (ftp_pasv): s/sin/sockaddr/ - - * [w3m-dev 02584] code cleanup - - * linein.c (_esc): fix #ifdef EMACS_LIKE_LINEEDIT - - * fix shadow variables (partially) - * version.c: s/version/w3m_version/ - * configure: ditto - * fm.h: ditto - * local.c (set_environ): ditto - * main.c (fusage): ditto - * main.c (MAIN): ditto - * main.c (dispVer): ditto - * rc.c (load_option_panel): ditto - * url.c (otherinfo): ditto - * file.c (readHeader): s/tmp/tmp2/ - * file.c (loadGeneralFile): s/tmp/cmd/ - * file.c (flushline): s/f/df/ - * file.c (doExternal): s/stat/mc_stat/ - * proto.h: ditto - * mailcap.c (unquote_mailcap_loop): ditto - * mailcap.c (unquote_mailcap): ditto - * main.c (cmd_loadBuffer): s/link/linkid/ - * main.c (sig_chld): s/stat/p_stat/ - * fm.h: remove config_file - * main.c (MAIN): s/config_file/config_filename/ - * rc.c (init_rc): ditto - * proto.h: ditto - * rc.c: add config_file - * menu.c (goem_menu): s/select/mselect/ - * menu.c (draw_menu_item): ditto - * menu.c (select_menu): ditto - * menu.c (goto_menu): ditto - * menu.c (action_menu): ditto - * menu.c (mNext): ditto - * menu.c (mPrev): ditto - * menu.c (mOk): ditto - * menu.c (mSrchF): ditto - * menu.c (mSrchB): ditto - * menu.c (mSrchN): ditto - * menu.c (mSrchP): ditto - * menu.c (process_mMouse): ditto - * menu.c (smDelBuf): ditto - * proto.h: ditto - - * printf format - * display.c (redrawLine): use %*ld instead of %*d - - * require parentheses - * ftp.c (FtpLogin): add paren - - * fix variable might be clobbered by `longjmp' or `vfork' - * file.c (loadGeneralFile): add volatile - * file.c (loadHTMLString): ditto - * file.c (loadBuffer): ditto - * file.c (doExternal): ditto - * frame.c (createFrameFile): ditto - * main.c (srchfor): ditto - * main.c (srchbak): ditto - * main.c (srch_nxtprv): ditto - * url.c (openSocket): ditto - - * fix unused variables - * file.c (readHeader): emssg if USE_COOKIE defined - * file.c (HTMLlineproc2body: remove tmp - * file.c (saveBufferDelNum): remove p - * linein.c (_esc): c2 if JP_CHARSET defined - - * fix uninitialized variables - * Str.c (Sprintf): initialize p - * buffer.c (readBufferCache): initialize prevl - * conv.c (cConvSE): initialize ub - * conv.c (_cConvEE): initialize ub - * conv.c (cConvES): initialize ub - * file.c (loadGeneralFile): initialize proc, t, prevtral, ss, realm - * file.c (HTMLlineproc2body): initialize debug - * file.c (HTMLlineproc0): initialize tbl_mode, tbl_width - * file.c (loadHTMLstream): initialize prevtrap - * file.c (loadHTMLString): initialize prevtrap - * file.c (loadBuffer): initialize prevtrap - * form.c (formUpdateBuffer): initialize col - * ftp.c (openFTP): initialize pwd - * local.c (dirBuffer): initialize nrow - * main.c (gpm_process_mouse): initialize btn - * menu.c (gpm_process_menu_mouse): ditto - * menu.c (initMenu): initialize nmenu, nitem, item - * parsetagx.c (parse_tag): initialize attr_id - * rc.c (show_params): initialize t - * table.c (visible_length): initialize amp_len - * table.c (set_integered_width): initialize x - * table.c (check_table_height): initialize space - * table.c (renderTable): initialize vrulea, vruleb, vrulec - * terms.c (putchars): initialize s - * url.c (openSocket): initialize trap, result - * url.c (openURL): initialize sslh - -2001-11-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02579] - * configure: Use environment variables CC, CFLAGS, LDFLAGS - -2001-11-28 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02574] sysconfdir - * configure: add -bindir=* -libdir=* -helpdir=* -sysconfdir=* - * configure: add ETC_DIR - * indep.c (w3m_etc_dir): added - * indep.h: ditto - * rc.c (init_rc): use etcFile() instead of libFile() - * rc.c (etcFile): added - * proto.h: ditto - -2001-11-28 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02578] - * file.c (process_anchor): support <input type="image"> - * html.c (ALST_INPUT): add ATTR_SRC, ATTR_WIDTH, ATTR_HEIGHT - * html.c (MAXA_INPUT): +3 - - * conv.c (checkShiftCode): fix comments for indent(1) - * main.c (loadLink): ditto - * fm.h: ditto - * file.c (process_anchor); ditto - * file.c (HTMLlineproc2body): ditto - -2001-11-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02576] - * url.c (openURL): remove pu->file = p; which cause segfault - because p is not initialized - -2001-11-28 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02571] MAXPATHLEN - * indep.c (currentdir): #ifdef MAXPATHLEN for GNU Hurd - * configure: ditto - -2001-11-27 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02572] - * main.c (_peekURL): initialize s when anchor not found - -2001-11-27 aito@fw.ipsj.or.jp - * Error correction on doc-jp/FAQ.html - -2001-11-27 sakane@d4.bsd.nes.nec.co.jp (Yoshinobu Sakane) - * w3m-doc update. - -2001-11-26 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02537] - * configure: s/$def_egd/def_use_egd/ - -2001-11-26 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02556] - * indep.c (strcasestr): strcasestr("", "") should not return NULL - - * [w3m-dev 02555] - * configure: check strcasestr - * fm.h (_GNU_SOURCE): requires for strcasestr() - * indep.c (strcasestr): #ifdef HAVE_STRCASESTR - * indep.c (strcasestr): check whether s2 is NULL - * indep.h: add #include "config.h" - * indep.h: #ifdef HAVE_STRCASESTR - * indep.h: strcasestr() takes const char * - -2001-11-26 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> - - * [w3m-dev 02553] - * configure: SysV's tr requires '[a-z]' '[A-Z]' - -2001-11-26 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02547] "message/*" as a kind of text type - * file.c (is_text_type): add message/* - -2001-11-25 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02535] Name conflicts in configure - * configure: s/libdir/tlibdir/ for loop variables - -2001-11-25 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> - - * display.c: call of init_win32_console_handle is deleted - -2001-11-25 Rin Okuyama <okuyama@cna.ne.jp> - - * [w3m-dev 02533] setpgrp bug in configure - * configure: s/have_setpgrp/def_have_setpgrp/ - s/setpgrp/def_setpgrp/ - -2001-11-24 Fumitoshi UKAI <ukai@debian.or.jp> - - * Makefile (indent): indent - * run make indent - -2001-11-24 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02530] - * file.c (readHeader): NULL check for domain - -2001-11-24 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02529] - * configure (ask_choice): fix bugs - * configure (include_opt): disable as much as if baby model - * configure: ask/def parameter after model selected - - * fm.h (use_mark): runtime option use_mark - * main.c (_mark): ditto - * main.c (cmd_mark): ditto - * main.c (nextMk): ditto - * main.c (prevMk): ditto - * main.c (reMk): ditto - * rc.c (CMT_USE_MARK): ditto - * rc.c (params3): ditto - - * fm.h (nextpage_topline): runtime option nextpage_topline - * etc.c (lineSkip): ditto - * main.c (nscroll): ditto - * rc.c (CMT_NEXTPAGE_TOPLINE): ditto - * rc.c (params3): ditto - - * fm.h (label_topline): runtime option label_topline - * file.c (loadGeneralFile): ditto - * main.c (loadLink): ditto - * rc.c (CMT_LABEL_TOPLINE): ditto - * rc.c (params3): ditto - - * fm.h (vi_prec_num): runtime option vi_prec_num - * main.c (pgFore): ditto - * main.c (pgBack): ditto - * rc.c (CMT_VI_PREC_NUM): ditto - * rc.c (params3): ditto - - * fm.h (emacs_like_lineedit): runtime option emacs_like_lineedit - * linein.c (inputLineHist): ditto - * linein.c (_esc): ditto - * linein.c (next_dcompl): ditto - * rc.c (CMT_EMACS_LIKE_LINEEDIT): ditto - * rc.c (params3): ditto - - * fm.h (ftppass_hostnamegen): runtime option ftppass_hostnamegen - * ftp.c (FtpLogin): ditto - * rc.c (CMT_FTPPASS_HOSTNAMEGEN): ditto - * rc.c (params9): ditto - -2001-11-24 Akihiro Sagawa <sagawa@sohgoh.net> - - * [w3m-dev 02528] RFC2732 URL Patch - * main.c (chkURL): check RFC2732 style URLs - * url.c (parseURL): remove RFC2732 address check here, - move to openSocket() - * url.c (openSocket): check RFC2732 style hostname - * url.c (openSocket): check IPv4 address strictly - -2001-11-24 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02526] - * .cvsignore: add inflate mktable w3m w3mbookmark w3mhelperpanel - _zdmachdep.c - * configure: - pref_lang -> lang={JA|EN} - dcode -> display_code - scode -> system_code - remove save_params() - add def_param(), ask_choice() ask_param() - all confiration parameters can be read from config.param - s/DICT/USE_DICT/ - s/BUFINFO/USE_BUFINFO/ - * fm.h: s/DICT/USE_DICT/ - * proto.h: ditto - * doc/README.dict: ditto - * doc-jp/README.dict: ditto - * display.c: s/BUFINFO/USE_BUFINFO/ - * main.c: s/DICT/USE_DICT/ s/BUFINFO/USE_BUFINFO/ - -2001-11-24 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02523] - * table.c (feed_table_tag): - fix problem of anchor tag with name attribute only - -2001-11-23 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02511] - * terms.c (isWinConsole): added - -2001-11-22 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02509] ([w3m-dev 02499] [w3m-dev 02508]) - * terms.c (setlinescols): initialize LASTLINE - * terms.c: add LASTLINE - * fm.h: extern int LASTLINE - * linein.c: remove defined(__CYGWIN__) && defined(JP_CHARSET) - * main.c: remove MOUSE_* definition - * terms.h: move MOUSE_* definition from main.c - * terms.c: add tty - * terms.c (check_win32_console): added - * terms.c (init_win32_console_handle): ditto - * terms.c (read_win32_console_input): ditto - * terms.c (read_win32_console): ditto - * terms.c (set_tty) add call init_win32_console - * terms.c (getch) use read_win32_console - * terms.c (mouse_init): check hConIn - * terms.c (mouse_end): ditto - -2001-11-22 aito@fw.ipsj.or.jp - - * [w3m-dev 02503] - * indep.c (getescapechar): allow incomplete entity references in URL - closes: Debian Bug#120540 - -2001-11-22 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02506] - * anchor.c (putHmarker): remove #ifdef __CYGWIN__ for bzero() - * matrix.h (m_copy): ditto - * table.c (pushTable): ditto - -2001-11-22 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02505] - * configure (alarm): check alarm if USE_ALARM - -2001-11-22 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02501] - * .cvsignore: add funcname.c funcname1.h funcname2.h tagtable.c - * scripts/.cvsignore: added, dirlist.cgi - * scripts/multipart/.cvsignore: added, multipart.cgi - * scripts/w3mman/.cvsignore: added, w3mman w3mman2html.cgi - * doc-jp/README.kokb: deleted - * gc/makefile.depend: deleted - -2001-11-22 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * table.c (feed_table): fix the following table - <table border=1><tr><td>< <</table> - -2001-11-22 WATANABE Katsuyuki <katsuyuki_1.watanabe@toppan.co.jp> - - * [w3m-dev 02497] - * url.c (parseURL2): fix #ifdef __EMX__ code - * indep.c (cleanupName): remove #if 0 /* SUPPORT_NETBIOS_SHARE */ code - -2001-11-22 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02494] - * configure (MIME_TYPES): check if mimetypes is empty - * configure (label_topline): add missing = - * configure (nextpage_topline): ditto - -2001-11-22 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02493] - * scripts/multipart/Makefile: s/DISTDIR/DESTDIR/ - -2001-11-21 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02481] - * s/BG_COLOR/USE_BG_COLOR/ - * s/ANSI_COLOR/USE_ANSI_COLOR/ - * s/COLOR/USE_COLOR/ - * s/MENU/USE_MENU/ - * s/MOUSE/USE_MOUSE/ - - * [w3m-dev 02480] new configure - * config.h.dist: updated - * configure: $def_emacs_like_lineedit, $def_vi_prec_num - $def_label_topline, $def_nextpage_topline - $def_use_mark, $def_use_gopher, $def_use_alarm - * configure: add --{ssl,gc}-{include,lib}dir, --mimetypes - * configure: BoehmGC Debian hack - * XMakefile: add $(OPTS) - * terms.c: use HAVE_SYS_SELECT_H - * configure: add sys/select.h detection - * configure: no_float_h -> float_h - * configure: add chdir() detection - * local.c (localcgi_post): use HAVE_CHDIR instead of __EMX__ - * local.c (localcgi_get): ditto - * main.c: <time.h> no need for #ifdef __EMX__ - other files already do #include <time.h> - - [w3m-dev 02479] - * rc.c (init_rc): remove #ifdef __EMX__ for tmpdir - * config.h.dit: updated - * url.c (openURL): use CGI_EXTENSION - add extlen - * rc.c (helpFile): remove #ifdef __EMX__ - use w3m_help_dir() - * w3mbookmark.c (lib_dir): removed - * w3mbookmark.c (print_bookmark_panel): use w3m_lib_dir() - * rc.c (libFile): remove #ifdef __EMX__ - use w3m_lib_dir() - * local.c (get_os2_dft): removed - * local.c (check_local_cgi): use w3m_lib_dir() instead of lib_dir - * local.c (cgi_filename): ditto - * indep.c (w3m_dir): added - * indep.c (w3m_lib_dir w3m_help_dir): ditto - * indep.h (w3m_lib_dir w3m_help_dir): ditto - * terms.c (set_tty): remove #ifdef __EMX__ - use DEV_TTY_PATH - * local.c (localcgi_get): use DEV_NULL_PATH - * w3mhelperpanel.c (printMailcapPanal): remove #ifdef __EMX__ - use W3mHELPERPANEL_CMDNAME - * rc.c (optionpanel_src1): ditto - * w3mbookmark.c (bkmark_src1): remove #ifdef __EMX__ - use W3MBOOKMARK_CMDNAME - * main.c (adBmark): ditto - use w3m_lib_dir() - * terms.c (getTCstr): remove #ifdef __DJGPP__ - use DEFAULT_TERM - check ent is NULL - * main.c (fusage): remove #ifdef SHOW_PARAMS - * main.c (MAIN): ditto - * rc.c (show_params): ditto - * fm.h (view_unseenobject): remove #ifdef VIEW_UNSEENOBJECTS - * url.c (check_no_proxy): remove #ifdef NOPROXY_NETADDR - * configure (show_params): removed - * configure (config.h): - - fix comment for USE_MARK - - add MENU_THIN_FRAME - - move $def_nntp (USE_NNTP), $def_ansi_color (ANSI_COLOR) - - remove VIEW_UNSEENOBJECTS - - remove $def_show_params (SHOW_PARAMS) - - define DEFAULT_TERM - - define W3MBOOKMARK_CMDNAME - - define W3MHELPERPANEL_CMDNAME - - define DEV_NULL_PATH - - define DEV_TTY_PATH - - define CGI_EXTENSION - - [w3m-dev 02478] - * Makefile: make -> $(MAKE) - -2001-11-21 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02473] - * scripts/Makefile: chmod +x - * scripts/Makefile: add clean target - * scripts/multipart/Makefile: ditto - * scripts/w3mman/Makefile: ditto - * XMakefile: clean scripts - * scripts/dirlist.cgi: removed from CVS - * Makefile (install-scripts): added - * XMakefile: (install-scripts): depends all-scripts - -2001-11-21 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02470] - * XMakefile: all of scripts are generated by this instead of configure - * configure: add PERL, remove scripts/dirlist.cgi generation - * config.h.dist: add PERL - * scripts/Makefile: added - * scripts/multipart/Makefile scripts/w3mman/Makefile: - new scripts generation and installation - * scripts/multipart/README scripts/w3mman/README: update - -2001-11-21 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02472] cleanup CYGWIN macro - * display.c (displayBuffer): use __CYGWIN__ macro - * fm.h: ditto - * terms.c (refresh): add condition for isWinConsole which - defined only japanese cygwin environment - -2001-11-21 Akinori Ito <aito@fw.ipsj.or.jp> - - * [w3m-dev 02466] - Homepage URLs and author's mail addresses in the documents - are changed. - -2001-11-21 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02459] - * XMakefile: update scripts/dirlist.cgi generation - * scripts/multipart/multipart.cgi: removed - * scripts/w3mman/w3mman scripts/w3mman/w3mman2html.cgi: removed - - * [w3m-dev 02462] - * scripts/dirlist.in scripts/dirlist.cgi: removed - * scripts/dirlist.cgi.in: added - -2001-11-21 Fumitoshi UKAI <ukai@debian.or.jp> - - * add rcsids - -2001-11-21 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02454] - * buffer.c (newBuffer): set COLS - * display.c (displayBuffer redrawLine redrawLineRegion - cursorRight arrangeCursor cursorXY): - new showLineNumber implementation - * main.c (ctrCsrH shiftvisualpos shiftl shiftr _movL _movR - _followForm follow_map process_mouse): - use buf->COLS, buf->rootX - * menu.c (popupMenu mainMn initSelectMenu): - use buf->rootX - * etc.c (columnSkip): use buf->COLS - * file.c (HTMLlineproc2body loadBuffer saveBufferDelNum getNextPage) - remove old showLineNumber codes - * fm.h (Buffer): add rootX, COLS - -2001-11-21 Fumitoshi UKAI <ukai@debian.or.jp> - - * XMakefile (clean): rm tagtable.c - * .cvsignore: XXMakefile config.h config.param - -2001-11-20 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02455] - * XMakefile.dist deflate.c: removed, not used - * tagtable.c: removed, autogenerated files - * XMakefile (mktable w3mbookmark w3mhelperpanel): use LIBS2 - * configure: add $bsdlib - -2001-11-20 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * frame.c (newFrameSet): fix possible buffer overrun - -2001-11-20 Fumitoshi UKAI <ukai@debian.or.jp> - - * XXMakefile config.h: removed from CVS - these are autogenerated files. - config.h is moved to config.h.dist as sample config file. - -2001-11-20 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02449] - * file.c (HTMLtagproc1): reimplement meta refresh with - setAlarmEvent() - * fm.h: put back alarm related variables to main.c - add alarm related status flags - * main.c: put back alarm related variables from fm.h - alarm_once was renamed alarm_status - add alarm_buffer and setAlarmEvent() - * main.c (MAIN): cancel the alarm event if the buffer was - changed - * main.c (SigAlarm): ditto - * main.c (setAlarm): use setAlarmEvent() - * proto.h: add setAlarmEvent() - -2001-11-20 Fumitoshi UKAI <ukai@debian.or.jp> - - * w3mhelperpanel.c (extractMailcapEntry): remove unused variables - * istream.c (StrISgets): add parentheses around assignment used - as truth value - - * XMakefile (clean): remove funcname.c funcname1.h funcname2.h - these are autogenerated files. - * funcname.c funcname1.h funcname2.h: removed from CVS - - * main.c (MAIN): add braces to avoid ambiguous `else' - * main.c (set_buffer_environ): remove unused variables - * linein.c (_rcompl): not EMACS_LIKE_LINEEDIT only - * local.c (localcgi_get): remove unused variables - * mailcap.c (unquote_mailcap_loop): remove unused variables - * url.c (init_PRNG) add parentheses around assignment used as true value - * url.c (parseURL): remove unsed label - * url.c (parseURL2): remove unused variables - * ftp.c (ftp_escape_str ftp_restore_str): remove not used functions - * indep.c (getescapechar): remove unused variable - - * proto.h: add missing prototypes - -2001-11-20 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02447] - * terms.c (skip_escseq): is_xterm && ESC [ M <ch> <ch> <ch> - -2001-11-20 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02448] - * terms.c (mouse_init): Gpm_Close() is required. - closes: Debian Bug#120221: w3m-ssl: trashes terminal on exit - -2001-11-20 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - - * [w3m-dev 02444] - * XMakefile (funcname1.h funcname2.h): sort as well as funcname.c - -2001-11-19 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02439] - * terms.c (xterm_mouse_term set_tty): add cygwin as xterm-style - mouse terminal - -2001-11-19 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - - * [w3m-dev 02436] - * main.c (GetWord): closes: #482763 segmentation fault in main.c - -2001-11-19 Fumitoshi UKAI <ukai@debian.or.jp> - - * gc/.cvsignore: - remove gctest, if_mach, if_not_there, threadlibs - closes: #482765 i386 binaries in gc directory - -2001-11-17 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02432] - * configure: follow autoconf conventions - STRCASECMP -> HAVE_STRCASECMP - STRCHR -> HAVE_STRCHR - STRERROR -> HAVE_STRERROR - SYS_ERRLIST -> HAVE_SYS_ERRLIST - NOBCOPY -> HAVE_BCOPY - GETCWD -> HAVE_GETCWD - GETWD -> HAVE_GETWD - READLINK -> HAVE_READLINK (HAVE_LSTAT?) - TERMIO -> HAVE_TERMIO_H - TERMIOS -> HAVE_TERMIOS_H - SGTTY -> HAVE_SGTTY_H - DIRENT -> HAVE_DIRENT_H - NO_FLOAT_H -> HAVE_FLOAT_H - * etc.c fm.h config.h: HAVE_STRCASECMP - * etc.c config.h file.c: HAVE_STRCHR - strchr() moved from file.c to etc.c - * etc.c config.h: HAVE_STRERROR - * etc.c config.h main.c (MAIN): HAVE_SYS_ERRLIST - * etc.c fm.h: HAVE_BCOPY - * etc.c indep.c (currentdir) config.h: HAVE_GETCWD - * indep.c (currentdir) config.h: HAVE_GETWD - * form.c (form_write_from_file) local.c (dirBuffer) - config.h: HAVE_READLINK - * config.h terms.c: HAVE_TERMIO_H, HAVE_TERMIOS_H, HAVE_SGTTY_H - * config.h local.h: HAVE_DIRENT_H - * config.h matric.c: HAVE_FLOAT_H - - * anchor.c cookie.c file.c parsetagx.c regex.c table.c url.c: - remove include <strings.h> ifdef __EMX__ - it will be included in fm.h - * frame.c: remove include <strings.h> for bzero() and bcopy() - these are declared in fm.h - * indep.c: remove include <strings.h> for bcopy() - this is declared in fm.h - * istream.c mailcap.c: remove include <strings.h> for bzero() - this is declared in fm.h - * parsetag.c: remove include <strings.h> for bzero() - no bzero() used in this file - - * [w3m-dev 02431] - * terms.c (set_tty): "rxvt" is xterm - (getTCstr): tgetstr("Km", &pt) is not xterm, removed - (mouse_init): check Gpm_Open() == -2 to detect xterm when USE_GPM - -2001-11-16 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02418] - * main.c (chkURL): add mailto: like pattern to mark as anchor - * search.c (forwardSearch): check whether currentLine is NULL - * search.c (backwardSearch): ditto - -2001-11-16 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> - - * [w3m-dev-en 00641] Re: w3m-0.2.1-inu-1.6 - * configure: add some dirs for zlib and mime.types - -2001-11-16 Fumitoshi UKAI <ukai@debian.or.jp> - - * [w3m-dev 02417] - * terms.c (mouse_init): fix mouse handling on TERM=linux - if Gpm_Open() successed, set is_xterm = 0 so that - w3m uses gpm functions. - -2001-11-16 Tsutomu Okada <okada@furuno.co.jp> - - * [w3m-dev 02408] meta refresh - * file.c (HTMLtagproc1): - use MetaRefresh - add case refresh > 0 - * fm.h: - add MetaRefresh - move alarm related definition from main.c - * main.c: - move alarm releated definition to fm.h - (SigAlarm): alarm_once - * rc.c: - add CMT_META_REFRESH - - * [w3m-dev 02415] - * file.c (loadHTMLBuffer): - pushText() to clean up temporary files - - * [w3m-dev 02414] - * file.c (loadHTMLstream): - SETJMP and signal after buffer is initialized - - * [w3m-dev 02413] - * main.c (reMark): - don't save invalid regexp to MarkString - -2001-11-15 aito@eie.yz.yamagata-u.ac.jp - - * release-0-2-2 - * Update to w3m-0.2.1-inu-1.6 - -2001-11-09 aito@eie.yz.yamagata-u.ac.jp - - * release-0-2-1-inu-1-5 - * Updates from 0.2.1 into 0.2.1-inu-1.5 - -2001-11-08 aito@eie.yz.yamagata-u.ac.jp - - * release-0-2-1 - * import w3m-0.2.1 - -$Id: ChangeLog,v 1.1050 2011/01/15 07:52:48 inu Exp $ + * main.c: Sort anchors by sequence number in -dump. + Patch from <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=657666> + on 2012-01-27. + +2013-07-30 Tatsuya Kinoshita <tats@debian.org> + + * version.c.in: Update to 0.5.3+debian-9+ + +2013-07-29 Tatsuya Kinoshita <tats@debian.org> + + * version.c.in: Update version to w3m/0.5.3+debian-9 + + * version.c.in: Set CURRENT_VERSION to debian version + +2013-07-28 Tatsuya Kinoshita <tats@debian.org> + + * file.c: Fix segfault of process_button() + +2013-04-08 AIDA Shinra <shinra@j10n.org> + + * file.c: One more patch for siteconf from [w3m-dev 04464] + + * anchor.c, config.h.in, display.c, doc-jp/README.siteconf: + * doc/README.siteconf, file.c, fm.h, form.c, frame.c, func.c: + * history.c, indep.c, indep.h, linein.c, main.c, map.c, menu.c: + * po/ja.po, proto.h, rc.c, url.c: Support the siteconf feature. + Patch to support the siteconf feature, from [w3m-dev 04463] + on 2012-06-27. + +2013-04-08 Hayaki Saito <user@zuse.jp> + + * keybind.c, main.c, proto.h, terms.c: + Support SGR 1006 mouse reporting. + cf. [w3m-dev 04466] on 2012-07-15 + Origin: https://gist.github.com/3114255 + Bug: https://sourceforge.net/p/w3m/patches/65/ + +2012-05-19 Hilko Bengen <bengen@debian.org> + + * form.c: Assume "text" if an input type is unknown. + Patch from <http://bugs.debian.org/615843> on 2011-03-01. + +2012-05-19 Simon Ruderich <simon@ruderich.org> + + * Makefile.in: Use $(CPPFLAGS) with $(CPP). + Patch from <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=665491> + on 2012-03-24. + +2012-05-03 Miroslav ulc <fordfrog@gentoo.org> + + * w3mimg/Makefile.in: Fix parallel make issue. + Patch from Gentoo + <http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-client/w3m/files/w3m-0.5.3-parallel-make.patch?revision=1.1&view=markup> + <https://bugs.gentoo.org/show_bug.cgi?id=353390> on 2011-02-01. + +2012-05-03 MATSUU Takuto <matsuu@gentoo.org> + + * main.c: Support Boehm GC 7.2. + Patch from Gentoo + <http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-client/w3m/files/w3m-0.5.2-gc72.patch?revision=1.1&view=markup> + on 2009-12-13. + +2012-05-02 Reinhard Tartler <siretart@tauware.de> + + * istream.c, istream.h: + Fix that struct file_handle conflicts with glibc 2.14. + Patch from <https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/935540> + on 2012-02-19. + +2011-10-30 Colin Watson <cjwatson@ubuntu.com> + + * acinclude.m4, configure, w3mbookmark.c: + Appease gcc -Werror=format-security. + Patch from 0.5.3-3ubuntu1 on 2011-10-23. + Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=646321 + +2011-06-19 Martin Pitt <martin.pitt@ubuntu.com> + + * Makefile.in: + Explicitly link w3mimgdisplay with -lX11 to build with gcc 4.5. + Patch from 0.5.2-10ubuntu1 on 2010-12-03. + Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=605761 + +2011-06-19 Fumitoshi UKAI <ukai@debian.or.jp> + + * main.c: Change the -s option to "squeeze multiple blank lines". + Change the -s option from "display charset Shift_JIS" to "squeeze + multiple blank lines" to work as /usr/bin/pager. In addition, the + options -j and -e are disabled. To specify the display charset, + use -O{s|j|e} instead. + Patch from [w3m-dev 01275] on 2000-10-26. + Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=75527 + +2011-06-19 Hiroyuki Ito <ZXB01226@nifty.com> + + * file.c, fm.h, html.c, html.h, proto.h, table.c, tagtable.tab: + Support the button element as defined in HTML 4.01. + Patch from upstream, [w3m-dev 04411] on 2010-09-17, to support the + button element. It is discussed upstream and incomplete, but enough + to login Launchpad. + Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=136810 + Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/628755 + +See ChangeLog.1 for earlier changes. + +;; Local Variables: +;; coding: utf-8 +;; End: diff --git a/ChangeLog.1 b/ChangeLog.1 new file mode 100644 index 0000000..88358ef --- /dev/null +++ b/ChangeLog.1 @@ -0,0 +1,9322 @@ +2012-05-22 Tatsuya Kinoshita <tats@vega.ocn.ne.jp> + + * [w3m-dev 04451] w3m/entity.h should be removed when `make clean' + * Makefile.in: add entity.h to "make clean" target. + +2012-05-22 Tatsuya Kinoshita <tats@vega.ocn.ne.jp> + + * [w3m-dev 04452] Re: w3m on macosx 10.6.6 + * doc/w3m.1, doc/STORY.html, doc-jp/STORY.html: + delete words about formerly included Boehm GC library. + +2012-05-22 Enu <theme.of.n@gmail.com> + + * file.c, HTML.c: parse META CHARSET. + +2011-01-17 Dai Sato <satodai@w3m.jp> + + * correction: ChangeLog of 2011-01-15 (0.5.2 -> 0.5.3) + +2011-01-15 Dai Sato <satodai@w3m.jp> + + * w3m 0.5.3 + * version.c.in: update + * doc/README: version 0.5.3, release date, maintainer + * doc-jp/README: ditto + * po/w3m.pot, ja.po: ditto + * NEWS: update + * configure.ac: version 0.5.3 + * configure: regenerated + +2011-01-05 SAKAI Kiyotaka <kiyotaka.sakai@ntt-at.co.jp> + + * [w3m-dev 04445] Re: Update documents (README.cookie) + * doc-jp/README.cookie: refer to RFC 2109. + * doc/README.cookie: diito. + +2011-01-05 SAKAI Kiyotaka <kiyotaka.sakai@ntt-at.co.jp> + + * [w3m-dev 04444] Re: error when 'make install' + * w3mimg/win/.cvsignore: added. + +2011-01-04 SAKAI Kiyotaka <kiyotaka.sakai@ntt-at.co.jp> + + * [w3m-dev 04441] error when 'make install' + * update followig files. ABOUT-NLS Makefile.in acinclude.m4 + aclocal.m4 config.rpath configure configure.ac entity.h install-sh + po/ChangeLog po/Makefile.in.in po/Rules-quot po/boldquot.sed + po/en@boldquot.header po/en@quot.header po/insert-header.sin + po/quot.sed po/remove-potcdate.sin + +2010-12-28 Ito Hiroyuki <ZXB01226@nifty.com> + + * [w3m-dev 04440] Update documents (README.cookie) + * doc/README.cookie: added. + * doc-jp/README.cookie: add document about cookie_avoid_wrong_number_of_dots. + +2010-12-24 Ito Hiroyuki <ZXB01226@nifty.com> + + * [w3m-dev 04439] Update documents (README.m17n) + * doc-jp/README.m17n: add documents for options "east_asian_width", "gb18030_as_ucs" and "simple_preserve_space". + * doc/README.m17n: ditto. + +2010-12-24 AIDA Shinra <shinra@j10n.org> + + * [w3m-dev 04437] Re: Windowsw3mimg篁 + * w3mimg/win/win_w3mimg.cpp: remove unused ifdefs. + (load, animate): support "-anim" option. + (show): support "image_scale". + +2010-12-20 AIDA Shinra <shinra@j10n.org> + + * [w3m-dev 04425] Re: Windowsw3mimg篁 + * w3mimgdisplay: supports Windows console (http://www.j10n.org/files/w3m-cvs-1.1040-misc.patch). + * image.c: ditto. + * configure.ac: ditto. + * config.h.in: ditto. + * acinclude.m4: ditto. + * Makefile.in: ditto. + * w3mimg/w3mimg.h: ditto. + * w3mimg/w3mimg.c: ditto. + * w3mimg/Makefile.in: ditto. + * doc/README.img: ditto. + * doc-jp/README.img: ditto. + * w3mimgdisplay.c (main): call "w_op->close(w_op)" before exit. + * w3mimg/win/win_w3mimg.cpp: added. + * w3mimg/win/Makefile.in: added. + +2010-12-20 Ito Hiroyuki <ZXB01226@nifty.com> + + * doc/README.img: add documents about some options. + * doc-jp/README.img: ditto. + +2010-12-15 AIDA Shinra <shinra@j10n.org> + + * [w3m-dev 04424] Windowsw3mimg篁 + * scripts/w3mman/Makefile.in (DESTDIR): removed. + * scripts/multipart/Makefile.in (DESTDIR): removed. + * scripts/Makefile.in (DESTDIR): removed. + * url.c (add_index_file): can specify multiple files as an index file for directories. + * mktable.c (defhashfunc): fi indent of output. + * ftp.c (ftp_login): support IPv6. + * file.c (is_text_type): check if the type is "application/xhtml". + * Makefile.in (DESTDIR): removed. + (GC_LIBS): added. + (EXT_LIBS): use "GC_LIBS". + (entity.h): depend on entity.tab and mktable$(EXT). + (indep.o): depend on entity.h + (mktable$(EXT)): depend on Str.o, hash.o and myctype.o instead of $(ALIB). + +2010-12-15 Kazuhiko <kazuhiko@fdiary.net> + + * [w3m-dev 04419] AC_W3M_EXTLIBS does not check /lib64 + * acinclude.m4 (AC_W3M_EXTLIBS): search /lib64 and /usr/lib64. + +2010-12-11 theme.of.n@gmail.com + + * [w3m-dev 04421] Patch to prevent sending `Referer: ' header from HTTPS to HTTP + * url.c (otherinfo): Don't send Referer: if https:// -> http:// + +2010-10-11 d+w3m@vdr.jp + + * [w3m-dev 04414] Re: "normal" bugs from bugs.debian.org + * doc/w3m.1: add documents about some options. + * doc/FAQ.html: fix typo. + +2010-08-24 Karsten Schoelzel <kuser@gmx.de> + + * [w3m-dev 04393] [patch] locale-related character management + * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=313365 + * libwc/map/ucs_isalpha.map: added + * libwc/map/ucs_islower.map: added + * libwc/map/ucs_isupper.map: added + * libwc/map/mk_ucs_case_map.pl: added + * libwc/map/ucs_case.map: added + * libwc/map/mk_ucs_isdigit_map.pl: added + * libwc/map/ucs_isdigit.map: added + * libwc/ucs.c (wc_any_to_ucs): ceck if cc.ccs == WC_CCS_US_ASCII + (wc_is_ucs_alpha, wc_is_ucs_digit, wc_is_ucs_alnum) + (wc_is_ucs_lower, wc_is_ucs_upper, wc_ucs_toupper) + (wc_ucs_tolower, wc_ucs_totitle): added + * regex.c (match_longchar, match_range_longchar): use wc_any_to_ucs(), wc_ucs_tolower(), wc_ucs_toupper() and wc_ucs_totitle() + * main.c (nextChar, prevChar, getChar, is_wordchar): added + (movLW): use prevChar() and is_wordchar() + (movRW): use nextChar() and is_wordchar() + (getCurWord): remove 4th parameter + (getCurWord): use prevChar(), nextChar() and is_wordchar() + +2010-08-20 Karsten Schoelzel <kuser@gmx.de> + + * [w3m-dev 04401] Re: mailto with options handling + * rc.c: Introduce option mailto_options + * main.c (handleMailto): added + (followA, cmd_loadURL): use handleMailto() + * fm.h (MAILTO_OPTIONS_USE_W3MMAILER, MAILTO_OPTIONS_IGNORE) + (MAILTO_OPTIONS_USE_MAILTO_URL): added + +2010-08-20 Ito Hiroyuki <ZXB01226@nifty.com> + + * [w3m-dev 04402] Re: "normal" bugs from bugs.debian.org + * terms.c (reset_exit_with_value, reset_error_exit): added + (reset_exit): use reset_exit_with_value() + (ttymode_set, ttymode_reset, set_cc, getTCstr) + (sleep_till_anykey): use reset_error_exit() instead of reset_exit() + +2010-08-14 "Adam C. Emerson" <azure@azureprime.com> + + * [w3m-dev 04390] + * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=573789 + * html.c: All elements have the id attribute. + +2010-08-12 Peter J. R. Moulder + + * [w3m-dev 04384] + * http://sourceforge.net/tracker/index.php?func=detail&aid=2987194&group_id=39518&atid=425441 + * html.c: some tags have ALST_NOP attribute + * tagtable.tab: add <span> and </span> + * html.h (HTML_SPAN, HTML_N_SPAN): added + +2010-08-11 SAKAI Kiyotaka <kiyotaka.sakai@ntt-at.co.jp> + + * [w3m-dev 04381] Re: check socklen_t + * ftp.c: fix condition (#ifndef HAVE_SOCKLEN_T) + +2010-08-10 Ito Hiroyuki <ZXB01226@nifty.com> + + * [w3m-dev 04379] check socklen_t + * configure.ac: check socklen_t + * ftp.c (ftp_login, ftp_pasv): use socklen_t instead of int + +2010-08-09 Ito Hiroyuki <ZXB01226@nifty.com> + + * [w3m-dev 04374] Re: "important" bugs from bugs.debian.org + * table.c (feed_table_tag): don't show message when rowspan is greater than ATTR_ROWSPAN_MAX + * [w3m-dev 04376] Re: "important" bugs from bugs.debian.org + * table.c (feed_table_tag): fix indent + +2010-08-08 Steven Harms <ZXB01226@nifty.com> + + * [w3m-dev 04371] Re: "important" bugs from bugs.debian.org + * https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/131993 + * table.c (ATTR_ROWSPAN_MAX): added + (feed_table_tag): maximum value of rowspan is ATTR_ROWSPAN_MAX + +2010-08-08 d+w3m@vdr.jp + + * [w3m-dev 04360] Re: "important" bugs from bugs.debian.org + * main.c (main): use DEFAULT_COLS + (main): the maximum value of the -cols option is MAXIMUM_COLS + * backend.c (backend): use DEFAULT_COLS + * fm.h (MAXIMUM_COLS, DEFAULT_COLS): added + +2010-08-04 Ito Hiroyuki <ZXB01226@nifty.com> + + * [w3m-dev 04369] Re: w3m's bugs from bugs.debian.org + * terms.c (graph_ok): fix condition (UseGraphicChar != GRAPHIC_CHAR_DEC) + * symbol.c (get_symbol): fix condition (UseGraphicChar != GRAPHIC_CHAR_ASCII) + * rc.c (params1): type of graphic_char option is PI_SEL_C + * main.c (main): use GRAPHIC_CHAR_ASCII and GRAPHIC_CHAR_DEC instead of FALSE and TRUE + * fm.h (GRAPHIC_CHAR_ASCII, GRAPHIC_CHAR_DEC, GRAPHIC_CHAR_CHARSET): added + +2010-08-03 d+w3m@vdr.jp + + * [w3m-dev 04363] Re: w3m's bugs from bugs.debian.org + * doc/w3m.1: revert option -S + * doc-jp/w3m.1: revert option -S, -e, -j and -s + * main.c: remove codes for Debian + +2010-08-03 Ito Hiroyuki <ZXB01226@nifty.com> + + * [w3m-dev 04343] + * file.c (loadGeneralFile): register user name and password for proxy authentication. + * url.c (HTTPrequest): unused variable seen_proxy_auth was removed + * fm.h: global variables proxy_auth_cookie and pauth are removed + * main.c (main): remove option -pauth + * doc/MANUAL.html: ditto + * doc-jp/MANUAL.html: ditto + * doc-jp/w3m.1: ditto + * doc/w3m.1: ditto + * doc/README.passwd: added + * doc-jp/README.passwd: added + +2010-07-31 Tatsuya Kinoshita <tats@vega.ocn.ne.jp> + + * [w3m-dev 04350] Re: w3m's bugs from bugs.debian.org + * file.c (process_img): Revert the change of using ATTR_TITLE if ATTR_ALT is empty. + +2010-07-30 Ito Hiroyuki <ZXB01226@nifty.com> + + * [w3m-dev 04348] Re: "important" bugs from bugs.debian.org + * file.c (TEXTAREA_ATTR_COL_MAX, TEXTAREA_ATTR_ROWS_MAX): added. + (process_textarea): check cur_textarea_size > TEXTAREA_ATTR_COL_MAX and cur_textarea_rows > TEXTAREA_ATTR_ROWS_MAX + +2010-07-30 Ito Hiroyuki <ZXB01226@nifty.com> + + * [w3m-dev 04345] Re: "important" bugs from bugs.debian.org + * file.c (HR_ATTR_WIDTH_MAX): added. + (process_hr): check w > HR_ATTR_WIDTH_MAX + +2010-07-26 d+w3m@vdr.jp + + * [w3m-dev 04237] [patch] cookie avoid [wrong number of dots] + * rc.c: Introduce option cookie_avoid_wrong_number_of_dots. + * fm.h: add global variables cookie_avoid_wrong_number_of_dots and Cookie_avoid_wrong_number_of_dots_domains. + * cookie.c (check_avoid_wrong_number_of_dots_domain): added. + (add_cookie): use check_avoid_wrong_number_of_dots_domain(). + +2010-07-26 Ito Hiroyuki <ZXB01226@nifty.com> + + * acinclude.m4: define AC_W3M_SSL_DIGEST_AUTH + +2010-07-25 AIDA Shinra <shinra@j10n.org> + + * [w3m-dev 04049] Ctrl-C safe resolver + * fm.h (GRAPHIC_CHAR_ASCII, GRAPHIC_CHAR_CHARSET, GRAPHIC_CHAR_ALL): removed. + * fm.h: UseGraphicChar is initialized as FALSE. + * main.c (sig_chld): use TRUE and FALSE instead of GRAPHIC_CHAR_ALL and GRAPHIC_CHAR_ASCII. + * merge ambiguous width patch ( http://www.j10n.org/files/w3m-cvs-1.914-ambwidth.patch ). + +2010-07-24 Ito Hiroyuki <ZXB01226@nifty.com> + + * [w3m-dev 04326] suppress compile warnings + * file.c (digest_hex): type of the parameter s is "unsigned char *". + (AuthDigestCred): use unsigned char. + (ex_efct): type of the function is "static int". + +2010-07-20 Sascha Silbe <sascha-debian-bugs-w3m-1@silbe.org> + + * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=523159#5 + * url.c (openSSLHandle): add support for TLS SNI (Server Name Indication) + +2010-07-19 Karsten Schoelzel <kuser@gmx.de> + + * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329862#20 + * table.c (feed_table_tag): check displayLinkNumber. + * proto.h: add getLinkNumberStr(). + * main.c (do_dump): check displayLinkNumber. + * fm.h: add global variable displayLinkNumber. + * file.c (getLinkNumberStr): added. + (process_input, process_select, HTMLtagproc1): check displayLinkNumber. + +2010-07-19 Karsten Schoelzel <kuser@gmx.de> + + * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329863#8 + * rc.c: Introduce option pseudo_inlines. + * fm.h: add global variable pseudoInlines. + * file.c (process_img): check q. + +2010-07-19 "Trent W. Buck" <twb@cybersource.com.au> + + * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=537706#10 + * rc.c (interpret_rc): check line->length before call Strchop(). + +2010-07-19 Karsten Schoelzel <kuser@gmx.de> + + * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=366284#5 + * rc.c (init_rc): check config_file is NULL or not. + (panel_set_option): check config_file instead of no_rc_dir. + +2010-07-19 Karsten Schoelzel <kuser@gmx.de> + + * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=261174#10 + * terms.c (graph_ok): check UseGraphicChar is GRAPHIC_CHAR_ALL or not. + * symbol.c (get_symbol): check UseGraphicChar. + * rc.c (graphic_char_str): added. + * main.c (sig_chld): use GRAPHIC_CHAR_ASCII and GRAPHIC_CHAR_ALL. + * fm.h (GRAPHIC_CHAR_ASCII, GRAPHIC_CHAR_CHARSET, GRAPHIC_CHAR_ALL): added. + * fm.h: UseGraphicChar is initialized as GRAPHIC_CHAR_ASCII. + +2010-07-19 Karsten Schoelzel <kuser@gmx.de> + + * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=185006#22 + * main.c (sig_chld): save exit code to d->err. + (addDownloadList): initialize d->running and d->err. + (DownloadListBuffer): check d->err. + + * fm.h (_DownloadList): add running and err. + + * file.c (save2tmp): check returned value of Strfputs(). + (doFileSave): exit code is depend on the returned value of save2tmp(). + +2010-07-19 d+w3m@vdr.jp + + * [w3m-dev 04238] [patch] simple preserve space + * rc.c: Introduce option simple_preserve_space. + * fm.h: add global variable SimplePreserveSpace. + * file.c (HTMLlineproc0): check SimplePreserveSpace. + +2010-07-18 Karsten Schoelzel <kuser@gmx.de> + + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=242599#21 + * file.c (is_html_type): added. + (examineFile, loadGeneralFile, _saveBuffer) + (openGeneralPagerBuffer, reloadBuffer): use is_html_type() instead + of strcasecmp(). + (loadGeneralFile): set f.guess_tupe + * display.c (displayBuffer): use is_html_type() instead of strcasecmp(). + * buffer.c (reshapeBuffer): use is_html_type() instead of strcasecmp(). + * backend.c (internal_get): use is_html_type() instead of strcasecmp(). + * main.c (vwSrc, reload, dispI, stopI): use is_html_type() instead of strcasecmp(). + * proto.h: add is_html_type() + * url.c: add "xhtml" to DefaultGuess. + +2010-07-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04286] Re: break textform when buffer back + * form.c (form_update_line): set line->size + +2010-07-18 d+w3m@vdr.jp + + * [w3m-dev 04319] Re: w3m's bugs from bugs.debian.org + * doc/w3m.1: fix typo. + * doc-jp/w3m.1: update + +2010-07-18 Petr Salinger <Petr.Salinger@seznam.cz> + * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493486 + * terms.c: fix version check logic for FreeBSD + +2010-07-18 Colin Watson <cjwatson@ubuntu.com> + * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=325699 + * scripts/w3mman/w3mman2html.cgi.in (Content-Type): "MAN_KEEP_FORMATTING=1" + +2010-07-18 Ludwig Nussel <ludwig.nussel@...e.de> + * http://www.openwall.com/lists/oss-security/2010/06/14/4 + * istream.c (ssl_check_cert_ident): replace \0 to make full string + visible to user (CVE-2010-2074). + +2007-06-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04279] charset + * libwc/ces.h, libwc/charset.c: set charset to Shift_JIS, when locale + is japanese, jp_JP.PCK, ja_JP.IBM-932, ja_JP.IBM-943, or windows-31j. + +2007-06-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04278] Re: segfault on CentOS4.5/libgc6.8 + * term.c: add handling xterm-incompatible terminals without gpm. + +2007-06-04 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04271] vi_prec_num + * main.c: make number prefixes working when vi_prec_num=0. + +2007-05-31 Dai Sato <satodai@w3m.jp> + + * w3m 0.5.2 + * version.c.in: update + * doc/README: version 0.5.2, release date, maintainer + * doc-jp/README: ditto + * po/w3m.pot, ja.po: ditto + * NEWS: update + * configure.ac: version 0.5.2 + * configure: regenerated + +2007-05-31 Tsutomu OKADA + + * [20070530101431@w3mbbs] Re: road to 0.5.2 + * ftp.c: fix typo. + * main.c, mktable.c, w3mbookmark.c, w3mhelperpanel.c: add GC_INIT(). + +2007-05-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04266] Bug fix when tab browsing + * fm.h, main.c: fix for tab browsing. + +2007-05-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04265] compile error when #undef USE_BG_COLOR + * terms.c: add #ifdef __CYGWIN__. + +2007-05-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04264] Re: road to 0.5.2 + * po/makefile.in.in, scripts/*/Makefile.in: add datarootdir. + +2007-05-29 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04262] FreeBSD sysmouse (Re: road to 0.5.2) + * configure.ac: unbreak sysmouse support, pointed out by + Travis Poppe <tlp@lickwid.net>. + * configure: regenerated. + +2007-05-29 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04260] Warning (Re: road to 0.5.2) + * main.c, display.c: delete unused macros, change void to static void. + +2007-05-29 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04259] long long (Re: road to 0.5.2) + * Makefile.in, aclocal.m4: move 'gc' from $LIBS to $LIBGC. + * configure: regenerated. + +2007-05-29 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04256] Re: road to 0.5.2 + * scripts/Makefile.in, scripts/w3mhelp.cgi.in: add datarootdir. + +2007-05-28 Hideyuki SHIRAI <shirai@meadowy.org> + + * [w3m-dev 04251] Re: road to 0.5.2 + * po/w3m.pot: pot-update. + +2007-05-27 Hiroyuki Ito <ZXB01226@nifty.com> + + * [w3m-dev 04252] Re: road to 0.5.2 + * Makefile.in: add datarootdir for Autoconf 2.60 and later. + +2007-05-23 NOKUBI Takatsugu <knok@daionet.gr.jp> + + * [w3m-dev 04155] w3m mingw patch + * config.h, configure.ac, etc.c, file.c, ftp.c, indep.c, istream.c, + local.c, main.c, rc.c, terms.c, url.c: fix for minpw, except for + deleting nsl and dl from configure.ac. + * configure: regenerated. + +2007-05-23 Hiroyuki Ito <ZXB01226@nifty.com> + + * [w3m-dev 04233], [w3m-dev 04236] Re: <del>, <s>, <ins>, and so on + * file.c, fm.h, po/ja.po, po/w3m.pot, rc.c, table.c: + expand display_ins_del to select a type of fontify. + +2007-05-23 Hiroyuki Ito <ZXB01226@nifty.com> + + * [w3m-dev 04242] Re: Compile error when --without-ssl + * aclocal.m4, configure.ac: add checking ssl before digest_auth. + * configure: regenerated. + +2007-05-23 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04240] nl_langinfo() requires setlocale() + * fm.h, main.c, menu.c, rc.c: add "#ifdef"s. + * libwc/charset.c: add setlocale() for nl_langinfo(). + +2007-05-23 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03923] <pre> in <table> + * file.c, table.c: avoid extra blanks in pre in table. + +2007-05-23 tamo + + * [20070121110209@w3mbbs] unnecessary decoding in linein.c + * linein.c: decoding URLs in correct condition. + +2007-05-23 Tsutomu OKADA + + * [20061228000713@w3mbbs] avoid warning for file.c + * html.h: change char to unsigned char for HTML_DL_COMPACT(133). + +2007-05-23 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04213] update Unicode characters' width + * libwc/ucs.c, libwc/ucs.h, libwc/map/ucs_wide.map: + catch-up to EastAsianWidth-5.0.0.txt. + +2007-04-19 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04212] quote URL of local dir + * local.c: quote URLs with non-ASCII local directory names. + +2007-04-19 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 04211] input type=image + * file.c, html.[ch]: avoid conflicts between input_alt and img_alt. + fix calculation of labeled line numbers when fold_line=1. + +2007-04-19 Hiroyuki Ito <ZXB01226@nifty.com> + + * [w3m-dev 04197] Re: italic text + * fm.h: display <em> and <i> elements with underline. + +2006-12-27 Fumitoshi UKAI <ukai@debian.or.jp> + + * [SECURITY] fix format string vulnerability + * file.c (inputAnswer) fix format string bug + +2006-12-07 Hiroyuki Ito <ZXB01226@nifty.com> + + * [w3m-dev 04185] Re: italic text + * file.c, fm.h, html.c, html.h, tagtable.tab: + display <em> and <i> elements with bold letters. + +2006-12-07 Hideyuki SHIRAI <shirai@meadowy.org> + + * [w3m-dev 04184] automatic uncompression in downloading + * rc.c: Add `AutoUncompress'. + (params3): Ditto. + * fm.h: Add `AutoUncompress'. + * file.c (loadGeneralFile): Check `AutoUncompress' when uncompress + data. + (HTMLlineproc2body): Ditto. + * po/w3m.pot: Add new message for `AutoUncompress'. + * po/ja.po: ditto. + +2006-12-10 Hiroyuki Ito <ZXB01226@nifty.com> + + * [w3m-dev 04159] Re: Is this mailing list still alive? + * cookie.c: accept invalid "set-cookies" headers + when "domainName == .hostName". + +2006-12-10 noz + + * [20051124052846@w3mbbs] LiveHTTPHeaders + * file.c, fm.h, main.c, url.c: add -reqlog option which makes + ~/.w3m/request.log like LiveHTTPHeaders of FireFox. + +2006-08-07 Fumitoshi UKAI <ukai@debian.or.jp> + + * mailcap.c (acceptableMimeTypes): change default accept: line + w3m should prefer text/html to other text/*. + reported as Debian Bug#374296 + +2006-06-12 Dai Sato <satodai@w3m.jp> + + * another fix for [w3m-dev-en 01067] Some more patches + * file.c (loadBuffer): avoid decoding when dump_extra option is specified. + +2006-06-10 Dai Sato <satodai@w3m.jp> + + * fix for [w3m-dev-en 01067] Some more patches + * file.c (loadGeneralFile): avoid decoding when dump_extra option is specified. + +2006-06-10 Dai Sato <satodai@w3m.jp> + + * [w3m-dev 03992] Change to display progress status when dump_extra option is specified + * file.c (loadHTMLstream): Show progress status when dump_extra option is specified. + +2006-06-07 Dai Sato <satodai@w3m.jp> + + * [w3m-dev 04129] handling newlines in form values + * parsetagx.c: don't delete newlines in hidden values. + +2006-05-29 Dai Sato <satodai@w3m.jp> + + * [w3m-dev-en 01067] Some more patches + * file.c, html.h, url.c: decode content-encoding in all situations. + +2006-05-29 Dai Sato <satodai@w3m.jp> + + * [w3m-dev-en 01067] Some more patches + * main.c: delete calls to GC from wrap_GC_warn_proc to avoid deadlocks. + +2006-05-29 Dai Sato <satodai@w3m.jp> + + * [w3m-dev-en 01067] Some more patches + * main.c: fix unsafe usages of SIGWINCH handler. + +2006-05-29 Dai Sato <satodai@w3m.jp> + + * [w3m-dev-en 01067] Some more patches + * keybind(_lynx).c, doc(-jp)/keymap.default: add SHIFT-TAB as a default binding for PREV_LINK. + +2006-04-08 Dai Sato <satodai@w3m.jp> + + * [w3m-dev 04154] Unclosed textarea in table + * table.c: close textarea when table related tags found. + +2006-04-08 Dai Sato <satodai@w3m.jp> + + * [w3m-dev 04153] NEXT_LINK error + * anchor.c, filc.c, fm.h: check A tag in HTMLlineproc2body(). + +2006-04-08 Dai Sato <satodai@w3m.jp> + + * [w3m-dev 04152] [PATCH] Add more explanation for the usage of the option setting panel. + * doc(-jp)/FAQ.html, doc-jp/MANUAL.html: add explanations for .w3m/config and -o option. + +2006-04-08 Dai Sato <satodai@w3m.jp> + + * [w3m-dev 04150] vi-prec_num + * main.c: fix vi_prec_num switching. + +2006-04-08 Dai Sato <satodai@w3m.jp> + + * [w3m-dev 04146] disable HAVE_LANGINFO_CODESET on cygwin + * configure.ac: avoid AM_LANGINFO_CODESET check for Cygwin. + +2006-04-07 Dai Sato <satodai@w3m.jp> + + * [w3m-dev-en 01060] Some patches + * file.c, fm.h, rc.c: Introduce option show_cookie and set it TRUE by default. If set to FALSE received cookies will not be shown. + * This fixes Debian bug #253547: w3m: Too slow receiving cookies. + +2006-04-07 Dai Sato <satodai@w3m.jp> + + * [w3m-dev-en 01060] Some patches + * parsetagx.c: Replace '\n' (newline) with ' ' (space) in attributes of html tags instead of ignoring them. + * Fixes Debian bug #326167: w3m: new lines in hidden form fields are stripped + +2006-04-07 Dai Sato <satodai@w3m.jp> + + * [w3m-dev-en 01060] Some patches + * scripts/w3mman/w3mman*.in: Add w3mman -l <file> command line argument for viewing of local man files. + * Fixes Debian bug #138805: w3mman -l doesn't work. + +2006-04-07 Dai Sato <satodai@w3m.jp> + + * [w3m-dev-en 01060] Some patches + * libwc/detect.c: Use the hint instead of US_ASCII in wc_auto_detect. + * Fixes Debian bug #291735: w3m shouldn't "simplify" page's charset + +2006-04-07 Dai Sato <satodai@w3m.jp> + + * [w3m-dev-en 01060] Some patches + * Str.h, table.c: Use Strnew_charp() instead of the wrong Strnew(). + * Fixes SF bug #895351 Strnew called with argument in table.c. + +2006-02-10 Dai Sato <satodai@w3m.jp> + + * http://dog.w3m.jp/bbs/spool/until200602.html#20060210153135@keijiwan + * url.c: replace pclose passed to localcgi_post/get() with fclose in openURL() + +2006-02-09 Dai Sato <satodai@w3m.jp> + + * http://vimrc.hp.infoseek.co.jp/w3m-pclose.html + * file.c: replace pclose with fclose in the end of uncompress_stream() + +2005-02-27 Fumitoshi UKAI <ukai@debian.or.jp> + + * configure.ac: rename from configure.in. this is for autoconf2.50 + +2005-02-27 NOMIYA Masaru <nomiya@ttmy.ne.jp> + + * [w3m-dev 04143] Patch for OS/2 + * config.h.in: ifdef HAVE_SETPGRP + * configure.in: define USE_BINMODE_STREAM for *os2-emx* + * islang.c: ULONG -> unsigned long + * main.c: ULONG -> unsigned long + +2005-02-15 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 01045] From newbie: problem with w3m-0.5.1 installation + * acinclude.m4 (AC_W3M_SSL): define USE_SSL after ssl library found + +2005-01-19 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 04133] mouse_end() should preced reset_tty()? + * terms.c (reset_exit): mouse_end() should precede reset_tty() + +2005-01-05 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 04130] [w3m-dev 04131] [w3m-dev 04132] Multiple challeges in *-Authenticate header + * file.c (skip_auth_token): added + (extract_auth_val): ',' is end of token + (extract_auth_param): use skip_auth_token + (AuthDigestCred): parse qop and calc cnonce correctly + (findAuthentication): use skip_auth_token + +2004-11-09 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3mimg/fb/fb_gdkpixbuf.c (fb_image_load): + fix unused variable `i' + * w3mimg/x11/x11_w3mimg.c (x11_load_image): + ditto + +2004-11-09 Hiroyuki Ito <ZXB01226@nifty.com> + + * [w3m-dev 04128] Re: w3mimgdisplay + * acinclude.m4 (AC_W3M_IMAGE): check not yes + * aclocal.m4, configure: regen + * w3mimg/fb/fb_gdkpixbuf.c (fb_image_load): + fb_image_fill in case GDK_PIXBUF_FRAME_DISPOSE + * w3mimg/x11/x11_w3mimg.c (get_animation_size): + return n + (x11_load_image): + fill in case GDK_PIXBUF_FRAME_DISPOSE + +2004-11-05 Hiroyuki Ito <ZXB01226@nifty.com> + + * [w3m-dev 04117] Re: start attribute and value attribute on ordered lists + * file.c (HTMLtagproc1): allow negative value for start attr + +2004-10-14 Fumitoshi UKAI <ukai@debian.or.jp> + + * Bug#276246: w3m's locale parsing should at least see '@euro' modifier + * config.h (HAVE_LANGINFO_CODESET): added + * configure.in (AM_LANGINFO_CODESET): added + * libwc/charset.c: #include <langinfo.h> + (wc_charset_to_ces): use nl_langinfo(CODESET) + +2004-09-30 Hiroyuki Ito <ZXB01226@nifty.com> + + * [w3m-dev 04108] PIPE_BUF + * main.c (pipeBuf): set buf->currentURL.file to prevent + segfault by "PIPE_BUF cat;VIEW SOURCE;" + +2004-08-31 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + + * [w3m-dev 04104] w3mmail.cgi + * scripts/w3mmail.cgi.in: strip ^M + +2004-08-17 Hiroyuki Ito <ZXB01226@nifty.com> + + * [w3m-dev 04099] Re: w3m-img gtk2 + * w3mimg/fb/fb_gdkpixbuf.c (fb_image_load): fix resize bug + +2004-08-06 Hiroyuki Ito <ZXB01226@nifty.com> + + * [w3m-dev 04097] Re: w3m-img gtk2 + * w3mimg/fb/fb_gdkpixbuf.c (draw): no need bg + (get_animation_size): use GTimeVal + (fb_image_load): use GTimeVal + fix for animation + * w3mimg/x11/x11_w3mimg.c (get_animation_size): use GTimeVal + (x11_load_image): use GTimeVal + fix for animation + +2004-08-05 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 04096] w3m-img gtk2 + * acinclude.m4 (AC_W3M_IMAGE): add USE_GTK2 + add --with-imagelib=gtk2 + * aclocal.m4 config.guess config.sub configure: regen + * config.h.in: add USE_GTK2 + * w3mimg/fb/fb_gdkpixbuf.c: support USE_GTK2 + * w3mimg/fb/fb_img.h: add fb_image_init() + * w3mimg/fb/fb_imlib2.h: fb_image_init() stub + * w3mimg/fb/fb_w3mimg.c: call fb_image_init() + * w3mimg/x11/x11_w3mimg.c: support USE_GTK2 + +2004-08-03 WATANABE Katsuyuki <knabe@sannet.ne.jp> + + * [w3m-dev 04095] build fix when configure with --enable-messagel10n + * main.c (main): locale and textdomain initialization if ENABLE_NLS + * menu.c (initMenu): use _() instead of gettext() + * rc.c (show_params): use _() instead of gettext() + +2004-07-18 WATANABE Katsuyuki <knabe@sannet.ne.jp> + + * [w3m-dev 04094] Re: option panel: gettextize select list + * rc.c (load_option_panel): don't gettext&wc_conv colorstr + several times + +2004-07-16 WATANABE Katsuyuki <knabe@sannet.ne.jp> + + * [w3m-dev 04093] bookmark charset + * add global variable: BookmarkCharset. + * main.c:adBmark(): remove condition LANG = JA. + * main.c: buffername encode by BookmarkCharset when add bookmark. + * main.c: BookmarkCharset pass to w3mbookmark. + * w3mbookmark.c: ditto. + +2004-07-16 WATANABE Katsuyuki <knabe@sannet.ne.jp> + + * [w3m-dev 04092] remove __CYGWIN__ && LANG == JA + * remove condition LANG == JA && __CYGWIN__ + * cygwin_mouse_btn_swapped enabled when before 1.5.x + +2004-07-16 WATANABE Katsuyuki <knabe@sannet.ne.jp> + + * [w3m-dev 04091] option panel: gettextize select list + * rc.c: gettextize option select list. + * rc.c: add gettextize message. + * po/w3m.pot: ditto. + * po/ja.po: ditto. + +2004-07-14 Fumitoshi UKAI <ukai@debian.or.jp> + + * Debian Bug#259053 + * doc/FAQ.html, doc-jp/FAQ.html: ~/.mailcap -> ~/.w3m/mailcap + +2004-05-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * based on [w3m-dev 04079] + SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + * Makefile.in: (libwc/libwc.a): always make in libwc subdir + (w3mimg/w3mimg.a): always make in w3mimg subdir + +2004-05-03 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 01007] + * libwc/Makefile.in (CFLAGS): need @CPPFLAGS@ + +2004-05-03 Fumitoshi UKAI <ukai@debian.or.jp> + + * version.c.in: cvs version + +2004-04-29 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.5.1 + * version.c.in: update + * doc/README: version 0.5, release date, maintainer + * doc-jp/README: ditto + * NEWS: update + * configure.in: version 0.5.1 + * po/w3m.pot, ja.po: update-po + +2004-04-27 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + + * [w3m-dev 04068] install-sh problem + [w3m-dev 04069] install-sh problem 2 + * Makefile.in (MAKE_ARGS): delete INSTALL + * install-sh: replace with X Consortium install-sh (from automake) + +2004-04-27 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 04073] Re: run configure in another directory + * Makefile.in (CFLAGS): include dir here + (DEFS): delete include dirs + (libwc/libwc.a): pass OPTS only + (w3mimg/w3mimg.a): pass OPTS only + * libwc/Makefile.in (CFLAGS): fixed + * w3mimg/Makefile.in (CFLAGS): added + (fb x11): pass OPTS only + * w3mimg/fb/Makefile.in (CFLAGS): added + * w3mimg/x11/Makefile.in (CFLAGS): added + +2004-04-23 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + + * [w3m-dev 04066] --disable-color + * rc.c (load_option_panel): #ifdef USE_COLOR + +2004-04-22 Masao Uebayashi <uebayasi@pultek.co.jp> + + * fix build error for --enable-m17n --disable-unicode + * libwc/detect.c (wc_create_detect_map): #ifdef USE_UNICODE + +2004-04-17 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 04064] authentication + closes: Bug#:244029: w3m: HTTP basic authentication annoyance + * fm.h (auth_cookie): deleted + * proto.h (find_auth_cookie): deleted + (add_auth_cookie): deleted + (add_auth_user_passwd): added + (invalidate_auth_user_passwd): added + * etc.c (auth_pass): add bad flag + delete file + (dir_under): deleted + (add_auth_pass_entry): add override flag + no need to check file + (find_auth_pass_entry): delete file + check bad flag + check uname + (find_auth_user_passwd): find by pu->user + (add_auth_user_passwd): added + (invalidate_auth_user_passwd): added + (parsePasswd): add no override + ignore file + (find_auth): deleted + (find_auth_cookie): deleted + (dump_auth_cookie): deleted + (add_auth_cookie): deleted + * file.c (getAuthCookie): add *uname, *pwd + rewrite + (loadGeneralFile): delete ss, add uname, pwd + use add_auth_user_passwd instead of add_auth_cookie + * url.c (HTTPrequest): don't authorization here + it should be done in getAuthCookie in loadGeneralFile + through extra_header + * ftp.c (openFTPStream): add uname + use find_auth_user_passwd instead of find_auth_cookie + use add_auth_user_passwd instead of add_auth_cookie + +2004-04-10 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + + * [w3m-dev 04063] about Makefile + * Makefile.in (DEFS): use CGIBIN_DIR instead of LIB_DIR + (MAKE_ARGS): ditto + (distclean): rm -f + * config.h.dist: use CGIBIN_DIR instead of LIB_DIR + * indep.c (w3m_lib_dir): ditto + * scripts/Makefile.in: ditto + * scripts/multipart/Makefile.in: ditto + * w3mimg/Makefile.in (clearn): remove w3mimg.a + +2004-04-05 AIDA Shinra <shinra@j10n.org> + + * [w3m-dev 04049] w3m-cvs-1.914-misc.patch + * Makefile.in (funcname.tab): dont modify when target is unchanged. + (CFLAGS): need $(CPPFLAGS)? + * config.h.in: add HAVE_STDINT_H, HAVE_INTTYPES_H + * configure.in: s/AC_CANONICAL_SYSTEM/AC_CANONICAL_HOST/ + don't use AC_CYGWIN + don't use $CYGWIN, use $host_os *cygwin* + AC_DEFINE in AC_CHECK_HEADER (float.h, sys/select.h) + add stdint.h, inttypes.h + * etc.c (find_auth_pass_entry): host is case insensitive + * libwc/wc_types.h: use stdint.h or inttypes.h + * main.c (MAIN); need GC_init() + +2004-04-01 Fumitoshi UKAI <ukai@debian.or.jp> + + Debian Bug#241192 w3m ipv6 FQDN resolution failure + * etc.c (FQDN): need to set ai_flags AI_CANONNAME, since we need + ai_canonname here. + +2004-03-31 AIDA Shinra <shinra@j10n.org> + + * [w3m-dev 04050] SSL verify + * url.c (openSSLHandle): don't load verify locations if + both ssl_ca_file and ssl_ca_path is NULL. + +2004-03-24 Fumitoshi UKAI <ukai@debian.or.jp> + + * fix search problem on different charset page than display charset + * proto.h (conv_search_string): added + * search.c (migemostr): use conv_search_string + (conv_search_string): added + * main.c (srchcore): use conv_search_string + (reMark): ditto + * menu.c (menu_search_forward): ditto + (menu_search_backward): ditto + (menu_search_next_previous): ditto + +2004-03-23 Fumitoshi UKAI <ukai@debian.or.jp> + + * rc.c: cleanup LANG == JA + +2004-03-23 Fumitoshi UKAI <ukai@debian.or.jp> + + * main.c (main): DisplayCharset also follow locale + +2004-03-23 Fumitoshi UKAI <ukai@debian.or.jp> + + * scripts/w3mhelp.cgi.in: use charset parramter + * scripts/w3mhelp-funcdesc.en.pl.in: add charset + * scripts/w3mhelp-funcdesc.ja.pl.in: ditto + +2004-03-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * main.c (main): don't use SystemCharset for default of + DisplayChaset, DocumentCharset + +2004-03-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.5 + * version.c.in: update + * doc/README: version 0.5, release date, maintainer + * doc-jp/README: ditto + * NEWS: update + +2004-03-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * main.c (main): DisplayCharset and DocumentCharset also follow + locale configuration + * Makefile.in (distclean): distclean libwc + * libwc/Makefile.in: add distclean + * scripts/multipart/Makefile.in: add distclean + * scripts/w3mman/Makefile.in: add distclean + * scripts/Makefile.in: add distclean + +2004-03-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3mimg/Makefile.in (distclean): rm -f w3mimg.a + +2004-03-22 Akihiro Sagawa <sagawa@sohgoh.net> + + * [w3m-dev 04046] + * configure.in (AC_W3M_IPv6): should check it after ext libs + +2004-03-22 Akihiro Sagawa <sagawa@sohgoh.net> + + * [w3m-dev 04045] + * Makefile.in (DEFUNS): need $(top_srcdir) + +2004-03-21 Fumitoshi UKAI <ukai@debian.or.jp> + + * Makefile.in (install-po): fix for broken sh. + reported in [w3m-dev 04043] Re: w3m 0.5 + +2004-03-13 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 04041] spell-miss in configure + * acinclude.m4 (AC_W3M_M17N): fix help-string + suggested by sakane@d4.bsd.nes.nec.co.jp (Yoshinobu Sakane) + +2004-02-06 MANTANI Nobutaka <nobutaka@nobutaka.com> + + * [w3m-dev 04038] --disable-m17n problem in form.c + * form.c (form_update_line): fix for disable-m17n + +2004-01-10 ABE Yuji <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 04030] PUSH_TAG macro + * table.c (PUSH_TAG): fixed problem in --disable-m17n + +2003-12-09 WATANABE Katsuyuki <knabe@sannet.ne.jp> + + * [w3m-dev 04025] mismatch message in ja.po + * po/ja.po: fix wrong messages + +2003-12-09 WATANABE Katsuyuki <knabe@sannet.ne.jp> + + * [w3m-dev 04024] fix: drive letter + * url.c (parseURL2): fix for SUPPORT_DOS_DRIVE_PREFIX + +2003-12-09 YONETANI Tomokazu <qhwt@myrealbox.com> + + * [w3m-dev 04022] $^ + * Makefile.in (DEFUNS): added + funcname.tab: don't use $^ + * w3mimg/Makefile.in (w3mimg.a): don't use $^ + +2003-12-09 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 04021] Deeply nested table + * file.c (completeHTMLstream): check obuf->table_level + +2003-10-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * Bug#217509: segfaults if TERM is not set + * terms.c (check_cygwin_console): check TERM==NULL + (set_tty): check TERM==NULL + +2003-10-23 ABE Yuji <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 04011] accessing to an `https' URI with a fragment via a proxy + * url.c (HTTPrequestURI): drop fragment + (openURL): don't clear pu->label + +2003-10-23 ABE Yuji <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 04010] support for deprecated __ss_family + * acinclude.m4 (AC_W3M_IPv6): check __ss_family + * config.h.in: add HAVE_OLD_SS_FAMILY + * ftp.c (ftp_pasv): ifdef HAVE_OLD_SS_FAMILY + +2003-10-23 ABE Yuji <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 04009] ./configure --disable-image problem + * file.c (loadHTMLstream): if defined(USE_M17N) + +2003-10-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 04006] checking GC_version for libgc + reported by SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + * acinclude.m4 (AC_W3M_GC): check GC_init instead of GC_version + +2003-10-21 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + + * [w3m-dev 03996] HELP_DIR and funcname.tab + * configure.in (HELP_DIR): don't eval + * scripts/w3mhelp.cgi: subst @prefix@ for $helpdir + +2003-10-21 Fumitoshi UKAI <ukai@debian.or.jp> + + * #include <openssl/...> + suggested by ABE Yuji <cbo46560@pop12.odn.ne.jp> + [w3m-dev 03998] problem about pkg-config check for OpenSSL + * html.h: #include <openssl/...> + * istream.c: ditto + * istream.h: ditto + * url.c: ditto + +2003-10-20 ABE Yuji <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 04002] Re: function and w3m-control + * url.c (getURLScheme): accept numeric in scheme + +2003-10-18 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03996] HELP_DIR and funcname.tab + reported by SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + * configure.in: don't use posix shell syntax $(..) + * funcname.tab: deleted + +2003-10-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * scripts/Makefile.in (w3mhelp-funcname.pl): depends ../funcname.tab + * Makefile.in (IMGOBJS): deleted + (indep.o): depends on fm.h funcname1.h + (IMGDISPLAY): depends on w3mimg/w3mimg.a + (w3mimg/w3mimg.a): renamed from w3mimg + * acinclude.m4 (AC_W3M_IMAGE): modify IMBOBJS + * w3mimg/Makefile.in (AR): added + (RANLIB): added + (IMGOBJS): added + (w3mimg.a): added + +2003-10-11 qhwt@myrealbox.com + + * [w3m-dev 03990] Re: post-m17n merge problem? + * Makefile.in (MAN1): need $(top_srcdir) + (MAN1_JA): ditto + (LOBJS): depends on fm.h funcname1.h + (INFLATE): depends on $(ALIB) + (libwc/libwc.a): renamed from libwc + (IMGDISPLAY): depends on $(IMGOBJS) instead of w3mimg + depends on $(ALIB) + (w3mimgdisplay.o): depends on w3mimg/w3mimg.h + * acinclude.m4 (AC_W3M_M17N): WCTARGET is libwc/libwc.a + * configure.in (HELP_DIR): expand ${prefix} + +2003-10-08 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03985] Re: support for 307 Temporary Redirect + * file.c (loadGeneralFile): support 307 Temporary Redirect + +2003-10-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * fix build error --disbable-m17n + * config.h.in: undef USE_M17N, USE_UNICODE + * etc.c (url_unquote_conv): USE_M17N + * file.c (convertLine): USE_M17N + (loadHTMLStream): fix ifdef USE_IMAGE->USE_M17N + (loadBuffer): fix USE_M17N + (getNextPage): fix USE_M17N + * fm.h (USE_M17N): don't define USE_M17N in case LANG == JA + (this should be done by configure) + (wc_ces): dummy typedef + (wc_Str_conv): fix non-m17n macro args + (wc_Str_conv_strict): ditto + * ftp.c (loadFTPDir): fix undefined USE_M17N + * mimehead.c (decodeWord): ditto + (decodeMIME): ditto + * news.c (loadNewsgroup): ditto + * proto.h (convertLine): ditto + (loadGopherDir): ditto + (loadFTPDir): ditto + (loadNewsgroup): ditto + (decodeWord): ditto + (decodeMIME): ditto + (url_unquote_conv): ditto + * terms.c (SETCH): ditto + +2003-10-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * --with-imagelib request on [w3m-dev 03981] + from Mamoru KOMACHI <usata@sodan.ecc.u-tokyo.ac.jp> + * acinclude.m4 (AC_W3M_IMAGE): add --with-imagelib + +2003-10-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * fix problem reported on [w3m-dev 03981] + from Mamoru KOMACHI <usata@sodan.ecc.u-tokyo.ac.jp> + * configure.in: add AC_SUBST(HELP_DIR) + * Makefile.in (HELP_DIR): use AC_SUBT(HELP_DIR) + * scripts/Makefile.in: add PACKAGE, VERSION, DOMAIN + use PACKAGE instead of package: + CGIBIN_DIR,AUXBIN_DIR,CONF_DIR + add HELP_DIR + add SUBDIRS + (install unstall): do $(SUBDIRS) + * scripts/multipart/Makefile.in: add PACKAGE,VERSION,DOMAIN + use PACKAGE instead of package: + CGIBIN_DIR,AUXBIN_DIR,CONF_DIR + add HELP_DIR + * scripts/w3mman/Makefile.in: add PACKAGE,VERSION,DOMAIN + use PACKAGE instead of package: + CGIBIN_DIR,AUXBIN_DIR,CONF_DIR + add HELP_DIR + add BIN_DIR, MAN1_DIR + LIB_TARGETS->CGIBIN_TARGETS + fix INSTALL_MAN + * scripts/w3mman/w3mman.1.in: + change @LIB_DIR@ to @libexecdir@/@PACKAGE@/cgi-bin/ + +2003-10-01 Akira TAGOH <at@gclab.org> + + * acinclude.m4 (AC_W3M_SSL): use PKG_CHECK_MODULES + +2003-09-29 Fumitoshi UKAI <ukai@debian.or.jp> + + * Makefile.in (distclean): remove posubst + * Makefile.in (functable.c): fix cannot open file `b' for reading + +2003-09-27 Fumitoshi UKAI <ukai@debian.or.jp> + + * funcname.tab: generated from DEFUN + * main.c menu.c: use DEFUN + * conv.c ucs_eucjp.h ucs_latin1.h: deleted + +2003-09-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * add posubst, compile-time message l10n + * Makefile.in: @POSUBST@ + * acinclude.m4(AC_W3M_M17N): add POSUBST, POLANG + --enable-messagel10n + * configure.in (W3M_LANG): subst + (AM_GET_GNUTEXT): if messagel10n enabled, don't use NLS + (AC_OUTOUT): add posubst, chmod +x + * menu.c: remove if LANG == JA messages + * rc.c: ditto + +2003-09-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * remove ./intl + * configure.in: external fo AM_GNU_GETTEXT + * Makefile.in: remove intl, INTLTARGET + +2003-09-25 Fumitoshi UKAI <ukai@debian.or.jp> + + * fix [w3m-dev 03975] Re: gettextize + * Makefile.in: add INTLTARGET, NLSTARGET + cleanup + * configure.in: INTLTARGET=intl,NLSTARGET=po if USE_NLS + +2003-09-25 Fumitoshi UKAI <ukai@debian.or.jp> + + * gettextize + * Makefile.in: updated + * menu.c: gettextize + * rc.c: gettextize + * intl/.cvsignore: added + * po/.cvsignore: added + * po/Makevars: added + * po/Makevars.template: removed + * po/POTFILES.in: updated + * po/w3m.pot: created + * po/ja.po: created + +2003-09-24 Fumitoshi UKAI <ukai@debian.or.jp> + + * based on [w3m-dev 03970] + SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + * acinclude.m4 (AC_W3M_IMAGE): add IMGTARGETS + * w3mimg/Makefile.in (all): use @IMGTARGETS@ + +2003-09-24 Fumitoshi UKAI <ukai@debian.or.jp> + + * gettextize initial modifications + * configure.in Makefile.in aclocal.m4 config.h.in: + update to support NLS + * ABOUT-NLS: added + * config.rpath: added + * mkinstalldirs: added + * intl/: added + * po/: added + * fm.h: NLS support + * main.c (main): add gettext trigger + +2003-09-23 Fumitoshi UKAI <ukai@debian.or.jp> + + * more autoconfisicate + +2003-09-23 Fumitoshi UKAI <ukai@debian.or.jp> + + * merge m17n patch (w3m-0.4.1-m17n-20030308.patch.gz) + * add libwc + +2003-09-23 Fumitoshi UKAI <ukai@debian.or.jp> + + * version.c.in: cvs version + +2003-09-23 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.4.2 + * version.c.in: update + * doc/README: version 0.4.2, release date + * doc-jp/README: ditto + * NEWS: update + +2003-09-23 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03967] Re: IPv4/IPv6 only option patch + * NEWS: options: -4, -6 + * fm.h (DNS_ORDER_INET_ONLY): added + (DNS_ORDER_INET6_ONLY): added + (ai_family_order_table): [3]->[7] + * main.c (fusage): add -4/-6 + (main): -4/-6 mapped to dns_order=4/dns_order=6 + * rc.c (dnsorders): add DNS_ORDER_INET_ONLY, DNS_ORDER_INET6_ONLY + * url.c (dnsorders): add 3-6 + +2003-09-16 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03960] + * acinclude.m4 (AC_W3M_CHECK_VER): fix version check logic + +2003-08-30 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03958] w3mimgdisplay on jfbterm + * w3mimg/fb/fb_w3mimg.c (w3mimg_fbopen): check TERM=jfbterm + +2003-08-29 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03957] Location: from local-CGI + * file.c (loadGeneralFile): don't parse header for local file + redirected by Location: from local-CGI + +2003-08-12 TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> + + * [w3m-dev 03950] rel attribute of anchor tag + * html.c (ALST_A): add ATTR_REL + (MAXA_A): +1 + +2003-07-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03945] Re: application/xhtml+xml support + * Makefile.in (ETC_DIR): added + (CONF_DIR): added + (DEFS): add CONF_DIR + (MAKE_ARGS): add CONF_DIR + * config.h.in (SYS_MAILCAP): use CONF_DIR + (SYS_URIMETHODMAP): use CONF_DIR + * func.c (sys_current_keymap_file): added + (interpret_keymap): added + (initKeymap): use interpret_keymap + (interpret_mouse_action): added + (initMouseAction): use interpret_mouse_action + * indep.c (w3m_conf_dir): added + * indep.h (w3m_conf_dir): added + * menu.c (interpret_menu): added + (initMenu): use interpret_menu + * proto.h (confFile): added + * rc.c (init_rc): read config file by interpret_rc + (confFile): added + +2003-07-23 Takahashi Youichirou <nikuq@hk.airnet.ne.jp> + + * [w3m-dev 03942] Save history + * history.c (saveHistory): check tmpfile write error + +2003-07-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03941] fix character encoding for 'v' + * main.c (vwSrc): use document_code as DisplayCode + +2003-07-23 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> + + * [w3m-dev 03939] next/prev visited link + * funcname.tab (NEXT_VISITED): added + (PREV_VISITED): added + * main.c (_nextA): added + (_prevA): added + (nextVA): added + (prevVA): added + * proto.h (nextVA): added + (prevVA): added + * doc/README.func (NEXT_VISITED): added + (PREV_VISITED): added + * doc-jp/README.func (NEXT_VISITED): added + (PREV_VISITED): added + * NEWS: func: NEXT_VISITED, PREV_VISITED + + +2003-07-14 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03938] clear region margin + * w3mimgdisplay.c (clearMargin): added + (GetOption): add -margin + (ClearImage): clear margin + * w3mi,g/w3mimg.h (w3mimg_op): clear_margin + * w3mimg/fb/fb.c (fb_clear): x,y must be >= 0 + * w3mimg/x11/x11_w3mimg.c (x11_clear): x,y must be >= 0 + +2003-07-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03937] <center> in <table> + * table.c (feed_table_tag): fix <center>,</center>,<div>,</div>, + <p>,<br>,<nobr>,</nobr>,<wbr> + check_rowcol() for <img> + +2003-07-10 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3mimg/fb/fb_img.h (get_image_size): add missing prototypes + * w3mimg/fb/fb.c (fb_clear): unused variable `j' + +2003-07-09 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03935] Re: clear image + * w3mimg/fb/fb.c (fb_get_packed_color): added + (fb_image_pset): use fb_get_packed_color + (fb_image_fill): use fb_get_packed_color + (fb_clear): use tmp to store pixels + +2003-07-09 ABE Yuji <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03934] Re: clear image + * w3mimg/x11/x11_w3mimg.c (x11_clear): s/FALSE/False/ + +2003-07-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03931] Re: clear image + * w3mimgdisplay.c (ClearImage): offset + * w3mimg/fb/fb.c (fb_clear): memcpy by pixel_size + +2003-07-08 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03929] clear image + * image.c (syncImage): added + (drawImage): rewrite using syncImage() + (clearImage): use clear image command (6) + * w3mimgdisplay.c: change protocol + 2 => terminate drawing + 6 => clear image + (main): '2' calls TermImage() + '6' calls ClearImage() + TermImage() when exit + (TermImage): renamed from ClearImage + (ClearImage): rewritten to call w_op->clear() + * w3mimg.h/w3mimg.h (w3mimg_op): add clear() + * w3mimg/fb/fb.c (fb_clear): added + * w3mimg/fb/fb.h (fb_clear): added + * w3mimg/fb/fb_img.c (fb_image_clear): added + * w3mimg/fb/fb_w3mimg.c (w3mfb_clear): added + (w3mimg_fbopen): initialize wop->clear + * w3mimg/x11/x11_w3mimg.c (x11_clear): added + (w3mimg_x11open): initialize wop->clear + +2003-07-08 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03927] deflate + * file.c (compression_decoder): .deflate for application/x-deflate's + extension + +2003-06-19 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03916] Re: charset attribute of anchor tag + requested by TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> + for emacs-w3m + * html.c (ALST_A): add ATTR_CHARSET + (MAXA_A): +1 + +2003-06-18 ABE Yuji <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03914] a fragment in the Referer URI + * url.c (otherinfo): strip URI fragment + +2003-06-13 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03913] fix gif animation support + * w3mimg/fb/fb_gdkpixbuf.c (fb_image_load): fix gif animation + * w3mimg/x11/x11_w3mimg.c (x11_load_image): ditto + +2003-05-15 Akinori Ito <aito@fw.ipsj.or.jp> + + * [w3m-dev 03902] Re: table rendering + * table.c (check_relative_width): check n_leftcell + check w <= r + +2003-05-14 ABE Yuji <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03901] body with status-code 401 + * file.c (loadGeneralFile): show page when 401, 407 + +2003-05-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03900] Re: table rendering + * table.c (check_relative_width): j loop starts from 0 + +2003-05-14 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + + * [w3m-dev 03899] minor fixes + * acinclude.m4: fix s/SSLCFLAGS/SSL_CFLAGS/ + * doc/README: update, fix typo + * doc-jp/FAQ.html: update, fix URL + * doc-jp/README: update + * doc-jp/README.SSL: update + * doc-jp/README.cookie: update + * doc-jp/README.img: update URL + * doc-jp/README.migemo: update + * doc-jp/STORY.html: fix URL + +2003-05-14 Akinori Ito <aito@fw.ipsj.or.jp> + + * [w3m-dev 03898] Re: table rendering + * table.c (check_relative_width): added + (set_table_matrix): use check_relative_width + +2003-05-13 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03896] html_quote in textarea in frame + * frame.c (createFrameFile): fix html_quote in textarea in frame + +2003-05-13 Hironori SAKAMOTO <h-saka@lsi.nec.co.jp> + + * [w3m-dev 03895] type=image support of pre_form + * form.c (loadPreFOrm): add image + (preFormUpdateBuffer): add FORM_INPUT_IMAGE + * doc/README.pre_form: update + * doc-jp/README.pre_form: ditto + +2003-05-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03891] Re: urimethodmap and relative URL + * url.c (parseURL2): copy scheme part into pu->file when SCM_UNKNOWN + +2003-05-07 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03889] Progress bar in Download List Panel + * main.c (DownloadListBuffer): calculation in double + +2003-05-07 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + + * [w3m-dev 03888] autodetect ssl + * acinclude.m4 (AC_W3M_SSL): use SSL_* + * configure.in: move AC_W3M_SSL after AC_W3M_EXTLIBS + +2003-05-03 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03887] Re: I-search problem + * main.c (dispincsrch): don't move cursor if not found. + +2003-04-27 qhwt@myrealbox.com + + * [w3m-dev 03886] Re: POSTing patch (Re: User-Agent for Bonus/2ch.cgi) + * Bonus/2ch.cgi: posting + +2003-04-20 qhwt@myrealbox.com + + * [w3m-dev 03883] User-Agent for Bonus/2ch.cgi + * Bonus/2ch.cgi: User-Agent + +2003-04-19 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03882] Re: Bug#189460: w3m: <q> tag is not recognized + * file.c (HTMLtagproc1): add HTML_Q, HTML_N_Q + * html.c (TagMAP): add "q", "/q" + * html.h (HTML_Q): added + (HTML_N_Q): added + * tagtable.tab: add q, /q + +2003-04-15 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03880] Re: convert \ -> / in URL + * Bonus/backslash_to_slash.cgi: added + +2003-04-15 Masanori Kobayasi <zap03216@nifty.ne.jp> + + * [w3m-dev 03878] I-search problem + * linein.c (inputLineHistSearch): don't call incrfunc twice + * main.c (dispincsrch): fix search loop problem + +2003-04-14 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03875] Re: SSL & compressed stream + * file.c (loadGeneralFile): check t_buf != NULL + * url.c (openURL): don't initialize URLFile here + (init_stream): 0 clear URLFile + +2003-04-14 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03873] SSL & compressed stream + * file.c (loadGeneralFile): always update ssl_certificate + * url.c (openURL): initialize URLFile + +2003-04-12 NAKAJIMA Mikio <minakaji@osaka.email.ne.jp> + + * [w3m-dev 03872] goodict.cgi + * Bonus/goodict.cgi: adapt new goo dict web page + +2003-04-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * configure.in (AUXBIN_TARGETS): don't reset, move to head + +2003-04-10 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03870] Re: configure --help + * acinclude.m4 (AC_W3M_IMAGE): fix help message + (AC_W3M_SSL): fix typo + +2003-04-09 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03865] Re: configure --help + * acinclude.m4 (AC_W3M_ANSI_COLOR): depends USE_COLOR + (AC_W3M_BG_COLOR): depends USE_COLOR + (AC_W3M_W3MMAILER): depends external_uri_loader + * fm.h: undef USE_BG_COLOR ifndef USE_COLOR + +2003-04-09 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03864] doc/README + * doc/README doc-jp/README: update + +2003-04-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m] local cookie string is too easy to guess. + * fm.h (Local_cookie): deleted + * local.c (Local_cookie): static + (writeLocalCookie): localCookie() + (setLocalCookie): deleted + (localCookie): added + * main.c (main): delete srand48(), setLocalCookie() + (adBmark): s/Local_cookie/localCookie()/ + * proto.h (setLocalCookie): deleted + (localCookie): added + * rc.c (load_option_panel): s/Local_cookie/localCookie()/ + +2003-04-08 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03858] configure cleanup + * acinclude.m4 configure.in: update + +2003-04-08 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03856] <gc.h> + * backend.c entity.c fm.h hash.c indep.c indep.h matrix.c + textlist.c: s/"gc.h"/<gc.h>/ + +2003-04-08 ABE Yuji <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03849] fix no INET6 + * ftp.c: no need ifdef INET6 + +2003-04-08 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03846] fix use_history + * main.c (main): move loadHistory + +2003-04-08 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03844] w3mhelp.cgi update + * scripts/w3mhelp-funcdesc.en.pl.in: add %menu_funcdesc + * scripts/w3mhelp-funcdesc.ja.pl.in: add %menu_funcdesc + update %title + * scripts/w3mhelp-funcname.pl.in: add %menu_funcname + add %menu_keyfunc + * scripts/w3mhelp.cgi.in: modified for menu + link to keymap + +2003-04-07 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03843] cleanup macros + * config.h.dist config.h.in etc.c file.c fm.h ftp.c linein.c + main.c rc.c: + delete EMACS_LIKE_LINEEDIT, VI_PREC_NUM, LABEL_TOPLINE, + NEXTPAGE_TOPLINE, FTPPASS_HOSTNAMEGEN + use_mark default FALSE + emacs_like_lineedit default FALSE + vi_prec_num default FALSE + add UseHistory, use_history + * NEWS: rc: use_history + +2003-04-05 ABE Yuji <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03838] W3M_LIBS splitted from LIBS + * Makefile.in (W3M_LIBS): added + * acinclude.m4 (AC_W3M_TERMLIB): use W3M_LIB + (AC_W3M_SSL): ditto + * configure.in (W3M_LIBS): added + +2003-04-04 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03837] Re: gif animation with no delay_time + * w3mimg/fb/fb_gdkpixbuf.c (get_animation_size): add delay + check delay_time + (get_image_size): no need delay time + (fb_image_load): check delay + (draw): no bg + * w3mimg/fb/fb_w3mimg.c (w3mfb_show_image): delete delay skip loop + * w3mimg/x11/x11_w3mimg.c (get_animation_size): add delay + check delay_time + (x11_load_image): check delay + (x11_get_image_size): no need delay time + +2003-03-28 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + + * doc(-jp)/keymap.default: ';' is quoted + +2003-03-28 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + + * Makefile.in: distclean removes core + +2003-03-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03836] CFLAGS for SSL in configure + * acinclude.m4 (AC_W3M_SSL): add -I$dir/include to CFLAGS + +2003-03-28 ABE Yuji <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03834] Re: gif animation with no delay_time + * w3mimg/x11/x11_w3mimg.c (x11_load_image): fix delay check + +2003-03-27 ABE Yuji <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03833] gif animation with no delay_time + * w3mimg/fb/fb_w3mimg.c (w3mfb_show_image): skip delay<=0 + * w3mimg/x11/x11_w3mimg.c (x11_image): add delay + (x11_img_new): initialize delay + (x11_load_image): initialize delay + (x11_show_image): jump to last image if delay<=0 + +2003-03-27 WATANABE Katsuyuki <knabe@sannet.ne.jp> + + * [w3m-dev 03831] fix typo + * acinclude.m4 (AC_W3M_LANG): SYSTEM_CODE + * configure.in: fix typo CYGIN + +2003-03-27 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03830] Image size of gif animation + * w3mimg/fb/fb_gdkpixbuf.c (get_animation_size): added + (get_image_size): use get_animation_size() + (fb_image_load): ditto + * w3mimg/x11/x11_w3mimg.c (get_animation_size): added + (x11_load_image): use get_animation_size() + (x11_get_image_size): ditto + +2003-03-25 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03829] w3mimgdisplay -anim + * w3mimgdisplay.c (maxAnim): added, default 100 + (main): add --anim option, w_op->max_anim + * w3mimg/w3mimg.h (w3mimg_op): add max_anim + * w3mimg/fb/fb_gdkpixbuf.c (fb_image_load): add max_anim + * w3mimg/fb/fb_img.h (fb_image_load): add max_anim args + * w3mimg/fb/fb_imlib2.c (fb_image_load): add max_anim args + * w3mimg/fb/fb_w3mimg.c (w3mfb_load_image): pass max_anim + * w3mimg/x11/x11_w3mimg.c (x11_load_image): max_anim + +2003-03-24 Daiki Ueno <ueno@unixuser.org> + + * [w3m-dev 03828] possible typo in nextA + * main.c (nextA): fix typo? + +2003-03-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03827] Re: checking for GC_version... no + * configure.in: add dl for extlibs + +2003-03-20 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03825] re-anchor for fold line + * anchor.c (reAnchorPos): fix for fold line + +2003-03-20 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 00910] Re: autoconf: env MAKE not respected + * Makefile.in (SET_MAKE): added + (SHELL): added + +2003-03-19 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 00908] Re: autoconf: --without-migemo is a nop + * acinclude.m4 (AC_W3M_MIGEMO): dont define USE_MIGEMO + when with_migemo=no + +2003-03-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03823] Re: etc.c: treatment for "%7E" is added to expandName() + * url.c (parseURL2): file unquote + * etc.c (expandName): revert previous changes + +2003-03-14 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03822] Re: etc.c: treatment for "%7E" is added to expandName() + * etc.c (expandName): rewrite with strncasecmp + +2003-03-14 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03821] fix for pmake + * Makefile.in: use $(srcdir)/... instead of $< + +2003-03-13 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + + * etc.c: treatment for "%7E" is added to expandName() + +2003-03-13 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03819] support cd build && ../configure + * Makefile.in: add VPATH + add MV + use $(top_srcdir), $<, $@ + * acinclude.m4 (AC_W3M_VERSION): use $srcdir + * configure.in (AC_W3M_VERSION): move + * mktable.c (main): basename + +2003-03-13 Fumitoshi UKAI <ukai@debian.or.jp> + + * Makefile.in (distclean): added + +2003-03-13 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03818] fix autoconf + * Makefile.in (CGIBIN_DIR): added + (AUXBIN_DIR): added + (HELP_DIR): added + (RC_DIR): added + (MAKE_ARGS): added + (TARGET): use $(package) + (MAN1_TARGET): ditto + (install): use $(*_DIR) + * acinclude.m4 (AC_W3M_TERMLIB): added + (AC_W3M_GC): default search prefix /usr /usr/local $HOME + fix searches + (AC_W3M_SSL): fix bugs + * config.h (RC_DIR): remove tailing / + (SYS_MAILCAP): use ETC_DIR + (SYS_MIMETYPES): ditto + (USER_MIMETYPES): homedir + * configure.in: quote + (AC_W3M_TERMLIB): use + * Bonus/oldconfigure.sh: rewrite + +2003-03-12 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03816] --enable-lynx => --enable-keymap=lynx + * acinclude.m4 (AC_W3M_KEYMAP): --enable-lynx => --enable-keymap=lynx + * Bonus/oldconfigure.sh: ditto + +2003-03-12 Yuji Abe <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03814] fix autoconf + * acinclude.m4: quote variables + * Bonus/oldconfigure.sh: configure using old config.param + +2003-03-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03812] fix autoconf + * acinclude.m4 (AC_W3M_IMAGE): default is autodetect x11,fb + +2003-03-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03810] fix autoconf + * acinclude.m4 (AC_W3M_EXTLIBS): use $dir + (AC_W3M_GC): PREFIX is optional + (AC_W3M_SSL): PREFIX is optional + with_ssl=yes, check usual dirs + use $dir + (AC_W3M_IPv6): use $dir + +2003-03-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03809] fix autoconf + * acinclude.m4 (AC_W3M_CHECK_VER): accept version like "1.9.13-2" + +2003-03-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03808] fix autoconf + * acinclude.m4 (AC_W3M_GC): --with-gc takes PREFIX + check include first + (AC_W3M_CHECK_VER): show checking message + (AC_W3M_IMAGE): if gdkpixbuf found, don't check imlib* + +2003-03-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * Makefile.in (MODEL): delete @W3M_TARGET@ + * configure.in: AC_SUBST(W3M_TARGET) + +2003-03-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * which: deleted + * makeallmomdel: deleted + +2003-03-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03804] fix autoconf + * acinclude.m4 (AC_W3M_MENU): default enabled + (AC_W3M_MOUSE): default enabled + (AC_W3M_COOKIE): default enabled + (AC_W3M_LANG): can't detect locale here. + autoconf set LANG=C + (AC_W3M_DIGEST_AUTH): default enabled + (AC_W3M_SSL): default enabled + * configure.in (AC_W3M_DIGEST_AUTH): added + +2003-03-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03804] fix autoconf + * config.h.in (EAMCS_LIKE_LINEEDIT): define + (VI_PREC_NUM): define + (USE_MARK): define + (LABEL_TOPLINE): define + (NEXTPAGE_TOPLINE): define + (FTPPASS_HOSTNAMEGEN): define + (SHOW_PARAMS): define + (VIEW_UNSEENOBJECTS): define + (ID_EXT): define + +2003-03-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03804] fix autoconf + * acinclude.m4 (AC_W3M_MODEL): deleted + (AC_W3M_COLOR): default enable + (AC_W3M_ANSI_COLOR): default enable + (AC_W3M_BG_COLOR): default enable + (AC_W3M_SHOW_PARAMS): deleted + (AC_W3M_DICT): default enable + (AC_W3M_HISTORY): default enable + (AC_W3M_VIEW_UNSEENOBJECTS): deleted + (AC_W3M_FORMAT_NICE): deleted + (AC_W3M_ID_EXT): deleted + (AC_W3M_FTPPASS_HOSTNAMEGEN): deleted + (AC_W3M_NNTP): default enabled + (AC_W3M_LANG): autodetect whether japanese is enabled + (AC_W3M_KANJI_SYMBOLS): default enabled + (AC_W3M_EMACS_LIKE_LINEEDIT): deleted + (AC_W3M_VI_PREC_NUM): deleted + (AC_W3M_MARK): deleted + (AC_W3M_LABEL_TOPLINE): deleted + (AC_W3M_NEXTPAGE_TOPLINE): deleted + (AC_W3M_SSL): fix without ssl + (AC_W3M_IMAGE): default enabled + (AC_W3M_XFACE): check uncompface + (AC_W3M_IPv6): enable_ipv6 if inet6 lib found + * configure.in (AC_PROG_CPP): added + +2003-03-11 Yuji Abe <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03803] fix autoconf + * acinclude.m4 (AC_W3M_MIGEMO): add missing test + needs quote + (AC_W3M_SSL): delete x + +2003-03-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03802] fix autoconf + * acinclude.m4 (AC_W3M_CHECK_VER): warn only + +2003-03-11 Yuji Abe <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03801] fix autoconf + * acinclude.m4 (AC_W3M_BG_COLOR): fix typo + (AC_W3M_KANJI_SYMBOLS): check enable_japanese != 'no' + (AC_W3M_KEYMAP): needs {} + (AC_W3M_EXTLIBS): don't modify libdir, use extlibdir + (AC_W3M_SSL): missing x + (AC_W3M_IMAGE): add AC_DEFINE(USE_IMAGE) + * config.h.in: s/USE_KANJI_SYMBOLS/KANJI_SYMBOLS/ + add SIZEOF_LONG_LONG + don't use //, use /* */ + * configure.in: add AC_CHECK_SIZEOF(long long, 0) + +2003-03-10 Fumitoshi UKAI <ukai@debian.or.jp> + + * autoconfiscate + * Makefile.in: added + * acinclude.m4: added + * aclocal.m4: added (generated from acinclude.m4 by aclocal) + * configure.in: added + * config.h.in: added + * config.guess: added + * config.sub: added + * .cvsignore: add Makefile config.cache config.log config.status + * configure: generated by autoconf + * gc/: deleted + * XMakefile: deleted + * XXMakefile: deleted + * NEWS: autoconficate + +2003-03-10 Fumitoshi UKAI <ukai@debian.or.jp> + + * version.c.in: cvs version + +2003-03-07 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.4.1 + * version.c.in: update + * doc/README: version 0.4.1, release date + * doc-jp/README: ditto + * NEWS: update + +2003-03-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03794] displayBuffer() when CurrentTab == NULL. + * display.c (displayBuffer): check buf + * linein.c (inputLineHistSearch): check CurrentTab + (next_dcompl): check CurrentTab + (_editor): check CurrentTab + * main.c (resize_screen): check CurrentTab + +2003-03-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03793] incremental search fix + * main.c (dispincsrch): revert sbuf.pos fix + start from next position in next forward search + (srch): start from next position in forward saerch + if not found, restore original position + (srch_nxtprv): start from next position in next forward search + * search.c (forwardSearch): search from current position + +2003-03-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03792] URL match string + incremental search fix + * main.c (chkURLBuffer): allow - at end of URL string + (dispincsrch): start from current position in case of + incremental search + * search.c (forwardSearch): found if same position + (backwardSearch): ditto + +2003-03-03 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03788] UFhalfclose + * file.c (UFhalfclose): closeNews() for SCM_NEWS,NNTP + +2003-02-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03783] pipe to "command1 | command2" + * Bonus/utf8.cgi: added + +2003-02-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03784] ftp directory support + * ftp.c (AbortLoading): added + (KeyAbort): added + (openFTPStream): remove '~' in realpathname? + (loadFTPDir): remove '~' in realpathname? + keyabort + new ex_ftpdir_name_size_date() + add symlink information to flist + (XD_CTOD): deleted + (EX_COUNT_DIGIT): added + (ex_ftpdir_name_size_date): add **link + accept device file + loose date check for localized server + +2003-02-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03783] pipe to "command1 | command2" + * etc.c (myExtCommand): redirect to subshell + * main.c (pipeBuf): conv_to_system(cmd) + shell_quote() + set buf->filename, buf->buffername + +2003-02-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03782] real linenumber for EDIT and EDIT_SCREEN + * main.c (cur_real_linenumber): added + (editBf): use cur_real_linenumber instead of CUR_LINENUMBER + (editScr): ditto + +2003-02-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03781] Debian Bug report logs - #181897: w3m submits query urls with "extra" + * main.c (_followForm): remove tailling '?' + +2003-02-25 Hironori SAKAMOTO <h-saka@lsi.nec.co.jp> + + * [w3m-dev-en 00891] Re: w3m 0.4 has been released! + * image.c (getCharSize): set W3M_TTY here, before Imgdisplay invoke + (openImgdisplay): no need setting W3M_TTY here + +2003-02-25 Fumitoshi UKAI <ukai@debian.or.jp> + + * version.c.in: cvs version + +2003-02-24 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.4 + * version.c.in: update + * doc/README: version 0.4, release date + * doc-jp/README: ditto + * NEWS: update + +2003-02-24 patakuti@t3.rim.or.jp + + * [w3m-dev 03772] Compilation error on Cygwin B20.1 + * terms.c (term_title): use Sprintf() instead of snprintf() + * doc-jp/README.cygwin doc/README.cygwin: add note about B20.1 + +2003-02-21 WATANABE Katsuyuki <knabe@sannet.ne.jp> + + * [w3m-dev 03765] Re: README.cygwin + * doc/README.cygwin: translated + +2003-02-21 Fumitoshi UKAI <ukai@debian.or.jp> + + * doc/README: update + +2003-02-21 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + + * [w3m-dev 03762] Re: README.cygwin + * doc/README.cygwin: translated + +2003-02-21 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03761] eliminate compiler warnings + * ftp.c (ftp_login): Str tmp + * table.c (feed_table_tag): p is used ifdef ID_EXT + +2003-02-21 WATANABE Katsuyuki <knabe@sannet.ne.jp> + + * [w3m-dev 03760] Re: README.cygwin + * doc-jp/README: update + +2003-02-19 Fumitoshi UKAI <ukai@debian.or.jp> + + * 0.4 release candidate 3 + * version.c.in: update + +2003-02-19 Atsushi YOKOYAMA <yoko-a@cmh.fuchu.toshiba.co.jp> + + * [w3m-dev 03758] Re: SVR4 signal behavior + * etc.c (reset_signals): use mySignal() + (setup_child): ditto + (myExec): ditto + (mySignal): added, use sigaction if available + * fm.h (TRAP_ON): use mySignal + (TRAP_OFF): ditto + * istream.c (ISclose): ditto + * main.c (sig_chld): ditto + (main): ditto + (do_dump): ditto + (resize_hook): ditto + (resize_handler): ditto + (srchcore): ditto + (readsh): ditto + (SigAlarm): ditto + * proto.h (mySignal): added + * terms.c (error_dump): use mySignal() + (set_int): ditto + (mouse_init): ditto + +2003-02-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03753] Fixed multipart.cgi + * scripts/multipart/multipart.cgi.in: remove w3m-control + use input hidden + add form_encode + +2003-02-18 WATANABE Katsuyuki <knabe@sannet.ne.jp> + + * [w3m-dev 03749] README.cygwin + * doc-jp/README.cygwin: added + * doc/README: updated + +2003-02-17 Fumitoshi UKAI <ukai@debian.or.jp> + + * 0.4 release candidate 2 + * version.c.in: update + +2003-02-13 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03742] Re: Bug##180814: w3m: Missing w3mimgdisplay message at startup + * image.c (getCharSize): stderr redirect to omit /bin/sh error message + +2003-02-13 Fumitoshi UKAI <ukai@debian.or.jp> + + * XMakefile (install-core): fix for broken non-POSIX /bin/sh + +2003-02-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev-en 00868] fix mark_all_pages + * anchor.c (reAnchorAny): next_line process for MarkAllPages + +2003-02-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev-en 00867] fix installation problem + * XMakefile (install-core): test AUXBIN_TARGETS + +2003-02-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * version.c.in: cvs version + +2003-02-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * 0.4 release candidate 1 + * version.c.in: update + +2003-02-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03737] local-CGI POST + * local.c (localcgi_post): use tmp file + +2003-02-08 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03736] dirlist sort + * scripts/dirlist.cgi.in (right_dir): use cmp for filename comparison + +2003-02-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03735] Re: make error of checkType arg + * etc.c (checkType): delete USE_ANSI_COLOR + * file.c (addnewline): macro for USE_ANSI_COLOR + (readHeader): rewrite of USE_ANSI_COLOR + (HTMLlineproc2body): ditto + (addnewline2): ditto + (addnewline): ditto + (loadBuffer): ditto + (getNextPage): ditto + * proto.h (checkType): macro for USE_ANSI_COLOR + +2003-02-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03733] Re: display decoded URL + * display.c (make_lastline_link): buf->document_code + +2003-02-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03732] Re: scroll() is slow ? + * configure (use_raw_scroll): added + (config.h) use_raw_scroll + * config.h.dist (USE_RAW_SCROLL): added + * display.c (displayBuffer): ifdef USE_RAW_SCROLL + * proto.h (scroll): ifdef USE_RAW_SCROLL + (rscroll): ditto + (need_clrtoeol): if 0 + (terms.c): if 0 need_clrtoeol + (scroll_raw): ifdef USE_RAW_SCROLL + +2003-02-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: rc: decode_url + +2003-02-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03730] display decoded URL + * anchor.c (link_list_panel): support DecodeURL + * display.c (make_lastline_link): support DecodeURL + * etc.c (url_unquote_conv): added + * fm.h (DecodeURL): added + * history.c (historyBuffer): support DecodeURL + * indep.c (QUOTE_MAP): added + (HTML_QUOTE_MAP): added + (html_quote_char): deleted + (url_quote): use is_url_quote + (file_quote): use is_file_quote + (is_url_safe): deleted + (Str_form_quote): use is_url_unsafe + (Str_url_unquote): add safe args + (is_shell_safe): delete + (shell_quote): use is_shell_unsafe + * indep.h (QUOTE_MAP): added + (HTML_QUOTE_MAP): added + (HTML_QUOTE_MASK): added + (SHELL_UNSAFE_MASK): added + (URL_QUOTE_MASK): added + (FILE_QUOTE_MASK): added + (URL_UNSAFE_MASK): added + (GET_QUOTE_TYPE): added + (is_html_quote): added + (is_shell_unsafe): added + (is_url_quote): added + (is_file_quote): added + (is_url_unsafe): added + (html_quote_char): added + (html_quote_char): deleted + (Str_url_unquote): added safe + (form_unquote): Str_url_unquote changes + * linein.c (_prev): support DecodeURL + (_next): ditto + * main.c (goURL0): support DecodeURL + (_peekURL): ditto + (curURL): ditto + * map.c (follow_map_panel): support DecodeURL + (append_map_info): ditto + (append_link_info): ditto + (append_frame_info): ditto + (page_info_panel): ditto + * menu.c (initSelectMenu): delete SCM_LOCAL_CGI + support DecodeURL + (initSelTabMenu): delete SCM_LOCAL_CGI + support DecodeURL + (link_menu): support DecodeURL + * parsetagx.c (parse_tag): is_html_quote + * proto.h (url_unquote_conv): added + * rc.c (CMT_DECODE_URL): added + (params1): add decode_url + * url.c (openURL): Str_url_unquote non safe + +2003-02-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03729] buf fix of reAnchorNewsheader() + * anchor.c (reAnchorAny): check l->bpos + (reAnchorNewsheader): check l->bpos + strlen(*q) + lineBuf[l->size] + +2003-02-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03728] IPv6 hostname + * url.c (parseURL): rewrite IPv6 address parser + +2003-02-04 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03724] Re: view source, edit source + * buffer.c (reshapeBuffer): initialize buf->width first + * display.c (displayBuffer): no need to check buf>sourcefile + +2003-02-01 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03721] PATH_INFO support of local CGI + * local.c (CGIFN_DROOT): deleted + (CGIFN_LIBDIR): added + (CGIFN_MODE): deleted + (CGIFN_CONTAIN_SLASH): deleted + (check_local_cgi): rewrite + (cgi_filename): rewrite + (localcgi_post): support PATH_INFO + * url.c (openURL): rewrite + * Bonus/smb.cgi: use PATH_INFO + +2003-02-01 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03720] mark remains + * main.c (srchcore): PREC_NUM + +2003-01-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03719] Re: Too slow when loading big file with fold_line=1 + * file.c (addnewline): check i <l->len + +2003-01-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03718] Too slow when loading big file with fold_line=1 + * etc.c (nextColumn): added + (calcPosition): use New_N + rewrite with nextColumn + (columnLen): added + * file.c (addnewline): rewrite with columnLen + * proto.h (columnLen): added + +2003-01-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03717] print newline before exec shell command. + * main.c (execsh): print newline + +2003-01-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03715] initial currentLine when pager mode. + * file.c (getNextPage): fix cur + +2003-01-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03714] -cols 1 -dump -o fold_line=1 + * file.c (addnewline): check i == 0, i == l->len + * fm.h (_INIT_BUFFER_WIDTH): added + (INIT_BUFFER_WIDTH): use _INIT_BUFFER_WIDTH + +2003-01-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03713] search with "$" + * search.c (forwardSearch): check l->next && l->next->bpos + (backwardSearch): check l->size, l->next && l->next->bpos + +2003-01-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03712] buf fix of LINE_INFO + * main.c (curlno): rewrite + +2003-01-30 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03709] Re: view source, edit source + * display.c (displayBuffer): INIT_BUFFER_WIDTH + * file.c (_saveBuffer): added + (saveBuffer): use _saveBuffer + (saveBufferBody): added + * main.c (vmSrc): saveBufferBody + * proto.h (saveBufferBody): added + +2003-01-30 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev-en 00852] Re: Enhancement: content type detection of files + * url.c (DefaultGuess): remove upppercases + (guessContentTypeFromTable): rewrite, strcasecmp + +2003-01-30 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03708] Re: Don't stop loading image when moving to next page. + * config.h.dist (lstat): define ifndef HAVE_LSTAT + * configure (config.h) ditto + * display.c (fmTerm): new loadImage + (save_current_buf): only ifdef USE_BUFINFO + (displayBuffer): new loadImage + * etc.c (setup_child): TrapSignal + * file.c (loadGeneralFile): TRAP_OFF, TRAP_ON + (loadHTMLstream): ditto + (loadGopherDir): ditto + (loadBuffer): ditto + (loadImageBuffer): ditto + (getNextPage): ditto + (save2tmp): ditto + * fm.h (TrapSignal): added + (TRAP_ON): added + (TRAP_OFF): added + * form.c (HAVE_LSTAT): deleted + * frame.c (createFrameFile): TRAP_OFF, TRAP_ON + * image.c (image_buffer): added + (deleteImage): new loadImage + (getAllImage): initialize image_buffer + (loadImage): rewrite + * main.c (main): new loadImage + (checkDownloadList): remove ifdef HAVE_LSTAT + * news.c (loadNwesgroup): TRAP_ON, TRAP_OFF + * proto.h (loadImage): add buf arg + * url.c (openSocket): TRAP_ON, TRAP_OFF + (check_no_proxy): TRAP_ON, TRAP_OFF + +2003-01-29 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03707] Don't stop loading image when moving to next page. + * display.c (save_current_buf): required when defined USE_IMAGE + (displayBuffer): stop only buffer changed + * image.c (loadImage): IMG_FLAG_START load from maxLoadImage + +2003-01-29 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03706] X-Image-URL: support, bug fix of reshapeBuffer() + * buffer.c (reshapeBuffer): rewrite + * file.c (readHeader): rewrite + +2003-01-29 NAKAJIMA Mikio <minakaji@osaka.email.ne.jp> + + * [w3m-dev 03705] goodict.cgi (was: Re: google.cgi (was: Re: keymap key SEARCH string)) + * Bonus/goodict.cgi: added + +2003-01-29 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03700] Re: google.cgi (was: Re: keymap key SEARCH string) + * main.c (goURL0): check relative or *url == '#' + +2003-01-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03689] Re: fold patch + * fm.h (BufferPos): add bpos + * main.c (save_buffer_position): bpos initialize + (resetPos): reset bpos + +2003-01-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03686] Re: fold patch + * buffer.c (writeBufferCache): rewrite + (readBufferCache): rewrite + * etc.c (calcPosition): short -> int realColumn + * fm.h (Line): short -> int len,width,size,bpos,bwidth + (BufferPoint): short->int pos + (Buffer): short->int currentColumn,pos,visualpos + (BufferPos): short->int currentColumn,pos + * frame.h (frameset_queue): short->int pos,currentColumn + * main.c (clear_mark): short->int pos + (dispincsrch): short->int pos + (backBf): short->int pos + (set_buffer_environ): short->int prev_pos + +2003-01-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03684] Re: fold patch + * file.c (PSIZE): added + (HTMLlineproc2body): outc,outp is created by NewAtom_N + use PSIZE + +2003-01-25 Fumitoshi UKAI <ukai@debian.or.jp> + + * file.c (getNextPage): no need volatile for code + +2003-01-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03683] interrupt in getNextPage() + * file.c (getNextPage): trap SIGINT + +2003-01-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03682] open null file on tab + * display.c (displayBuffer): if empty, clear() + +2003-01-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03681] Re: fold patch + * buffer.c (reshapeBuffer): buf->pos, sbuf.currentLine fix + FoldLine + * display.c (arrangeCursor): buf->pos fix + (restorePosition): buf->pos fix + +2003-01-24 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: func: RESHAPE + rc: fold_line + +2003-01-24 Fumitoshi UKAI <ukai@debian.or.jp> + + * fix compiler warnings + * display.c (displayBuffer): fix suggest parentheses around && within || +2003-01-24 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03667] fold patch + * anchor.c (reAnchorPos): rewrite + (reAnchorWord): delete reseq_anchor() + (reAnchorAny): use l->size + delete reseq_anchor() + * backend.c (internal_get): pass TRUE to saveBuffer + * buffer.c (newBuffer): delete n->linelen + (reshapeBuffer): rewrite + * display.c (displayBuffer): FoldLine + (redrawLine): l->bpos + (cursorUp0): added + (cursorUp): rewrite + (cursorDown0): added + (cursowDown): rewrite + (cursorRight): check l->next + l->bwidth + (cursorLeft): l->prev && l->bpos + l->bwidth + (arrangeCursor): buf->currentLine->bwidth + buf->cursorX + * etc.c (checkType): **oporp + rewrite + (calcPosition): realColumn allocated by New_reuse + * file.c (addnewline): add nlines arg + (propBuffer): deleted + (colorBuffer): deleted + (readHeader): propBuffer + FOLD_BUFFER_WIDTH + (HTMLlineproc2body): rewrite + (addnewline2): added + (addnewline): rewrite + (loadBuffer): propBuffer, colorBuffer + (saveBuffer): cont arg + (getNextPage): rewrite + * fm.h (LINELEN): 256 + (FNLEN): deleted + (Line): add size, bpos, bwidth + (Buffer): delete linelen + (INIT_BUFFER_WIDTH): check showLineNum + (FOLD_BUFFER_WIDTH): added + (FoldLine): added + * funcname.tab (RESHAPE): added + * main.c (do_dump): pass FALSE to saveBuffer + (nscroll): rewrite + (clear_mark): l->size + (shiftvisualpos): rewrite + (pipeBuf): pass TRUE to saveBuffer + (linebeg): check line->prev && line->bpos + (linend): check line->next, line->next->bpos + (editScr): pass TRUE to saveBuffer + (svBuf): pass TRUE to saveBuffer + (vmSrc): pass TRUE to saveBuffer + (reshape): added + (curlno): rewrite + * mimehead.c (LINELEN): deleted + * proto.h (reshape): added + (saveBuffer): add cont arg + (cursorUp0): added + (cursorDown0): added + (checkType): change type oprop, ocolor, delete check_color, len + * rc.c (CMT_FOLD_LINE): added + (params1): add fold_line + (sync_with_option): check PagerMax + * search.c (set_mark): l->size + (forwardSearch): rewrite + (backwardSearch): rewrite + * doc/README.func (RESHAPE): added + * doc-jp/README.func (RESHAPE): added + * scripts/w3mhelp.cgi.in (Buffer operation): add reshape + +2003-01-24 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * etc.c (next_status): after = is R_ST_VALUE + R_ST_VALUE > => R_ST_NORMAL + R_ST_VALUE SP => R_ST_TAG + (read_token): R_ST_VALUE + (correct_irrtag): R_ST_VALUE + * rm.h (R_ST_VALUE): added + (ST_IS_REAL_TAG): rewrite + (ST_IS_COMMENT): deleted + (ST_IS_TAG): deleted + * parsetagx.c (parse_tag): skip too long tagname + skip too long attrname + if attrvalue has quote char, need reconstruct + if unknown attr, need reconstruct + * table.c (visible_length): R_ST_VALUE + +2003-01-24 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03680] showProgress() on fast system + * file.c (showProgress): check line len, time + +2003-01-24 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03679] Re: cleanup for pipe + * etc.c (open_pipe_rw): check stdin, stdout + * file.c (uncompress_stream): rewrite + +2003-01-23 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03678] Re: config.param is clear when configure -help + * configure: don't override config.param + +2003-01-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03677] view source, edit source + * buffer.c (discardBuffer): unlink header source + * file.c (loadFile): delete skip header + * fm.h (BP_SOURCE): deleted + (SkipHeader): deleted + * main (editBf): cleanup + (vmSrc): cleanup + +2003-01-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03676] cleanup for pipe + * etc.c (open_pipe_rw): added + * file.c (uncompress_stream): rewrite using open_pipe_rw + * image.c (openImgdisplay): rewrite using open_pipe_rw + * local.c (localcgi_popen_rw): deleted + (localcgi_post): rewrite using open_pipe_rw + * proto.h (open_pipe_rw): added + * search.c (migemor): initialized to NULL + (migemow): initialized to NULL + (migemo_pid): initialized to 0 + (open_migemo): rewrite using open_pipe_rw + +2003-01-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03675] x-face + * file.c (xface2xpm): use getImage() + (readHeader): check same file + (loadImageBuffer): rewrite + (lessopen_stream): shell_quote() + +2003-01-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03674] -dump problem + * file.c (loadGeneralFile): return NULL when dump + * main.c (dump_source): deleted + (dump_head): deleted + (dupm_extra): deleted + (do_dump): added + (main): singal when dump + +2003-01-23 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> + + * [w3m-dev 03671] Re: config.param is clear when configure -help + * configure: test -f config.param + +2003-01-22 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03665] imlib2 support (on X11) + * configure: X11 inline image with Imlib2 + fix typo in fb/imlib2 + * w3mimg/x11/x11_w3mimg.c: USE_IMLIB2 + (x11_load_image): USE_IMLIB2 + (x11_show_image): USE_IMLIB2 + (x11_free_image): USE_IMLIB2 + (x11_get_image_size): USE_IMLIB2 + +2003-01-22 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03664] config.param is clear when configure -help + * configure: config.param created after arg parsing + +2003-01-21 Fumitoshi UKAI <ukai@debian.or.jp> + + * map.c (follow_map_menu): if USE_IMAGE or MENU_MAP + * proto.h (follow_map_menu): ditto + +2003-01-21 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03660] Re: fputs -> Strfputs + * Str.h (Strncmp_charp): paren + (Strncasecmp_charp): ditto + (Strinsert): ditto + (Strshrinkfirst): ditto + * display.c (disp_err_message): added + * file.c (loadGeneralFile): don't put function in macro arg + (saveBuffer): ditto + * frame.c (createFrameFile): ditto + * proto.h (disp_err_message): macro->function + * table.c (pushdata): if data is NULL, use "" + (suspend_or_pushdata): if line is NULL, use "" + * textlist.h (pushText): don't use (s) twice in a macro + +2003-01-21 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03659] Can't download from SSL. + * istream.c (ISfileno): case IST_SSL + +2003-01-21 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03658] Re: Other user can see local cookie. + * fm.h (rc_dir): init(NULL) + * rc.c (config_file): deleted + (init_rc): use rc_dir + +2003-01-21 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03657] fputs -> Strfputs + * form.c (form_fputs_decode): use Strfputs() + +2003-01-19 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03655] Re: file.c:image_source when undef USE_IMAGE + * map.c (follow_map_menu): fix warnings + +2003-01-19 WATANABE Katsuyuki <knabe@sannet.ne.jp> + + * [w3m-dev 03654] file.c:image_source when undef USE_IMAGE + * file.c (readHeader): image_source ifdef USE_IMAGE + (loadGeneralFile): ditto + (uncompress_stream): ditto + +2003-01-19 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03653] SourceForge.net: 576032 w3m https crashes with OpenSSL-0.9.7 + * istream.c (ssl_check_cert_ident): use sk_GENERAL_NAME_free() + +2003-01-18 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03652] Re: Debian bug #176981 + * file.c (checkHeader): always remove_space + (loadGeneralFile): no need remove_space + +2003-01-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03651] Debian bug #176981 + * file.c (checkRedirection): added + (loadGeneralFile): check redirection + t_buf only is created when it is NULL + remove_space + +2003-01-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03647] expandName() and expandPath() + * etc.c (openSecretFile): use expandPath + (expandName): rewrite + (file_to_url): use expandPath + * file.c (_doFileCopy): use expandPath + (doFileSave): use expandPath + * indep.c (expandPath): rewrite + * linein.c (inputLineHistSearch): use expandPath + (next_dcompl): use expandPath + (doComplete): use expandPath + * local.c (set_cgi_environ): rewrite + * mailcap.c (loadMailcap): use expandPath + * main.c (svBuf): use expandPath + (addDownloadList): use expandPath + * rc.c (init_rc): use expandPath + (rcFile): rewrite + (auxbinFile): use expandPath + (libFile): use expandPath + (etcFile): use expandPath + (helpFile): use expandPath + * url.c (loadMimeTypes): use expandPath + (loadURIMethods): use expandPath + +2003-01-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03646] setup child process, local CGI + * etc.c (reset_signals): static + don't ignore SIGUSR1 + (close_all_fds_except): static + DEV_NULL_PATH + (setup_child): added + (myExec): rewrite + (mySystem): rewrite + * file.c (readHeader): check image_source + (loadGeneralFile): check image_source + (doExternal): use setup_child + (_doFileCopy): use setup_child + (doFileSave): use setup_child + (uncompress_stream): check image_source + use setup_child + * image.c (getCharSize): no need stderr redirect + (openImgdisplay): use setup_child + (loadImage): use setup_child + (getImageSize): no need stderr redirect + * local.c (writeLocalCookie): check Local_cookie_file + (localcgi_popen_rw): added + (localcgi_popen_r): deleted + (localcgi_post): rewrite + (localcgi_get): deleted + * proto.h (localcgi_get): defined by localcgi_post + (reset_signals): deleted + (close_all_fds_except): deleted + (close_all_fds): deleted + (setup_child): added + * search.c (open_migemo): use setup_child, myExec + * w3mimgdisplay.c (main): use DEV_NULL_PATH + +2003-01-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03644] Re: Other user can see local cookie. + * cookie.c (save_cookies): return if no_rc_dir + * etc.c (tmpf_base): add cookie + (tmpfname): use tmp_dir instead of rc_dir + * file.c (loadGeneralFile): cookie is not passed via URL + * fm.h (TMPF_COOKIE): incl + (MAX_TMPF_TYPE): incl + (no_rc_dir): added + (tmp_dir): added + (config_file): added + * local.c (Local_cookie_file): added + (writeLocalCookie): added + (setLocalCookie): dont set environment LOCAL_COOKIE + (localcgi_post): writeLocalCookie + (localcgi_get): writeLocalCookie + * main.c (config_filename): deleted + (cmd_loadURL): arg FormList + (main): rewrite config_file, rc + (ldhelp): no cookie in URL + (cmd_loadURL): arg FormList + (goURL0): cmd_loadURL change + (cmd_loadBuffer): cmd_loadURL change + (adBmark): cookie is posted + (follow_map): cmd_loadURL change + (linkMn): cmd_loadURL change + (reinit): init_rc change + * proto.h (create_option_search_table): deleted + (init_rc): no args + * rc.c (create_option_search_table): static + (init_rc): no args + rewrite + (optionpanel_src1): rewrite + (load_option_panel): html_quote + (panel_set_option): no_rc_dir + * w3mbookmark.c: rewrite + * w3mhelperpanel.c: rewrite + * scripts/dirlist.cgi.in: rewrite + * scripts/w3mhelp.cgi.in: rewrite + * scripts/w3mmail.cgi.in: rewrite + * scripts/multipart/multipart.cgi.in: rewrite + +2003-01-16 Fumitoshi UKAI <ukai@debian.or.jp> + + * file.c (loadGopherDir): convertLine RAW_MODE + * ftp.c (loadFTPDir): ditto + +2003-01-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03642] Re: cleanup (don't close connection of news server) + * local.c (localcgi_post): localcgi_popen_r first + +2003-01-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03641] Re: cleanup (don't close connection of news server) + * ftp.c (ftp_command): fix fwrite arg + * news.c (news_command): fix fwrite arg + +2003-01-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03640] Re: cleanup (don't close connection of news server) + * anchor.c (_put_ahchor_news): always conv_str + (_put_anchor_all): always conv_str + * etc.c (close_all_fds): deleted + (close_all_fds_except): added, except fd=f is left open + * file.c (guess_filename): added + (UFhalfclose): added + (convertLine): cleanup_line if not raw mode + check uf + (readHeader): always convertLine + (loadGeneralFile): rewrite + (loadGopherDir): return Str, args change to ParsedURL and code + rewrite + (saveBuffer): always conv_str + (_doFileCopy): close_all_fds + (doFileSave): close_all_fds_except + (uncompress_stream): dup, close_all_fds_except + * form.c (form_fputs_decode): always conv_str + (input_textarea): convertLine + * frame.c (createFrameFile): convertLine + * ftp.c (loadFTPDir): arg code + rewrite + (readFTPDir): convertLine + * html.h (UFfileno): added + * image.c (loadImage): close_all_fds + * indep.h (RAW_MODE): added + * local.c (loadLocalDir): return Str + (dirBuffer): rewrite + (localcgi_popen_r): close_all_fds + * main.c (main): check SCM_LOCAL + print err_msg + * news.c (news_command): args cmd and arg + (news_quit): news_command + (openNewsStream): news_command + (readNewsgroup): deleted + (loadNewsgroup): added + (closeNews): added + * proto.h (loadGopherDir): update + (conv_str): define for no JP_CHARSET + (readFTPDir): deleted + (loadFTPDir): added + (readNewsgroup): deleted + (loadNewsgroup): added + (dirBuffer): deleted + (loadLocalDir): added + (close_all_fds): defined by close_all_fds_except + (close_all_fds_except): added + +2003-01-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03639] Re: smb.cgi + * Bonus/2ch.cgi: change password handling + * Bonus/README: update + * Bonus/README.eng: ditto + +2003-01-12 qhwt@myrealbox.com + + * [w3m-dev 03636] segfault in main.c + * main.c (main): check newbuf->currentURL.file + +2003-01-12 Fumitoshi UKAI <ukai@debian.or.jp> + + * Bonus/README.eng: sync with Bonus/README + +2003-01-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03635] 2ch.cgi + * Bonus/2ch.cgi: added + * Bonus/README: update + +2003-01-12 Fumitoshi UKAI <ukai@debian.or.jp> + + * Bonus/README.eng: sync with Bonus/README + +2003-01-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03634] smb.cgi + * Bonus/smb.cgi: added + * Bonus/README: update + +2003-01-12 Fumitoshi UKAI <ukai@debian.or.jp> + + * ftp.c (ftp_pasv): ftp_command response + (readFTPDir): masked declaration of realpathname + +2003-01-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03633] Re: cleanup (don't close connection of news server) + * file.c (FTPhalfclose): deleted + (loadGeneralFile): closeFTP when doFileSave is done + (_doFileCopy): return int + (doFileMove): return int + (doFileSave): return int + * ftp.c: rewrite + * main.c (w3m_exit): disconnectFTP + * proto.h (_doFileCopy): return int + (doFileMove): return int + (doFileSave): return int + (openFTP): deleted + (openFTPStream): return InputStream + (closeFTP): no arg + (Ftpfclose): disconnectFTP + * url.c (openFTPstream): deleted + +2003-01-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * fix compiler warnings + * html.h (UFclose): value computed but not used + +2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03632] cleanup (don't close connection of news server) + * file.c (loadSomething): remove UFclose nntp:,news: + (loadFile): UFclose + (loadGeneralFile): always UFclose + * html.h (UFclose): only reset when ISclose ==0 + * istream.c (ISclose): return int + (ISfileno): flag IST_UNCLOSE + * istream.h (ISclose): return int + (IST_UNCLOSE): added + * news.c (news_close): reset IST_UNCLOSE + (news_open): set IST_UNCLOSE + +2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03631] display current form item + * form.c (form2str): rewrite + * istream.c (ssl_get_certificate): fix typo + * map.c (follow_map_panel): valign=top + (append_map_info): valign=top + (append_link_info): valign=top + (append_frame_info): <pre_int> + html_quote ssl_certificate + (page_info_panel): rewrite, html_quote + +2003-01-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * doc/README.pre_form: update + * doc-jp/README.pre_form: ditto + +2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03630] improved pre_form + * form.c (pre_form): add re_url, name + (add_pre_form): add name + rewrite + (loadPreForm): add "form" + (preFormUpdateBuffer): handle re_url + +2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03629] delete tmp file + * etc.c (tempfname): always file to delete + * file.c (xface2xpm): no need fileToDelete + (readHeader): ditto + (loadGeneralFile): ditto + (loadHTMLBuffer): ditto + (loadHTMLString): ditto + (loadGopherDir): ditto + (loadImageBuffer): ditto + (doExternal): rewrite + (doFileSave): no need fileToDelete + (uncompress_stream): ditto + * fm.h (CurrentPid): added + * image.c (getImage): cache->touch to delete + * local.c (setLocalCookie): use CurrentPid + (localcgi_post): fileToDelete + * main.c (main): CurrentPid + (pipeBuf): no need fileToDelete + (query_from_followform): CurrentPid + (vmSrc): no need fileToDelete + +2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03628] Re: Error occured while reset + * file.c (doExternal): bufp = NULL, return 1 + (uncompress_stream): tempfname fileToDelete + +2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03626] Re: relative URL + * url.c (parseURL2): copy if scheme is local or local-cgi + +2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03625] keymap key SEARCH string + * main.c (srch): accept command argument + (reMark): accept command argument + * Bonus/google.cgi: added + +2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03622] Re: Error occured while reset + * file.c (uncompress_stream): child process initialized + * terms.c (close_tty): close unless stdin,out,err + (reset_tty): flush_tty, close_tty + (write1): flush_tty + (refresh): flush_tty + (flush_tty): check ttyf + +2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03620] -m option and header + * buffer.c (reshapeBuffer): fix reading from stdin + fix -m option + * display.c (redrawNLine): rewrite + (redrawLine): return l instead of l->next + (redrawLineImage): ditto + * file.c (loadFile): read header even if skip header + (loadGeneralFile): read header even if skip header + * fm.h (SkipHeader): added + * main.c (main): check whether reading from stdin + SkipHeader + +2003-01-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03619] Re: Error occured while reset + * file.c (process_img): check image.ext + (HTMLlineproc2body): check image.ext + (loadImageBuffer): url, ext is in URLFile + * frame.c (unloadFrame): no need to push to fileToDelete + (copyFrame): no need to reset FB_TODELETE + (resetFrameElement): f_body->source, buf->sourcefile + (frame_download_source): buf->source + buf->sourcefile reset + * frame.h (FB_NOCACHE): deleted + (FB_TODELETE): deleted + * main.c (vmSrc): Currentbuf->sourcefile + need_reshape if images exist + +2003-01-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03617] sourcefile when Content-Encoding: is specified. + * file.c (uncompress_stream): add src arg + (examineFile): change uncompress_stream + (loadGeneralFile): change uncompress_stream + (doExternal): src + (uncompress_stream): ext + tmpfile with same ext + +2003-01-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03616] Re: data: URL scheme + * file.c (loadGeneralFile): check SCM_DATA + (loadImageBuffer): newBuffer() + * html.h (SCM_DATA): added + * indep.c (url_unquote): deleted + (Str_url_unquote): renamed from Str_form_unquote + + is decoded is_form only + * indep.h (url_unquote): deleted + (Str_url_unquote): added + (Str_form_unquote): define by Str_url_unquote + * main.c (followA): file_unquote + (cmd_loadURL): file_unquote + * url.c (DefaultPort): add for data: + (schemetable): add "data" + (DefaultFile): SCM_FTPDIR + (parseURL): scheme copied from current + (parseURL2): SCM_DATA + check SCM_FTP, SCM_FTPDIR + (_parsedURL2Str): add data in scheme_str + handle SCM_DATA + SCM_FTPDIR + (openURL): file_unquote + handle SCM_DATA + +2003-01-08 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03611] relative URL + * news.c (openNewsStream): don't skip '/' for nntp: + (readNewsgroup): cleanup + * url.c (parseURL): don't copy user & password + (parseURL2): fix for group, don't copy user & password + +2003-01-07 Fumitoshi UKAI <ukai@debian.or.jp> + + * fix build warnings + * url.c (parseURL2): fix comparison between pointer and integer + * news.c (readNewsgroup): variable `scheme',`group',`list' might be clobbered by `longjmp' or `vfork' + +2003-01-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03610] Re: news:<newsgroup> + * anchor.c (_put_anchor_news): check '<' + (reAnchorNewsheader): added + * file.c (loadSomething): Subject: as buffername + (checkHeader): check buf->document_header + (loadGeneralFile): reAnchorNewsheader + * html.h (SCM_NNTP_GROUP): added + * main.c (main): delete USE_NNTP in switch (newbuf->real_scheme) + (chkNMIDBuffer): lowercase in url_like_pat + * news.c (add_news_message): add scheme, group as arg + (openNewsStream): check SCM_NNTP_GROUP + check current_news.host + (readNewsgroup): rewrite to support nntp:,news: extension + * proto.h (reAnchorNewsheader): added + * url.c (DefaultPort): add 119 for nntp group + (parseURL2): rewrite to support nntp:,news: extension + (_parsedURL2Str): add for SCM_NNTP_GROUP + (openURL): rewrite to support nntp:,news: extension + +2002-12-28 Fumitoshi UKAI <ukai@debian.or.jp> + + * fix build errors + * display.c (make_lastline_message): fix error for undef JP_CHARSET + * news.c (readNewsgroup: `code' always required + + * gcc -Wall -Werror clean + * file.c (loadHTMLstream): unused variable `p' + * news.c (news_command): unused variable `c' + (news_open): unused variable `tmp' + (readNewsgroup): volatile page, qgroup, flag, start, end + uninitialized variable `page' + * url.c (openURL): unused variable `fw', `r', `stream' + +2002-12-28 Fumitoshi UKAI <ukai@debian.or.jp> + + * rc: nntpserver, nntpmode, max_news + +2002-12-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03608] news:<newsgroup> + * XMakefile (LSRCS): add news.c + (LOBJS): add news.o + * file.c (loadSOmething): don't UFclose() for nntp/news + (readHeader): remove . at beginning of line for news + img link to file: + (loadGeneralFile): add SCM_NEWS_GROUP + don't UFclose() for nntp/news + (loadHTMLstream): . line check for news + (loadBuffer): . line check for news + * fm.h (NNTP_server): added + (NNTP_mode): added + (MaxNewsMessage): added + * html.h (SCM_NEWS_GROUP): added + * main.c (main): NNTP_server or NNTPSERVER + NNTP_mode or NNTPMODE + add SCM_NEWS_GROUP + (followA): remove news:..@.. check + (cmd_loadURL): remove news:...@.. check + (w3m_exit): disconnectNews + * proto.h (openNewsStream): added + (readNewsgroup): added + (disconnectNews): added + * rc.c (CMT_NNTP_SERVER): added + (CMT_NNTP_MODE): added + (CMT_MAX_NEWS): added + (params9): add nntpserver, nntpmode, max_news + * url.c (DefaultPort): add 119 for news group + (parseURL2): news:..@... is SCM_NEWS_GROUP + (_parsedURL2Str): add news for SCM_NEWS_GROUP + (openURL): cleanup SCM_NEWS + add SCM_NEWS_GROUP + * news.c: added + +2002-12-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03607] mymktime: time zone support + * etc.c (get_zone): added + (mymktime): parse timezone + +2002-12-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03606] Re: clean up displayBuffer() + * main.c (followA): B_FORCE_REDRAW + (follow_map): ditto + +2002-12-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03604] http response code and content-type + * file.c (loadGeneralFile): don't guessContentType if http errors + +2002-12-26 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03602] Re: w3mimgdisplay core dump + * w3mimgdisplay.c (DrawImage): check load_image, imageBuf[n].pixmap + * w3mimg/fb/fb_w3mimg.c (w3mfb_show_image): check img->pixmap + * w3mimg/x11/x11_w3mimg.c (x11_show_image): check img->pixmap + +2002-12-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03601] Re: meta refresh + * main.c (LastEvent): added + (pushEvent): add to LastEvent + +2002-12-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03600] Re: meta refresh + * main.c (main): move add_download_list + +2002-12-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03598] restore cursor when download list panel is updated. + * main.c (stopDownload): delete->replace + (ldDL): use DownloadListBuffer() + +2002-12-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03597] Re: meta refresh + * main.c (Event): next, linked list + (N_EVENT_QUEUE): deleted + (eventQueue): deleted + (n_event_queue): deleted + (CurrentEvent): added + (main): event processing, add CurrentEvent linked list + (pushEvent): add Event to CurrentEvent + (SigAlarm): Currentbuf->event + * proto.h (pushEvent): rename args + +2002-12-25 Hiroaki Shimotsu <shim@d5.bs1.fc.nec.co.jp> + + * [w3m-dev 03596] LIST + * anchor.c (link_list_panel): check internal + +2002-12-25 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03595] tolower, toupper + * Str.c (Strlower): TOLOWER + (Strupper): TOUPPER + * backend.c: delete ctype.h + * etc.c (gethtmlcmd): TOLOWER + * file.c (readHeader): TOLOWER + (checkOverWrite): TOLOWER + (guess_charset): TOLOWER + * ftp.c: delete ctype.h + * indep.c (strcasecmp): TOLOWER + (strncasecmp): TOLOWER + (strcasematch): TOLOWER + * istream.c: include myctype.h + (ssl_get_certificate): TOLOWER + * mailcap.c (mailcapMatch): TOLOWER + * main.c (_quitfm): TOLOWER + * menu.c (accesskey_menu): TOLOWER + * mimehead.c: include myctype.h + (decodeWord): TOUPPER + * mktable.c: delete ctype.h, include myctype.h + (main): IS_SPACE + * myctype.h: delete ctype.h + (TOLOWER): added + (TOUPPER): added + * parsetagx.c (parse_tag): TOLOWER + * rc.c (str_to_bool): TOLOWER + (str_to_color): TOLOWER + * regex.c: delete ctype.h, include myctype.h + (TOLOWER): added + (TOUPPER): added + (regmatch1): TOLOWER + (matchWhich): TOLOWER, TOUPPER + +2002-12-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * mimehead.c (decodeWord): don't use toupper() (requires ctype.h) + +2002-12-22 ABE Yuji <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03594] mime decode with encoding named 'b' & 'q' + * mimehead.c (decodeWord): toupeer(method) + +2002-12-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * file.c (discardline): not used + +2002-12-22 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03593] Re: segmentation fault when <title> exist after <img> + * file.c (cur_title): added + (save_obuf): deleted + (process_title): added + (process_n_title): added + (feed_title): added + (HTMLtagproc1): rewrite HTML_TITLE, HTML_N_TITLE, + HTML_TITLE_ALT, HTML_N_HEAD, HTML_HEAD + (HTMLlineproc0): check RB_TITLE + (completeHTMLstream): add RB_TITLE + (loadHTMLstream): initialize cur_title + +2002-12-21 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03590] segmentation fault when <title> exist after <img> + * file.c (save_line): deleted + (save_prevchar): deleted + (save_obuf): added + (HTMLtagproc1): bcopy save_obuf + +2002-12-20 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03588] include time.h in ftp.c + * ftp.c: include <time.h> + +2002-12-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03583] w3mman + * scripts/w3mman/README: W3MMAN_W3M, W3MMAN_MAN + * scripts/w3mman/w3mman.1.in: add ENVIRONMENT + * scripts/w3mman/w3mman.in: $ENV{'W3MMAN_W3M'}, $ENV{'W3MMAN_MAN'} + * scripts/w3mman/w3mman2html.cgi.in: $ENV{'W3MMAN_MAN'} + hyphenation + +2002-12-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03582] add config options graphic_char and use_proxy + * NEWS: rc: graphic_char, use_proxy + * fm.h (Do_no_use_proxy): macro using use_proxy + (use_proxy): added + (no_graphic_char): deleted + (UseGraphicChar): added + * main.c (main): UseGraphicChar, use_proxy + * rc.c (CMT_GRAPHIC_CHAR): added + (CMT_USE_PROXY): added + (params1): graphic_char + (params4): use_proxy + * terms.c (graph_ok): UseGraphicChar + +2002-12-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03581] MARK_URL, MARK_WORD + * main.c (chkWORD): accept ()[]{}&|;*?$ as anchor + +2002-12-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03580] Re: clean up displayBuffer() + * main.c (main): force redraw + +2002-12-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03579] Re: clean up displayBuffer() + * display.c (displayBuffer): re calcTabPos() when force or image redraw + * main.c (_mark): force redraw + (reinit): redraw image + * search.c (backwardSearch): found_last + +2002-12-19 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03584] Re: meta refresh + * main.c (DefaultAlarm): fix initialize value + +2002-12-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03578] meta refresh + * file.c (getMetaRefreshParam): do nothing if refresh_interval < 0 + (HTMLtagproc1): rewrite refresh + (HTMLlineproc2body): add HTML_META + * fm.h (BP_RELOAD): deleted + (Buffer): add event + (AL_IMPLICIT_DONE): deleted + (AL_ONCE): deleted + (AL_RESTORE): deleted + (AlarmEvent): added + * main.c (AlarmEvent): deleted + (PrevAlarm): deleted + (DefaultAlarm): added + (CurrentAlarm): point to DefaultAlarm + (main): CurrentKeyData, CurrentCmdData + handle Currentbuf->event + (SigAlarm): CurrentAlarm is pointer + (copyAlarmEvent): deleted + (setAlarm): setAlarmEvent pass &DefaultAlarm + (setAlarmEvent): arg event + (ldDL): no BP_RELOAD + * proto.h (setAlarmEvent): arg event + +2002-12-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03577] incorrect table width + * table.c (dv2sv): fix move direction + (set_integered_width): ditto + (check_table_height): ditto + (feed_table_tag): ditto + +2002-12-17 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03576] Re: news support + * anchor.c (_put_anchor_news): convert to document code and quote + (_put_anchor_all): convert to document code + * main.c (chkNMIDBuffer): change url_like_pat + +2002-12-15 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: rc: preserve_timestamp + +2002-12-15 Takahashi Youichirou <nikuq@hk.airnet.ne.jp> + + * [w3m-dev 03574] Re: preserve timestamp + * ftp.c (getFtpModtime): don't call localtime,gettime in same expr + +2002-12-15 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03573] Re: Bug#172851: w3m: In form, takes hostname as baseref for relative URI action + * url.c (parseURL): if empty is URL, base URL is used + +2002-12-15 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03571] base=0 -> 10 in toNumber() + * parsetagx.c (toNumber): strtol base=10 + +2002-12-15 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03570] meta tag in frame + * frame.c (createFrameFile): fix meta equiv parse in frame + +2002-12-15 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03569] Re: preserve timestamp + * file.c (loadGeneralFile): PresetveTimestamp + (_doFileCopy): is_pipe, PreserveTimestamp + (doFileSave): PreserveTImestamp + * fm.h (PreserveTimestamp): added + * rc.c (CMT_PRESERVE_TIMESTAMP): added + (params3): add preserve_timestamp + +2002-12-15 Takahashi Youichirou <nikuq@hk.airnet.ne.jp> + + * [w3m-dev 03568] Re: preserve timestamp + * etc.c (USE_COOKIE): moved + * file.c (utime.h): include + (setModtime): added + (loadGeneralFile): set f.modtime + (_doFileCopy): setModtime() + (doFileSave): setModtime() + * ftp.c (getFtpModtime): added + (openFTP): pass URLFile, set modtime + * html.h (URLFile): add modtime + * proto.h (openFTP): arg URLFile *uf + (mymktime): always + * url.c (init_stream): initialize modtime + (openFTPStream): pass URLFile + (openURL): openFTPStream + +2002-12-13 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03567] default keybinding + * doc-jp/keymap.default (C-q,C-t,(,),+,-,D,L,T,m,r,{,|,}, + M-c,M-k,M-l,M-m,M-o,M-t): assign + * doc/keymap.default: ditto + * keybind.c: ditto + * doc-jp/keymap.lynx (C-q,C-t,C-u,(,),,,.,;,D,L,T,W,[,], + m,r,w,{,|,},M-<,M->,M-W,M-c,M-g, + M-k,M-l,M-m,M-n,M-o,M-p,M-t,M-w): assign + * doc/keymap.lynx: ditto + * keybind_lynx.c: ditto + * doc-jp/menu.default (Main): Select,SelectTab,TAB_LINK + * doc/menu.default: ditto + +2002-12-13 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03566] configure prefix + * configure: add X prefix for expr args + +2002-12-13 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03564] clean up displayBuffer() + * display.c (delayed_msg): static + (drawAnchorCursor): static + (redrawBuffer): define + (redrawNLine): static + (redrawLine): static + (redrawLineRegion): static + (do_effects): static + (do_color): static + (make_lastline_link): added + (make_lastline_message): added + (displayBuffer): rewrite with make_lastline_message() + (drawAnchorCursor0): added + (drawAnchorCursor): added + * main.c (main): remove onA() + (keyPressEventProc): remove onA() + (disp_srchresult): static + disp_message TRUE + (isrch): remove onA() + (srch): displayBuffer + remove onA() + (srch_nxtprv): remove onA() + (pipeBuf): disp_message TRUE + (pipesh): disp_message TRUE + (readsh): disp_message TRUE + (_mark): dispBuffer + (_followForm): break, always dispBuffer + (drawAnchorCursor0): deleted + (drawAnchorCursor): deleted + (onA): deleted + (anchorMn): delete onA() + (svBuf): displayBuffer B_NORMAL + (reload): disp_err_message TRUE + displayBuffer + (rFrame): displayBuffer + (invoke_browser): displayBuffer + (extbrz): disp_err_message TRUE + (process_mouse): onA -> displayBuffer + (movMs): delete onA() + (menuMs): onA -> displayBuffer + (closeTMs): disp_message TRUE + (wrapToggle): disp_message TRUE + (execdict): disp_message TRUE + (SigAlarm): displayBuffer, delete onA + (reinit): displayBuffer + * map.c (getCurrentMapLabel): deleted + (retrieveCurrentMapArea): added + * proto.h (redrawBuffer): deleted + (redrawNLine): deleted + (redrawLine): deleted + (redrawLineRegion): deleted + (do_effects): deleted + (do_color): deleted + (message_list): deleted + (getCurrentMapLabel): deleted + (retrieveCurrentMapArea): added + +2002-12-13 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03563] Directory Traversal Vulnerabilities in FTP Clients + * file.c (guess_save_name): pass guess_filename + +2002-12-13 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03562] #undef BUFINFO + * config.h.dist (BUFINFO): undef + * configure (use_bufinfo): n + * main.c (saveBufferInfo): ifdef USE_BUFINFO + * proto.h (reloadBuffer): if 0 + (saveBufferInfo): ifdef USE_BUFINFO + +2002-12-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03559] Re: use select instead of signal for loading images + * fm.h (Buffer): add image_loaded + * image.c (W3M_SIGIMG): deleted + (image_lock): deleted + (need_load_image): deleted + (load_image_handler): deleted + (load_image_next): deleted + (getAllImage): check image_loaded + (loadImage): delete image_lock + delete IMG_FLAG_NEXT + * main.c (main): check image_loaded + * proto.h (sleep_till_anykey): return int + * terms.c (sleep_till_anykey): return int + +2002-12-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03558] long title is displayed over tab region + * display.c (redrawNLine): check l < 0 + use addnstr + +2002-12-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03554] Re: Undo/Redo + * doc/README.func (REDO): added + (UNDO): added + * doc-jp/README.func (REDO): added + (UNDO): added + * scripts/w3mhelp.cgi.in: (Page/Cursor motion): add undoPos, redoPos + +2002-12-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: func: REDO, UNDO + +2002-12-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03553] Undo/Redo + * fm.h (Buffer): add undo + (BufferPos): added + * funcname.tab (REDO): added + (UNDO): added + * main.c (save_buffer_position): added + (main): save_buffer_position + (resetPos): added + (undoPos): added + (redoPos): added + * proto.h (undoPos): added + (redoPos): added + +2002-12-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03552] Re: link list + * menu.c (accesskey_menu): check hseq + (list_menu): check hseq + +2002-12-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03551] Re: External URI loader + * file.c (loadGeneralFile): fix SCM_UNKNONWN + +2002-12-10 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: func: LIST, LIST_MENU, MOVE_LIST_MENU + +2002-12-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03549] link list + * anchor.c (addMultirowsImg): add a->slave + (getAnchorText): arg AnchorList *al + (link_list_panel): added + * funcname.tab (LIST): added + (LIST_MENU): added + (MOVE_LIST_MENU): added + * main.c (anchorMn): added + (accessKey): use anchorMn() + (listMn): added + (movlistMn): added + (linkLst): added + * map.c (searchMapList): not static + * menu.c (accesskey_menu): pass AnchorList to getAnchorText() + (lmKeys): added + (lmKeys2): added + (nlmKeys): added + (nlmKeys2): added + (lmGoto): added + (lmSelect): added + (list_menu): added + * proto.h (linkLst): added + (listMn): added + (movlistMn): added + (list_menu): added + (searchMapList): added + (getAnchorText): arg AnchorList *al + (link_list_panel): added + * doc/README.func (LIST): added + (LIST_MENU): added + (MOVE_LIST_MENU): added + * doc-jp/README.func (LINK_MENU): fix message + (LIST): added + (LIST_MENU): added + (MOVE_LIST_MENU): added + * scripts/w3mhelp.cgi.in (Page/Cursor motion): add movlistMn + (Hyperlink operation): add linkLst linkMn + +2002-12-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03548] close anchor before <img align=...> + * file.c (process_img): use div_int + (process_hr): use div_int + (process_idattr): don't close_anchor + (CLOSE_A): added + (HTMLtagproc1): </p> close anchor + <dl>,<ul>,<ol>,<blockquote>,<li>,<dt>,<dd> close anchor + <noframes> close anchor + <pre> close anchor + <center> close anchor + <div> close anchor + add DIV_INT + <form> close anchor + * html.c (TagMAP): add div_int + * html.h (HTML_DIV_INT): added + (HTML_N_DIV_INT): added + * tagtable.tab (div_int): added + (/div_int): added + +2002-12-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03544] Can't display "1&2" in table + * file.c (HTMLlineproc0): continue -> R_ST_NORMAL + +2002-12-10 Fumitoshi UKAI <ukai@debian.or.jp> + + * file.c (loadGeneralFile): missing `{', fix indent for SCM_UNKNOWN + * main.c (set_buffer_environ): unused variables `prev_col' + +2002-12-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03543] External URI loader (Debian closes: Bug#169962) + * file.c (loadGeneralFile): rewrite SCM_UNKNOWN + +2002-12-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03542] news support + * file.c (loadGeneralFile): NNTP as well as NEWS + * indep.c (url_unquote_char): check % hex hex + (url_unquote): unquote except \0, \n, \r + +2002-12-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03541] Re: W3M_LINE_NO / W3M_CURRENT_COLUMN + * main.c (goLine): check searchKeyData() + (set_buffer_environ): W3M_CURRENT_* + +2002-12-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03536] <del>, <s> + * file.c (HTMLtagproc1): <s>..</s> is [S:...:S] + (HTMLtagproc0): <del> will delete <table> + * fm.h (RB_S): added + * html.c (TagMAP): <s>,</s> + move <internal>, </internal> + * html.h (HTML_S): added + (HTML_N_S): added + (HTML_INTERNAL): renumed + (HTML_N_INTERNAL): ditto + (MAX_HTMLTAG): add 2 + * rc.c (CMT_DISP_INS_DEL): update + * table.c (feed_table_tag): add HTML_S, HTML_N_S + * table.h (TBLM_S): added + (TBLM_ANCHOR): renum + * tagtable.tab: (strike, s): HTML_S + (/strike, /s): HTML_N_S + +2002-12-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03535] close anchor, quote < + * file.c (HTMLtagproc1): close_anchor + * frame.c (createFrameFile): quote < + +2002-12-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03534] cleanup file.c + * file.c (HTMLlineproc2body): cleanup + +2002-12-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * version.c.in: w3m/0.3.2.2+cvs + * NEWS: 0.3.2.2 + +2002-12-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * security fix + * file.c (process_img): html_quote() + +2002-12-06 Takahashi Youichirou <nikuq@hk.airnet.ne.jp> + + * [w3m-dev 03530] save history + * history.c (saveHistory): save tmpfile and rename + +2002-12-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: func: ACCESSKEY, LINK_MENU + +2002-12-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03529] Support of title, accesskey of anchor + * anchor.c (putAnchor): arg title, key + initialize slave + (registerHref): arg title, key + (registerName): title = NULL, key = '\0' + (registerForm): title = NULL, key = '\0' + (_put_anchor_news): title = NULL, key = '\0' + (_put_anchor_all): title = NULL, key = '\0' + (addMultirowsImg): register title, accesskey + (addMultirowsForm): title = NULL, key = '\0' + (getAnchorText): added + * display.c (displayBuffer): show title if any + * file.c (set_breakpoint): use bcopy + (back_to_breakpoint): use bcopy + (flushline): s/anchor/anchor.url/ + s/anchor_hseq/anchor.hseq/ + s/anchor_target/anchor.target/ + add anchor.* + (close_effect0): s/anchor/anchor.url/ + s/anchor_hseq/anchor.hseq/ + (close_anchor): use bzero + (process_img): ATTR_TITLE, + (HTMLtagproc1): s/anchor/anchor.url/ + target, referer, title, accesskey, hseq + (HTMLlineproc2body): ATTR_TITLE, ATTR_ACCESSKEY + (init_henv): use bzero + * fm.h (Anchor): add title, accesskey, slave + (Breakpoint): use Anchor + (struct readbuffer): use Anchor + * funcname.tab (ACCESSKEY): added + (LINK_MENU): added + * html.c (ALST_A): add ATTR_TITLE, ATTR_ACCESSKEY + (ALST_IMG): add ATTR_TITLE + (ALST_IMG_ALT): add ATTR_TITLE + (AttrMAP): add accesskey, renum + * html.h (ATTR_ACCESSKEY): added + (ATTR_*): renum 50->60 + * main.c (linkMn): added + (accessKey): added + * menu.c (LinkMenu): deleted + (LinkV): deleted + (initLinkMenu): deleted + (lmGoURL): deleted + (popupMenu): delete initLinkMenu() + (initMenu): delete Link + (link_menu): added + (accesskey_menu): added + * proto.h (linkMn): added + (link_menu): added + (accessKey): added + (accesskey_menu): added + (putAnchor): arg title, key + (registerHref): arg title, key + (registerImg): arg title + (getAnchorText): added + * doc/README.func (ACCESSKEY): added + (LINK_MENU): added + * doc-jp/README.func (ACCESSKEY): added + (LINK_MENU): added + * scripts/w3mhelp.cgi.in (Hyperlink operation): add linkMn accessKey + +2002-12-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03528] area without alt + * map.c (getCurrentMapLabel): when a->alt is empty + +2002-12-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03527] fix frame.c + * frame.c (createFrameFile): move need_reconstruct + +2002-12-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03526] Re: fix doc*/README.func, w3mhelp.cgi.in + * scripts/w3mhelp.cgi.in: (load_keymap): + always upcase ESC,SPC,TAB,DEL,UP,DOWN,RIGHT,LEFT + +2002-12-05 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03525] Re: sync option + * func.c (initKeymap): delete check force, keymap_initialized + +2002-12-05 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03524] fix doc*/README.func, w3mhelp.cgi.in + * doc/README.func (REINIT): added + * doc-jp/README.func (REINIT): added + * scripts/w3mhelp.cgi.in (Page/Cursor motion): + add moveR1 movL1 movD1 movU1 ldown1 lup1 + (File/Stream operation): add pipeBuf + (Miscellany): add dispVer execCmd reinit + (load_keymap): rewrite + (norm_key): rewrite + +2002-12-05 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: rc: display_ins_del + +2002-12-05 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03523] Re: del/ins + * file.c (HTMLtagproc1): check displayInsDel, RB_DEL + * fm.h (RB_DEL): added + (displayInsDel): added + * rc.c (CMT_DISP_INS_DEL): added + (display_ins_del): added + * table.c (feed_table_tag): check displayInsDel, TBLM_DEL + * table.h (TBLM_DEL): added + (TBLM_ANCHOR): renum + (struct table_mode): unsigned int pre_mode + +2002-12-05 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03522] newline around <pre>..</pre> + * file.c (HTMLtagproc1): break before <pre>/after </pre> if necessary + +2002-12-05 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03521] sync option + * display.c (redrawNLine): calcTabPos() + * func.c (initKeymap): return if keymap_initialized + * main.c (calcTabPos): no more static + (main): move sync_with_option, initCookie, setLocalCookie + move backend + move initKeymap, initMouseAction, initMenu + remove calcTabPos + add displayBuffer + (numTab): static + (deleteTab): delete calcTabPos + (moveTab): delete calcTabPos + * proto.h (calcTabPos): added + +2002-12-05 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev-en 00841] Re: w3m segfaults if the terminal is not writable + * terms.c (reset_tty): don't close stderr + +2002-12-04 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03516] Re: 2 stroke keybinding + * func.c (keymap_initialized): initialized to FALSE + (setKeymap): push KeyData + +2002-12-04 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: 2 stroke keybinding + func: MULTIMAP + +2002-12-04 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03515] 2 stroke keybinding + * func.c (setKeymap): add map + K_MULTI support + (getKey2): added + (getKey): rewrite to use getKey2() + * func.h (K_MULTI): added + (MULTI_KEY): added + * funcname.tab (MULTIMAP): added + * main.c (escKeyProc): added + (escmap): rewrite to use escKeyProc() + (escbmap): rewrite to use escKeyProc() + (escdmap): rewrite to use escKeyProc() + (multimap): added + * proto.h (multimap): added + +2002-12-04 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03514] Effect of tab title + * display.c (redrawNLine): rewrite, do without clrtoeolx() + +2002-12-04 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03512] Re: HTML parser + * table.c (feed_table_tag): HTML_N_SELECT, HTML_N_CAPTION + +2002-12-04 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03510] waiting time when cookie was rejected. + * file.c (readHeader): display cookie warnings for only 1 sec + +2002-12-04 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03509] HTML parser + * file.c (close_textarea): delete + (HTMLtagproc1): rewrite + delete HTML_EOL + move HTML_LISTING, HTML_N_LISTING + add HTML_PRE_PLAIN, HTML_N_PRE_PLAIN + add HTML_PLAINTEXT + end_tag + (HTMLlineproc0): s/str/line/ + rewrite + (completeHTMLstream): </textarea> if necessary + * fm.h (struct readbuffer): delete ignore_tag + add end_tag + (RB_XMPMODE): deleted + (RB_LSTMODE): deleted + (RB_SCRIPT): added + (RB_STYLE): added + (RB_*): renumber + (R_ST_EOL): added + (R_ST_*): renumber + (ST_IS_TAG): check R_ST_EOL + * form.c (form_fputs_decode): remove <eol> handling + * frame.c (newFrame): remove_space() + (CASE_TABLE_TAG): added + (createFrameFile): rewrite + * html.c (TagMAP): delete eol + add pre_plain, /pre_plain + * html.h (HTML_EOL): deleted + (HTML_PRE_PLAIN): added + (HTML_N_PRE_PLAIN): added + * table.c (visible_length): rewrite + (visible_length_plain): added + (maximum_visible_length_plain): added + (do_refill): R_ST_EOL + (table_close_select): end_tag + (table_close_textarea): end_tag + (TAG_ACTION_PLAIN): added + (feed_table_tag): rewrite + (feed_table): rewrite + * table.h (TBLM_*) reassign + (struct table_mode): delete ignore_tag + add end_tag + * tagtable.tab (eol): deleted + (pre_plain): added + (/pre_plain): added + +2002-12-03 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03505] Re: coredump when ssl error + * file.c (loadGeneralFile): term_raw(), SIGINT before retry + +2002-12-03 AIDA Shinra <aida-s@jcom.home.ne.jp> + + * [w3m-dev 03504] coredump when ssl error + * file.c (loadGeneralFile): term_raw, SIGINT + +2002-12-03 Fumitoshi UKAI <ukai@debian.or.jp> + + * remove ununsed variables + * file.c (addLink): unused variable `t' + * menu.c (lmGoURL): unused variable `pu' + +2002-12-03 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03501] link tag support + * buffer.c (reshapeBuffer): initialize formlist, linklist, + maplist, hmarklist, imarklist + * file.c (addLink): added + (HTMLlineproc2body): add HTML_LINK + (loadHTMLstream): use HTMLlineproc0 not in R_ST_NORMAL + (reloadBuffer): initialize linklist, maplist, + hmarklist, imarklist + * fm.h (LINK_TYPE_NONE): added + (LINK_TYPE_REL): added + (LINK_TYPE_REV): added + (LinkList): added + (Buffer): add linklist + * html.c (ALST_LINK): added + (TagMAP): add link + (AtrMAP): add rel, rev, title + * html.h (HTML_LINK): added + (ATTR_REL): added + (ATTR_REV): added + (ATTR_TITLE): added + * map.c (append_map_info): anchor + (append_link_info): added + (page_info_panel): append_link_info + * menu.c (LinkMenu): added + (linkV): added + (initLinkMenu): added + (lmGoURL): added + (popupMenu): initLinkMenu() + (initMenu): w3mMenuList new 4 + add "Link" + * tagtable.tab (link): added + +2002-11-29 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m bug] internal tag + * display.c (loadHTMLstream): HTMLlineproc0 internal + +2002-11-29 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03498] Re: parse <!-- ... --> in <script> + * file.c (HTMLlineproc0): tag in textarea + * frame.c (createFrameFile): fix comment processing in frame + +2002-11-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03497] incorrect image size + * image.c (getImageSize): invoke w3mimgdiplay -size instead of "5;..." + * w3mimgdisplay.c (defined_size): added + (main): if defined_size get_image_size() + (GetOption): -size + +2002-11-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03496] parse <!-- ... --> in <script> + * etc.c (read_token): check <pre> + * file.c (HTMLlineproc0): remove comment processing + check pre mode + comment processing move + +2002-11-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03495] local CGI can't work + * local.c: #include "hash.h" + (set_environ): env string put in hash + +2002-11-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03494] Number of line is few when pager mode. + * display.c (redrawLine): buf->rootY + +2002-11-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03493] scroll menu + * menu.c (mLineU): added + (mLineD): added + (MenuKeymap): C-r, C-s, J, K + (mouse_scroll_line): added + (process_mMouse): drag + BTN4, BTN5 + * doc-jp/README.menu: update + +2002-11-27 Fumitoshi UKAI <ukai@debian.or.jp> + + * version.c.in: w3m/0.3.2.1+cvs + +2002-11-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03491] Re: case insensitive regexp search + * regex.c (matchWhich): tolower + +2002-11-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * use local_cookie for support local-cgi commands + * file.c (loadGeneralFile): pass Local_cookie to DirBufferCommand + * fm.h (Local_cookie): Str + * local.c (setLocalCookie): Str, set_environ() + (set_cgi_environ): remove LOCAL_COOKIE + * main.c (ldhelp): pass Local_cookie + (adBmark): ditto + * rc.c (optionpanel_src1): cookie + (load_option_panel): pass Local_cookie + * w3mbookmark.c (main): check Local_cookie + * w3mhelperpanel (main): ditto + * scripts/dirlist.cgi.in: ditto + * scripts/w3mhelp.cgi.in: ditto + * scripts/multipart/multipart.cgi.in: ditto + +2002-11-27 Fumitoshi UKAI <ukai@debian.or.jp> + + * frame.c (createFrameFile): html_quote() + +2002-11-27 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03488] meta refresh in frame + * file.c (getMetaRefreshParam): added + (HTMLtagproc1): use getMetaRefreshParam() + * frame.c (createFrameFile): check meta refresh + * proto.h (getMetaRefreshProgram): added + +2002-11-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * w3m 0.3.2.1 security fix + * frame.c (createFrameFile): html_quote() + +2002-11-27 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03486] fix of displayLineInfo + * display.c (displayBuffer): don't divide by 0 + +2002-11-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03485] fix mouse menu position + * main.c (do_mouse_action): use anchor_map is no active_map + check top left corner + (FRAME_WIDTH): added + (menuMs): adjust cursorX using FRAME_WIDTH + +2002-11-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: func: CLOSE_TAB_MOUSE, MENU_MOUSE, MOVE_MOUSE, TAB_MOUSE + +2002-11-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * doc/README.mouse_menu: deleted + * doc/README.mouse: added + * doc-jp/README.mouse_menu: deleted + * doc-jp/README.mouse: added + +2002-11-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * map.c (follow_map_menu): MapArea *a is used ifdef MENU_MAP + * func.c (initMouseAction): remove unsed variables: x, width, map + +2002-11-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03478] mouse action configuration + * display.c (displayBuffer): mouse_menu -> mouse_action.menu_str + mouse_action.lastline_str + (redrawNLine): mouse_menu -> mouse_action.menu_str + * fm.h (MouseMenuMap): deleted + (MouseActionMap): added + (MouseAction): added + (mouse_action): added + * func.c (default_mouse_action): added + (setMouseAction0): added + (setMouseAction1): added + (setMouseAction2): added + (initMouseMenu): deleted + (initMouseAction): added + * funcname.tab (CLOSE_TAB_MOUSE): added + (MENU_MOUSE): added + (MOVE_MOUSE): added + (TAB_MOUSE): added + * main.c (main): initMouseMenu() -> initMouseAction() + mouse_menu -> mouse_action + (posTab): mouse_menu -> mouse_action + check y > LastTab->y + (mouse_menu_action): deleted + (do_mouse_action): added + (process_mouse): mouse_menu -> mouse_action + do_mouse_action() + (movMs): added + (menuMs): added + (tabMs): added + (closeTMs): added + (reinit): initMouseMenu() -> initMouseAction() + resource: MOUSE_MENU -> MOUSE + (calcTabPos): mouse_menu -> mouse_action + * menu.c (mainMn): mouse_menu -> mouse_action + (selMn): mouse_menu -> mouse_action + (tabMn): mouse_menu -> mouse_action + (initMenu): add SelectTag to w3mMenuList + * proto.h (movMs): added + (menuMs): added + (tabMs): added + (closeTMs): added + (initMouseMenu): deleted + (initMouseAction): added + * rc.c (sync_with_option): initMouseMenu() -> initMouseAction() + * doc/README.func (CLOSE_TAB_MOUSE): added + (MENU_MOUSE): added + (MOVE_MOUSE): added + (TAB_MOUSE): added + * doc-jp/README.func (CLOSE_TAB_MOUSE): added + (MENU_MOUSE): added + (MOVE_MOUSE): added + (TAB_MOUSE): added + +2002-11-26 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03476] Re: Bug#170506: w3m: Unable to use mozilla bugzilla + * file.c (HTMLtagproc1): initialize ignore_tag in table_mode + (HTMLtagproc0): check table_level + * table.c (feed_table_tag): set mode->ignore_tag + * table.h (struct table_mode): add ignore_tag + +2002-11-25 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03471] Re: SETPGRP() + * configure: SETPGRP() always defined + * proto.h (close_all_fds): added + (myExec): #ifdef HAVE_SETPGRP + * etc.c (close_all_fds): added + (myExec): #ifdef HAVE_SETPGRP + (mySystem): #ifndef -> #ifdef + * file.c (_doFileCopy): delete #ifdef HAVE_SETPGRP + (doFileSave): ditto + * image.c (openImgdisplay): delete #ifdef HAVE_SETPGRP + use close_all_fds() + * search.c (open_migemo): ditto + +2002-11-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03466] Re: background download when external viewer + * file.c (doExternal): UFclose(&uf); + +2002-11-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03464] Re: case insensitive regexp search + (rewrite [w3m-dev 03462] by Hiroyuki Ito <hito@crl.go.jp>) + * regex.c (matchWhich): add int + (newRegex0): igncase + (regmatch1): matchWhich with re->mode & RE_IGNCASE + (matchWhich): add igncase + +2002-11-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03459] background download when external viewer + * etc.c (myExec): added + (mySystem): rewrite to use myExec() + * file.c (doExternal): run background if BackgroundExtViewer + * proto.h (myExec): added + +2002-11-23 Fumitoshi UKAI <ukai@debian.or.jp> + + * doc/README.mouse_menu: delete column 10 limit + * doc-jp/README.mouse_menu: ditto + +2002-11-23 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03458] Re: mouse menu + * display.c (displayBuffer): nTab2 -> nTab, mouse_menu + * fm.h (nTab2): deleted + (MouseMenuMap): added + (MouseMenu): added + (LIMIT_MOUSE_MENU): added + * func.c (initMouseMenu): delete mouse_menu_map initialization + conv_from_system + mouse_menu->width + * main.c (main): mouse_menu->in_action = FALSE + (posTab): check mouse_menu + (mouse_menu_action): add y arg + mouse_menu_width check + (process_mouse): nTab2 -> nTab, mouse_menu + (nTabLine): deleted + (calcTabPos): check mouse_menu + * menu.c (mainMn): x, y + (selMn): mouse_menu check + (tabMn): mosue_menu check + * proto.h (nTabLine): deleted + +2002-11-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: options: -N + +2002-11-22 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03457] open URL of command line on each new tabs + * main.c (delBuffer): static + (fusage): -N + (main): add open_new_tab for -N + +2002-11-22 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03456] tiling of tab + * display.c (displayBuffer): use LastTab->y + (redrawNLine): fix column calculation + * fm.h (TabBuffer): add x1, x2, y + * main.c (calcTabPos): added + (main): calcTabPos() + (mouse_scroll_line): rewrite + (process_mouse): use LastTab->y + (_newT): calcTabPos() + (calcTabPos): added + (deleteTab): calcTabPos() + (moveTab): calcTabPos() + +2002-11-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * doc/README.mouse_menu: added + * doc-jp/README.mouse_menu: added + +2002-11-22 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03455] mouse menu + * configure (config.h): MOUSE_FILE + * display.c (displayBuffer): nTab -> nTab2, N_TAB -> nTabLine() + (redrawNLine): nTab -> nTab2, N_TAB -> nTabLine() + mouse_menu support + * fm.h (nTab2): added + (N_TAB): deleted + (NO_TABBUFFER): added + (struct _MouseMenu): added + (mouse_menu_map): added + (mouse_menu): added + * func.c (initMouseMenu): added + * main.c (main): initMouseMenu() + (posTab): mouse_menu support + (mouse_menu_action): added + (process_mouse): mouse_menu support + (reinit): initMouseMenu() + (nTabLine): added + (moveTab): check NO_TABBUFFER + * proto.h (nTabLine): added + (initMouseMenu): added + * rc.c (sync_with_option): initMouseMenu() + +2002-11-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: func: NEXT, PREV + +2002-11-22 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03454] next / previous buffer + * funcname.tab (NEXT): added + (PREV): added + * main.c (nextBf): added + (prevBf): added + * proto.h (nextBf): added + (prevBf): added + * doc/README.func (NEXT): added + (PREV): added + * doc-jp/README.func (NEXT): added + (PREV): added + * scripts/w3mhelp.cgi.in (Buffer operation): nextBf prevBf + +2002-11-20 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: rc: image_map_list + +2002-11-20 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03452] image map + * display.c (displayBuffer): use getCurrentMapLabel() + * fm.h (MapArea): delete ifdef MENU_MAP + (image_map_list): added + * main.c (followA): don't call retrieveCurrentImg() ifdef USE_IMAGE + use retrieveCurrentMap() ifndef USE_IMAGE + (_followForm): indent + (drawAnchorCursor0): add AnchorList + (drawAnchorCuror): pass AnchorList to drawAnchorCursor0 + (follow_map): follow_map_panel + * map.c (searchMapList): added + (nearestMapArea): n, min default value to -1 + (searchMapArea): added + (getCurrentMapLabel): added + (getMapXY): moved + (retrieveCurrentMap): added + (follow_map_menu): parsed_tagarg -> name + rewrite to search map list/area + (follow_map_panel): parsed_tagarg -> name + rewrite to search map list/area + (newMapArea): delete ifdef MENU_MAP + (append_map_info): added + (page_info_panel): append_map_info + * proto.h (follow_map_menu): parsed_tagarg -> name + (follow_map_panel): parsed_tagarg -> name + (getCurrentMapLabel): added + (retrieveCurrentMap): added + * rc.c (CMT_IMAGE_MAP_LIST): added + (image_map_list): added + +2002-11-20 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> + + * [w3m-dev 03450] Re: cygwin console on Win9X + * terms.c (mouse_init): ifdef __CYGWIN__ + (mouse_end): ditto + +2002-11-19 Fumitoshi UKAI <ukai@debian.or.jp> + + * ftp.c (ftp_fclose): void return + +2002-11-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03444] download from ftp. + * file.c (FTPhalfclose: static + (loadGeneralFile): UFclose + FTPhalfclose for SCM_FTP + UFclose before signal back + (loadImageBuffer): UFclose before signal back + (openGeneralPagerBuffer): UFclose + * ftp.c (ftp_fclose): added + (Ftpfclose): dont read response(), but ftp_fclose() + (FtpBye): ftp_fclose() + +2002-11-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03449] Add DOWNLOAD_LIST to doc*/README.func and scripts/w3mhelp.cgi.in + * doc-jp/README.func (DOWNLOAD_LIST): added + * doc/README.func (DOWNLOAD_LIST): added + * scripts/w3mhelp.cgi.in (Miscellany): add ldDL + +2002-11-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03448] Some fixes + * url.c (KeyAbort): SIGNAL_RETURN + * .cvsginore: delete w3mimgsize + * scripts/.cvsignore: delete xface2xbm + * scripts/xface2xbm.in: deleted + +2002-11-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03447] Re: Open download list panel on new tab + * main.c (download_action): buffer management deleted + (ldDL): buffer management moved here + +2002-11-19 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: rc: open_tab_dl_list + +2002-11-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03446] Open download list panel on new tab + * fm.h (open_tab_dl_list): added + * main.c (download_action): buffer delete when download done + (ldDL): open buf in new tab if open_tab_dl_list + * rc.c (CMT_OPEN_TAB_DL_LIST): added + (open_tab_dl_list): added + +2002-11-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03445] download list for "w3m foo.tar.gz" + * main.c (main): display download list + +2002-11-19 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03443] Can't display "echo only_one_line | w3m" + * display.c (redrawNLine): check 1st line + +2002-11-16 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03442] Re: setting form on loading + * form.c (preFormUpdateBuffer): ifdef MENU_SELECT + +2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03441] charset of save file + * file.c (_doFileCopy): use conv_from_system() + (doFileSave): conv_from_system() + * main.c (DownloadListBuffer): conv_from_system() + +2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03440] Re: restore alarm event + * fm.h (BP_RELOAD): added + (DOWNLOAD_LIST_TITLE): added + * main.c (main): if BP_RELOAD, do reload + (reload): if buffer is DOWNLOAD_LIST, ldDL() + (DownloadListBuffer): rewrite with DOWNLOAD_LIST_TITLE + (download_action): delete "update" + don't delete prev buffer + (ldDL): rewrite to do reload + +2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03439] restore alarm event + * fm.h (AL_RESTORE): added + * main.c (alarm_sec): deleted + (alarm_status): deleted + (alarm_buffer): deleted + (alarm_event): deleted + (AlarmEvent): added + (CurrentAlarm): added + (PrevAlarm): added + (main): rewrite with CurrentAlarm + (SigAlarm): rewrite with CurrentAlarm + (copyAlarmEvent): added + (setAlarm): if AL_RESTORE, copy back from PrevAlarm + rewrite with CurrentAlarm + +2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03438] Re: segmentation fault by large complex table. + * table.c (check_table_height): check MAXROWCELL + * table.h (MAXROWCELL): added + +2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03437] Re: Check image size + * fm.h (MAX_IMAGE_SIZE): changed to 2048 + +2002-11-16 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03436] Check image size + * file.c (process_img): check w > MAX_IMAGE_SIZE + (HTMLlineproc2body): check w,h > MAX_IMAGE_SIZE + * fm.h (MAX_IMAGE_SIZE): added + * image.c (getImageSize): check w,h,width,height > MAX_IMAGE_SIZE + +2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03435] save image with SAVE + * buffer.c (discardBuffer): check image + * file.c (loadImageBuffer): add st + IMG_FLAG_DONE_REMOVE + s/sourcefile/mailcap_source/ + * fm.h (IMG_FLAG_DONT_REMOVE): added + * image.c (drawImage): & IMG_FLAG_LOADED + (deleteImage): & IMG_FLAG_DONT_REMOVE + (showImageProgress): & IMG_FLAG_LOADED + (getImage): & IMG_FLAG_LOADED + (getImageSize): & IMG_FLAG_LOADED + * main.c (vmSrc): delete ifdef USE_IMAGE + +2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03434] Re: cygwin console on Win9X + * terms.c (cygwin_mouse_btn_swapped): ifdef USE_MOUSE + (lastConMouse): deleted + (check_win9x): static + (read_win32_console): static + (GetConsoleHwnd): static + (cygwin_version): ifdef USE_MOUSE, static + (check_cygwin_console): static + (NEED_XTERM_ON): added + (NEED_XTERM_OFF): added + (NEED_CYGWIN_ON): added + (NEED_CYGWIN_OFF): added + (XTERM_TITLE): static char[] + (SCREEN_TITLE): static char[] + (CYGWIN_TITLE): static char[] + (term_title): check title_str + * terms.h (LASTLINE): added + (is_xterm): deleted + (enable_win9x_console_input): extern + (disable_win9x_console_input): extern + (NEED_XTERM_ON): deleted + (NEED_XTERM_OFF): deleted + +2002-11-16 WATANABE Katsuyuki <katsuyuki_1.watanabe@toppan.co.jp> + + * [w3m-dev 03433] cygwin console on Win9X + * configure (config.h): SUPPORT_WIN9X_CONSOLE_MBCS + * linein.c (inputLineHistSearch): enable_win9x_console_input() + disable_win9x_console_input() + * main.c (mouse): cygin_mouse_btn_swapped + * terms.c (is_xterm): static + (isLocalConsole): added + (cygwin_mouse_btn_swapped): added + (check_win32_console): deleted + (check_win9x): added + (init_win32_console_handle): check ttyslot() + (enable_win9x_console_input): added + (disable_win9x_console_input): added + (read_win32_console_input): delete ifdef MOUSE + (cmp_tv): deleted + (subtract_tv): deleted + (GetConsoleHwnd): added + (cygwin_version): added + (select_or_poll_win32_console): deleted + (check_cygwin_console): added + (select_win32_console): deleted + (set_tty): check_cygin_console() + (term_title): SetConsoleTitle() + (CYGWIN_ON): added + (CYGIN_OFF): added + (mouse_init): NEED_CYGWIN_ON + (mouse_end): NEED_CYGWIN_OFF + * terms.h (cygwin_mouse_btn_swapped): added + (enable_win9x_console_input): added + (disable_win9x_console_input): added + (NEED_CYGWIN_ON): added + (NEED_CYGWIN_OFF): added + +2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03432] Re: tab browser + * display.c (displayBuffer): s/buf->LINES/LASTLINES/ in cygwin + +2002-11-16 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: func: DOWNLOAD_LIST + +2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03431] save file by background process + * file.c (loadGeneralFile): use _doFileCopy() + (_doFileCopy): renamed from doFileCopy() + lock + fork & save + (doFileSave): lock + fork & save + * fm.h (DownloadList): added + (FirstDL): added + (LastDL): added + * form.c (struct internal_action): add download + * funcname.tab (DOWNLOAD_LIST): added + * html.h (URLFile): add url + * main.c (dump_extra): add add_download_list + (main): add_download_list, ldDL() + (_quitfm): added + (quitfm): rewrite with _quitfm() + (qquitfm): ditto + (w3m_exit): stopDownload() + (addDownloadList): added + (checkDownloadList): added + (convert_size3): added + (DownloadListBuffer): added + (download_action): added + (stopDownload): added + (ldDL): added + * proto.h (ldDL): added + (convert_size): added + (convert_size2): added + (doFileCopy): deleted + (_doFileCopy): added + (addDownloadList): added + (stopDownload): added + (checkDownloadList): added + (download_action): added + * url.c (openURL): save url in uf + +2002-11-15 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03430] disable display of alarm command + * main.c (SigAlarm): remove display_message_nsec() + (setAlarm): show sec + +2002-11-15 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: env,rc: https_proxy + +2002-11-15 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03429] https proxy + * fm.h (HTTPS_proxy): added + (HTTPS_proxy_parsed): added + * main.c (main): check https_proxy + * rc.c (CMT_HTTPS_PROXY): added + (https_proxy): added + (parse_proxy): HTTPS_proxy + * url.c (openURL): for HTTPS, use HTTPS_proxy + (schemeToProxy): HTTPS_proxy_parsed + +2002-11-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03428] install manual as w3m.exe.1 on Cygwin + * XMakefile (MAN1_TARGET): added + (HELP_TARGET): added + (install): use MAN1_TARGET, HELP_TARGET + (uninstall): use MAN1_TARGET, uninstall HELP_TARGET + +2002-11-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03427] Re: Select the nearest map area as default. + * map.c (newMapArea): accept sign chars + if points is not enough, return as SHAPE_UNKNOWN + +2002-11-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03425] charset of title + * display.c (displayBuffer): buffername converted to system coding + for term title + +2002-11-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03424] Content length + * file.c (loadGeneralFile): current_content_length before do_download + (save2tmp): current_content_length move before return + +2002-11-12 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03422] Re: setting form on loading + * form.c (loadPreForm): initialize name + check textarea, name for /textarea + +2002-11-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03418] Re: tab browser + * display.c (redrawNLine): s/clrtoeol/clrtoeolx/ + move rootY + +2002-11-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03417] install_w3mimgdisplay + * configure: define install_w3mimgdisplay + after use_w3mimg_fb determined + +2002-11-12 Akira TAGOH <at@gclab.org> + + * [w3m-dev 03415] fix a build issue for 64bit arch + * gcmain.c: deleted + * main.c: no need gcmain.c + s/MAIN/main/ + * mktable.c: ditto + * w3mbookmark.c: ditto + * w3mhelperpanel.c: ditto + +2002-11-12 Fumitoshi UKAI <ukai@debian.or.jp> + + * doc/w3m.1: update + * doc-jp/w3m.1: update + * NEWS: update: -show-option + +2002-11-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03414] Re: show parameter + * main.c (fusage): add -show-option + (MAIN): check -show-option + +2002-11-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03413] Re: setting form on loading + * form.c (loadPreForm): add textarea + (preFormUpdateBuffer): submit if value is matched as well + case FORM_TEXTAREA + case FORM_SELECT ifdef MENU_SELECT + +2002-11-12 Yuji Abe <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03411] do AUXBIN_TARGETS + * scripts/Makefile (all): add AUXBIN_TARGETS + (clean): add AUXBIN_TARGETS + +2002-11-12 AIDA Shinra <aida-s@jcom.home.ne.jp> + + * [w3m-dev 03408] edit From in w3mail.cgi + * scripts/w3mmail.cgi.in: edit from as well + +2002-11-12 AIDA Shinra <aida-s@jcom.home.ne.jp> + + * [w3m-dev 03408] fix Bug#87472 + MOUSE_SCROLL_LINE should be a run-time option + * fm.h (relative_wheel_scroll): added + (fixed_wheel_scroll_count): added + (relative_wheel_scroll_ratio): added + * main.c (mouse_scroll_line): added + (process_mouse): s/MOUSE_SCROLL_LINE/mouse_scroll_line()/ + * menu.c (MOUSE_SCROLL_LINE): deleted + * terms.h (MOUSE_SCROLL_LINE): deleted + * rc.c (CMT_RELATIVE_WHEEL_SCROLL): added + (CMT_RELATIVE_WHEEL_SCROLL_RATIO): added + (CMT_FIXED_WHEEL_SCROLL_COUNT): added + (wheelmode): added + (params3): add relative_wheel_scroll, + relative_wheel_scroll_ratio, + fixed_wheel_scroll_count + * NEWS: updated + +2002-11-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03407] char GlobalKeymap -> unsigned char GlobalKeymap + * fm.h (GlobalKeymap): char->unsigned char + (EscKeymap): ditto + (EscBKeymap): ditto + (EscDKeymap): ditto + (PcKeymap): ditto + * keybind.c: ditto + * keybind_lynx.c: ditto + +2002-11-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03406] + * scripts/Makefile: add AUXBIN_DIR + update LIB_DIR, HELP_DIR + xface2xpm installed in AUXBIN_DIR + * scripts/multipart/Makefile: update LIB_DIR + * scripts/w3mman/Makefile: update LIB_DIR + +2002-11-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03405] Re: tab browser + * main.c (moveTab): B_FORCE_REDRAW + +2002-11-10 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03401] w3mhelp.cgi + * proto.h (tabMn): nulcmd ifndef USE_MENU + * scripts/w3mhelp-funcdesc.en.pl.in: add LINEEDIT:EDITOR + * scripts/w3mhelp-funcdesc.ja.pl.in: add LINEEDIT:EDITOR + Tab operation + * scripts/w3mhelp-funcname.pl.in: add LINEEDIT:EDITOR C-o + * scripts/w3mhelp.cgi.in: add tabA in Hyperlink operation + add tabURL, tabrURL in File/Stream operation + add Tab operation + add lineedit_editor in Line edit mode + +2002-11-10 NOMIYA Masaru <nomiya@ttmy.ne.jp> + + * [w3m-dev 03399] + * XMakefile: ;; -> ; + +2002-11-10 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03398] auxbindir + * XMakefile: EXT_TARGETS -> LIB_TARGETS, AUXBIN_TARGETS + * config.h.dist: add AUXBIN_DIR + LIB_DIR is cgi-bin + * configure: add -auxbindir + add AUXBIN_DIR + LIB_DIR is cgi-bin + EXT_TARGETS -> LIB_TARGETS, AUXBIN_TARGETS + * file.c (compression_decoder): libfile_p -> auxbin_p + (check_command): libfile_p -> auxbin_p + use w3m_auxbin_dir() instead of w3m_lib_dir() + (acceptableEncoding): libfile_p -> auxbin_p + (xface2xpm): use auxbinFile() instead of libFile() + (uncompress_stream): libfile_p -> auxbin_p + use auxbinFile() instead of libFile() + * image.c (getCharSize): use w3m_auxbin_dir() instead of w3m_lib_dir() + (openImgdisplay): use w3m_auxbin_dir() instead of w3m_lib_dir() + * indep.c (w3m_auxbin_dir): added + * indep.h (w3m_auxbin_dir): added + * proto.h (auxbinFile): added + * rc.c (auxbinFile): added + (libFile): #if 0, no longer used + (helpFile): used only #ifndef USE_HELP_CGI + * NEWS: separate auxbindir and libdir (local-CGI, file:///$LIB/) + +2002-11-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03396] Re: meta refresh problem + * main.c (MAIN): AL_IMPLICIT -> alarm_status + (SigAlarm): AL_IMPLICIT -> alarm_status + +2002-11-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03391] use editor when input at last line + * linein.c (_editor): added + +2002-11-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03390] some fixes related with form + * form.c (input_textarea): goto input_end + unlink(tmpf); + * main.c (_followForm): s/TEXT/Password/ + +2002-11-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03388] meta refresh problem + * fm.h (AL_IMPLICIT_DONE): 3->4 + (AL_ONCE): 8 + (AL_IMPLICIT_ONCE): (AL_IMPLICIT|AL_ONCE) + * main.c (MAIN): & AL_IMPLICIT, & AL_IMPLICIT_DONE + (SigAlarm): & AL_IMPLICIT, & AL_IMPLICIT_DONE, & AL_ONCE + (setAlaramEvent): & AL_IMPLICIT + +2002-11-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03387] Re: tab browser + * buffer.c (newBuffer): buf->LINES initialize + (gotoLine): use buf->LINES + (gotoRealLine): use buf->LINES + * display.c (displayBuffer): check by buf->LINES + (redrawNLine): buf->LINES + (redrawLine): buf->LINES + (redrawLineImage): no need buf->rootY + (cursorDown): buf->LINES + (arrangeCursor): buf->LINES + * etc.c (columnSkip): buf->LINES + (lineSkip): buf->LINES + (currentLineSkip): buf->LINES + * fm.h (Buffer): add LINES + * main.c (nscroll): Currentbuf->LINES + (pgFore): Currentbuf->LINES + (pgBack): Currentbuf->LINES + (ctrCsrV): Currentbuf->LINES + (movD): Currentbuf->LINES + (movU): Currentbuf->LINES + (_goLine): Currentbuf->LINES + (drawAnchorCursor): Currentbuf->LINES + (setOpt): B_REDRAW_IMAGE + (newT): B_REDRAW_IMAGE + (closeT): B_REDRAW_IMAGE + (nextT): B_REDRAW_IMAGE + (prevT): B_REDRAW_IMAGE + (moveTab): B_NORMAL + +2002-11-09 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03386] Re: Interrupt in no_proxy_check() + * file.c (getAuthCookie): term_cbreak() + (loadGeneralFile): term_cbreak() + term_raw() + preFormUpdateBuffer() before term_raw() + (loadHTMLstream): term_raw() + +2002-11-07 Katsumi@yamaoka.cc + + * [w3m-dev 03385] install-sh typo + * install-sh: s/'/"/ + +2002-11-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03383] Select the nearest map area as default. + * fm.h (MapArea): add center_x, center_y + * map.c (nearestMapArea): added + (follow_map_menu): initial by nearestMapArea() + (newMapArea): set center_x, center_y + +2002-11-07 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03382] Interrupt in no_proxy_check() + * url.c (check_no_proxy): SIGINT trap by KeyAbort + +2002-11-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03380] fix configure + * configure: s/INSTALL_W3MIMGDISPLAY/install_w3mimgdisplay/ + already define + * config.h.dist (INSTALL_W3MIMGDISPLAY): added + +2002-11-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03379] setuid w3mimgdisplay and check console tty + * XMakefile: w3mimgdisplay install by INSTALL_W3MIMGDISPLAY + * configure: ask setuid w3mimgdisplay + (w3mimgdisplay_setuid): added + (INSTALL_W3MIMGDISPLAY): added + * etc.c (mySystem): close until FOPEN_MAX + * image.c (openImgdisplay): setenv W3M_TTY + stderr to /dev/null + close until FOPEN_MAX + * install-sh: -o, -g for owner, group + * proto.h (ttyname_tty): added + * search.c (open_migemo): stderr to /dev/null + close until FOPEN_MAX + * terms.c (ttyname_tty): added + * w3mimgdisplay.c: include <sys/types.h>, <unistd.h> + W3MIMGDISPLAY_SETUID + stderr to /dev/null + * w3mimg/w3mimg.c: include <sys/types.h>, <unistd.h> + W3MIMGDISPLAY_SETUID + * w3mimg/fb/fb_w3mimg.c (check_tty_console): added + +2002-11-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03377] sync_with_option + * etc.c (loadPassword): reset passwords + * form.c (loadPreForm): reset PreForm + * main.c (option_assigned): deleted + (parse_proxy): deleted + (MAIN): move initCookie(), setLocalCookie() + after sync_with_option() + delete parseURL for *_proxy + s/WrapSearch/WrapDefault/ + move initKeymap(), initMenu() after setupscreen() + sync_with_option() after init_rc() + * rc.c (pre_form_file): move in params9 (network settting) + (sync_with_option): initKeymap(), initMenu() is done + if fmInitialized + (init_rc): delete sync_with_option() + +2002-11-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03375] NULL check of CurrentTab + * display.c (disp_message_nsec): check CurrentTab + * file.c (doExternal): check CurrentTab + * image.c (loadImage): check CurrentTab + +2002-11-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03374] disable_secret_security_check + * etc.c (openSecurityFile): disable_secret_security_check + * fm.h (disable_secret_security_check): added + * rc.c (CMT_DISABLE_SECRET_SECURITY_CHECK): added + (disable_secret_security_check): added + * NEWS: rc: disable_secret_security_check + +2002-11-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * NEWS: update + +2002-11-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * rc.c (CMT_PRE_FORM_FILE): added + (pre_form_file): added + +2002-11-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * doc-jp/README.tab: added [w3m-dev 03372] + * doc/README.tab: brief translation + +2002-11-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03372] tab browser + * display.c (displayBuffer): add ny + rootY offset by tab + tab line + (cursorDown): offset rootY + (arrangeCursor): offset rootY + * etc.c (columnSkip): offset rootY + (lineSkip): offset rootY + (currentLineSkip): offset rootY + * file.c (HTMLlineproc2body): ATTR_TARGET + * fm.h (MapArea): add target + (Buffer): add rootY + (TabBuffer): added + (Currentbuf): comment out + (Firstbuf): comment out + (CurrentTab): added + (FirstTab): added + (LastTab): added + (open_tab_blank): added + (close_tab_back): added + (nTab): added + (TabCols): added + (N_TAB): added + (Currentbuf): CurrentTab->currentBuffer + (Firstbuf): CurrentTab->firstBuffer + * funcname.tab (CLOSE_TAB): added + (NEW_TAB): added + (NEXT_TAB): added + (PREV_TAB): added + (TAB_GOTO): added + (TAB_GOTO_RELATIVE): added + (TAB_LEFT): added + (TAB_LINK): added + (TAB_MENU): added + (TAB_RIGHT): added + * html.c (ALST_AREA): add ATTR_TARGET + * image.c (showImageProgress): offset rootY + * main.c (_newT): added + (followTab): added + (moveTab): added + (check_target): added + (MAIN): init tab related values + buf => tab + (nscroll): offset rootY + (pgFore): offset rootY + (pgBack): offset rootY + (ctrCsrV): offset rootY + (_movD): offset rootY + (_movU): offset rootY + (_goLine): offset rootY + (_mark): offset rootY + (followA): check target + (_followForm): offset rootY + (drawAnchorCursor0): offset rootY + (drawAnchorCursor): offset rootY + (backBf): check close_tab_back + (follow_map): rewrite for tab, check target + (posTab): added + (process_mouse): tab operation + offset rootY + (deleteFiles): for all buffers in all tabs + (newTab): added + (newT): added + (numTab): added + (deleteTab): added + (closeT): added + (nextT): added + (prevT): added + (followTab): added + (tabA): added + (tabURL0): added + (tabURL): added + (tabrURL): added + (moveTab): added + (tabR): added + (tabL): added + * map.c (follow_map_menu): return MapArea + (newMapArea): add target args + * menu.c (SelTabMenu): added + (SelTabV): added + (initSelTabMenu): added + (smChTab): added + (smDelTab): added + (MainMenuItem): add Select Tab + on New Tab + (popupMenu): add initSelTabMenu() + offset rootY + (mainMn): offset rootY + (selMn): offset rootY + (initSelectMenu): offset rootY + (tabMn): added + * proto.h (newT): added + (closeT): added + (nextT): added + (prevT): added + (tabA): added + (tabURL): added + (tabrURL): added + (tabR): added + (tabL): added + (newTab): added + (deleteTab): added + (follow_map_menu): return MapArea + (newMapArea): add target arg + (tabMn): added + * rc.c (CMT_OPEN_TAB_BLANK): added + (CMT_CLOSE_TAB_BACK): added + (open_tab_blank): added + (close_tab_back): added + * doc/README.func (CLOSE_TAB): added + (NEW_TAB): added + (NEXT_TAB): added + (PREV_TAB): added + (TAB_GOTO): added + (TAB_GOTO_RELATIVE): added + (TAB_LEFT): added + (TAB_LINK): added + (TAB_MENU): added + (TAB_RIGHT): added + * doc-jp/README.func: ditto doc/README.func + +2002-11-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * doc-jp/README.pre_form: added [w3m-dev 03373] + * doc/README.pre_form: brief translation + +2002-11-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * etc.c (PASS_IS_READABLE_MSG): deleted + (FILE_IS_READABLE_MSG): added + (openPasswdFile): deleted + (openSecretFile): delete error_msg arg + (loadPasswd): use openSecretFile() + * form.c (next_token): delete unused static decl + (FILE_IS_READABLE_MSG): deleted + (loadPreForm): no need pass error_msg + * proto.h (openSecretFile): delete error_msg arg + +2002-11-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03373] setting form on loading + * config.h.dist (PRE_FORM_FILE): added + * configure (PRE_FORM_FILE): added + * etc.c (openPasswdFile): define by openSecretFile() + (openSecretFile): renamed, not static + * file.c (loadGeneralFile): preFOrmUpdateBuffer() + * fm.h (Buffer): add submit + (pre_form_file): added + * form.c (struct pre_form_item): added + (struct pre_form): added + (next_token): added + (PreForm): added + (add_pre_form): added + (add_pre_form_item): added + (loadPreForm): added + (preFormUpdateBuffer): added + * frame.c (renderFrame): add preFormUpdateBuffer() + * main.c (MAIN): buf->submit check + * proto.h (preFormUpdateBuffer): added + (openSecretFile): added + (loadPreForm): added + * rc.c (sync_with_option): add loadPreForm() + +2002-11-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03371] segmentation fault by large complex table. + * table.c (bsearch_2short): indexarry char to short + (bsearch_double): ditto + (dv2sv): ditto + (table_rule_width): ditto + (set_integrated_width): ditto + (check_table_height): ditto + (feed_table_tag): ditto + * table.h (struct table_cell): index, eindex char to short + +2002-11-05 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.3.2 + * version.c.in: update + * doc/README: version 0.3.2, release date + * doc-jp/README: ditto + * NEWS: update + +2002-11-05 Fumitoshi UKAI <ukai@debian.or.jp> + + * scripts/w3mhelp.cgi.in: add chkWORD + +2002-11-04 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 00827] Re: w3m-cvs segfaults on news://<mid> URLs + * url.c (openURL): check pu->file for news: + +2002-10-31 Fumitoshi UKAI <ukai@debian.or.jp> + + * fix compilation warnings + * w3mimgdisplay.c: add #include <string.h> for strlen, strcmp + * w3mimg/fb/fb.c: add #include <string.h> for memset + * w3mimg/fb/fb_w3mimg.c: add #include <string.h> for memset + +2002-10-31 Fumitoshi UKAI <ukai@debian.or.jp> + + * 0.3.2 release candidate 4 + * version.c.in: update + +2002-10-31 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03365] ~/.netrc support + * etc.c (add_auth_pass_entry): add netrc arg + add new entry to tail + (find_auth_pass_entry): ent->host == NULL is "default" + (loadPasswd): rewrite with next_token, parsePasswd, + openPasswdFile + load ~/.netrc + (next_token): added + (parsePasswd): added + (openPasswdFile): added + * ftp.c (openFTP): use find_auth_user_passwd + * NEWS: ~/.netrc + +2002-10-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03363] refresh download + * file.c (HTMLtagproc1): alarm is implicit once + * fm.h (AL_IMPLICIT_ONCE): added + * main.c (searchKeyData): reset CurrentKeyData, CurrentCmdData + (SigAlarm): CurrentCmdData is saved to data + message displayed on AL_EXPLICIT + clear alarm when AL_IMPLICIT_ONCE + (setAlarmEvent): AL_IMPLICIT_ONCE + +2002-10-31 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03362] Re: support for http://user:pass@www.url.com + * etc.c (loadPasswd): accept host, passwd + +2002-10-31 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03359] support for http://user:pass@www.url.com + * etc.c (find_auth_user_passwd): use ParsedURL for args + use user and passwd if these are defined in ParsedURL + * file.c (getAuthCookie): change find_auth_user_passwd() + * proto.h (find_auth_user_passwd): change prototype + * NOTE: http://user:pass@www.url.com is NOT RECOMMENDED + for security reasons. + +2002-10-30 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03357] tab in <pre> in <ul>,<ol>,... + * file.c (HTMLlineproc2): check indent for tabstop + +2002-10-30 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03354] display current line number + * display.c (displayBuffer): %3d -> %d + +2002-10-29 Fumitoshi UKAI <ukai@debian.or.jp> + + * 0.3.2 release candidate 3 + * version.c.in: update + +2002-10-29 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03352] w3mimgsize is not necessary. + * XMakefile (IMGSIZE): removed + * config.h.dist (IMGSIZE): removed + * configure (imgtarget): remove IMGSIZE + (config.h): remove IMGSIZE + * rc.c (CMT_IMGSIZE): removed + * doc/README.img: remove imgsize + * w3mimgsize.c: removed + +2002-10-28 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03351] w3m core dump + * table.c (feed_table_tag): fix rendering problem (maybe security hole?) + +2002-10-28 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 00796] + * configure: expand here. ($var in Makefile is $v + ar) + * XMakefile: clean w3mimg/**/*.o + +2002-10-28 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 00795] + * configure: IMLIB_CONFIG, IMLIB2_CONFIG, GDKPIXBUF_CONFIG + * rc.c (CMT_DISP_IMAGE): need if not defined USE_IMAGE + +2002-10-27 Fumitoshi UKAI <ukai@debian.or.jp> + + * 0.3.2 release candidate 2 + * version.c.in: update + +2002-10-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 00788] + * fm.h (displayImage): FALSE ifndef USE_IMAGE + * rc.c (displayImage): display_image even if USE_IMAGE undefined + (sync_with_options): display_image is forced to be FALSE + ifndef USE_IMAGE + +2002-10-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 00783] hsaka@mth.biglobe.ne.jp (Hironori SAKAMOTO) + add display_lineinfo option + * display.c (displayBuffer): check displayLineInfo + * fm.h (displayLineInfo): added + * rc.c (CMT_DISPLINEINFO): added + (display_lineinfo): added + * NEWS (rc: display_lineinfo): add + +2002-10-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 00781] "Clemens Fischer" <ino-waiting@gmx.net> + zope doesn't recognize implied *LWS in accept-language + * rc.c (sync_with_option): remove optional LWS + +2002-10-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 00780] "Carlo E. Prelz" <fluido@fluido.as> + always print on screen the relative position + * display.c (displayBuffer): relative position + +2002-10-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * 0.3.2 release candidate 1 + * version.c.in: update + +2002-10-26 Gary Johnson <garyjohn@spk.agilent.com> + + * [w3m-dev-en 00777] patch to fix w3m-0.3.1 word break problem + * file.c (is_period_char): + 0x203A - SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + (is_beginning_char): + 0x2018 - LEFT SINGLE QUOTATION MARK + 0x2039 - SINGLE LEFT-POINTING ANGLE QUOTATION MARK + (is_word_char): add several chars ifndef JP_CHARSET + add ':' and '*' + +2002-10-17 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03342] + * doc/README.img: updated + * doc-jp/README.img: updated + +2002-10-17 Daiki Ueno <ueno@unixuser.org> + + * [w3m-dev 03341] white space is needed to close an empty-element tag + * parsetagx.c (parse_tag): extract tagname until '/' + +2002-10-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03339] Re: Debian Bug#164098 w3m: <sup> is not properly supported + * file.c (HTMLtagproc1): HTML_SUP, HTML_N_SUP, HTML_SUB, HTML_N_SUB + * html.c (TagMAP): sup, /sup, sub, /sub + * html.c (HTML_SUP): added + (HTML_N_SUP): added + (HTML_SUB): added + (HTML_N_SUB): added + * table.c (feed_table_tag): HTML_SUP, HTML_N_SUP, HTML_SUB, HTML_N_SUB + * tagtable.tab (sup): added + (/sup): added + (sub): added + (/sub): added + +2002-10-11 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03337] delete unused functions in fb.c etc. (Re: canna patch) + * w3mimg/fb/fb.c (fb_image_rotate): delete + (fb_frame_rotate): delete + (fb_pset): delete + (fb_get_color): delete + (fb_clear): delete + (fb_cmap_disp): delete + (fb_fscrn_disp): delete + (fb_vscrn_disp): delete + * w3mimg/fb/fb.h (fb_image_rotate): delete + (fb_frame_rotate): delete + (fb_pset): delete + (fb_get_color): delete + (fb_clear): delete + (fb_cmap_disp): delete + (fb_fscrn_disp): delete + (fb_vscrn_disp): delete + * w3mimg/fb/fb_img.c (fb_image_draw_simple): delete + * w3mimg/fb/fb_img.h (fb_image_draw_simple): delete + + * w3mimg/fb/license.txt: removed, follow w3m license + +2002-10-09 AIDA Shinra <aida-s@jcom.home.ne.jp> + + * [w3m-dev 03336] proxy check for https authorization: + * url.c (HTTPrequest): check CONNECT request for ssl + +2002-10-06 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03333] x11 image animation + * w3mimg/x11/x11_w3mimg.c (struct x11_image): added + (x11_img_new): added + (resize_image): added + (x11_load_image): rewrite GdkPixbuf + (x11_show_image): rewrite GdkPixbuf + (x11_free_image): rewrite GdkPixbuf + +2002-10-02 Yuji Abe <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03332] Re: hang up when seeing web page that contains xbm file + * w3mimg/x11/x11_w3mimg.c (x11_load_image): transparent support + +2002-10-02 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> + + * [w3m-dev 03331] Re: hang up when seeing web page that contains xbm file + * configure: check gdk-pixbuf-config existence + +2002-10-01 Yuji Abe <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03330] Re: hang up when seeing web page that contains xbm file + * w3mimg/x11/x11_w3mimg.c (x11_load_image): scaling + +2002-09-30 Yuji Abe <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03327] gdk-pixbuf support for w3m-img/x11 + * configure (use_w3mimg_x11) Imlib1 or GdkPixbuf + check gdkpixbuf + * w3mimg/x11/x11_w3mimg.c (USE_GDKPIXBUF): added + (x11_init): USE_GDKPIXBUF + (x11_load_image): USE_GDKPIXBUF + (x11_get_image_size): USE_GDKPIXBUF + +2002-09-30 qhwt@myrealbox.com + + * [w3m-dev 03325] Re: hang up when seeing web page that contains xbm file + * w3mimgdisplay.c (main): always return response + even if size is unknown + +2002-09-29 Hiroaki Shimotsu <shim@d5.bs1.fc.nec.co.jp> + + * [w3m-dev 03323] EDITOR + * main.c (MAIN): use not_null() + +2002-09-29 AIDA Shinra <aida-s@jcom.home.ne.jp> + + * Re: [w3m-dev 03320] Re: Passwords + * etc.c (dir_under): same path is ok + * file.c (loadGeneralFile): if missing, return NULL + ssl cert already checked + * html.h (URLFILE): add ssl_certificate + * istream.c (ssl_get_certificate): change args + * istream.h (ssl_get_certificate): ditto + * url.c (openSSLHandle): add p_cert + ssl certificate check here + (HTTPrequest): auth_cookie fix + +2002-09-25 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03321] Bug#162104: file descriptors 1 and 2 are closed rather than reopened to /dev/null + * etc.c (mySystem): fd 0,1,2 redirect /dev/null, close all other fds + +2002-09-25 AIDA Shinra <aida-s@jcom.home.ne.jp> + + * [w3m-dev 03319] mailto + * main.c (followA): mailto + * main.c (cmd_loadURL): mailto + * url.c (_parsedURL2Str): mailto: query + +2002-09-25 AIDA Shinra <aida-s@jcom.home.ne.jp> + + * [w3m-dev 03318] Re: Passwords + * etc.c (struct auth_path): added + (passwords): added + (dir_under): added + (add_auth_pass_entry): added + (find_auth_pass_entry): added + (find_auth_user_passwd): added + (loadPasswd): added + (find_auth): dir_under() + (add_auth_cookie): check file + * file.c (find_auth_user_passwd): removed + (getAuthCookie): use delText() + check proxy + (get_auth_cookie): removed + (loadGeneralFile): auth_pu + * proto.h (schemeToProxy): added + (get_auth_cookie): removed + (loadPasswd): added + (find_auth_user_passwd): added + * rc.c (sync_with_option): loadPasswd() + * textlist.c (delValue): added + * textlist.h (delValue): added + (delText): added + * url.c (HTTPrequest): seen_www_auth + (schemeToProxy): added + +2002-09-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03312] Re: Passwords + * config.h.dist: PASSWD_FILE + * file.c (find_auth_user_passwd): return if passwd_file == NULL + +2002-09-11 Yuuichi Teranishi <teranisi@gohome.org> + + * [w3m-dev 03311] Re: Passwords + * configure (config.h): default PASSWD_FILE + * fm.h (passwd_file): default PASSWD_FILE + +2002-09-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03307] add password_file support + * file.c (find_auth_user_passwd): added + * fm.h (passwd_file): added + * rc.c (CMT_PASSWDFILE): added + (passwdfile): added + +2002-09-09 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03300] framebuffer: 8bit color support + * w3mimg/fb/fb.c: support FB_VISUAL_PSEUDOCOLOR 256 colors + +2002-09-09 Hironori SAKAMOTO <h-saka@lsi.nec.co.jp> + + * [w3m-dev 03299] remove file before copying (install-sh) + * install-sh: remove file before copying + +2002-09-09 Hironori SAKAMOTO <h-saka@lsi.nec.co.jp> + + * [w3m-dev 03298] [ -f instead of [ -e (configure) + * configure: use test -f instead of test -e + +2002-09-09 Hironori SAKAMOTO <h-saka@lsi.nec.co.jp> + + * [w3m-dev 03297] TERM=mlterm + * terms.c (w3m_term_info_list): add mlterm + +2002-09-09 Hironori SAKAMOTO <h-saka@lsi.nec.co.jp> + + * [w3m-dev 03296] fix configure (strtoq) + * configure (strtoq): fix missing semicolon + +2002-09-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03292] Re: load file at cursor + * anchor.c (reAnchorPos): added + (reAnchorWord): added + (reAnchorAny): rewrite to use reAnchorPos() + * funcname.tab (MARK_WORD): added + * keybind.c (;) MARK_WORD + * main.c (getCurWord): added + (chkWORD): added + (is_wordchar): added + (getCurWord): added + (GetWord): rewrite to use getCurWord() + * proto.h (chkWORD): added + (reAnchorWord): added + * doc/README.func: add MARK_WORD + * doc/keymap.default: add MARK_WORD + * doc-jp/README.func: add MARK_WORD + * doc-jp/keymap.default: add MARK_WORD + * NEWS: add MARK_WORD + +2002-08-28 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 03291] parsetagx.c:toNumber() + * parsetagx.c (toNumber): don't parse non-number value as 0, + just ignore + +2002-08-28 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 03290] Re: Forward: Bug#157098: wrong file presentation on large files + * indep.c (strtoclen): need defined() + +2002-08-21 Fumitoshi UKAI <ukai@debian.or.jp> + + * Debian Bug#157098: wrong file presentation on large files + from "Eduard Bloch" <blade@debian.org> + * configure (clen_t): added + (HAVE_STRTOLL): added + (HAVE_STRTOQ): added + (HAVE_ATOLL): added + (HAVE_ATOQ): added + * config.h.dist: ditto + * file.c (current_content_length): s/int/clen_t/ + (loadGeneralFile): s/atoi/strtoclen/ + (convert_size): s/int/clen_t/ + (convert_size2): s/int/clen_t/ + (showProgress): s/int/clen_t/ + (loadHTMLstream): s/int/clen_t/ linelen, trbyte + (loadBuffer): ditto + (getNextPage): s/int/clen_t/ linelen + (save2tmp): s/int/clen_t/ linelen, trbye + (_MoveFile): s/int/clen_t/ linelen, trbye + * fm.h (_Buffer): s/int/clen_t/ linelen, trbye + * ftp.c (size_int2str): s/long/clen_t/ + (ex_ftpdir_name_size_date): s/long/clen_t/ + * indep.c (strtoclen): added + * indep.h (strtoclen): added + * proto.h (showProgress): s/int/clen_t/ + +2002-07-31 Fumitoshi UKAI <ukai@debian.or.jp> + + * Debian Bug#154766: w3m-img: support DirectColor framebuffer visuals? + from Colin Watson <cjwatson@debian.org> + * w3mimg/fb/fb.c (fb_open): accept FB_VISUAL_DIRECTCOLOR + +2002-07-30 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03282] Re: w3m-img for framebuffer update + * w3mimg/fb/fb.c (fb_image_new): ignore no image + calloc multiple images + (fb_image_fill): added + (fb_image_draw): width, height fix + (fb_image_rotate): fix typo + (fb_image_copy): added + (fb_frame_new): added + (fb_freme_free): added + (fb_frame_rotate): added + * w3mimg/fb/fb.h (FB_IMAGE): add num, id, delay + (fb_frame_new): added + (fb_frame_free): added + (fb_frame_rotate): added + * w3mimg/fb/fb_gdkpixbuf.c (get_image_size): animation support + (fb_image_load): animation support + (draw): add bg, x, y, w, h args + * w3mimg/fb/fb_img.h (fb_image_load): return FB_IMAGE** + * w3mimg/fb/fb_imlib2.c (fb_image_load): return FB_IMAGE** + * w3mimg/fb/fb_w3mimg.c (w3mfb_show_image): animation support + +2002-07-23 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03280] w3m-img without w3mimgsize + * fm.h (Imagesize): deleted + * image.c (getImageSize): rewrite to use w3mimgdisplay + instead of w3mimgsize + * rc.c (params1): remove imgsize, merged to imgdisplay + +2002-07-23 Hiroyuki Ito <hito@crl.go.jp> + + * [w3m-dev 03279] w3m-img for framebuffer update + http://homepage3.nifty.com/slokar/fb/w3mfb.patch.gz + * w3mimg/fb/readme.txt: update + * w3mimg/fb/fb.c: update + * w3mimg/fb/fb.h: update + * w3mimg/fb/fb_gdkpixbuf.c: update + * w3mimg/fb/fb_img.c: update + * w3mimg/fb/fb_img.h: update + * w3mimg/fb/fb_imlib2.c: update + * w3mimg/fb/fb_w3mimg.c: update + * w3mimg/fb/fb_gdkpixbuf.h: deleted + * w3mimg/fb/fb_imlib2.h: deleted + * w3mimg/w3mimg.h (w3mimg_op): add get_image_size() + * w3mimg/x11/x11_w3mimg.c: update + * w3mimgdisplay.c (main): use get_image_size() + * w3mimgsize.c (main): use get_image_size() + +2002-07-19 Hideyuki SHIRAI <shirai@rdmg.mgcs.mei.co.jp> + + * [w3m-dev 03277] compile error on Solaris7 + * w3mimg/w3mimg.c: include <stdio.h> for NULL + +2002-07-19 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> + +a * [w3m-dev 03276] compile error on EWS4800 + * file.c (extract_auth_val): fix warnings + * w3mimg/w3mimg.c: include <stdlib.h> + +2002-07-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03275] fix of multipart.cgi + * scripts/multipart/multipart.cgi.in: check REQUEST_METHOD first + need $count for POST + +2002-07-18 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3mimgdisplay.c (main): '5' for w3mimgsize + +2002-07-18 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> + + * [w3m-dev 03270] Re: w3m-img for framebuffer merged + * w3mimg/x11/x11_w3mimg.c (w3mimg_x11open): unsigned int nchildren + +2002-07-18 Fumitoshi UKAI <ukai@debian.or.jp> + + * XMakefile (w3mimg/w3mimg): added + (w3img/fb) fixed + * w3mimg/w3mimg.h (w3mimg_open): deleted to avoid compilation warnings + * w3mimg/w3mimg.c: added + * configure (imgobjs): add w3mimg/w3mimg.o + +2002-07-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03272] Re: w3m-img for framebuffer merged (Re: Re: w3m-img for framebuffer) + * XMakefile (w3mimg/x11): chdir + (w3mimg/fb): chdir + +2002-07-18 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03273] Re: w3m-img for framebuffer merged + * configure (use_w3mimg_fb): check linux, use test -c + +2002-07-18 Fumitoshi UKAI <ukai@debian.or.jp> + + * merge w3m-img for framebuffer support + * w3mimg/w3mimg.h: created + * w3mimg/x11/x11_w3mimg.c: created + * w3mimg/fb/fb_w3mimg.c: created + * w3mimgsize.c w3mimgdisplay.c: modified + * configure: modified + * XMakefile: modified + * config.h.dist: updated + +2002-07-18 ZXB01226@nifty.com + + * w3m-img for framebuffer support + * http://homepage3.nifty.com/slokar/fb/ + * w3mimg/fb/fb.c w3mimg/fb/fb.h + w3mimg/fb/fb_img.c w3mimg/fb/fb_img.h + w3mimg/fb/fb_gdkpixbuf.c w3mimg/fb/fb_gdkpixbuf.h + w3mimg/fb/fb_imlib2.c w3mimg/fb/fb_imlib.h + w3mimg/fb/readme.txt w3mimg/fb/license.txt: added + +2002-07-18 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03263] fix lastA segfault + * main.c (lastA): fix lastA segfault when no anchor found + +2002-07-18 Fumitoshi UKAI <ukai@debian.or.jp> + + * version.c.in: cvs version + +2002-07-16 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.3.1 + * version.c.in: update + * doc/README: version 0.3, release date + * doc-jp/README: ditto + * NEWS: update + +2002-07-12 WATANABE Katsuyuki <katsuyuki_1.watanabe@toppan.co.jp> + + * [w3m-dev 03255] update cygwin info + * doc-jp/README: update + * doc/README: update + * doc-jp/README.cygwin: deleted + * doc/README.cygwin: deleted + +2002-07-10 SAKAI Kiyotaka <ksakai@kso.netwk.ntt-at.co.jp> + + * [w3m-dev 03240] doc-jp update + * doc-jp/MANUAL.html: update + * doc-jp/README: update + * doc-jp/README.SSL: update + * doc-jp/README.img: update + +2002-07-10 Fumitoshi UKAI <ukai@debian.or.jp> + + * gc/: import gc6.1alpha5 + +2002-07-09 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + + * delete old mail addresses of aito-san from docs + * delete old ftp site from w3m-doc/install.html.in + +2002-07-01 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + + * [w3m-dev 03235] topA/lastA with prec_num + * main.c: add prec_num to topA() and lastA() + +2002-06-24 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03233] "obuf->flag |= RB_IGNORE_P" after <body> tag + * file.c (HTMLtagproc1): no need RB_IGNORE_P after <body> tag + +2002-06-18 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + + * [w3m-dev 03215] Re: Boehm GC 6.1alpha5 + * XMakefile: add "base_lib gc.a" for making GC + +2002-06-18 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 03212] lstat() in form.c + * form.c: define lstat unless HAVE_LSTAT + (form_write_from_file): always check lstat() + +2002-06-17 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + + * [w3m-dev 03214] strtoul() in frame.c + * frame.c (parseFrameSetLength): strtoul() -> strtol() + +2002-06-10 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev-en 00752] Re: tab completion weirdness in w3m 0.3 + * file.c (doFileCopy): same fix as [w3m-dev-en 00751] + +2002-06-10 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev-en 00751] Re: tab completion weirdness in w3m 0.3 + * main.c (svBuf): unescape spaces when input is filename + * proto.h (unescape_spaces): added + +2002-06-08 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 03207] strchr(), strcasecmp(), and strncasecmp() + * etc.c (strchr): removed + (strcasecmp): removed + (strncasecmp): removed + * indep.c (strchr): moved, cast + (strcasecmp): moved, fix the case that s1 = "" + (strncasecmp): moved, fix the case that s1 is shorter than s2 + * indep.h (strchr): added + (strcasecmp): added + (strncasecmp): added + +2002-06-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03206] Re: dict + * main.c (execdict): quote word + +2002-06-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03204] INET6 + * main.c (fversion): s/USE_INET6/INET6/ + +2002-06-06 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03203] dict + * main.c (execdict): fix loadGeneralFile() + +2002-06-02 Tushar Samant <scribble@pobox.com> + + * [w3m-dev-en 00748] PATCH: Reinitialize w3m while running + * funcname.tab (INIT_MAILCAP): deleted + (REINIT): added + * main.c (config_filename): added + (reinit): added + * proto.h (reinit): added + * rc.c (rc_initialized): deleted + * w3mhelperpanel.c (editMailcap): use REINIT MAILCAP + +2002-06-02 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 03200] Re: New configuration option ``keymap_file'' and new command ``DEFINE_KEY'' + * fm.h: add <sts/stat.h>, unistd.h> + * fm.h (keymap_file): added + * func.c (keymap_initialized): added + (current_keymap_file): added + (setKeymap): added + (initKeymap): rewrite to use setKeymap() + * funcname.tab (DEFINE_KEY): added + * main.c (MAIN): initKeymap(TRUE) + (defKey): added + * proto.h (defKey): added + (setKeymap): added + (initKeymap): add force param + * rc.c (CMT_KEYMAP_FILE): added + (params3): add keymap_file + (sync_with_option): add initKeymap(FALSE) + * doc/README.func (DEFINE_KEY): added + * doc-jp/README.func: (DEFINE_KEY): added + * scripts/w3mhelp.cgi.in: add defKey + * NEWS: + func: DEFINE_KEY + rc: keymap_file + +2002-06-02 Hiroaki Shimotsu <shim@d5.bs1.fc.nec.co.jp> + + * [w3m-dev 03196] C-w + * linein.c (inputLineHistSearch) move_word changed + * linein.c (setStrType): add space to termchar + +2002-05-15 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 03191] typo in file.c:extract_auth_val()? + * file.c (extract_auth_val): s/177/0177/ + +2002-05-15 Tsutomu OKADA <okada@furuno.co.jp> + + * [w3m-dev 03190] a tiny patch for configure + * configure (ask_choice): reset default value + +2002-04-27 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 03185] Re: cmd_mark in main.c, rev 1.60 broke unmark? + * main.c (cmd_mark): deleted + (_mark): xor PE_MARK + (reMark): or PE_MARK + +2002-04-27 Fumitoshi UKAI <ukai@debian.or.jp> + + * scripts/.cvsignore: add xface2xpm + +2002-04-26 Tushar Samant <scribble@pobox.com> + + * [w3m-dev-en 00733] Submission: "English" patch + * rc.c: update english + +2002-04-25 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 00730] Re: Patch for a more flexible dictionary lookup + * NEWS: rc: use_dictcommand, dictcommand + * main.c (execdict): use url_quote_conv() instead of cURLcode() + * proto.h (cURLcode): deleted + * doc-jp/README.dict: updated + +2002-04-25 Tushar Samant <scribble@pobox.com> + + * [w3m-dev-en 00729] Re: Patch for a more flexible dictionary lookup + * config.h.dist (DICT): define + * configure (use_dict): default y + * fm.h (DICTCMD): deleted + (UseDictCommand): added + (DictCommand): added + * main.c (execdict): rewrite to use DictCommand, loadGeneralFile() + * rc.c (CMT_USE_DICTCOMMAND): added + (CMT_DICTCOMMAND): added + (params1): use_dictcommand, dictcommand added + * doc/README.dict: updated + +2002-04-21 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 03181] KEYBIND_SRC was not passed to scripts/Makefile + * Makefile (all-scripts): pass KEYBIND_SRC + +2002-04-17 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 03178] Parser of ``cols'' and ``rows'' + * frame.c (parseFrameSetLength): added + (newFrameSet): use parseFrameSetLength() + +2002-04-17 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 03177] SIGUSR1 --> W3M_SIGIMG in image.c + * image.c (W3M_SIGIMG): added + (load_image_handler): s/SIGUSR1/W3M_SIGIMG/ + (load_image_next): ditto + (loadImage): ditto + +2002-04-17 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 03176] no Content-Type in http response header + * file.c (loadGeneralFile): guess content-type from filename + +2002-04-09 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03169] Can't calculate table height if number of cells > 20. + * table.c (check_table_height): change row, rowspan, indexarray, height + from array to pointer + +2002-04-09 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03167] xface2xbm -> xface2xpm (current imlib can't handle XBM) + * configure: s/XFACE2XBM/XFACE2XPM/ + * config.h.dist: ditto + * file.c (xface2xpm): renamed from xface2xbm + modified for xpm + (readHeader): s/xface2xbm/xface2xpm/ + * scripts/Makefile (LIB_TARGETS): s/xface2xbm/xface2xpm/ + * scripts/xface2xpm.in: added + +2002-03-30 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03162] Re: "ttp:" is marked instead of "http:" by MARL_URL + * main.c (chkURLBuffer): "mailto" removed when USE_W3MMAILER + in this case, chkExternalURIBuffer() will mark mailto: URL. + +2002-03-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03160] Re: "ttp:" is marked instead of "http:" by MARL_URL + * NEWS: mark_all_pages + * anchor.c (reAnchorAny): check MarkAllPages + * fm.h (MarkAllPages): added + * rc.c (CMT_MARK_ALL_PAGES): added + (mark_all_pages): added + +2002-03-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03159] "ttp:" is marked instead of "http:" by MARL_URL + * main.c (chkURLBuffer): check internal URLs first + +2002-03-28 Fumitoshi UKAI <ukai@debian.or.jp> + + * terms.c (set_tty): s/term_info/w3m_term_info/g; + struct term_info is defined in FreeBSD's sys/consio.h + reported by KOIE Hidetaka <hide@koie.org> + +2002-03-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03146] Re: header option + * main.c (make_optional_header_string): cleanups + +2002-03-28 Yuuichi Teranishi <teranisi@gohome.org> + + * [w3m-dev 03145] header option + * main.c (MAIN): hide args for security + +2002-03-23 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 03140] Forward: Bug#139305: + w3m: EXTERN_LINK does not work if href ends with ampersand + * main.c (invoke_browser): check bg by browser + +2002-03-21 Fumitoshi UKAI <ukai@debian.or.jp> + + * terms.c (term_title): use ttyf instead of stderr + +2002-03-20 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03137] Re: w3mman.1 + * XMakefile (MAN1): added + (MAN1_JA): added + (install-core): install man + (install-scripts): pass MAN_DIR + (uninstall): uninstall man, pass MAN_DIR to subdirs + * config.h.dist (MAN_DIR): added + (MAN1_DIR): added + (MAN1_JA_DIR): added + * configure: -mandir + (config.h): add MAN_DIR, MAN1_DIR, MAN1_JA_DIR + * scripts/w3mman/Makefile (MAN1_DIR): added + +2002-03-20 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03136] Add COMMAND to execute multiple commands + * fm.h (CurrentMenuData): deleted + (CurrentCmdData): added + * func.c (getKey): check next char of ^ + (getWord): get word until ';' + (getQWord): rewrite using Str + * funcname.tab (COMMAND): added + * main.c (MAIN): delete CurrentMenuData + initialize CurrentCmdData + (searchKeyData): use CurrentCmdData + (execCmd): added + (SigAlarm): delete CurrentMenuData, use CurrentCmdData + * menu.c (action_menu): delete CurrentMenuData, use CurrentCmdData + * proto.h (execCmd): added + * doc/README.func (ALARM): capitalize + (COMMAND): added + * doc-jp/README.func (COMMAND): added + +2002-03-20 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03135] commit of [w3m-dev 03006] is incomplete. + * file.c (HTMLlineproc2body): check form_int fid attr + update forms[] + fix buf->formlist + +2002-03-16 Fumitoshi UKAI <ukai@debian.or.jp> + + * part of [w3m-dev-en 00713] contrib: unofficial "current page info" patch, updated for w3m-0.3 + by Moritz Barsnick <barsnick@gmx.net> + * map.c (page_info_panel): s/line/lines/ + s/byte/bytes/ + anchor for URL of current anchor + +2002-03-16 Fumitoshi UKAI <ukai@debian.or.jp> + + * -title support + modified [w3m-dev-en 00710] contrib: unofficial "xterm title" patch, updated for w3m-0.3 + by Moritz Barsnick <barsnick@gmx.net> + * NEWS: -title + * fm.h (displayTitleTerm): added + * proto.h (term_title): added + * main.c (fusage): add -title + (MAIN): add -title + (quitfm): term_title("") + * display.c (displayBuffer): term_title() + * terms.c (title_str): added + (TERM_INFO): added + (term_info): modified from mouse_term_info + (term_info_list): modified from xterm_mouse_term + add "screen" + (set_tty): check displayTitleTerm + (term_title): added + +2002-03-16 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03132] Re: Reload image + * file.c (loadGeneralFile): b->type = "text/html" + * file.c (loadImageBuffer): comment out getImageSize() + image_flag = IMG_FLAG_AUTO + * file.c (openGeneralPagerBuffer): buf->type = "text/html" + * frame.c (resetFrameElement): if (buf->mailcap_source) ... + * frame.c (frame_download_source): if (buf->mailcap_source) ... + * main.c (vwSrc): #ifdef USE_IMAGE + +2002-03-16 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03133] Re: w3mman.1 + * scripts/w3mman/Makefile (MAN1_TARGETS): added + (MAN_TARGETS): use $(MAN_TARGETS) + (INSTALL_MAN): added + (install): use $MAN1_TARGETS, $(INSTALL_MAN) + * scripts/w3mman/w3mman2html.cgi.in: $PAGER='cat' + +2002-03-15 Fumitoshi UKAI <ukai@debian.or.jp> + + * scripts/.cvsignore: add xface2xbm + +2002-03-15 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03130] w3mman.1 + * scripts/w3mman/.cvsignore: add w3mman.1 + * scripts/w3mman/Makefile (MAN_DIR): added + (MAN_TARGETS): added + (all): add $(MAN_TARGETS) + (.in): replace @LIB_DIR@ + (install): install $(MAN_TARGETS) + (uninstall): uninstall $(MAN_TARGETS) + (clean): clean $(MAN_TARGETS) + * scripts/w3mman/w3mman.1.in: added + * scripts/w3mman/w3mman2html.cgi.in: undef $PAGER + +2002-03-15 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03129] Re: X-Face + * configure (use_xface): ask + * fm.h (_Buffer): add header_source + * buffer.c (reshapeBuffer): fix reshape when reading stdin with image + fix disappearing header when reading stdin + * file.c (xface2xbm): check file existence + * file.c (readHeader): save to tmp file + X-Face when activeImage & displayImage + * main.c (dispI): comment out checking content type + * main.c (stopI): ditto + * scripts/xface2xbm.in: update compface URL + read from file $XF + write to file $XBM + +2002-03-15 Fumitoshi UKAI <ukai@debian.or.jp> + + * proto.h (readHeader): added + +2002-03-14 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03127] X-Face + * NEWS: X-Face support + * configure (use_xface): added + * config.h.dist (USE_XFACE): added + (XFACE2XBM): added + * file.c (xface2xbm): added + (readHeader): X-Face: handling + * scripts/Makefile (LIB_TARGETS): add xface2xbm + * scripts/xface2xbm.in: added + +2002-03-14 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03126] reshapeBuffer() and -m option + * buffer.c (reshapeBuffer): fix reshapeBuffer() in case of -m option + +2002-03-14 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03125] w3m -m < image + * file.c (openGeneralPagerBuffer): use internal viewer for -m option + +2002-03-13 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03116] Re: aligned block in <td align="center"> + * file.c (flushline): align if align="align" + * fm.h (RB_LEFT): change value + (RB_ALIGN): include RB_LEFT + (RB_INTABLE): added + * table.c (do_refill): obuf.flag |= RB_INTABLE + +2002-03-11 WATANABE Katsuyuki <katsuyuki_1.watanabe@toppan.co.jp> + + * [w3m-dev 03110] Re: gopher broken + * file.c (loadGeneralFile): #ifdef USE_GOPHER + +2002-03-11 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03106] Re: displayBuffer + * display.c (displayBuffer): revert previous changes + * file.c (process_img): remove space in src attribute + +2002-03-10 Rei FURUKAWA <furukawa@tcp-ip.or.jp> + + * [w3m-dev 03096] displayBuffer + * display.c (displayBuffer): buf->need_reshape = 0 to prevent recursive + displayBuffer calls + +2002-03-09 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03095] Re: gopher broken + (Re: Bug#137287: w3m: segfault on gopher://xxxx.xxx URI) + * file.c (loadGopherDir): html_quote(url_quote_conv()) + +2002-03-09 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03092] Reload image + * file.c (loadImageBuffer): cache->index = 0 + +2002-03-09 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03093] Re: gopher broken + (Re: Bug#137287: w3m: segfault on gopher://xxxx.xxx URI) + * file.c (loadGopherDir): fix ->ptr + q should be url_quote() + * url.c (openURL): url_unquote() for gopher selector + +2002-03-09 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03090] Re: gopher broken + (Re: Bug#137287: w3m: segfault on gopher://xxxx.xxx URI) + * file.c (loadGeneralFile): if loadGopherDir, type is real_type + * file.c (loadGopherDir): rewrite to use loadHTMLstream() + +2002-03-08 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03088] gopher broken + (Re: Bug#137287: w3m: segfault on gopher://xxxx.xxx URI) + * file.c (form_max): initial value should be -1 + * file.c (loadGopherDir): </A> + +2002-03-08 YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp> + + * [w3m-dev 03087] vi +1 emptyfile + * etc.c (myEditor): line > 1 + +2002-03-06 Christian Weisgerber <w3m-dev-en@mips.inka.de> + + * [w3m-dev-en 00699] + * configure: define SETPGRP() instead of setpgrp() + * etc.c (mySystem): use SETPGRP() instead of setpgrp() + * image.c (openImgdisplay): ditto + * search.c (open_migemo): ditto + * url.c: revert changes by Dai Sato on 2002-02-01 + since stdio.h and config.h is included with this order + in fm.h + +2002-03-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * version.c.in: 0.3+cvs + +2002-03-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.3 + * version.c.in: update + * doc/README: version 0.3, release date + * doc-jp/README: ditto + * NEWS: update + +2002-03-06 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03084] A temporary file remains when pipe + 'v' + * proto.h (saveBufferDelNum): deleted + * file.c (saveBufferDelNum): deleted + * file.c (saveBuffer): saveBufferDelNum() renamed + * main.c (vwSrc): tmpfname() recorded as fileToDelete + use saveBuffer() instead of saveBufferDelNum() + +2002-03-04 Fumitoshi UKAI <ukai@debian.or.jp> + + * doc-jp/MANUAL.html: add note about file:/cgi-bin + * doc/MANUAL.html: ditto + +2002-03-01 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03073] frame + image + * file.c (loadGeneralFile): w3m_dump & ~DUMP_FRAME + * file.c (loadImageBuffer): comment out if (frame_source) + +2002-03-01 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03072] Proxy-Authorization (Re: Re: https through proxy) + * file.c (loadGeneralFile) delete Proxy-Authorization set here + * fm.h (HR_FLAG_PROXY): added + * main.c (MAIN): need "Basic " for proxy_auth_cookie + * url.c (HTTPrequest): add seen_proxy_auth + if proxy and no Proxy-Authorization: header seen and + has proxy_auth_cookie, use it + * url.c (openURL): hr->flag |= HR_FLAG_PROXY + + * file.c (loadGeneralFile) comment indent fix + * html.c (TagMAP): ditto + +2002-02-28 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03070] Re: https through proxy + * url.c (openURL): pass extra_header (Proxy-Authorization:) + +2002-02-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03067] Re: https through proxy + * file.c (loadGeneralFile): comment out ssl_get_certificate here + +2002-02-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 00691] Re: w3m 0.2.5.1 fails to recognize '<dt id="XXX">' + * html.c: ATTR_CORE for dt, dd, blockquote, caption + +2002-02-26 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03064] Re: SELECTED form value + * form.c (formResetBuffer): set inititial value + +2002-02-23 HIDAI Ken-ichi <hidai@nmn.jp> + + * [w3m-dev 03060] doc-jp/README.migemo + * doc-jp/README.migemo: added + +2002-02-23 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03059] table + hborder + rowspan + valign=bottom + * table.c (renderTable): add case BORDER_NOWIN: + +2002-02-20 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03057] Re: Bug#134350: w3m: Forgets (http auth) login information upon reload (or almost anything else) + * etc.c (find_auth): add `file' + check file as well + * etc.c (find_auth_cookie): add `file' + * etc.c (add_auth_cookie): add `file' + * file.c (AuthBasicCred): add "Basic " + * file.c (AuthDigestCred): add "Digest " + * file.c (getAuthCookie): if h_auth == NULL, get recorded cookie + * file.c (get_auth_cookie): get recorded cookie + * file.c (loadGeneralFile): don't clear add_auth_cookie_flag + by redirection + add_auth_cookie if authorization is required and passed + * fm.h (auth_cookie): add file + * ftp.c (openFTP): follow change auth_cookie + * proto.h (get_auth_cookie): added + * proto.h (find_auth_cookie): add `file' + * proto.h (add_auth_cookie): add `file' + * url.c (openURL): get_auth_cookie + +2002-02-20 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03058] mailer + * NEWS: rc: mailer + * fm.h (Mailer): change default + * main.c (MAIN): $MAILER will be used as "mailer" + * main.c (followA): if "mailer" defined & simple mailto: URL, + use mailer instead of w3mmail.cgi + * main.c (cmd_loadURL): ditto + * rc.c (params6): remove ifndef USE_W3MMAILER + +2002-02-15 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03056] DISPLAY_IMAGE, STOP_IMAGE don't work. + * main.c (dispI): fix DISPLAY_IMAGE + * main.c (stopI): fix STOP_IMAGE + +2002-02-14 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03055] LIB_DIR -> w3m_lib_dir() + * image.c (getCharSize): s/LIB_DIR/w3m_lib_dir()/ + * image.c (openImgdisplay): ditto + * image.c (getImageSize): ditto + +2002-02-14 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03048] garbage of images on the right edge of termical. + * display.c (redrawLineImage): fix width calculation + +2002-02-14 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03053] Re: SSL indicator + * main.c (dump_extra): Output SSL certificate. + +2002-02-12 Katsumi Yamaoka <yamaoka@jpl.org> + + * [w3m-dev 03038] LDFLAGS + * XMakefile: refer to LDFLAGS when linking + * configure: add -ldflags=* + +2002-02-12 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> + + * [w3m-dev 03036] + * display.c (displayBuffer): ifdef USE_SSL + +2002-02-10 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03034] check buf + * frame.c (frame_download_source): buf->ssl_certificate can be used + only if buf != NULL && buf != NO_BUFFER + +2002-02-10 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03033] SSL indicator + * display.c (displayBuffer): show SSL indicator + +2002-02-08 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> + + * [w3m-dev 03025] fix image loading on EWS4800 + * image.c (loadImage): exit if symlink failed + exit if fopen failed + +2002-02-08 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03022] SSL certificates of frame body + * frame.h (frame_body): add ssl_certificate + * frame.c (frame_download_source): save ssl_certificate + * map.c (append_frame_info): display ssl_certificate of frame_body + +2002-02-08 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03021] Bug#132934: w3m should recognize file:/uris + in chkURLBuffer function + * main.c (chkURLBuffer): add "file:" + +2002-02-08 Yuji Abe <cbo46560@pop12.odn.ne.jp> + + * [w3m-dev 03017] URI scheme is case insensitive + * url.c (searchURIMethods): s/strcmp/strcasecmp/ + +2002-02-08 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 03011] segmentation fault on <input> tag without <form> + * file.c (process_input): tmp initialization fix + +2002-02-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [emacs-w3m:02733] for emacs-w3m better rendering with inline image + * main.c (MAIN): activeImage = TRUE when -halfdump & display_image=1 + +2002-02-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 03006] fix form order in table + * file.c (process_form): static + fix form index order + method should be quoted + * file.c (process_form): added + * file.c (HTMLlineproc2body): add form_id + * html.c (ALST_FORM_INT): added + * html.c (form_int): update + +2002-02-07 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 03005] fix Bad cert ident + * istream.c (ssl_match_cert_ident): added + * istream.c (ssl_check_cert_ident): use ssl_match_cert_ident() + +2002-02-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02999] don't ask accept bad cert when background downloading + * file.c (getAuthCookie): if QuietMessage, return NULL + * file.c (inputAnswer): if QuietMessage, input "n" + +2002-02-05 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02991] form support in w3m -halfdump foo.html|w3m -halfload + * fm.h (DUMP_HALFEXTRA): deleted + * proto.h (process_select): return Str + * file.c (process_img): process_form() fix + * file.c (process_input): process_form() fix + * file.c (process_select): return Str + process_form() fix + * file.c (process_textarea): process_form() fix + * file.c (process_form): support -halfdump + * file.c (HTMLtagproc1): delete case HTML_FORM_INT, HTML_N_FORM_INT + process_{form,select,textarea}() fix + * file.c (HTMLlineproc2body): support -halfload + HTML_INTERNAL, HTML_N_INTERNAL, + HTML_FORM_INT, HTML_FORM_INT, + HTML_TEXTAREA_INT, HTML_N_TEXTAREA_INT, + HTML_SELECT_INT, HTML_N_SELECT_INT, + HTML_OPTION_INT, HTML_TITLE_ALT + * file.c (print_internal_information): fix -halfdump + * file.c (loadHTMLstream): no DUMP_HALFEXTRA + * html.h: add HTML_INTERNAL, HTML_N_INTERNAL, + HTML_SELECT_INT, HTML_N_SELECT_INT, + HTML_OPTION_INT, HTML_TEXTAREA_INT, HTML_N_TEXTAREA_INT + * html.c (ALST_TEXTAREA_INT): added + * html.c (ALST_SELECT_INT): added + * html.c: add <internal>, </internal>, <select_int>, </select_int> + <option_int>, <textarea_int>, </textarea_int> + * main.c (MAIN): delete -halfdump_extra + dont output <pre> by -halfdump + * table.c (feed_table_tag): process_{form,select}() fix + add case HTML_INTERNAL, HTML_N_INTERNAL, + HTML_SELECT_INT, HTML_N_SELECT_INT, + HTML_OPTION_INT, HTML_TEXTAREA_INT, HTML_N_TEXTAREA_INT, + * tagtable.tab: add internal, /internal, select_int, /select_int + option_int, textarea_int, /textarea_int + +2002-02-05 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02990] + * file.c (doFileCopy): use Strfgets() instead of fgets() + * file.c (doFileSave): ditto + +2002-02-05 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02989] + * file.c (inputAnswer): use Strfgets() instead of fgets() + +2002-02-04 TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> + + * [w3m-dev 02986] + * file.c (print_internal_information): Don't print boundaries. + Use henv->f instead of stdout. + +2002-02-04 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02984] inline image improvements and cleanups + * config.h.dist (HAVE_SYMLINK) added + * config.h.dist (HAVE_LSTAT): added + * configure: symlink() check + * configure: lstat() check + * fm.h (maxLoadImage): added + * form.c (form_write_from_file): s/HAVE_READLINK/HAVE_LSTAT/ + * image.c: include <sys/stat.h> + * image.c (MAX_LOAD_IMAGE): default 8 + * image.c (max_load_image): deleted + * image.c (n_load_image): added + * image.c (showImageProgress): added + * image.c (loadImage): check load image count + s/HAVE_READLINK/HAVE_LSTAT/ (HAVE_SYMLINK) + showImageProgress + * local.c: include <sys/stat.h> + s/HAVE_READLINK/HAVE_LSTAT/ + * rc.c (CMT_MAX_LOAD_IMAGE): added + * rc.c (max_load_image): added + * doc/README.img: update + * doc-jp/README.img: update + + * file.c (process_img): pre_int fix + +2002-02-04 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02985] inputAnswer() and no "ssl_forbid_method" + * file.c (inputAnswer): buf size is 80 + * url.c (openSSLHandle): if old_ssl_forbid_method == ssl_forbid_method + ssl path is not modified + +2002-02-04 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02980] Re: code_to_str not found ifndef JP_CHARSET + * backend.c (get_mime_charset_name): used only ifdef JP_CHARSET + +2002-02-04 Kazuhiko <kazuhiko@archi.kyoto-u.ac.jp> + + * [w3m-dev 02979] code_to_str not found ifndef JP_CHARSET + * file.c (print_internal_information): ifdef JP_CHARSET + +2002-02-03 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02967] parallel image downloading + * fm.h (ImageCache): add touch, pid + * image.c (getCharSize): retry fscanf + * image.c (drawImage): retry fflush + * image.c (MAX_LOAD_IMAGE): added, default 4 + * image.c (image_cache): change to ImageCache** + * image.c (image_lock): added + * image.c (load_image_handler): signal SIGUSR1 + * image.c (load_image_next): signal SIGUSR1 + * image.c (loadImage): parallel image downloading + * image.c (getImage): initialize touch, pid + * image.c (getImageSize): return value is TRUE or FALSE + retry fscanf + +2002-02-03 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02970] multiple -lnsl -lsocket + * configure: merge bsdlib and extlib detection, use extlib only + add ldflags to extlib + (SYS_LIBRARIES): remove extlib + (LOCAL_LIBRARIES): exlib only + +2002-02-03 TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> + + * [w3m-dev 02964] Print data of forms when halfdump option is set + * backend.c (print_headers): print w3m-current-url and w3m-base-url + * backend.c (print_formlist): deleted + * backend.c (internal_get): remove "if (buf->formlist) {}" + * file.c (print_internal_information): added + * file.c (loadHTMLstream): if halfdump, print_internal_information + if w3m_backend, print_internal_information + * fm.h (DUMP_HALFEXTRA): added + * main.c (-halfdump_extra): added + +2002-02-01 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + + * [w3m-dev 02972] #include "config.h" + * url.c, mktable.c: fix the order of including files + +2002-02-01 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02968] fix problem with Netscape-Enterprise WWW-authenticate + * file.c (findAuthentication): token is case insensitive + +2002-02-01 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02961] halfdump image is not consistent + * file.c (flushline): check f + * file.c (do_blankline): fix blanklink conditions + +2002-02-01 Fumitoshi UKAI <ukai@debian.or.jp> + + * gcc -Wall -Werror safe + * anchor.c (addMultirowsImg): unused variable: fi + * display.c (redrawLineImage): unused variable: ncol + * file.c (process_img): uninitialized variables: r2, ni, w0, i0, ismap + unused variable: url, ext + * file.c (loadHTMLstream): need volatile image_flag + * image.c (image_index): int + * image.c (getCharSize): need prototype + * image.c (getImage): uninitialized variable: key + return NULL + * map.c (follow_map_menu): used only USE_IMAGE: px, py, map + * map.c (newMapArea): used only USE_IMAGE: p, i, max + * proto.h (addMultirowsImg): added + * w3mimgdisplay.c (main): format string fix + * w3mimgdisplay.c (DrawImage): need (Pixmap) cast + + * inflate.c: indent + +2002-02-01 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * w3m-img merge (w3m-0.2.4+cvs-1.278-img-2.2.patch.gz) + * NEWS: w3m-img merge + * .cvsignore: add w3mimgdisplay, w3mimgsize + * XMakefile: add image.c to SRCS + add image.o to OBJS + add IMGDISPLAY, IMGSIZE + * config.h.dist: USE_IMAGE, IMGSIZE, IMGDISPLAY + * configure: add find_imlib + ask use_image + (config.h) add $imgtarget to EXT_TARGETS + $def_use_image + IMGSIZE, IMGDISPLAY + * fm.h (MAX_IMAGE): added + * fm.h (DEFAULT_PIXEL_PER_CHAR): fix for USE_IMAGE + * fm.h (DEFAULT_PIXEL_PER_LINE): added + * fm.h (B_REDRAW_IMAGE): added + * fm.h (IMG_FLAG_SKIP): added + * fm.h (IMG_FLAG_AUTO): added + * fm.h (IMG_FLAG_START): added + * fm.h (IMG_FLAG_STOP): added + * fm.h (IMG_FLAG_NEXT): added + * fm.h (IMG_FLAG_UNLOADED): added + * fm.h (IMG_FLAG_LOADED): added + * fm.h (IMG_FLAG_ERROR): added + * fm.h (MapArea): added + * fm.h (MapList): s/urls/alts/, add area + * fm.h (ImageCache): added + * fm.h (Image): added + * fm.h (Anchor): add image + * fm.h (Buffer): add imarklist, image_flag, need_reshape + * fm.h (RG_FRAME_SRC): added + * fm.h (ALIGN_MIDDLE): added + * fm.h (ALIGN_TOP): added + * fm.h (ALIGN_BOTTOM): added + * fm.h (QuietMessage): added + * fm.h (Imgdisplay): added + * fm.h (Imgsize): added + * fm.h (activeImage): added + * fm.h (displayImage): added + * fm.h (autoImage): added + * fm.h (useExtImageViewer): added + * fm.h (image_source): added + * fm.h (view_unseenobject): change default if USE_IMAGE + * fm.h (set_pixel_per_char): added + * fm.h (pixel_per_line): added + * fm.h (set_pixel_per_line): added + * fm.h (image_scale): added + * proto.h (dispI): added + * proto.h (stopI): added + * proto.h (deleteImage): added + * proto.h (getAllImage): added + * proto.h (loadImage): added + * proto.h (getImage): added + * proto.h (getImageSize): added + * proto.h (process_img): add width arg + * proto.h (loadImageBuffer): added + * proto.h (follow_map_menu): add a_img arg + * proto.h (getMapXY): added + * proto.h (newMapArea): added + * proto.h (touch_cursor): added + * proto.h (cURLcode): added + * proto.h (initImage): added + * proto.h (termImage): added + * proto.h (addImage): added + * proto.h (drawImage): added + * proto.h (clearImage): added + * anchor.c (addMultirowsImg): added + * buffer.c (discardBuffer): deleteImage if USE_IMAGE + * buffer.c (reshapeBuffer): buf->need_reshape check + * display.c (fmTerm): if activeImage, stop load image + * display.c (fmInit): if displayImage, initImage + * display.c (image_touch): added + * display.c (draw_image_flag): added + * display.c (redrawLineImage): added + * display.c (displayBuffer): buf->need_reshape = TRUE + mode == B_REDRAW_IMAGE + image flag checks + force redraw image in mode == B_REDRAW_IMAGE + displayBuffer if need reshape + drawImage + * display.c (redrawNLine): redrawLineImage + * display.c (redrawLineImage): added + * display.c (disp_message_nsec): return immediately if QuietMessage + * etc.c (reset_signals): ignore SIGUSR1 + * file.c (frame_source): added + * file.c (_MoveFile): added + * file.c (cur_baseURL): added + * file.c (cur_document_code): added + * file.c (cur_iseq): added + * file.c (loadGeneralFile): fix fmInitialized and prevtrap checks + save cur_baseURL + image_source load + loadImageBuffer for "image/*" + frame_source flag + fix b->type when proc is loadImageBuffer + * file.c (process_img): add width arg + parse height and width attr, align + fix for inline-image + * file.c (process_input): fix for form <input type="image"> + * file.c (HTMLtagproc1): pass h_env->limit to process_img() + fix <img_alt> for inline-image + save cur_baseURL + * file.c (HTMLlineproc2body): fix <img_alt> for inline-image + * file.c (loadHTMLstream): fix for inline-image + fix fmInitialized and prevtrap checks + save cur_document_code + save image_flag + * file.c (loadGopherDir): save cur_document_code + fix fmInitialized and prevtrap checks + * file.c (loadImageBuffer): added for inline-image + * file.c (save2tmp): fix fmInitialized and prevtrap checks + * frame.c (frame_download_source): set RG_FRAME_SRC flag + image check + * funcname.tab (DISPLAY_IMAGE): added + * funcname.tab (STOP_IMAGE): added + * html.c (ALST_IMG): add align, ismap + * html.c (ALST_AREA): add shape, coords + * html.c (ALST_IMG_ALT): add width, height, usemap, ismap, hseq, + xoffset, yoffset, top_margin, bottom_margin + * html.c (AttrMap): add shape, coords, ismap, xoffset, yoffset + * html.h (ATTR_SHAPE): added + * html.h (ATTR_COORDS): added + * html.h (ATTR_ISMAP): added + * html.h (ATTR_XOFFSET): added + * html.h (ATTR_YOFFSET): added + * html.h (ATTR_TOP_MARGIN): added + * html.h (ATTR_BOTTOM_MARGIN): added + * html.h (SHAPE_UNKNOWN): added + * html.h (SHAPE_DEFAULT): added + * html.h (SHAPE_RECT): added + * html.h (SHAPE_CIRCLE): added + * html.h (SHAPE_POLY): added + * image.c: added + * main.c (fversion): add USE_IMAGE + * main.c (fusage): -ppl option + * main.c (MAIN): set_pixel_per_char if ppc specified + -ppl option + loadImage + * main.c (pushBuffer): deleteImage + * main.c (quitfm): termImage + * main.c (selBuf): deleteImage + * main.c (followA): fix for inline-image and map area + * main.c (query_from_followform): getMapXY() + * main.c (setOpt): displayBuffer B_REDRAW_IMAGE + * main.c (follow_map): fix calculate x, y + * main.c (dispI): added + * main.c (stopI): added + * map.c: include <math.h> + * map.c (inMapArea): added + * map.c (follow_map_menu): add a_img arg to handle inline-image + * map.c (follow_map_panel): use MapArea + * map.c (getMapXY): added + * map.c (newMapArea): added + * menu.c (smChBuf): deleteImage + * parsetagx.c (toAlign): align top, bottom, middle + * rc.c (P_SCALE): added + * rc.c (CMT_PIXEL_PER_LINE): added + * rc.c (CMT_DISP_IMAGE): added + * rc.c (CMT_AUTO_IMAGE): added + * rc.c (CMT_EXT_IMAGE_VIEWER): added + * rc.c (CMT_IMAGE_SCALE): added + * rc.c (CMT_IMGDISPLAY): added + * rc.c (CMT_IMGSIZE): added + * rc.c (show_param): P_PIXELS + * rc.c (set_param): P_PIXELS + * rc.c (sync_with_option): initImage + * rc.c (to_str): P_PIXELS + * table.c (feed_table_tag): fix <img> for inline-image + * tagtable.tab (image): added + * terms.c (wgetch): retry read when EINTR or EAGAIN + * terms.c (touch_cursor): added + * w3mimgdisplay.c: added + * w3mimgsize.c: added + * doc/README.func (DISPLAY_IMAGE): added + * doc/README.func (STOP_IMAGE): added + * doc/README.img: added + * doc-jp/README.func (DISPLAY_IMAGE): added + * doc-jp/README.func (STOP_IMAGE): added + * doc-jp/README.img: added + * scripts/w3mhelp.cgi.in: show dispI, stopI + * scripts/multipart/multipart.cgi.in: inline image support + +2002-02-01 Fumitoshi UKAI <ukai@debian.or.jp> + + * version.c.in: 0.2.5+cvs + +2002-01-31 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.2.5 + * version.c.in: update + * doc/README: version 0.2.5, release date + * doc-jp/README: ditto + * NEWS: update + +2002-01-31 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02960] inflate without memmove() + * inflate.c: rewrite without memmove() + +2002-01-31 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * inflate.c: support raw deflate without zlib header + +2002-01-31 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02955] compression_decoders error message + * file.c (uncompress_stream): redirect stderr + * inflate.c (main): print error message + +2002-01-31 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02949] fix for #undef USE_MIGEMO + * main.c (dispincsrch): need #ifdef USE_MIGEMO + +2002-01-31 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02946] toggle migemo + * fm.h (migemo_active): added + * proto.h (inputLineHistSearch): add arg `prop' to incrfunc() + * linein.c (inputLineHistSearch): ditto + * main.c (isrch): ditto + * main.c (dispincsrch): ditto + C-\ toggle migemo + underline when migemo is active + * search.c (migemo_active): deleted + * search.c (migemo_running): added + * search.c (init_migemo): migemo_running + * search.c (migemostr): ditto + * search.c (forwardSearch): migemo_active > 0 + * search.c (backwardSearch): ditto + +2002-01-31 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02942] Digest qop=auth support + * file.c (http_auth): add request to cred() arg + * file.c (AuthBasicCred): ditto + * file.c (AuthDigestCred): ditto + * file.c (AuthDigestCred): support algorithm=MD5, MD5-sess + qop=auth, auth-int + * file.c (qstr_unquote): return NULL if input is NULL + * file.c (none_auth_param): added + * file.c (findAuthentication): skip weak or unknown auth + * file.c (getAuthCookie): add request to arg + * file.c (loadGeneralFile): add request to getAuthCookie() + +2002-01-31 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02934] add auth cookie with unquoted realm + * file.c (loadGeneralFile): need unquote realm + +2002-01-31 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02933] segmentation fault when w3m -dump https: + * file.c (readHeader): use inputAnswer() + * file.c (getAuthCookie): remove term_cbreak() + * file.c (checkOverWrite): use inputAnswer() + * file.c (inputAnswer): added + * istream.c (ssl_get_certificate): use inputAnswer() + * main.c (qquitfm): change prompt + * proto.h (inputAnswer): added + +2002-01-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02931] use POST in multipart.cgi + * scripts/multipart/multipart.cgi.in: support POST method + +2002-01-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02930] Re: fixed w3mmail.cgi + * scripts/w3mmail.cgi.in (lang_header_default): [=_?] should be encoded + * scripts/w3mmail.cgi.in (lang_body_default): '=' should be encoded + +2002-01-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02929] Re: fixed w3mmail.cgi + * file.c (openPagerBuffer): use content_charset as document_code + * file.c (getNextPage): code is document_code or DocumentCode + +2002-01-30 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02928] RFC2617: HTTP Digest authentication + * NEWS: RFC2617: HTTP Digest authentication + * config.h.dist (USE_DIGEST_AUTH): added + * configure (use_digest_auth): added, enabled when openssl found + (because it used openssl/md5.h) + * file.c (auth_param): added + * file.c (http_auth): added + * file.c (extract_auth_val): added + * file.c (qstr_unquote): added + * file.c (extract_auth_param): added + * file.c (get_auth_param): added + * file.c (AuthBasicCred): added + * file.c (digest_hex): added + * file.c (AuthDigestCred): added + * file.c (basic_auth_param): added + * file.c (digest_auth_param): added + * file.c (www_auth): added + * file.c (findAuthentication): added + * file.c (getAuthCookie): rewrite, use http_auth + * file.c (loadGeneralFile): HRequest hr + * file.c (loadGeneralFile): use findAuthentication, new getAuthCookie + * proto.h (HTTPrequestMethod): added + * proto.h (HTTPrequestURI): added + * proto.h (openURL): add `hr' arg + * url.c (HTTPrequestMethod): added + * url.c (HTTPrequestURI): added + * url.c (HTTPrequest): use HTTPrequestMethod and HTTPrequestURI + * url.c (openURL): add `hr' arg + +2002-01-30 SASAKI Takeshi <sasaki@ct.sakura.ne.jp> + + * [w3m-dev 02927] mailto: POST method with w3mmail.cgi + * file.c (loadGeneralFile): pass request even if SCM_UNKNOWN + (for external URI loader) + * scripts/w3mmail.cgi.in: support POST method + +2002-01-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02926] fixed w3mmail.cgi + * scripts/w3mmail.cgi.in: dont MIME encode for preview + * scripts/w3mmail.cgi.in (lang_body): add 7bit/8bit flag arg + * scripts/w3mmail.cgi.in: fix hidden from value + * scripts/w3mmail.cgi.in (lang_setup): check $LC_ALL, $LC_CTYPE + * scripts/w3mmail.cgi.in (lang_header_default): fix MIME encode word + +2002-01-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02920] don't use inttypes.h and/or stdint.h + * mktable.c: remove inttypes.h, uintptr_t, use unsigned long instead + * configure: remove inttypes.h detection + * config.h.dist: remove HAVE_INTTYPES_H + +2002-01-29 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02921] use inttypes.h instead of stdint.h + * configure: check inttypes.h instead of stdint.h + * config.h.dist: s/STDINT_H/INTTYPES_H/ + * mktable.c: use inttypes.h instead of stdint.h + +2002-01-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02919] no need of width + * scripts/w3mmail.cgi.in: no need width=80 for header field name + +2002-01-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02919] wrong table width calculation + * table.c (set_table_matrix0): refine width calculation + +2002-01-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02918] fixed scripts/w3mmail.cgi.in + * scripts/w3mmail.cgi.in: add width=80 for header field name + * scripts/w3mmail.cgi.in (url_unquote): use pack instead of chr + +2002-01-27 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02914] + * history.c (copyHist): added + * history.h (copyHist): ditto + * main.c (goURL0): copyHist(URLHist), push current and anchor URLs + default set by DefaultURLString + +2002-01-26 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02913] wrong table width calculation + * table.c (set_table_matrix0): refine width calculation + +2002-01-26 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02875] rendering a table with inconsistent colspan,rowspan + * table.c (feed_table_tag): don't clear HTT_X|HTT_Y + instead, if set these flags, break the loop + +2002-01-26 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02909] wrong table width calculation (sf.net Bug#506949) + * table.c (correct_table_matrix4): added + * table.c (set_table_matrix0): use correct_table_matrix4() + +2002-01-25 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02908] document code of frame + * frame.c (renderFrame): save document_code if JP_CHARSET + +2002-01-25 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02904] + * rc.c (N_STR): use cpp stringification + +2002-01-25 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02902] mouse inactive after calling some command with ALARM. + * main.c (SigAlarm): mouse_inactive() and mouse_active() + +2002-01-25 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02901] Default URL for GOTO* + * fm.h (DEFAULT_URL_*): added + * fm.h (DefaultURLString): added + * main.c (cmd_loadURL): add arg `referer' + * main.c (goURL0): 2nd arg is `relative' flag + check DefaultURLString + if relative, then current and referer is set + * main.c (ldhelp): cmd_loadURL arg changes + * main.c (deletePrevBuf): ditto + * main.c (cmd_loadBuffer): ditto + * main.c (adBmark): ditto + * main.c (follow_map): ditto + * rc.c (CMT_DEFAULT_URL): added + * rc.c (defaulturls): added + * rc.c (params9): add "default_url" + +2002-01-25 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02901] DNS_ORDER_* + * fm.h (DNS_ORDER_*): added + * rc.c (dnsorders): use N_S(DNS_ORDER_*) + +2002-01-25 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02901] ACCEPT_BAD_COOKIE_* + * file.c (readHeader): accept_bad_cookie is one of ACCEPT_BAD_COOKIE_* + * fm.h (PERHAPS): deleted + * fm.h (ACCEPT_BAD_COOKIE_*): added + * rc.c (n_s): added + * rc.c (N_S): added + * rc.c (badcookiestr): use N_S(ACCEPT_BAD_COOKIE_*) + +2002-01-24 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02896] fid attr value should be in sequence + * table.c (feed_table_tag): s/line/""/ for HTML_FORM,HTML_N_FORM + +2002-01-24 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02894] Re: goURL + * file.c (HTMLtagproc1): s/goURL/gorURL/ + * keybind.c (EscKeymap): M-u = GOTO_RELATIVE + * keybind_lynx.c (EscKeymap): ditto + * doc/keymap.default: ditto + * doc/keymap.lynx: ditto + * doc-jp/keymap.default: ditto + * doc-jp/keymap.lynx: ditto + * main.c (MAIN): add $HTTP_HOME or $WWW_HOME to history + * main.c (MAIN): add history even if it is local file or local cgi + * main.c (goURL0): change args, def_url -> current + * main.c (goURL0): delete ParsedURL *b_url + * main.c (goURL0): add Buffer *cur_buf + * main.c (goURL0): if current is supplied, use its URL as default + * main.c (goURL0): add URL to history if loadURL succeeded + * main.c (goURL): change args for goURL0() + * main.c (gorURL): ditto + +2002-01-23 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02889] fix scripts/multipart/multipart.cgi.in + * scripts/multipart/multipart.cgi.in: return "" instead of next + +2002-01-23 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02885] Re: goURL + * funcname.tab (GOTO_RELATIVE): added + * main.c (goURL0): renamed from goURL + don't add http:// here, if base URL is NULL, cmd_loadURL() + will add http:// when necessary + * main.c (goURL): go to URL with current URL + * main.c (gorURL): go to relative URL + * proto.h (gorURL): added + * doc/README.func (GOTO_RELATIVE): added + * doc-jp/README.func (GOTO_RELATIVE): ditto + +2002-01-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 00670] GOTO behavior change + * main.c (goURL): default URL is current URL + if retry_http specified, and inputed URL is not absolute URL + add http:// to top of url + + * linein.c (InputKeymap): C-w as backword-kill-word + +2002-01-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02880] URI_PATTERN + * url.c (URI_PATTERN): better match for % hex hex + * url.c (chkExternalURIBuffer): don't use URI_PATTERN as format string + +2002-01-22 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02879] reset signals + * etc.c (reset_signals): added + * etc.c (mySystem): use reset_signals() + * file.c (uncompress_stream): use reset_signals() + * proto.h (reset_signals): added + * search.c (init_migemo): kill by SIGKILL + * search.c (open_migemo): use reset_signals() + +2002-01-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * url.c (URI_PATTERN): remove \ + +2002-01-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02878] fix regexp [-...], [...-], []...] + * regexp.c (newRegex0): if first char is `-' or ']' after '[', + it isn't meta char. + if last char in [..] is `-', it isn't meta char. + +2002-01-22 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02877] some fixes for urimethodmap + * config.h.dist (RC_DIR): remove tailing / + * configure (mailer): if use_w3mmailer = y, don't ask mailer + * configure (RC_DIR): remove tailing / + * fm.h (Mailer): ifndef USE_W3MMAILER + * main.c (MAIN): ifndef USE_W3MMAILER getenv("MAILER") + * rc.c ("mailer"): ifndef USE_W3MMAILER + * regex.c (newRegex0): \ escape kanji chars + * url.c (searchURIMethods): need escape for - + * scripts/w3mmail.cgi.in: move $url, $qurl + * scripts/w3mmail.cgi.in: url_unquote $to + +2002-01-21 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02876] w3mmail.cgi.in backport from w3mmee + * action='file://$0' + * don't add \n to $body's tail + * $body =~ s/\r+\n/\n/g; + * s/@cmd/@opt/ + * url_unquote: + should be unquote too + +2002-01-18 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02873] delete "decode MIME-body" in doc{,-jp}/README + * doc-jp/README: delete "decode MIME-body" + * doc/README: ditto + +2002-01-18 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> + + * [w3m-dev 02872] EWS4800 sh doesn't work ${param-word} + * configure (use_migemo): change migemo URL + * configure (def_migemo_command): fix for EWS4800 + * configure (def_image_viewer): ditto + * configure (def_audio_player): ditto + +2002-01-18 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02871] ignore SIGCHLD (for at least EWS4800) + * search.c (open_migemo): signal(SIGCHLD, SIG_IGN); + +2002-01-18 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02870] don't kill migemo by SIGINT + * main.c (w3m_exit): init_migemo() to kill migemo + * search.c: #include <unistd.h> + * search.c (migemo_active): added + * search.c (migemo_pid): added + * search.c (init_migemo): migemo_active = use_migemo + * search.c (init_migemo): kill migemo_pid + * search.c (open_migemo): s/pid/migemo_pid/ + * search.c (open_migemo): setpgrp() + * search.c (open_migemo): s/use_migemo/migemo_active/ + * search.c (migemostr): ditto + * search.c (forwardSearch): ditto + * search.c (backwardSearch): ditto + +2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02867] mark URL for external URIs + * main.c (chkURLBuffer): chkExternalURIBuffer() + * proto.h (chkExternalURIBuffer): added + * url.c (chkExternalURIBuffer): added + +2002-01-17 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02866] + * search.c: #include <signal.h> + * search.c (open_migemo): ignore SIG_INT for migemo process + * search.c (open_migemo): close_tty() + * search.c (open_migemo): use execl() instead of system() + +2002-01-17 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02865] + * search.c (open_migemo): add flush_tty() + +2002-01-17 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02864] def_migemo_command + * configure (def_migemo_command): default is + migemo -t egrep /usr/local/share/migemo/migemo-dict + +2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02863] discard migemo error message + * search.c (open_migemo): close stderr + +2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02862] SIGPIPE for migemo support + * main.c (SigPipe): added + * main.c (MAIN): signal(SIGPIPE, ) + * search.c: #include <errno.h> + * search.c (migemostr): check fflush() error + * search.c (migemostr): check result string (empty is err) + * search.c (migemostr): if error occured, disable use_migemo + +2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02861] IPv6 configuration check + * configure: force "#define INET6" if socket(AF_INET6, SOCK_STREAM, 0) + failed but use_ipv6=y in config.param + +2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02859] + * config.h.dist (DEF_MIGEMO_COMMAND): added + * configure (DEF_MIGEMO_COMMAND): added + * fm.h (migemo_command): initial value is DEF_MIGEMO_COMMAND + * main.c (migemostr): remove here, move search.c + * main.c (srchcore): dont migemostr() here + * proto.h (init_migemo): added + * rc.c (sync_with_option): init_migemo() + * search.c (init_migemo): added + * search.c (open_migemo): added + * search.c (migemostr): communicate background migemo + * search.c (forwardSearch): if regexCompile for migemostr failed, + try original str + * search.c (backwardSearch): ditto + +2002-01-17 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02855] + * main.c (dispincsrch): for C-s C-s, revert some changes + +2002-01-17 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02854] highlight for incremental search + * NEWS: highlight for incremental search + * display.c (EFFECT_MARK_START): added + * display.c (EFFECT_MARK_END): added + * display.c (EFFECT_MARK_START_C): added + * display.c (EFFECT_MARK_END_C): added + * display.c (EFFECT_MARK_START_M): added + * display.c (EFFECT_MARK_END_M): added + * display.c: define_effect for MARK_{START,END} + * display.c (mark_mode): added + * display.c (redrawLine): if mark_mode + * display.c (do_effects): do_effect2(PE_MARK, ...) + * display.c (do_effects): do_effect1(PE_MARK, ...) + * fm.h (P_EFFECT): changed to 0x01ff + * fm.h (PE_MARK): moved + * fm.h (mark_color): added + * linein.c (inputLineHistSearch): incrfunc(int ch, Str str) + * main.c (clear_mark): added + * main.c (dispincsrch): remove arg `x', `y' + * main.c (dispincsrch): move SAVE_BUFPOSITION() + * main.c (srch): if (result & SR_FOUND) clear_mark() + * main.c (cmd_mark): PE_MARK + * main.c (nextMk): s/PM_MARK/PE_MARK/ + * main.c (prevMk): s/PM_MARK/PE_MARK/ + * proto.h (inputLineHistSearch): change prototype incfunc() + * rc.c (CMT_MARK_COLOR): added + * rc.c (params2): add "mark_color" + * search.c (set_mark): added + * search.c (forwardSearch): use set_mark() + * search.c (backwardSearch): use set_mark() + +2002-01-16 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02851] + * regex.c (newRegex0): fix return NULL; + +2002-01-16 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> + + * [w3m-dev 02847] + * menu.c (initSelectMenu): use /* */ instead of // + +2002-01-16 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02846] + * regex.c (newRegex0): check msg + +2002-01-16 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02845] + * regex.c (newRegex0): check regex->storage[STORAGE_MAX] + +2002-01-16 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02843] w3mmail.cgi.in update + * scripts/w3mmail.cgi.in: add $SENDMAIL_OPT + change html + +2002-01-16 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02841] migemo patch + * NEWS: migemo support + * config.h.dist (USE_MIGEMO): added + * configure: add use_migemo + * fm.h (use_migemo): added + * fm.h (migemo_command: added + * main.c (fversion): add "migemo" + * main.c (migemostr): added + * main.c (srchcore): if use_migemo, use migemostr + * rc.c (CMT_USE_MIGEMO): added + * rc.c (CMT_MIGEMO_COMMAND): added + * rc.c (params3): add use_migemo, migemo_command + +2002-01-16 Fumitoshi UKAI <ukai@debian.or.jp> + + * main.c (fversion): add "external-uri-loader,w3mmailer" + +2002-01-16 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02840] + * scripts/w3mmail.cgi.in: use LOCAL_COOKIE + * scripts/w3mmail.cgi.in: no need HTTP response header + * scripts/w3mmail.cgi.in: fix typo $nkf_NKF + * scripts/w3mmail.cgi.in: eval { use NKF; } is perl5ism + * scripts/multipart/multipart.cgi.in: ditto + +2002-01-16 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02835] + * rc.c: move label_topline, nextpage_topline from param3 to param1 + param7 is SSL Setting + +2002-01-15 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02834] mailto: use external program + * NEWS: use w3mmail.cgi for mailto: URL + * configure: add use_w3mmailer + * frame.c (createFrameFile): ifndef USE_W3MMAILER + * main.c (followA): ifndef USE_W3MMAILER + * main.c (cmd_loadURL): ifndef USE_W3MMAILER + * url.c (schemetable): ifndef USE_W3MMAILER, mailto: become SCM_UNKNOWN + * url.c (parseURL2): ifndef USE_W3MMAILER + * url.c (_parsedURL2Str): ifndef USE_W3MMAILER + * url.c (default_urimethods): added + * url.c (searchURIMethods): check default_urimethods + * scripts/Makefile: add w3mmail.cgi + * scritps/w3mmail.cgi.in: added + * scripts/.cvsignore: ignore w3mmail.cgi + +2002-01-15 Fumitoshi UKAI <ukai@debian.or.jp> + + * file.c (loadGeneralFile): return NULL, not NO_BUFFER + +2002-01-15 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02833] ssl_forbid_method in SSL Setting + * rc.c (params7): ssl_forbid_method moved here + * rc.c (params8): ssl_forbid_method removed here + * rc.c (sections): params7 ifdef USE_SSL + +2002-01-15 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02832] external URI loader support + * NEWS: support external URI loader + * config.h.dist (USE_EXTERNAL_URI_LOADER): added + * config.h.dist (USER_URIMETHODMAP): added + * config.h.dist (SYS_URIMETHODMAP): added + * configure: ask use_external_uri_loader + * file.c (loadGeneralFile): return NO_BUFFER, not NULL + * file.c (loadGeneralFile): add SCM_UNKNOWN for USE_EXTERNAL_URI_LOADER + * fm.h (urimethodmap_files): added + * menu.c (initSelectMenu): SCM_UNKNOWN comment out + * proto.h (initURIMethods): added + * proto.h (searchURIMethods): added + * rc.c (CMT_URIMETHODMAP): added + * rc.c (params6): add urimethodmap + * rc.c (sync_with_option): add initURIMethods() + * url.c (parseURL): if SCM_UNKNOWN, url is saved in pu->file + * url.c (_parsedURL2Str): if SCM_UNKNOWN, url is in pu->file + * url.c (urimethods): added + * url.c (loadURIMethods): added + * url.c (initURIMethods): added + * url.c (searchURIMethods): added + +2002-01-13 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02828] + * url.c (_parsedURL2Str): add '/' at the end when scheme is SCM_FTPDIR + +2002-01-12 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02829] + * file.c (loadGeneralFile): return NO_BUFFER + * file.c (loadGeneralFile): if ssl_get_certificate() fails, + no buffer created + * istream.c (ssl_certificate_validity): deleted + * istream.c (ssl_set_certificate_validity): ditto + * istream.c (accept_this_site): added + * istream.c (ssl_accept_this_site): ditto + * istream.c (ssl_check_cert_ident): 1st arg is `X509 *' + * istream.c (ssl_get_certificate): 2nd arg is `char *hostname' + cert check code moved here from openSSLHandle() + * url.c (free_ssl_ctx): accept_this_site initialized + * url.c (openSSLHandle): remove cert check code here + +2002-01-12 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02827] + * scripts/Makefile: use sed instead of /bin/sh while read; echo loop + +2002-01-12 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02823] + * scripts/Makefile: don't use read -r + because Solaris 8 for x86 doesn't work + +2002-01-12 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02822] Print FTP directory list for -dump_extra option + * file.c (loadGeneralFile): remove FTPDIRtmp, use readFTPDir() instead + save to buf->sourcefile for -dump_extra + * ftp.c (FTPDIRtmp): deleted + * ftp.c (openFTP): delete readFTPDir() part + * ftp.c (readFTPDir): added + * proto.h (readFTPDir): added + +2002-01-11 Akinori Ito <aito@fw.ipsj.or.jp> + + * [w3m-dev 02819] + * regex.c (RegexMatch): loop condition changed (from < to <= ) + * regex.c (regmatch_iter): end condition changed (from >= to >) + * search.c (forwardSearch): next search fix + +2002-01-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02818] + * regex.c (regmatch_iter): return 0 if out of range + +2002-01-11 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02817] + * menu.c (menuBackwardSearch): new regexMatch() + +2002-01-11 aito@fw.ipsj.or.jp + + * [w3m-dev 02815] + * cookie.c (domain_match): use new regex + * main.c (chkURLBuffer): use new regex + * main.c (chkNMIDBuffer): use new regex + * menu.c (menuForwardSearch): new regexMatch() + * regex.c (RegexMatch): negative length means whole string + * regex.c (RegexMatch): new regmatch() + * regex.c (regmatch_sub_anytime): add 5th arg `char *' + * regex.c (regmatch_iter): add 4th arg `char *' + * regex.c (regmatch): add 3rd arg `char *' + * url.c (openSocket): use new regex + +2002-01-10 aito@fw.ipsj.or.jp + + * [w3m-dev 02811] new regexp implementation + * regex.h: remove defines + * regex.h: struct regexchar, struct regex + * regex.c: include stdio.h, stdlib.h, string.h, config.h + * regex.c: remove include fm.h + * regex.c (NULL JP_CHARSET IS_ALPHA IS_KANJI1): define unless defined + * regex.c (RE_*) define + * regex.c (st_ptr): deleted + * regex.c (regmatch): remove 4th arg `int' + * regex.c (newRegex0): rewrite, based on old newRegex + * regex.c (newRegex): use newRegex0() + * regex.c (RegexMatch): rewrite + * regex.c (struct MatchingContext1): added + * regex.c (struct MatchingContext2): added + * regex.c (YIELD): added + * regex.c (regmatch_sub_anytime): added + * regex.c (regmatch_iter): added + * regex.c (regmatch): use regmatch_iter() + * regex.c (regmatch1): rewrite + * regex.c (lc2c): add 2nd arg `len', rewrite + +2002-01-10 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> + + * [w3m-dev 02810] + * scripts/Makefile: read -r + * scripts/w3mhelp.cgi.in: fix bugs displaying "C-" only in some case + +2002-01-08 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02794] + * url.c (parseURL): cleanup + * url.c (parseURL2): file_unquote(pu->file) + +2002-01-07 Fumitoshi UKAI <ukai@debian.or.jp> + + * version.c.in: 0.2.4+cvs + +2002-01-07 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.2.4 + * version.c.in: update + * doc/README: version 0.2.4, release date + * doc-jp/README: ditto + * NEWS: update + +2002-01-06 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02781] Re: Bug#127883: w3m tries to use xv as default + * config.h.dist (DEF_IMAGE_VIEWER): added + * config.h.dist (DEF_AUDIO_PLAYER): added + * configure (def_image_viewer): added + * configure (def_audio_player): added + * configure (DEF_IMAGE_VIEWER): added + * configure (DEF_AUDIO_PLAYER): added + * mailcap.c (DefaultMailcap): use DEF_IMAGE_VIEWER, DEF_AUDIO_PLAYER + +2002-01-05 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02779] `;' is valid in URL + * main.c (chkURLBuffer): add ; + +2001-12-28 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02772] + * istream.c (ssl_get_certificate): show certificate subject and issuer + * istream.c (ssl_check_cert_ident): add missing NULL for Strcat_m_charp + * url.c (openSSLHandle): close(sock) and SSL_free(handle) on failure + +2001-12-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02770] form element outside <form>..</form> + * main.c (_followForm): check whether parent action is "none" + * form.c (internal_action): add "none" + * form.c (do_internal): check internal_action[i].rout + * file.c (process_input): check cur_form_id + * file.c (process_select): ditto + * file.c (process_textarea): ditto + +2001-12-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02769] <form>..</form> as block element + * file.c (HTMLtagproc1): CLOSE_P for <form>...</form> + * table.c (feed_table_tag): add feed_table_block_tag for <form></form> + +2001-12-28 Hironori Sakamoto <h-saka@lsi.nec.co.jp> + + * [w3m-dev 02765] backend + * backend.c (internal_get): cleanups + * file.c (flushline): remove w3m_backend checks + * file.c (loadHTMLstream): add w3m_backend check + * fm.h (backend_halfdump_str): deleted + * fm.h (backend_halfdump_buf): added + +2001-12-28 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02761] + * file.c (loadcmdout): remove unnecessary buf check + +2001-12-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02760] + * file.c (getshell): check buf == NULL + * main.c (execdict): check buf == NULL + buf->type == NULL, then buf->type is set as "text/plain" + +2001-12-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02759] fold textarea + * fm.h (FoldTextarea): added + * form.c (formUpdateBuffer): check FoldTextarea + * rc.c (CMT_FOLD_TEXTAREA): added + * rc.c (params1): add "fold_textarea" + +2001-12-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02757] + * main.c (execdict): w = conv_from_system(word) + * main.c (dictword): call execdict() only + +2001-12-27 Fumitoshi UKAI <ukai@debian.or.jp> + + * url.c (openSSLHandle): accept_this_file is out of + #ifdef USE_SSL_VERIFY + +2001-12-27 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02753] + * url (ssl_verify_error_string): deleted + * url.c (openSSLHandle): use X509_verify_cert_error_string() + +2001-12-27 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02750] RFC2818 server identity check + * istream.c (ssl_certificate_validity): added + * istream.c (ssl_set_certificate_validity): added + * istream.c (ssl_get_certificate): use ssl_certificate_validity + * istream.h (ssl_set_certificate_validity): added + * url.c (ssl_verity_error_string): added + * url.c (openSSLHandle): add accept_this_site + * url.c (openSSLHandle): dont check by SSL_VERIFY_PEER, + use SSL_get_verify_result() instead + * url.c (openSSLHandle): check peer_certificate() and then + SSL_get_verify_result() + +2001-12-27 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02749] cleanup code for editor,mailer,extbrowser + * etc.c (myExtCommand): added + * etc.c (myEditor): added + * form.c (input_textarea): use myEditor() + * main.c (pipeBuf): use myExtCommand() + * main.c (editBf): use myEditor() + * main.c (editScr): use myEditor() + * main.c (followA): use myExtCommand() + * main.c (cmd_loadURL): use myExtCommand() + * main.c (invoke_browser): use myExtCommand() + * main.c (execdict): use myExtCommand() + * proto.h (myExtCommand): added + * proto.h (myEditor): added + +2001-12-27 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02748] cleanup code for restoring cursor position + * buffer.c (reshapeBuffer): delete top, linenum, cursorY, pos, + currentColumn, formitem + * buffer.c (reshapeBuffer): add sbuf and + use copyBuffer(), restorePosition() + * buffer.c (reshapeBuffer): use chkURLBuffer(), chkNMIDBuffer() + * display.c (in_check_url): deleted + * display.c (displayBuffer): ditto + * display.c (displayBuffer): s/Currentbuf/buf/ + * display.c (arrangeLine): ditto + * display.c (restorePosition): added + * fm.h (TOP_LINENUMBER): added + * fm.h (CUR_LINENUMBER): added + * main.c (editBf): delete type, top, linenum, cursorY, pos, + currentColumn + * main.c (editBf): add sbuf and use copyBuffer(), restorePosition() + * main.c (reload): delete type, top, linenum, cursorY, pos, + currentColumn + * main.c (reload): add sbuf and use copyBuffer(), restorePosition() + * main.c (chkURLBuffer): added + * main.c (chkURL): chkRULBuffer on Currentbuf + * main.c (chkNMIDBuffer): added + * main.c (chkNMID): chkNMIDBuffer on Currentbuf + * proto.h (chkURLBuffer): added + * proto.h (chkNMIDBuffer): added + * proto.h (restorePosition): added + +2001-12-27 "OMAE, jun" <jun-o@dai.meta.ne.jp> + + * [w3m-dev 02735] + * indep.c (bcopy): need (chat *) cast + * indep.c (bzero): use char * instead of void * + +2001-12-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02745] + * istream.h: #include <x509v3.h> deleted + * istream.c: #include <x509v3.h> + * istream.c (ssl_check_cert_ident): if subjectAltName dNSName found, + don't try commonName + +2001-12-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02743] RFC2818 server identity check + * NEWS: RFC2818 server identity check + * istream.c (ssl_check_cert_ident): added + * istream.h (ssl_check_cert_ident): ditto + * istream.h: #include <x509v3.h> + * url.c (free_ssl_ctx): ssl_ctx = NULL + * url.c (openSSLHandle): arg hostname to check cert id + * url.c (openSSLHandle): check SSL_get_verify_result + if ssl_verify_server + * url.c (openSSLHandle): check server identity by ssl_check_cert_ident + * url.c (openURL): openSSLHandle with pu->host + +2001-12-26 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02715] bugfix in scripts/multipart/multipart.cgi.in + was not applied + * scripts/multipart/multipart.cgi: fix "use NKF" check + +2001-12-26 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02732] fix Debian Bug#126381 + - Passwords entered for HTTPS are used for HTTP + * etc.c (find_auth): add port arg + * etc.c (find_auth_cookie): add port arg + * etc.c (add_auth_cookie): add port arg + * file.c (getAuthCookie): find_auth_cookie(host, port, realm) + * file.c (loadGeneralFile): add_auth_cookie(host, port, realm, ss) + * fm.h (struct auth_cookie): add port + * ftp.c (openFTP): find_auth_cookie(host, port, user) + * ftp.c (openFTP): add_auth_cookie(host, port, user, pwd) + * proto.h (find_auth_cookie): add port + * proto.h (add_auth_cookie): add port + +2001-12-26 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02729] + * doc-jp/README.func (DOWNLOAD): update + * doc-jp/README.func (EDIT): ditto + * doc-jp/README.func (EDIT_SCREEN): ditto + * doc-jp/README.func (SAVE): ditto + * doc/README.func (DOWNLOAD): ditto + * doc/README.func (SAVE): ditto + * doc/README.func (SUBMIT): ditto + * scripts/w3mhelp.cgi.in: $key is normalized by &norm_key + * scripts/w3mhelp.cgi.in: keyfunc update + * scripts/w3mhelp.cgi.in (load_keymap): check data, &norm_key + * scripts/w3mhelp.cgi.in (norm_key): added + +2001-12-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * [#496613] LASTLINE in terms.c + by Kazuhiro NISHIYAMA (znz) + * terms.c (LASTLINE): defined(__CYGWIN__) instead of defined(CYGWIN) + * terms.c (setlinescols): ditto + +2001-12-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * [#496610] #include <sys/wait.h> + by Kazuhiro NISHIYAMA (znz) + * main.c: #if defined(HAVE_WAITPID) || defined(HAVE_WAIT3) + * etc.c: ditto + * file.c: ditto + +2001-12-26 Kazuhiro NISHIYAMA <zn@mbf.nifty.com> + + * [w3m-dev 02725] bcopy, bzero + * etc.c (bcopy): deleted + * etc.c (bzero): deleted + * indep.c (bcopy): added + * indep.c (bzero): added + * indep.c (bcopy): src should be const + * fm.h (bcopy): ditto + +2001-12-25 Kazuhiko <kazuhiko@archi.kyoto-u.ac.jp> + + * [w3m-dev 02727] + * doc-jp/keymap.default (C-r): ISEARCH_BACK + * doc-jp/keymap.default (C-s): ISEARCH + * doc-jp/README.func: fix typo + +2001-12-25 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02726] incremental search + * NEWS: incremental search + * fm.h (inputLineHist) define by inputLineHistSearch + * fm.h (COPY_BUFPOTISION): added + * fm.h (SAVE_BUFPOSITION): ditto + * fm.h (RESTORE_BUFPOSITION): ditto + * funcname.tab (ISEARCH): added + * funcname.tab (ISEARCH_BACK): added + * keybind.c (GlobalKeymap): C-s = ISEARCH, C-r = ISEARCH_BACK + * linein.c (inputLineHistSearch): renamed from inputLineHist, + new arg incrfunc() for increment search + * linein.c (inputLineHistSearch): add cursorX, cursorY + * main.c (srchcore): remove displayBuffer, onA + * main.c (dispincsrch): added + * main.c (isrch): ditto + * main.c (isrchfor): ditto + * main.c (isrchbak): ditto + * main.c (srch): add displayBuffer, onA + * main.c (srch_nxtprv): ditto + * proto.h (isrchfor): added + * proto.h (isrchbak): ditto + * proto.h (inputLineHistSearch): renamed + * doc/keymap.default (C-r): ISEARCH_BACK + * doc/keymap.default (C-s): ISEARCH + * doc/README.func (ISEARCH): added + * doc/README.func (ISEARCH_BACK): ditto + * doc-jp/README.func (ISEARCH): added + * doc-jp/README.func (ISEARCH_BACK): ditto + +2001-12-25 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02723] cleanup resizing + * main.c (resized): renamed to need_resize_screen + * main.c (need_resize_screen): added + * main.c (resize_hook): prototype here + * main.c (resize_handler): ditto + * main.c (MAIN): move signal initialization + * main.c (MAIN): remove duplicate signal initialization + * main.c (resize_screen): added + * proto.h (resize_hook): deleted + * terms.c (mouse_init): remove signal + +2001-12-25 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02721] + * main.c (resize_handler): added + * main.c (MAIN): use resize_handler in getch() + +2001-12-25 WATANABE Katsuyuki <katsuyuki_1.watanabe@toppan.co.jp> + + * [w3m-dev 02714] + * scripts/w3mhelp.cgi.in: $helpdir should be handled by cygwin_pathconv + when $CYGPATH=1 + +2001-12-25 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02715] bugfix in scripts/multipart/multipart.cgi.in + * scripts/multipart/multipart.cgi: fix "use NKF" check + +2001-12-25 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02719] (based on [w3m-dev 02708] comments) + * resize_hook: set resized flag only + * main.c (MAIN): in key input loop, process resize + when resized flag is set + +2001-12-24 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02702] fix problem with emacs-w3m in [w3m-dev 02699] + * main.c (MAIN): remove some flag initialization, its too early? + this code caused problem with emacs-w3m. + +2001-12-23 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02700] search refactoring + * based on http://www.nmn.jp/~hidai/software/w3m/ + * fm.h: add SR_* constants, result value for search + * main.c (srchcore): added + * main.c (disp_srchresult): added + * main.c (srch): added + * main.c (srchfor): use srch() + * main.c (srchbak): use srch() + * main.c (srch_nxtprv): use srchcore() & disp_srch_result() + * search.c (forwardSearch): return SR_* result value + * search.c (backwardSearch): ditto + +2001-12-23 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02699] initialization too late + * main.c (MAIN): initializations moved before arg processing + * debian bug closes: Bug##102445: ignores SIGWINCH while downloading + +2001-12-22 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02696] + * configure: fix bashism of w3mhelp-{lynx,w3m}_{en,ja} expansion + +2001-12-22 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + + * [w3m-dev 02687] version number in w3mhelp-*.html (+[w3m-dev 02689]) + * configure (cur_ver): w3mhelp*.html version subst + * w3mhelp*.html: deleted + * w3mhelp*.html.in: added + +2001-12-22 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02682] + * doc/README: remove README.dj + * doc-jp/README.hp: deleted + +2001-12-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02692] w3m on linux/ia64 + * mktable.c: #include "config.h" + * mktable.c: #include "stdint.h" or uintptr_t typedef + * mktable.c: use uintptr_t instead of unsigned int + * configure: check pthread on linux + * configure: add gc_cflags for linux/ia64,alpha,s390 + * configure: check stdint.h + * configure (config.h): add $pthreadlib to GCLIB + * configure (config.h): add $def_have_stdint_h + * config.h.dist (HAVE_STDINT_H): added + * Str.c: add #include <stdlib.h> for exit() on some platform (ia64) + +2001-12-22 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02690] RC_DIR in scripts + * configure (config.h): add RC_DIR + * config.h.dist: ditto + * XMakefile: pass RC_DIR + * scripts/Makefile: subst RC_DIR + * scripts/dirlist.cgi.in: $RC_DIR initial value + * scripts/w3mhelp.cgi.in: ditto + * scripts/w3mhelp.cgi.in (cygwin_pathconv): added + +2001-12-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * version.c.in: 0.2.3.2+cvs + +2001-12-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.2.3.2 - Security fix in w3m/scripts + * version.c.in: update + * w3mhelp-*.html: version 0.2.3.2 + * doc/README: version 0.2.3.2, release date + * doc-jp/README: ditto + * NEWS: added + +2001-12-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * scripts/w3mhelp.cgi.in: lang=[a-z][a-z] only + +2001-12-22 Hironori Sakamoto <h-saka@lsi.nec.co.jp> + + * Security hole in multipart.cgi.in, w3mman2html.cgi.in + * scripts/w3mhelp.cgi.in: open(F, "< $var") instead of open(F, $var) + * scripts/w3mhelp.cgi.in: fix eval qq{require ...}; + * scripts/multipart/multipart.cgi.in: ditto + * scripts/w3mman/w3mman2html.cgi.in: validate $keyword, $section, $man + +2001-12-21 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev-en 00656] + * helpdir default is PREFIX/share/w3m + +2001-12-20 Fumitoshi UKAI <ukai@debian.or.jp> + + * version.c.in: 0.2.3.1-cvs + +2001-12-20 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.2.3.1 + * version.c.in: update + * w3mhelp-*.html: version 0.2.3.1 + * doc/README: version 0.2.3.1, release date + * doc-jp/README: ditto + +2001-12-20 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02683] + * configure (def_param): fix wrong behavior unless variable initialized + * configure (def_param): fix unnecessary eval + * configure (ask_choice): ditto + +2001-12-20 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + + * w3mhelp-*.html, doc/README, doc-jp/README: + * fix version number to 0.2.3. + +2001-12-20 Fumitoshi UKAI <ukai@debian.or.jp> + + * version.c.in: 0.2.3-cvs + +2001-12-20 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.2.3 release + * version.c.in: update + +2001-12-20 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.2.3 release condidate 3 + * configure (use_bundled_gclib): added + +2001-12-20 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * w3m 0.2.3 release candidate 2 + * [w3m-dev 02678] + * configure: get mygcversion from gc/version.h + * Makefile: update GCLIBTGZ + +2001-12-20 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3m 0.2.3 release candidate 1 + * gc/: sync with w3m-0.2.2-inu-1.1/gc + * Patches/ews4800: deleted + * configure: comment out Patches/ews4800 + +2001-12-20 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02655] print version and compile options + * configure: change order of questions + * main.c (fversion): added + * main.c (fusage): use fversion() + * main.c (fusage): add -help, -version + * main.c (MAIN): add -help, -version + +2001-12-20 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02672] + * main.c (wrap_GC_warn_proc): msg_ring initial value + * main.c (SigAlarm): not need #ifdef USE_ALARM, already guarded + +2001-12-18 Fumitoshi UKAI <ukai@debian.or.jp> + + * [#493911] too few arguments to function `longjmp' + by Kazuhiro NISHIYAMA (znz) + * configure (LONGJMP): need val argument + +2001-12-18 Fumitoshi UKAI <ukai@debian.or.jp> + + * [#493906] missing #ifdef by Kazuhiro NISHIYAMA (znz) + * main.c (sig_chld): #ifdef SIGCHLD + * main.c (SigAlarm): #ifdef USE_ALARM + +2001-12-18 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02670] + * table.c (maximum_visible_length): use strchr() + * table.c (do_refill): use force==2 mode for flushline() + +2001-12-18 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02669] delete cURLcode() + * main.c (cURLcode): deleted + * main.c (loadNormalBuf): no need to use cURLcode() + * main.c (followI): ditto + * main.c (query_from_followform): need conv_form_encoding() + +2001-12-18 Rin Okuyama <okuyama@cna.ne.jp> + + * [w3m-dev 02668] install-sh: -e option of sh(1) + * install-sh: add set -e + +2001-12-18 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02667] + * terms.c (mouse_init): #ifdef SIGWINCH guard + +2001-12-16 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02666] resizing on xterm with gpm support + * terms.c (mouse_init): check Gpm_Open return value, signal(SIGWINCH) + +2001-12-16 Rin Okuyama <okuyama@cna.ne.jp> + + * [w3m-dev 02664] install-sh -s option + * XMakefile: install-sh -s + * install-sh: support strip option + +2001-12-15 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02663] fix prevA() cause loop + * table.c (do_refill): force flushline + * table.c (feed_table_tag): push line if <a> has no href attr + +2001-12-15 Rin Okuyama <okuyama@cna.ne.jp> + + * [w3m-dev 02659] rc.c (show_srch_str) + * fm.h (show_srch_str): added + * main.c (srch_nxtprv): check show_srch_str + * rc.c (CMT_SHOW_SRCH_STR): added + +2001-12-15 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02657] + * main.c (chkURL): accept URL ending with '=' + +2001-12-15 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02656] + * XMakefile (clean): remove functable.c + * anchor.c (_put_anchor_new): use Strnew_size() and Strcat_charp_n() + * indep.c (getescapechar): use GET_MYCDIGIT + +2001-12-13 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02541] mouse support on cygwin + * linein.c (_esc): ignore ESC M <ch> <ch> <ch> on cygwin + * terms.c (is_xterm): not static on cygwin + * terms.c (ConInV): INPUT_RECORD * -> char * + * terms.c (MouseConToXTerm): deleted + * terms.c (iMouseConXTerm): deleted + * terms.c (expand_win32_console_input_buffer): added + * terms.c (read_win32_console_input): use PeekConsoleInput + and ReadConsole + * terms.c (read_win32_console): use read_win32_console_input() + * terms.c (cmp_tv): added + * terms.c (subtract_tv): added + * terms.c (select_or_poll_win32_console): added + * terms.c (select_win32_console): added + * terms.c (xterm_mouse_term): deleted + * terms.c (mouse_term_info): added + * terms.c (set_tty): modified to use mouse_term_info + * terms.c (sleep_till_anykey): use select_win32_console on cygwin + * terms.c (mouse_init): check is_xterm flag + * terms.c (mouse_end): check is_xterm flag + * terms.h (is_xterm): if cygwin + * terms.h (NEED_XTERM_ON): added + * terms.h (NEED_XTERM_OFF): added + +2001-12-11 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02651] search keymap using hash + * XMakefile (func.c): depends functable.c funcname1.h + * XMakefile (functable.c): generated from funcname.tab + * functable.awk: added + * fm.h (w3mKeyList): deleted + * func.c (w3mKeyList): ditto + * file.c (readHeader): change getFuncList() + * func.c (w3mNFuncList): deleted + * func.c (functable.c): include + * func.c (initKeymap): no need to count w3mFuncList + * func.c (initKeymap): change getFuncList() + * func.c (initKeymap): put data to keyData hashtable + * func.c (countFuncList): deleted + * func.c (getFuncList): use getHash_si() + * func.c (getKeyData): use getHash_iv() + * func.c (addKeyList): deleted + * func.c (searchKeyList): deleted + * func.h (textlist.h): include + * func.h (hash.h): include + * func.h (KEY_HASH_SIZE): added + * func.h (KeyListItem): deleted + * func.h (KeyList): deleted + * hash.c: s/hist/sv/ + * hash.c: add defhashfunc_i(int, void *, iv) + * hash.h: s/hist/sv/ + * hash.h: defhash(int, void *, iv) + * hash.h (putHash_*): added + * hash.h (getHash_*): added + * hash.h (defhashfunc_i): added + * history.c (pushHashHist): s/hist/sv/ + * history.c (getHashHist): s/hist/sv/ + * history.h (Hist): s/hist/sv/ + * main.c (searchKeyData): item deleted + * main.c (searchKeyData): data added + * main.c (searchKeyData): use getKayData() instead of searchKeyList() + * main.c (setAlarm): w3mNFuncList deleted + * main.c (setAlarm): change getFuncList() + * menu.c (w3mNFuncList): deleted + * menu.c (w3mFuncList): deleted + * menu.c (initMenu): no need to count w3mFuncList + * menu.c (setMenuItem): change getFuncList() + * proto.h (countFuncList): deleted + * proto.h (getFuncList): change args + * proto.h (addKeyList): deleted + * proto.h (searchKeyList): deleted + * proto.h (getKeyData): added + +2001-12-11 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02650] + * file.c (readHeader): Strnew_charp_n() should be used + +2001-12-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02647] + * proto.h (arg_is): deleted + * etc.c (arg_is): ditto + * etc.c (searchAnchorArg): ditto + +2001-12-11 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02648] rewrite strCmp() with strcmp() + * indep.c (strCmp): use strcmp() + +2001-12-11 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02441] A patch against functions *_(un)?quote() + * indep.c (url_unquote_char): use GET_MYCDIGIT, instead of sscanf + * indep.c (url_quote): use xdigit[] instead of sprintf() + * myctype.c (MYCTYPE_DIGITMAP): added + * myctype.h (MYCTYPE_DIGITMAP): ditto + * myctype.h (GET_MYCDIGIT): added + +2001-12-11 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02647] + * proto.h (getAnchor): deleted + * etc.c (getAnchor): deleted + +2001-12-09 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02646] Some code cleanups + * configure: use host libgc instead of gc/gc.a on Linux and/or AIX + if possible + * etc.c (get_cmd): deleted, merged into gethtmlcmd() + * etc.c (gethtmlcmd): merge get_cmd() code + * file.c (uncompressed_file_type): initialize slen + * file.c (passthrough): status deleted + * file.c (HTMLlineproc0): istr deleted, gethtmlcmd() argument fix + * fm.h (_GNU_SOURCE): ifndef _GNU_SOURCE + * proto.h (gethtmlcmd): fix prototypes + * terms.c: include <sys/ioctl.h> always + +2001-12-09 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02645] + * configure: fix to prevent rcsid expansion + +2001-12-08 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02641] + * configure: generate version.c from version.c.in + * version.c.in: added + * version.c: deleted, autogenerated from version.c.in + * .cvsignore (version.c): added + +2001-12-07 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02642] + * linein.c (next_dcompl): fix ifdef EMACS_LIKE_LINEEDIT + +2001-12-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02640] + * linein.c (escape_spaces): rewrite + * linein.c (unescape_spaces): rewrite + +2001-12-07 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02638] completion for ! and/or @ + * linein.c (next_compl): check "\\ ", "\\\t" + * linein.c (escape_spaces): added + * linein.c (unescape_spaces): added + * linein.c (doComplete): use unescape_spaces, escape_spaces + +2001-12-07 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02637] + * url.c (openSocket): hostname volatile -> const + * url.c (openSocket): add hname + * url.c (openSocket): copy hostname to hname to be modified safely + * url.c (otherinfo): revert previous change + +2001-12-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02635] dirlist + * file.c (loadGeneralFile): use pu.file instead of pu.real_file + * scripts/dirlist.cgi.in: modified for perl4 + +2001-12-07 Fumitoshi UKAI <ukai@debian.or.jp> + + * [#489463] Host: header is wrong IPv6 literal addr + * url.c (otherinfo): IPv6 address should be quoted with bracket + +2001-12-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02629] + * linein.c (next_compl): completion for name including space + +2001-12-07 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02633] + * url.c (parseURL2): filename should be quoted here, because + it will be unquote() soon + +2001-12-07 Fumitoshi UKAI <ukai@debian.or.jp> + + * rename install.sh to install-sh + * XMakefile: s/install.sh/install-sh/ + +2001-12-07 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02622] + * tagtable.tab (noframes): added + * tagtable.tab (/noframes): added + * fm.h (RB_NOFRAMES): added + * html.h (HTML_NOFRAMES): added + * html.h (HTML_N_NOFRAMES): added + * html.c (ALST_NOFRAMES): added + * html.c (98 HTML_NOFRAMES): added + * html.c (99 HTML_N_NOFRAMES): added + * file.c (HTMLtagproc1): add HTML_NOFRAMES, HTML_N_NOFRAMES + * file.c (HTMLtagproc1): don't meta refresh if it is in noframes and + auto frame rendering + * main.c (MAIN): use setAlarmEvent() + * main.c (SigAlarm): ditto + * main.c (setAlarm): ditto + * main.c (setAlarmEvent): check if status == AL_UNSET + +2001-12-06 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02619] + * file.c (loadHTMLString): set document type + +2001-12-05 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02618] + * configure: fix typo in --mimetypes + +2001-12-05 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02617] + * scripts/Makefile (HELP_LIBS): added + * scripts/Makefile (all): depends $(HELP_LIBS) + * scripts/Makefile (install): depends $(HELP_LIBS) + * scripts/Makefile (w3mhelp-funcname.pl): split from helplibs + * scripts/Makefile (w3mhelp-funcdesc.pl): split from helplibs, touch + * scripts/Makefile (clean): clean *-stamp + * scripts/.cvsignore: add w3mhelp-funcdesc-stamp + +2001-12-05 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02616] + * buffer.c (gotoLine): use set_delayed_message instead of disp_message + * buffer.c (gotoRealLine): ditto + * display.c (delayed_msg): added + * display.c (displayBuffer): display deleyed_msg if it is set + * display.c (set_delayed_message): added + * proto.h (set_delayed_message): added + +2001-12-05 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02615] + * main.c (goLine): _goLine() called twice when prec_num was set + +2001-12-05 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02614] + * XMakefile (HELP_ALLFILES): added + * XMakefile (INSTALL_PROGRAM): ditto + * XMakefile (INSTALL_SCRIPT): ditto + * XMakefile (INSTALL_DATA): ditto + * XMakefile (install) use INSTALL_{PROGRAM,DATA} + * XMakefile (install-helpfile): cleanup + * XMakefile (install-scripts): pass MKDIR + * XMakefile (uninstall): cleanup + * XMakefile (clean): cleanup + * scripts/Makefile (MKDIR): added + * scripts/Makefile (INSTALL_DATA): added + * scripts/Makefile (install): mkdir, use INSTALL_DATA + * scripts/Makefile (uninstall): added + * scripts/Makefile (clean): ignore errors + * scripts/multipart/Makefile (MKDIR): added + * scripts/multipart/Makefile (install): mkdir + * scripts/multipart/Makefile (uninstall): added + * scripts/multipart/Makefile (clean): ignore errors + * scripts/multipart/Makefile (dist): cleanup + * scripts/w3mman/Makefile (MKDIR): added + * scripts/w3mman/Makefile (install): mkdir + * scripts/w3mman/Makefile (uninstall): added + * scripts/w3mman/Makefile (clean): ignore errors + * scripts/w3mman/Makefile (dist): cleanup + +2001-12-04 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02611] a improvement of find_cookie() + * cookie.c (make_cookie): domainname is passed as argument + * cookie.c (find_cookie): FQDN(pu->host) done only once + * func.c (getQWord): comment reformat + * local.c (check_local_cgi): ditto + +2001-12-04 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02609] + * proto.h: remove duplicate prototypes + +2001-12-04 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02608] + * local.c (localcgi_get): request == NULL means no ? in URL + * url.c (openURL): ditto + +2001-12-03 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02606] + * XMakefile (install-scripts): run pwd outside for loop + +2001-12-03 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02605] $(PWD) / allocStr() + + * XMakefile (install-scripts): use $$TOPDIR instead of $(PWD) + + * indep.c (allocStr): if len is negative, it will copy string in `s' + * display.c (record_err_message): pass -1 as length to allocStr + * etc.c (lastFileName): ditto + * etc.c (mybasename): ditto + * etc.c (FQDN): ditto + * file.c (push_tag): ditto + * func.c (addKeyList): ditto + * history.c (unshiftHist): ditto + * history.c (pushHist): ditto + * indep.c (cleanupName): ditto + * linein.c (inputLineHist): ditto + * local.c (dirBuffer): ditto + * main.c (gotoLabel): ditto + * main.c (searchKeyData): ditto + * parsetagx.c (parsedtag_set_value): ditto + * terms.c (GETSTR): ditto + * textlist.h (pushText): ditto + * url.c (DefaultFile): ditto + * url.c (parseURL): ditto + * url.c (ALLOC_STR): ditto + * url.c (parseURL2): ditto + * url.c (openURL): ditto + * w3mhelperpanel.c (extractMailcapEntry): ditto + +2001-12-02 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02604] + * configure: kanji_symbols=n if lang=EN + * file.c (HTMLlineproc2body): initialize rule + +2001-12-02 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02603] + * scripts/w3mhelp.cgi.in: modified for perl4 + +2001-12-01 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02601] + * Makefile (install-core): added + * Makefile (install-helpfile): added + * configure (use_help_cgi): default yes if perl found + * configure (config.h): add HELP_CGI + * configure (config.h): add $def_use_help_cgi + * main.c (ldhelp): add USE_HELP_CGI code + * scripts/Makefile: use w3mhelp*.pl.in + * scripts/w3mhelp-funcname.pl.in: added + * scripts/w3mhelp-funcdesc.en.pl.in: added + * scripts/w3mhelp-funcdesc.ja.pl.in: added + * scripts/w3mhelp.cgi.in: use %buf_*, %lineedit_* + * scripts/w3mhelp.cgi.in: use %title + + * [w3m-dev 02660] (based on [w3m-dev 02577] + by Kiyokazu SUTO <suto@ks-and-ks.ne.jp>) + * scripts/.cvsignore: add w3mhelp.cgi w3mhelp-*.pl + * scripts/Makefile (HELP_DIR): added + * scripts/Makefile (LIB_TARGETS): add w3mhelp.cgi + * scripts/Makefile (DOCDIRS): added + * scripts/Makefile (all): add helplibs + * scripts/Makefile (.in): subst HELP_DIR, DOCDIRS + * scripts/Makefile (helplibs): added + * scripts/Makefile (install): s/DISTDIR/DESTDIR/ + * scripts/Makefile (install): install w3mhelp-*.pl + + * scripts/w3mhelp.cgi.in: added + + * XMakefile (INSTALL2): deleted + * XMakefile (install): split + * XMakefile (install-core): added + * XMakefile (install-helpfile): added + * XMakefile (all-scripts): HELP_DIR + * XMakefile (install-scripts): HELP_DIR + + * doc/REAMDE.func: add ALARM, SUSPEND + * doc-jp/README.func: ditto + + * config.h.dist: updated + +2001-11-30 Fumitoshi UKAI <ukai@debian.or.jp> + + * url.c (otherinfo): use AcceptLang + * rc.c (sync_with_option): initialize AcceptLang + +2001-11-30 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02599] + * main.c comment reformat + +2001-11-30 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02598] + * url.c (otherinfo): add missing NULL + +2001-11-30 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02597] (based on [w3m-dev 02594] by aito@fw.ipsj.or.jp) + * fm.h (AcceptLang): added + * fm.h (AcceptMedia): added + * rc.c (CMT_ACCEPTENCODING): added + * rc.c (CMT_ACCEPTMEDIA): added + * rc.c (params9): add accept_encoding, accept_media + * rc.c (sync_with_option): initialize AcceptEncoding and AcceptMedia + * url.c (otherinfo): use Strcat_m_charp() + +2001-11-30 aito@fw.ipsj.or.jp + + * [w3m-dev 02594] + * configure: s/dcode/display_code/ + +2001-11-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02596] + * file.c (acceptableEncoding): fix segfault if no decoder found + +2001-11-30 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02595] + * file.c (compression_decoder): add encodings + * file.c (readHeader): use compression_decoder->encodings + +2001-11-30 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02593] + * form.h: comment reformat + * matrix.c: ditto + * menu.c: ditto + * regex.c: ditto + * table.h: ditto + * terms.c: ditto + +2001-11-30 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02592] Accept: and AcceptEncoding: + * url.c (otherinfo): use acceptableEncoding() acceptableMimeTypes() + + * file.c: add compression_decoder + * file.c (check_compress): rewrite by using compression_decoder + * file.c (compress_application_type): ditto + * file.c (uncompressed_file_type): ditto + * file.c (check_command): added + * file.c (acceptableEncoding): added + * proto.h (acceptableEncoding): ditto + * file.c (uncompress_stream): renamed from gunzip_stream + * file.c (uncompress_stream): rewrite by using compression_decoder + * configure: add PATH_SEPARATOR + + * mailcap.c (extractMailcapEntry): static + * mailcap.c (loadMailcap): static + * proto.h (loadMailcap): removed + * mailcap.c (acceptableMimeTypes): added + * proto.h (acceptableMimeTypes): added + + * configure: #define USE_PATH_ENVVAR for __EMX__ + * file.c: GUNZIP_*, BUNZIP2_*, INFLATE_* removed here -> config.h + * file.c (gunzip_stream): s/(GUNZIP|BUNZIP2|INFLATE)_CMD/\1_CMDNAME/ + * configure (config.h): GUNZIP_*, BUNZIP2_*, INFLATE_* moved here + * fm.h (DirBufferCommand): use CGI_EXTENSION + * fm.h (mailcap_list): removed from global -> mailcap.c + * fm.h (UserMailcap): removed from global -> mailcap.c + * mailcap.c: static mailcap_list + * mailcap.c: static UserMailcap + * proto.h (initMimeTypes): moved + * proto.h (get_os2_dft): removed + * rc.c (loadMimeTypes): removed here -> url.c + * rc.c (initMimeTypes): removed here -> url.c + * fm.h (mimetypes_list): removed from global -> url.c + * fm.h (UserMimeTypes): removed from global -> url.c + * url.c: static mimetypes_list + * url.c: static UserMimeTypes + * url.c (loadMimeTypes): moved here + * url.c (initMimeTypes): moved here + +2001-11-30 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02590] + * main.c (_peekURL): peek URL on <input type="image"> + +2001-11-30 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02589] + * rc.c (params1): remove #ifdef VIEW_UNSEENOBJECTS + +2001-11-29 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02588] + * configure: fix alarm() check + +2001-11-29 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02587] + * file.c (gunzip_stream): s/__CYGWIN__/USE_BINMODE_STREAM/ + + * [w3m-dev 02586] + * configure: typo s/_zdmachdep.c/zmachdep.c/ + + * fix shadow variable + * main.c (HTMLtagproc1): s/refresh/refresh_interval/ + * matrix.c (LUfactor): s/index/indexarray/ + * matrix.c (LUsolve): ditto + * matrix.c (m_inverse): ditto + * matrix.c (LUinverse): ditto + * table.c (bsearch_2short): ditto + * table.c (bsearch_double): ditto + * table.c (dv2sv): ditto + * table.c (check_cell_width): ditto + * table.c (set_integered_width): ditto + * table.c (set_table_width): ditto + * table.c (check_table_height): ditto + * ftp.c: s/ftp/current_ftp/ + * ftp.c (Ftpfclose): ditto + * ftp.c (openFTP): ditto + * ftp.c (closeFTP): ditto + * ftp.c (FtpLogin): save to current_ftp + * ftp.c (openFTP): s/realpath/realpathname/ + * ftp.c (openFTP): remove i + + * ftp.c (ftp_pasv): s/sin/sockaddr/ + + * [w3m-dev 02584] code cleanup + + * linein.c (_esc): fix #ifdef EMACS_LIKE_LINEEDIT + + * fix shadow variables (partially) + * version.c: s/version/w3m_version/ + * configure: ditto + * fm.h: ditto + * local.c (set_environ): ditto + * main.c (fusage): ditto + * main.c (MAIN): ditto + * main.c (dispVer): ditto + * rc.c (load_option_panel): ditto + * url.c (otherinfo): ditto + * file.c (readHeader): s/tmp/tmp2/ + * file.c (loadGeneralFile): s/tmp/cmd/ + * file.c (flushline): s/f/df/ + * file.c (doExternal): s/stat/mc_stat/ + * proto.h: ditto + * mailcap.c (unquote_mailcap_loop): ditto + * mailcap.c (unquote_mailcap): ditto + * main.c (cmd_loadBuffer): s/link/linkid/ + * main.c (sig_chld): s/stat/p_stat/ + * fm.h: remove config_file + * main.c (MAIN): s/config_file/config_filename/ + * rc.c (init_rc): ditto + * proto.h: ditto + * rc.c: add config_file + * menu.c (goem_menu): s/select/mselect/ + * menu.c (draw_menu_item): ditto + * menu.c (select_menu): ditto + * menu.c (goto_menu): ditto + * menu.c (action_menu): ditto + * menu.c (mNext): ditto + * menu.c (mPrev): ditto + * menu.c (mOk): ditto + * menu.c (mSrchF): ditto + * menu.c (mSrchB): ditto + * menu.c (mSrchN): ditto + * menu.c (mSrchP): ditto + * menu.c (process_mMouse): ditto + * menu.c (smDelBuf): ditto + * proto.h: ditto + + * printf format + * display.c (redrawLine): use %*ld instead of %*d + + * require parentheses + * ftp.c (FtpLogin): add paren + + * fix variable might be clobbered by `longjmp' or `vfork' + * file.c (loadGeneralFile): add volatile + * file.c (loadHTMLString): ditto + * file.c (loadBuffer): ditto + * file.c (doExternal): ditto + * frame.c (createFrameFile): ditto + * main.c (srchfor): ditto + * main.c (srchbak): ditto + * main.c (srch_nxtprv): ditto + * url.c (openSocket): ditto + + * fix unused variables + * file.c (readHeader): emssg if USE_COOKIE defined + * file.c (HTMLlineproc2body: remove tmp + * file.c (saveBufferDelNum): remove p + * linein.c (_esc): c2 if JP_CHARSET defined + + * fix uninitialized variables + * Str.c (Sprintf): initialize p + * buffer.c (readBufferCache): initialize prevl + * conv.c (cConvSE): initialize ub + * conv.c (_cConvEE): initialize ub + * conv.c (cConvES): initialize ub + * file.c (loadGeneralFile): initialize proc, t, prevtral, ss, realm + * file.c (HTMLlineproc2body): initialize debug + * file.c (HTMLlineproc0): initialize tbl_mode, tbl_width + * file.c (loadHTMLstream): initialize prevtrap + * file.c (loadHTMLString): initialize prevtrap + * file.c (loadBuffer): initialize prevtrap + * form.c (formUpdateBuffer): initialize col + * ftp.c (openFTP): initialize pwd + * local.c (dirBuffer): initialize nrow + * main.c (gpm_process_mouse): initialize btn + * menu.c (gpm_process_menu_mouse): ditto + * menu.c (initMenu): initialize nmenu, nitem, item + * parsetagx.c (parse_tag): initialize attr_id + * rc.c (show_params): initialize t + * table.c (visible_length): initialize amp_len + * table.c (set_integered_width): initialize x + * table.c (check_table_height): initialize space + * table.c (renderTable): initialize vrulea, vruleb, vrulec + * terms.c (putchars): initialize s + * url.c (openSocket): initialize trap, result + * url.c (openURL): initialize sslh + +2001-11-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02579] + * configure: Use environment variables CC, CFLAGS, LDFLAGS + +2001-11-28 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02574] sysconfdir + * configure: add -bindir=* -libdir=* -helpdir=* -sysconfdir=* + * configure: add ETC_DIR + * indep.c (w3m_etc_dir): added + * indep.h: ditto + * rc.c (init_rc): use etcFile() instead of libFile() + * rc.c (etcFile): added + * proto.h: ditto + +2001-11-28 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02578] + * file.c (process_anchor): support <input type="image"> + * html.c (ALST_INPUT): add ATTR_SRC, ATTR_WIDTH, ATTR_HEIGHT + * html.c (MAXA_INPUT): +3 + + * conv.c (checkShiftCode): fix comments for indent(1) + * main.c (loadLink): ditto + * fm.h: ditto + * file.c (process_anchor); ditto + * file.c (HTMLlineproc2body): ditto + +2001-11-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02576] + * url.c (openURL): remove pu->file = p; which cause segfault + because p is not initialized + +2001-11-28 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02571] MAXPATHLEN + * indep.c (currentdir): #ifdef MAXPATHLEN for GNU Hurd + * configure: ditto + +2001-11-27 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02572] + * main.c (_peekURL): initialize s when anchor not found + +2001-11-27 aito@fw.ipsj.or.jp + * Error correction on doc-jp/FAQ.html + +2001-11-27 sakane@d4.bsd.nes.nec.co.jp (Yoshinobu Sakane) + * w3m-doc update. + +2001-11-26 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02537] + * configure: s/$def_egd/def_use_egd/ + +2001-11-26 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02556] + * indep.c (strcasestr): strcasestr("", "") should not return NULL + + * [w3m-dev 02555] + * configure: check strcasestr + * fm.h (_GNU_SOURCE): requires for strcasestr() + * indep.c (strcasestr): #ifdef HAVE_STRCASESTR + * indep.c (strcasestr): check whether s2 is NULL + * indep.h: add #include "config.h" + * indep.h: #ifdef HAVE_STRCASESTR + * indep.h: strcasestr() takes const char * + +2001-11-26 Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp> + + * [w3m-dev 02553] + * configure: SysV's tr requires '[a-z]' '[A-Z]' + +2001-11-26 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02547] "message/*" as a kind of text type + * file.c (is_text_type): add message/* + +2001-11-25 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02535] Name conflicts in configure + * configure: s/libdir/tlibdir/ for loop variables + +2001-11-25 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + + * display.c: call of init_win32_console_handle is deleted + +2001-11-25 Rin Okuyama <okuyama@cna.ne.jp> + + * [w3m-dev 02533] setpgrp bug in configure + * configure: s/have_setpgrp/def_have_setpgrp/ + s/setpgrp/def_setpgrp/ + +2001-11-24 Fumitoshi UKAI <ukai@debian.or.jp> + + * Makefile (indent): indent + * run make indent + +2001-11-24 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02530] + * file.c (readHeader): NULL check for domain + +2001-11-24 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02529] + * configure (ask_choice): fix bugs + * configure (include_opt): disable as much as if baby model + * configure: ask/def parameter after model selected + + * fm.h (use_mark): runtime option use_mark + * main.c (_mark): ditto + * main.c (cmd_mark): ditto + * main.c (nextMk): ditto + * main.c (prevMk): ditto + * main.c (reMk): ditto + * rc.c (CMT_USE_MARK): ditto + * rc.c (params3): ditto + + * fm.h (nextpage_topline): runtime option nextpage_topline + * etc.c (lineSkip): ditto + * main.c (nscroll): ditto + * rc.c (CMT_NEXTPAGE_TOPLINE): ditto + * rc.c (params3): ditto + + * fm.h (label_topline): runtime option label_topline + * file.c (loadGeneralFile): ditto + * main.c (loadLink): ditto + * rc.c (CMT_LABEL_TOPLINE): ditto + * rc.c (params3): ditto + + * fm.h (vi_prec_num): runtime option vi_prec_num + * main.c (pgFore): ditto + * main.c (pgBack): ditto + * rc.c (CMT_VI_PREC_NUM): ditto + * rc.c (params3): ditto + + * fm.h (emacs_like_lineedit): runtime option emacs_like_lineedit + * linein.c (inputLineHist): ditto + * linein.c (_esc): ditto + * linein.c (next_dcompl): ditto + * rc.c (CMT_EMACS_LIKE_LINEEDIT): ditto + * rc.c (params3): ditto + + * fm.h (ftppass_hostnamegen): runtime option ftppass_hostnamegen + * ftp.c (FtpLogin): ditto + * rc.c (CMT_FTPPASS_HOSTNAMEGEN): ditto + * rc.c (params9): ditto + +2001-11-24 Akihiro Sagawa <sagawa@sohgoh.net> + + * [w3m-dev 02528] RFC2732 URL Patch + * main.c (chkURL): check RFC2732 style URLs + * url.c (parseURL): remove RFC2732 address check here, + move to openSocket() + * url.c (openSocket): check RFC2732 style hostname + * url.c (openSocket): check IPv4 address strictly + +2001-11-24 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02526] + * .cvsignore: add inflate mktable w3m w3mbookmark w3mhelperpanel + _zdmachdep.c + * configure: + pref_lang -> lang={JA|EN} + dcode -> display_code + scode -> system_code + remove save_params() + add def_param(), ask_choice() ask_param() + all confiration parameters can be read from config.param + s/DICT/USE_DICT/ + s/BUFINFO/USE_BUFINFO/ + * fm.h: s/DICT/USE_DICT/ + * proto.h: ditto + * doc/README.dict: ditto + * doc-jp/README.dict: ditto + * display.c: s/BUFINFO/USE_BUFINFO/ + * main.c: s/DICT/USE_DICT/ s/BUFINFO/USE_BUFINFO/ + +2001-11-24 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02523] + * table.c (feed_table_tag): + fix problem of anchor tag with name attribute only + +2001-11-23 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02511] + * terms.c (isWinConsole): added + +2001-11-22 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02509] ([w3m-dev 02499] [w3m-dev 02508]) + * terms.c (setlinescols): initialize LASTLINE + * terms.c: add LASTLINE + * fm.h: extern int LASTLINE + * linein.c: remove defined(__CYGWIN__) && defined(JP_CHARSET) + * main.c: remove MOUSE_* definition + * terms.h: move MOUSE_* definition from main.c + * terms.c: add tty + * terms.c (check_win32_console): added + * terms.c (init_win32_console_handle): ditto + * terms.c (read_win32_console_input): ditto + * terms.c (read_win32_console): ditto + * terms.c (set_tty) add call init_win32_console + * terms.c (getch) use read_win32_console + * terms.c (mouse_init): check hConIn + * terms.c (mouse_end): ditto + +2001-11-22 aito@fw.ipsj.or.jp + + * [w3m-dev 02503] + * indep.c (getescapechar): allow incomplete entity references in URL + closes: Debian Bug#120540 + +2001-11-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02506] + * anchor.c (putHmarker): remove #ifdef __CYGWIN__ for bzero() + * matrix.h (m_copy): ditto + * table.c (pushTable): ditto + +2001-11-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02505] + * configure (alarm): check alarm if USE_ALARM + +2001-11-22 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02501] + * .cvsignore: add funcname.c funcname1.h funcname2.h tagtable.c + * scripts/.cvsignore: added, dirlist.cgi + * scripts/multipart/.cvsignore: added, multipart.cgi + * scripts/w3mman/.cvsignore: added, w3mman w3mman2html.cgi + * doc-jp/README.kokb: deleted + * gc/makefile.depend: deleted + +2001-11-22 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * table.c (feed_table): fix the following table + <table border=1><tr><td>< <</table> + +2001-11-22 WATANABE Katsuyuki <katsuyuki_1.watanabe@toppan.co.jp> + + * [w3m-dev 02497] + * url.c (parseURL2): fix #ifdef __EMX__ code + * indep.c (cleanupName): remove #if 0 /* SUPPORT_NETBIOS_SHARE */ code + +2001-11-22 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02494] + * configure (MIME_TYPES): check if mimetypes is empty + * configure (label_topline): add missing = + * configure (nextpage_topline): ditto + +2001-11-22 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02493] + * scripts/multipart/Makefile: s/DISTDIR/DESTDIR/ + +2001-11-21 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02481] + * s/BG_COLOR/USE_BG_COLOR/ + * s/ANSI_COLOR/USE_ANSI_COLOR/ + * s/COLOR/USE_COLOR/ + * s/MENU/USE_MENU/ + * s/MOUSE/USE_MOUSE/ + + * [w3m-dev 02480] new configure + * config.h.dist: updated + * configure: $def_emacs_like_lineedit, $def_vi_prec_num + $def_label_topline, $def_nextpage_topline + $def_use_mark, $def_use_gopher, $def_use_alarm + * configure: add --{ssl,gc}-{include,lib}dir, --mimetypes + * configure: BoehmGC Debian hack + * XMakefile: add $(OPTS) + * terms.c: use HAVE_SYS_SELECT_H + * configure: add sys/select.h detection + * configure: no_float_h -> float_h + * configure: add chdir() detection + * local.c (localcgi_post): use HAVE_CHDIR instead of __EMX__ + * local.c (localcgi_get): ditto + * main.c: <time.h> no need for #ifdef __EMX__ + other files already do #include <time.h> + + [w3m-dev 02479] + * rc.c (init_rc): remove #ifdef __EMX__ for tmpdir + * config.h.dit: updated + * url.c (openURL): use CGI_EXTENSION + add extlen + * rc.c (helpFile): remove #ifdef __EMX__ + use w3m_help_dir() + * w3mbookmark.c (lib_dir): removed + * w3mbookmark.c (print_bookmark_panel): use w3m_lib_dir() + * rc.c (libFile): remove #ifdef __EMX__ + use w3m_lib_dir() + * local.c (get_os2_dft): removed + * local.c (check_local_cgi): use w3m_lib_dir() instead of lib_dir + * local.c (cgi_filename): ditto + * indep.c (w3m_dir): added + * indep.c (w3m_lib_dir w3m_help_dir): ditto + * indep.h (w3m_lib_dir w3m_help_dir): ditto + * terms.c (set_tty): remove #ifdef __EMX__ + use DEV_TTY_PATH + * local.c (localcgi_get): use DEV_NULL_PATH + * w3mhelperpanel.c (printMailcapPanal): remove #ifdef __EMX__ + use W3mHELPERPANEL_CMDNAME + * rc.c (optionpanel_src1): ditto + * w3mbookmark.c (bkmark_src1): remove #ifdef __EMX__ + use W3MBOOKMARK_CMDNAME + * main.c (adBmark): ditto + use w3m_lib_dir() + * terms.c (getTCstr): remove #ifdef __DJGPP__ + use DEFAULT_TERM + check ent is NULL + * main.c (fusage): remove #ifdef SHOW_PARAMS + * main.c (MAIN): ditto + * rc.c (show_params): ditto + * fm.h (view_unseenobject): remove #ifdef VIEW_UNSEENOBJECTS + * url.c (check_no_proxy): remove #ifdef NOPROXY_NETADDR + * configure (show_params): removed + * configure (config.h): + - fix comment for USE_MARK + - add MENU_THIN_FRAME + - move $def_nntp (USE_NNTP), $def_ansi_color (ANSI_COLOR) + - remove VIEW_UNSEENOBJECTS + - remove $def_show_params (SHOW_PARAMS) + - define DEFAULT_TERM + - define W3MBOOKMARK_CMDNAME + - define W3MHELPERPANEL_CMDNAME + - define DEV_NULL_PATH + - define DEV_TTY_PATH + - define CGI_EXTENSION + + [w3m-dev 02478] + * Makefile: make -> $(MAKE) + +2001-11-21 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02473] + * scripts/Makefile: chmod +x + * scripts/Makefile: add clean target + * scripts/multipart/Makefile: ditto + * scripts/w3mman/Makefile: ditto + * XMakefile: clean scripts + * scripts/dirlist.cgi: removed from CVS + * Makefile (install-scripts): added + * XMakefile: (install-scripts): depends all-scripts + +2001-11-21 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02470] + * XMakefile: all of scripts are generated by this instead of configure + * configure: add PERL, remove scripts/dirlist.cgi generation + * config.h.dist: add PERL + * scripts/Makefile: added + * scripts/multipart/Makefile scripts/w3mman/Makefile: + new scripts generation and installation + * scripts/multipart/README scripts/w3mman/README: update + +2001-11-21 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02472] cleanup CYGWIN macro + * display.c (displayBuffer): use __CYGWIN__ macro + * fm.h: ditto + * terms.c (refresh): add condition for isWinConsole which + defined only japanese cygwin environment + +2001-11-21 Akinori Ito <aito@fw.ipsj.or.jp> + + * [w3m-dev 02466] + Homepage URLs and author's mail addresses in the documents + are changed. + +2001-11-21 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02459] + * XMakefile: update scripts/dirlist.cgi generation + * scripts/multipart/multipart.cgi: removed + * scripts/w3mman/w3mman scripts/w3mman/w3mman2html.cgi: removed + + * [w3m-dev 02462] + * scripts/dirlist.in scripts/dirlist.cgi: removed + * scripts/dirlist.cgi.in: added + +2001-11-21 Fumitoshi UKAI <ukai@debian.or.jp> + + * add rcsids + +2001-11-21 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02454] + * buffer.c (newBuffer): set COLS + * display.c (displayBuffer redrawLine redrawLineRegion + cursorRight arrangeCursor cursorXY): + new showLineNumber implementation + * main.c (ctrCsrH shiftvisualpos shiftl shiftr _movL _movR + _followForm follow_map process_mouse): + use buf->COLS, buf->rootX + * menu.c (popupMenu mainMn initSelectMenu): + use buf->rootX + * etc.c (columnSkip): use buf->COLS + * file.c (HTMLlineproc2body loadBuffer saveBufferDelNum getNextPage) + remove old showLineNumber codes + * fm.h (Buffer): add rootX, COLS + +2001-11-21 Fumitoshi UKAI <ukai@debian.or.jp> + + * XMakefile (clean): rm tagtable.c + * .cvsignore: XXMakefile config.h config.param + +2001-11-20 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02455] + * XMakefile.dist deflate.c: removed, not used + * tagtable.c: removed, autogenerated files + * XMakefile (mktable w3mbookmark w3mhelperpanel): use LIBS2 + * configure: add $bsdlib + +2001-11-20 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * frame.c (newFrameSet): fix possible buffer overrun + +2001-11-20 Fumitoshi UKAI <ukai@debian.or.jp> + + * XXMakefile config.h: removed from CVS + these are autogenerated files. + config.h is moved to config.h.dist as sample config file. + +2001-11-20 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02449] + * file.c (HTMLtagproc1): reimplement meta refresh with + setAlarmEvent() + * fm.h: put back alarm related variables to main.c + add alarm related status flags + * main.c: put back alarm related variables from fm.h + alarm_once was renamed alarm_status + add alarm_buffer and setAlarmEvent() + * main.c (MAIN): cancel the alarm event if the buffer was + changed + * main.c (SigAlarm): ditto + * main.c (setAlarm): use setAlarmEvent() + * proto.h: add setAlarmEvent() + +2001-11-20 Fumitoshi UKAI <ukai@debian.or.jp> + + * w3mhelperpanel.c (extractMailcapEntry): remove unused variables + * istream.c (StrISgets): add parentheses around assignment used + as truth value + + * XMakefile (clean): remove funcname.c funcname1.h funcname2.h + these are autogenerated files. + * funcname.c funcname1.h funcname2.h: removed from CVS + + * main.c (MAIN): add braces to avoid ambiguous `else' + * main.c (set_buffer_environ): remove unused variables + * linein.c (_rcompl): not EMACS_LIKE_LINEEDIT only + * local.c (localcgi_get): remove unused variables + * mailcap.c (unquote_mailcap_loop): remove unused variables + * url.c (init_PRNG) add parentheses around assignment used as true value + * url.c (parseURL): remove unsed label + * url.c (parseURL2): remove unused variables + * ftp.c (ftp_escape_str ftp_restore_str): remove not used functions + * indep.c (getescapechar): remove unused variable + + * proto.h: add missing prototypes + +2001-11-20 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02447] + * terms.c (skip_escseq): is_xterm && ESC [ M <ch> <ch> <ch> + +2001-11-20 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02448] + * terms.c (mouse_init): Gpm_Close() is required. + closes: Debian Bug#120221: w3m-ssl: trashes terminal on exit + +2001-11-20 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> + + * [w3m-dev 02444] + * XMakefile (funcname1.h funcname2.h): sort as well as funcname.c + +2001-11-19 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02439] + * terms.c (xterm_mouse_term set_tty): add cygwin as xterm-style + mouse terminal + +2001-11-19 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> + + * [w3m-dev 02436] + * main.c (GetWord): closes: #482763 segmentation fault in main.c + +2001-11-19 Fumitoshi UKAI <ukai@debian.or.jp> + + * gc/.cvsignore: + remove gctest, if_mach, if_not_there, threadlibs + closes: #482765 i386 binaries in gc directory + +2001-11-17 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02432] + * configure: follow autoconf conventions + STRCASECMP -> HAVE_STRCASECMP + STRCHR -> HAVE_STRCHR + STRERROR -> HAVE_STRERROR + SYS_ERRLIST -> HAVE_SYS_ERRLIST + NOBCOPY -> HAVE_BCOPY + GETCWD -> HAVE_GETCWD + GETWD -> HAVE_GETWD + READLINK -> HAVE_READLINK (HAVE_LSTAT?) + TERMIO -> HAVE_TERMIO_H + TERMIOS -> HAVE_TERMIOS_H + SGTTY -> HAVE_SGTTY_H + DIRENT -> HAVE_DIRENT_H + NO_FLOAT_H -> HAVE_FLOAT_H + * etc.c fm.h config.h: HAVE_STRCASECMP + * etc.c config.h file.c: HAVE_STRCHR + strchr() moved from file.c to etc.c + * etc.c config.h: HAVE_STRERROR + * etc.c config.h main.c (MAIN): HAVE_SYS_ERRLIST + * etc.c fm.h: HAVE_BCOPY + * etc.c indep.c (currentdir) config.h: HAVE_GETCWD + * indep.c (currentdir) config.h: HAVE_GETWD + * form.c (form_write_from_file) local.c (dirBuffer) + config.h: HAVE_READLINK + * config.h terms.c: HAVE_TERMIO_H, HAVE_TERMIOS_H, HAVE_SGTTY_H + * config.h local.h: HAVE_DIRENT_H + * config.h matric.c: HAVE_FLOAT_H + + * anchor.c cookie.c file.c parsetagx.c regex.c table.c url.c: + remove include <strings.h> ifdef __EMX__ + it will be included in fm.h + * frame.c: remove include <strings.h> for bzero() and bcopy() + these are declared in fm.h + * indep.c: remove include <strings.h> for bcopy() + this is declared in fm.h + * istream.c mailcap.c: remove include <strings.h> for bzero() + this is declared in fm.h + * parsetag.c: remove include <strings.h> for bzero() + no bzero() used in this file + + * [w3m-dev 02431] + * terms.c (set_tty): "rxvt" is xterm + (getTCstr): tgetstr("Km", &pt) is not xterm, removed + (mouse_init): check Gpm_Open() == -2 to detect xterm when USE_GPM + +2001-11-16 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02418] + * main.c (chkURL): add mailto: like pattern to mark as anchor + * search.c (forwardSearch): check whether currentLine is NULL + * search.c (backwardSearch): ditto + +2001-11-16 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> + + * [w3m-dev-en 00641] Re: w3m-0.2.1-inu-1.6 + * configure: add some dirs for zlib and mime.types + +2001-11-16 Fumitoshi UKAI <ukai@debian.or.jp> + + * [w3m-dev 02417] + * terms.c (mouse_init): fix mouse handling on TERM=linux + if Gpm_Open() successed, set is_xterm = 0 so that + w3m uses gpm functions. + +2001-11-16 Tsutomu Okada <okada@furuno.co.jp> + + * [w3m-dev 02408] meta refresh + * file.c (HTMLtagproc1): + use MetaRefresh + add case refresh > 0 + * fm.h: + add MetaRefresh + move alarm related definition from main.c + * main.c: + move alarm releated definition to fm.h + (SigAlarm): alarm_once + * rc.c: + add CMT_META_REFRESH + + * [w3m-dev 02415] + * file.c (loadHTMLBuffer): + pushText() to clean up temporary files + + * [w3m-dev 02414] + * file.c (loadHTMLstream): + SETJMP and signal after buffer is initialized + + * [w3m-dev 02413] + * main.c (reMark): + don't save invalid regexp to MarkString + +2001-11-15 aito@eie.yz.yamagata-u.ac.jp + + * release-0-2-2 + * Update to w3m-0.2.1-inu-1.6 + +2001-11-09 aito@eie.yz.yamagata-u.ac.jp + + * release-0-2-1-inu-1-5 + * Updates from 0.2.1 into 0.2.1-inu-1.5 + +2001-11-08 aito@eie.yz.yamagata-u.ac.jp + + * release-0-2-1 + * import w3m-0.2.1 + +$Id: ChangeLog,v 1.1055 2012/05/22 10:20:45 inu Exp $ diff --git a/Makefile.in b/Makefile.in index 0137211..77b9ecc 100644 --- a/Makefile.in +++ b/Makefile.in @@ -111,6 +111,7 @@ IMGDISPLAY=w3mimgdisplay$(EXT) MAN1_TARGET=$(PACKAGE).1 MAN1=$(top_srcdir)/doc/w3m.1 MAN1_JA=$(top_srcdir)/doc-jp/w3m.1 +MAN1_DE=$(top_srcdir)/doc-de/w3m.1 LIB_TARGETS=$(BOOKMARKER) $(HELPER) AUXBIN_TARGETS=@AUXBIN_TARGETS@ @@ -150,7 +151,7 @@ parsetagx.o: html.c funcname.tab: $(DEFUNS) (echo '#define DEFUN(x,y,z) x y';\ - sed -ne '/^DEFUN/{p;n;/^[ ]/p;}' $(DEFUNS)) | $(CPP) - | \ + sed -ne '/^DEFUN/{p;n;/^[ ]/p;}' $(DEFUNS)) | $(CPP) $(CPPFLAGS) - | \ awk '$$1 ~ /^[_A-Za-z]/ { \ for (i=2;i<=NF;i++) { print $$i, $$1} \ }' > $@.tmp @@ -220,10 +221,12 @@ install-core: $(TARGETS) -$(MKDIR) $(DESTDIR)$(HELP_DIR) -$(MKDIR) $(DESTDIR)$(mandir)/man1 -$(MKDIR) $(DESTDIR)$(mandir)/ja/man1 + -$(MKDIR) $(DESTDIR)$(mandir)/de/man1 $(INSTALL_PROGRAM) $(TARGET) $(DESTDIR)$(bindir)/$(TARGET) $(INSTALL_DATA) $(HELP_FILE) $(DESTDIR)$(HELP_DIR)/$(HELP_TARGET) $(INSTALL_DATA) $(MAN1) $(DESTDIR)$(mandir)/man1/$(MAN1_TARGET) $(INSTALL_DATA) $(MAN1_JA) $(DESTDIR)$(mandir)/ja/man1/$(MAN1_TARGET) + $(INSTALL_DATA) $(MAN1_DE) $(DESTDIR)$(mandir)/de/man1/$(MAN1_TARGET) targets="$(AUXBIN_TARGETS)"; for file in $$targets; \ do \ case $$file in \ @@ -250,7 +253,7 @@ install-po: (cd $$subdir && $(MAKE) install); \ done -all-scripts: +all-scripts: funcname.tab for dir in $(SCRIPTSUBDIRS); \ do \ (cd $$dir && $(MAKE) $(MAKE_ARGS)); \ @@ -280,6 +283,7 @@ uninstall: -$(RM) -f $(HELP_DIR)/$(HELP_TARGET) -$(RM) -f $(mandir)/man1/$(MAN1_TARGET) -$(RM) -f $(mandir)/ja/man1/$(MAN1_TARGET) + -$(RM) -f $(mandir)/de/man1/$(MAN1_TARGET) -for dir in $(SCRIPTSUBDIRS); \ do \ (cd $$dir && $(MAKE) $(MAKE_ARGS) uninstall); \ @@ -288,7 +292,7 @@ uninstall: clean: sweep -$(RM) -f *.o *.a $(TARGETS) mktable$(EXT) -$(RM) -f funcname.tab - -$(RM) -f funcname.c funcname1.h funcname2.h tagtable.c functable.c + -$(RM) -f entity.h funcname.c funcname1.h funcname2.h tagtable.c functable.c -for dir in w3mimg libwc; \ do \ (cd $$dir && $(MAKE) clean RM="$(RM)"); \ @@ -318,7 +322,7 @@ depend: makedepend $(CFLAGS) *.c dist: - cd ..; tar cvfz w3m-$(VERSION).tar.gz w3m + git archive --format=tar --prefix=w3m-$(VERSION)/ HEAD | xz -9 > ../w3m-$(VERSION).tar.xz bindist: cd ..; tar cvfz w3m-$(VERSION)-$(MODEL).tar.gz w3m/w3m* w3m/doc* w3m/Bonus* w3m/README w3m/scripts @@ -1,3 +1,121 @@ +Debian's w3m 0.5.3+git20210102 + +* new features + - support links containing divs for HTML5 + - rudimentary support for HTML5 tags: figure, figcaption, and section + - enhance the behaviour of the q tag when m17n and Unicode are configured + - support for file://hostname/... URLs + - new commands CURSOR_TOP, CURSOR_MIDDLE, and CURSOR_BOTTOM + - new option space_autocomplete, disabled by default +* bug fixes + - fix and improve broken Gopher support, enabled by default + - change the encoding of the Japanese document files to UTF-8 + - use the default ciphers without SSL_CTX_set_cipher_list for OpenSSL 1.1 + - fix compilation errors due to sys_errlist and longjmp + - define X_DISPLAY_MISSING when configure --without-x for Imlib2 + - avoid the -l option of the man command for w3mman + - fix some source formatting in the manual + - show keyboard shortcuts in a consistent order in help + - fix traditional Chinese translation + - drop obsolete w3m-doc + +Debian's w3m 0.5.3+git20200502 + +* bug fixes + - support ' entity + - prevent multiple User-Agent with -header + - fix -Wchar-subscripts +* new features + - support setting user_agent in siteconf + - new command GOTO_HOME + - extend ssl_forbid_method for TLSv1.2 and TLSv1.3 + +Debian's w3m 0.5.3+git20190105 + +* bug fixes + - do not use deprecated features with OpenSSL 1.1 + - fix dependency for Imlib2 + - fix that the mark_all_pages option works + - respect the simple_preserve_space option for table cells + - fix error handling for ~/.w3m/request.log and localcgi_post() +* new feature + - w3mman supports specifying a section number during a keyword search + +Debian's w3m 0.5.3+git20180125 + +* bug fixes + - fix stack overflow with malformed text [CVE-2018-6196] + - fix null deref with malformed text [CVE-2018-6197] + - fix /tmp file races only when ~/.w3m is unwritable [CVE-2018-6198] + - do not remove w3mdict.cgi when "make distclean" + - do not turn a form's GET into POST + - correct <base ...> parsing + - accept TERM=fbterm +* new feature + - extend ssl_forbid_method to disable TLSv1.1 + +Debian's w3m 0.5.3+git20170102 + +* bug fixes + - fix multiple flaws with malformed text + (buffer overflow, use after free, infinite loop) + - fix uninitialized variable when not USE_IMAGE + +Debian's w3m 0.5.3+git20161120 + +* bug fixes + - fix multiple flaws with malformed text + (stack overflow, buffer overflow, null deref, out of memory) + [CVE-2016-9622], [CVE-2016-9623], [CVE-2016-9624], [CVE-2016-9625], + [CVE-2016-9626], [CVE-2016-9627], [CVE-2016-9628], [CVE-2016-9629], + [CVE-2016-9630], [CVE-2016-9631], [CVE-2016-9632], [CVE-2016-9633] + - fix stack overflow with nested table and textarea [CVE-2016-9439] + - fix suspend (^Z) behavior + +Debian's w3m 0.5.3+git20161031 + +* new features + - support OSC 5379 remote imaging and sixel graphics + - support SGR style mouse handler + - support 32-bit color images + - support FreeBSD framebuffer + - support button element + - support meta charset + - include w3mdict.cgi to use a dictd dictionary query + - add extbrowser4..9 + - add display_borders to display 0 pixel table borders + - add siteconf feature + - add German translation for options setting panel + - add translations for de, zh_CN and zh_TW +* bug fixes + - fix multiple flaws with malformed text + [CVE-2016-9422], [CVE-2016-9423], [CVE-2016-9424], [CVE-2016-9425], + [CVE-2016-9426], [CVE-2016-9428], [CVE-2016-9429], [CVE-2016-9430], + [CVE-2016-9431], [CVE-2016-9432], [CVE-2016-9433], [CVE-2016-9434], + [CVE-2016-9435], [CVE-2016-9436], [CVE-2016-9437], [CVE-2016-9438], + [CVE-2016-9440], [CVE-2016-9441], [CVE-2016-9443], [CVE-2016-9621] + - fix potential heap buffer corruption due to Strgrow [CVE-2016-9442] + - disable SSLv2 and SSLv3 by default [CVE-2014-3566] + - set ssl_verify_server to 1 by default + - disable RC4, export ciphers, and keys < 128 bits + - use SSL_OP_NO_COMPRESSION due to "CRIME attack" [CVE-2012-4929] + - use SSL_MODE_RELEASE_BUFFERS + - disable USE_EGD for LibreSSL + - appease gcc -Werror=format-security + - option -s is now "squeeze multiple blank lines" to work as pager, and + -j and -e are obsolete, so use -O{s|j|e} to specify display charset + - accept single quoted meta refresh URL + - assume "text" if a form input type is unknown + - accept cookies by default + - set use_dictcommand to 1 by default + - set default_url to 1 by default + - set argv_is_url to 1 by default + - set alt_entity to 0 by default + - fix build problems with Boehm GC 7.2, imlib2 1.4.6 and glibc 2.14 + - fix parallel make failure + - fix incorrect ucs_ambwidth_map + - and many fixes + w3m 0.5.3 - 2011-01-15 * security fix diff --git a/Patches/CVS/Entries b/Patches/CVS/Entries deleted file mode 100644 index 1784810..0000000 --- a/Patches/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/Patches/CVS/Repository b/Patches/CVS/Repository deleted file mode 100644 index cd4278c..0000000 --- a/Patches/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/Patches diff --git a/Patches/CVS/Root b/Patches/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/Patches/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m @@ -1,3 +1,12 @@ +w3m: WWW wo Miru Tool +===================== + +w3m is a pager with WWW capability. It IS a pager, but it can be used +as a text-mode WWW browser. + +This package is maintained for Debian <https://www.debian.org>, +forked from the original version <https://sourceforge.net/projects/w3m/>. + If you can read English, see doc/*. If you can read Japanese, see doc-jp/*. If you can read both, read both and correct English. :-) @@ -48,6 +48,8 @@ Str Strnew_size(int n) { Str x = GC_MALLOC(sizeof(struct _Str)); + if (n < 0) + n = 0; x->ptr = GC_MALLOC_ATOMIC(n + 1); x->ptr[0] = '\0'; x->area_size = n + 1; @@ -56,7 +58,7 @@ Strnew_size(int n) } Str -Strnew_charp(char *p) +Strnew_charp(const char *p) { Str x; int n; @@ -73,7 +75,7 @@ Strnew_charp(char *p) } Str -Strnew_m_charp(char *p, ...) +Strnew_m_charp(const char *p, ...) { va_list ap; Str r = Strnew(); @@ -87,7 +89,7 @@ Strnew_m_charp(char *p, ...) } Str -Strnew_charp_n(char *p, int n) +Strnew_charp_n(const char *p, int n) { Str x; @@ -140,7 +142,7 @@ Strcopy(Str x, Str y) } void -Strcopy_charp(Str x, char *y) +Strcopy_charp(Str x, const char *y) { int len; @@ -160,7 +162,7 @@ Strcopy_charp(Str x, char *y) } void -Strcopy_charp_n(Str x, char *y, int n) +Strcopy_charp_n(Str x, const char *y, int n) { int len = n; @@ -180,7 +182,7 @@ Strcopy_charp_n(Str x, char *y, int n) } void -Strcat_charp_n(Str x, char *y, int n) +Strcat_charp_n(Str x, const char *y, int n) { int newlen; @@ -209,7 +211,7 @@ Strcat(Str x, Str y) } void -Strcat_charp(Str x, char *y) +Strcat_charp(Str x, const char *y) { if (y == NULL) return; @@ -232,8 +234,8 @@ Strgrow(Str x) { char *old = x->ptr; int newlen; - newlen = x->length * 6 / 5; - if (newlen == x->length) + newlen = x->area_size * 6 / 5; + if (newlen == x->area_size) newlen += 2; x->ptr = GC_MALLOC_ATOMIC(newlen); x->area_size = newlen; @@ -278,8 +280,8 @@ void Strchop(Str s) { STR_LENGTH_CHECK(s); - while ((s->ptr[s->length - 1] == '\n' || s->ptr[s->length - 1] == '\r') && - s->length > 0) { + while (s->length > 0 && + (s->ptr[s->length - 1] == '\n' || s->ptr[s->length - 1] == '\r')) { s->length--; } s->ptr[s->length] = '\0'; @@ -301,7 +303,7 @@ Strinsert_char(Str s, int pos, char c) } void -Strinsert_charp(Str s, int pos, char *p) +Strinsert_charp(Str s, int pos, const char *p) { STR_LENGTH_CHECK(s); while (*p) @@ -530,11 +532,8 @@ Str Strfgets(FILE * f) { Str s = Strnew(); - char c; - while (1) { - c = fgetc(f); - if (feof(f) || ferror(f)) - break; + int c; + while ((c = fgetc(f)) != EOF) { Strcat_char(s, c); if (c == '\n') break; @@ -546,11 +545,8 @@ Str Strfgetall(FILE * f) { Str s = Strnew(); - char c; - while (1) { - c = fgetc(f); - if (feof(f) || ferror(f)) - break; + int c; + while ((c = fgetc(f)) != EOF) { Strcat_char(s, c); } return s; @@ -30,22 +30,22 @@ typedef struct _Str { Str Strnew(void); Str Strnew_size(int); -Str Strnew_charp(char *); -Str Strnew_charp_n(char *, int); -Str Strnew_m_charp(char *, ...); +Str Strnew_charp(const char *); +Str Strnew_charp_n(const char *, int); +Str Strnew_m_charp(const char *, ...); Str Strdup(Str); void Strclear(Str); void Strfree(Str); void Strcopy(Str, Str); -void Strcopy_charp(Str, char *); -void Strcopy_charp_n(Str, char *, int); -void Strcat_charp_n(Str, char *, int); +void Strcopy_charp(Str, const char *); +void Strcopy_charp_n(Str, const char *, int); +void Strcat_charp_n(Str, const char *, int); void Strcat(Str, Str); -void Strcat_charp(Str, char *); +void Strcat_charp(Str, const char *); void Strcat_m_charp(Str, ...); Str Strsubstr(Str, int, int); void Strinsert_char(Str, int, char); -void Strinsert_charp(Str, int, char *); +void Strinsert_charp(Str, int, const char *); void Strdelete(Str, int, int); void Strtruncate(Str, int); void Strlower(Str); diff --git a/Symbols/CVS/Entries b/Symbols/CVS/Entries deleted file mode 100644 index dc12f1a..0000000 --- a/Symbols/CVS/Entries +++ /dev/null @@ -1,11 +0,0 @@ -/alt.sym/1.1/Mon Sep 22 21:02:22 2003// -/big5.sym/1.1/Mon Sep 22 21:02:22 2003// -/cp850.sym/1.1/Mon Sep 22 21:02:22 2003// -/euccn.sym/1.1/Mon Sep 22 21:02:22 2003// -/eucjp.sym/1.1/Mon Sep 22 21:02:22 2003// -/euckr.sym/1.1/Mon Sep 22 21:02:22 2003// -/euctw.sym/1.1/Mon Sep 22 21:02:22 2003// -/graph.sym/1.1/Mon Sep 22 21:02:22 2003// -/sym.pl/1.1/Mon Sep 22 21:02:22 2003// -/utf8.sym/1.1/Mon Sep 22 21:02:22 2003// -D diff --git a/Symbols/CVS/Repository b/Symbols/CVS/Repository deleted file mode 100644 index 9d32bc6..0000000 --- a/Symbols/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/Symbols diff --git a/Symbols/CVS/Root b/Symbols/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/Symbols/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/acinclude.m4 b/acinclude.m4 index e4ccc3d..b09f4e6 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -6,7 +6,8 @@ dnl w3m autoconf macros AC_DEFUN([AC_W3M_VERSION], [AC_SUBST(CURRENT_VERSION) cvsver=`$AWK '\$[1] ~ /Id:/ { print \$[3]}' $srcdir/ChangeLog` - sed -e 's/define CURRENT_VERSION "\(.*\)+cvs/define CURRENT_VERSION "\1+cvs-'$cvsver'/' $srcdir/version.c.in > version.c + ymdver=`sed -e 's/ .*//;s/-//g;q' $srcdir/ChangeLog` + sed -e 's/define CURRENT_VERSION "\(.*\)YYYYMMDD/define CURRENT_VERSION "\1'$ymdver'/;s/define CURRENT_VERSION "\(.*\)+cvs/define CURRENT_VERSION "\1+cvs-'$cvsver'/' $srcdir/version.c.in > version.c CURRENT_VERSION=`sed -n 's/.*define CURRENT_VERSION *"w3m\/\(.*\)".*$/\1/p' version.c`]) # # ---------------------------------------------------------------- @@ -124,8 +125,8 @@ AC_DEFUN([AC_W3M_GOPHER], [AC_SUBST(USE_GOPHER) AC_MSG_CHECKING(if gopher is enabled) AC_ARG_ENABLE(gopher, - [ --enable-gopher enable GOPHER],, - [enable_gopher="no"]) + [ --disable-gopher disable GOPHER],, + [enable_gopher="yes"]) test x"$enable_gopher" = xyes && AC_DEFINE(USE_GOPHER) AC_MSG_RESULT($enable_gopher)]) # @@ -330,10 +331,10 @@ AC_DEFINE_UNQUOTED(DEF_MAILER, "$w3m_mailer")]) # ---------------------------------------------------------------- AC_DEFUN([AC_W3M_EXT_BROWSER], [AC_SUBST(DEF_EXT_BROWSER) -w3m_browser="/usr/bin/mozilla" +w3m_browser="/usr/bin/firefox" AC_MSG_CHECKING(which external browser is used by default) AC_ARG_WITH(browser, - [ --with-browser=BROWSER default browser (/usr/bin/mozilla)], + [ --with-browser=BROWSER default browser (/usr/bin/firefox)], [w3m_browser="$with_browser"]) AC_MSG_RESULT($w3m_browser) AC_DEFINE_UNQUOTED(DEF_EXT_BROWSER, "$w3m_browser")]) @@ -400,10 +401,10 @@ AC_DEFUN([AC_W3M_TERMLIB], AC_ARG_WITH(termlib, [ --with-termlib[=LIBS] terminal library LIBS is space separated list of: - terminfo mytinfo termcap ncurses curses],, + terminfo mytinfo termcap tinfo ncurses curses],, [with_termlib="yes"]) AC_MSG_RESULT($with_termlib) - test x"$with_termlib" = xyes && with_termlib="terminfo mytinfo termlib termcap ncurses curses" + test x"$with_termlib" = xyes && with_termlib="terminfo mytinfo termlib termcap tinfo ncurses curses" for lib in $with_termlib; do AC_CHECK_LIB($lib, tgetent, [W3M_LIBS="$W3M_LIBS -l$lib"; break]) done @@ -600,7 +601,7 @@ AC_DEFUN([AC_W3M_IMAGE], if test x"$enable_image" = xyes; then enable_image=x11 case "`uname -s`" in - Linux|linux|LINUX) + Linux|linux|LINUX|FreeBSD|freebsd|FREEBSD) if test -c /dev/fb0; then enable_image=x11,fb fi;; @@ -649,6 +650,9 @@ AC_DEFUN([AC_W3M_IMAGE], fi;; imlib2) with_imlib2="yes" + if test x"$PKG_CONFIG" = x; then + PKG_CONFIG=pkg-config + fi if test x"$IMLIB2_CONFIG" = x; then IMLIB2_CONFIG=imlib2-config fi;; @@ -661,8 +665,6 @@ AC_DEFUN([AC_W3M_IMAGE], with_gtk2="yes" if test x"$PKG_CONFIG" = x; then PKG_CONFIG=pkg-config - else - PKG_CONFIG=: fi;; esac done @@ -705,8 +707,8 @@ AC_DEFUN([AC_W3M_IMAGE], IMGTARGETS="x11" AC_DEFINE(USE_GDKPIXBUF) AC_DEFINE(USE_GTK2) - IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`" - IMGX11LDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`" + IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0`" + IMGX11LDFLAGS="-lX11 `${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0`" elif test x"$have_gdkpixbuf" = xyes; then AC_DEFINE(USE_W3MIMG_X11) IMGOBJS="$IMGOBJS x11/x11_w3mimg.o" @@ -728,7 +730,7 @@ AC_DEFUN([AC_W3M_IMAGE], IMGTARGETS="x11" AC_DEFINE(USE_IMLIB2) IMGX11CFLAGS="`${IMLIB2_CONFIG} --cflags`" - IMGX11LDFLAGS="`${IMLIB2_CONFIG} --libs`" + IMGX11LDFLAGS="-lX11 `${PKG_CONFIG} --libs imlib2`" else AC_MSG_WARN([unable to build w3mimgdisplay with X11 support]) fi @@ -740,8 +742,8 @@ AC_DEFUN([AC_W3M_IMAGE], IMGTARGETS="${IMGTARGETS} fb" AC_DEFINE(USE_GDKPIXBUF) AC_DEFINE(USE_GTK2) - IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gtk+-2.0`" - IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gtk+-2.0`" + IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0`" + IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0`" elif test x"$have_gdkpixbuf" = xyes; then AC_DEFINE(USE_W3MIMG_FB) IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" @@ -756,7 +758,7 @@ AC_DEFUN([AC_W3M_IMAGE], AC_DEFINE(USE_IMLIB2) IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" IMGFBCFLAGS="`${IMLIB2_CONFIG} --cflags`" - IMGFBLDFLAGS="`${IMLIB2_CONFIG} --libs`" + IMGFBLDFLAGS="`${PKG_CONFIG} --libs imlib2`" else AC_MSG_WARN([unable to build w3mimgdisplay with FB support]) fi @@ -858,21 +860,6 @@ if test x"$enable_ipv6" = xyes; then fi]) # # ---------------------------------------------------------------- -# AC_W3M_SYS_ERRLIST -# ---------------------------------------------------------------- -AC_DEFUN([AC_W3M_SYS_ERRLIST], -[AC_SUBST(HAVE_SYS_ERRLIST) -AC_MSG_CHECKING(for sys_errlist) -AC_TRY_COMPILE( -changequote(<<,>>)dnl -<<extern char *sys_errlist[];>>, -<<printf(sys_errlist[0]);>>, -changequote([,])dnl -[have_sys_errlist="yes"; AC_DEFINE(HAVE_SYS_ERRLIST)], -[have_sys_errlist="no"]) -AC_MSG_RESULT($have_sys_errlist)]) -# -# ---------------------------------------------------------------- # AC_W3M_SIGSETJMP # ---------------------------------------------------------------- AC_DEFUN([AC_W3M_SIGSETJMP], @@ -0,0 +1,39 @@ +/* + * by Scarlett. public domain. + * replacements for w3m's allocation macros which add overflow + * detection and concentrate the macros in one file + */ +#ifndef W3_ALLOC_H +#define W3_ALLOC_H +#include <gc.h> +#include <stdlib.h> +#include <stdio.h> +#include <limits.h> + +static inline size_t +z_mult_no_oflow_(size_t n, size_t size) +{ + if (size != 0 && n > ULONG_MAX / size) { + fprintf(stderr, + "w3m: overflow in malloc, %lu*%lu\n", (unsigned long)n, (unsigned long)size); + exit(1); + } + return n * size; +} + +#define New(type) \ + (GC_MALLOC(sizeof(type))) + +#define NewAtom(type) \ + (GC_MALLOC_ATOMIC(sizeof(type))) + +#define New_N(type, n) \ + (GC_MALLOC(z_mult_no_oflow_((n), sizeof(type)))) + +#define NewAtom_N(type, n) \ + (GC_MALLOC_ATOMIC(z_mult_no_oflow_((n), sizeof(type)))) + +#define New_Reuse(type, ptr, n) \ + (GC_REALLOC((ptr), z_mult_no_oflow_((n), sizeof(type)))) + +#endif /* W3_ALLOC_H */ @@ -11,7 +11,7 @@ putAnchor(AnchorList *al, char *url, char *target, Anchor **anchor_return, { int n, i, j; Anchor *a; - BufferPoint bp; + BufferPoint bp = { 0 }; if (al == NULL) { al = New(AnchorList); al->anchors = NULL; @@ -200,10 +200,11 @@ _put_anchor_news(Buffer *buf, char *p1, char *p2, int line, int pos) if (*(p2 - 1) == '>') p2--; } - tmp = wc_Str_conv_strict(Strnew_charp_n(p1, p2 - p1), InnerCharset, - buf->document_charset); - tmp = Sprintf("news:%s", file_quote(tmp->ptr)); - return registerHref(buf, tmp->ptr, NULL, NO_REFERER, NULL, '\0', line, + tmp = Strnew_charp("news:"); + Strcat_charp_n(tmp, p1, p2 - p1); + return registerHref(buf, url_encode(tmp->ptr, baseURL(buf), + buf->document_charset), + NULL, NO_REFERER, NULL, '\0', line, pos); } #endif /* USE_NNTP */ @@ -213,9 +214,10 @@ _put_anchor_all(Buffer *buf, char *p1, char *p2, int line, int pos) { Str tmp; - tmp = wc_Str_conv_strict(Strnew_charp_n(p1, p2 - p1), InnerCharset, - buf->document_charset); - return registerHref(buf, url_quote(tmp->ptr), NULL, NO_REFERER, NULL, + tmp = Strnew_charp_n(p1, p2 - p1); + return registerHref(buf, url_encode(tmp->ptr, baseURL(buf), + buf->document_charset), + NULL, NO_REFERER, NULL, '\0', line, pos); } @@ -549,7 +551,8 @@ shiftAnchorPosition(AnchorList *al, HmarkerList *hl, int line, int pos, break; if (a->start.pos > pos) { a->start.pos += shift; - if (hl->marks[a->hseq].line == line) + if (hl && hl->marks && + a->hseq >= 0 && hl->marks[a->hseq].line == line) hl->marks[a->hseq].pos = a->start.pos; } if (a->end.pos >= pos) @@ -641,7 +644,6 @@ addMultirowsForm(Buffer *buf, AnchorList *al) { int i, j, k, col, ecol, pos; Anchor a_form, *a; - FormItemList *fi; Line *l, *ls; if (al == NULL || al->nanchor == 0) @@ -668,7 +670,6 @@ addMultirowsForm(Buffer *buf, AnchorList *al) if (!ls) continue; } - fi = (FormItemList *)a_form.url; col = COLPOS(ls, a_form.start.pos); ecol = COLPOS(ls, a_form.end.pos); for (j = 0; l && j < a_form.rows; l = l->next, j++) { @@ -685,6 +686,8 @@ addMultirowsForm(Buffer *buf, AnchorList *al) a->hseq = a_form.hseq; a->y = a_form.y; a->end.pos = pos + ecol - col; + if (pos < 1 || a->end.pos >= l->size) + continue; l->lineBuf[pos - 1] = '['; l->lineBuf[a->end.pos] = ']'; for (k = pos; k < a->end.pos; k++) @@ -756,7 +759,7 @@ link_list_panel(Buffer *buf) p = parsedURL2Str(&pu)->ptr; u = html_quote(p); if (DecodeURL) - p = html_quote(url_unquote_conv(p, buf->document_charset)); + p = html_quote(url_decode2(p, buf)); else p = u; } @@ -787,7 +790,7 @@ link_list_panel(Buffer *buf) p = parsedURL2Str(&pu)->ptr; u = html_quote(p); if (DecodeURL) - p = html_quote(url_unquote_conv(p, buf->document_charset)); + p = html_quote(url_decode2(p, buf)); else p = u; t = getAnchorText(buf, al, a); @@ -809,16 +812,13 @@ link_list_panel(Buffer *buf) p = parsedURL2Str(&pu)->ptr; u = html_quote(p); if (DecodeURL) - p = html_quote(url_unquote_conv(p, buf->document_charset)); + p = html_quote(url_decode2(p, buf)); else p = u; if (a->title && *a->title) t = html_quote(a->title); - else if (DecodeURL) - t = html_quote(url_unquote_conv - (a->url, buf->document_charset)); else - t = html_quote(a->url); + t = html_quote(url_decode2(a->url, buf)); Strcat_m_charp(tmp, "<li><a href=\"", u, "\">", t, "</a><br>", p, "\n", NULL); a = retrieveAnchor(buf->formitem, a->start.line, a->start.pos); @@ -842,19 +842,13 @@ link_list_panel(Buffer *buf) p = parsedURL2Str(&pu)->ptr; u = html_quote(p); if (DecodeURL) - p = html_quote(url_unquote_conv(p, - buf-> - document_charset)); + p = html_quote(url_decode2(p, buf)); else p = u; if (m->alt && *m->alt) t = html_quote(m->alt); - else if (DecodeURL) - t = html_quote(url_unquote_conv(m->url, - buf-> - document_charset)); else - t = html_quote(m->url); + t = html_quote(url_decode2(m->url, buf)); Strcat_m_charp(tmp, "<li><a href=\"", u, "\">", t, "</a><br>", p, "\n", NULL); } @@ -47,6 +47,8 @@ newBuffer(int width) #ifdef USE_M17N n->auto_detect = WcOption.auto_detect; #endif + n->check_url = MarkAllPages; /* use default from -o mark_all_pages */ + n->need_reshape = 1; /* always reshape new buffers to mark URLs */ return n; } @@ -705,6 +707,7 @@ readBufferCache(Buffer *buf) cache = fopen(buf->savecache, "r"); if (cache == NULL || fread1(clnum, cache) || fread1(tlnum, cache)) { + fclose(cache); buf->savecache = NULL; return -1; } @@ -760,8 +763,10 @@ readBufferCache(Buffer *buf) } #endif } - buf->lastLine = prevl; - buf->lastLine->next = NULL; + if (prevl) { + buf->lastLine = prevl; + buf->lastLine->next = NULL; + } fclose(cache); unlink(buf->savecache); buf->savecache = NULL; diff --git a/config.guess b/config.guess index 51fab47..f50dcdb 100755 --- a/config.guess +++ b/config.guess @@ -1,13 +1,12 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2004-03-12' +timestamp='2018-02-24' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -16,24 +15,22 @@ timestamp='2004-03-12' # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# along with this program; if not, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Per Bothner <per@bothner.com>. -# Please send patches to <config-patches@gnu.org>. Submit a context -# diff and a properly formatted ChangeLog entry. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. +# Please send patches to <config-patches@gnu.org>. + me=`echo "$0" | sed -e 's,.*/,,'` @@ -42,7 +39,7 @@ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -53,8 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -66,11 +62,11 @@ Try \`$me --help' for more information." while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -104,16 +100,16 @@ set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; + ,,) echo "int x;" > "$dummy.c" ; for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; @@ -123,7 +119,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ;' +esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) @@ -136,12 +132,40 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +case "$UNAME_SYSTEM" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval "$set_cc_for_build" + cat <<-EOF > "$dummy.c" + #include <features.h> + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi + ;; +esac + # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward @@ -151,22 +175,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ + echo unknown)` + case "$UNAME_MACHINE_ARCH" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null + | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? @@ -176,7 +211,14 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in fi ;; *) - os=netbsd + os=netbsd + ;; + esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release @@ -184,83 +226,62 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; - amd64:OpenBSD:*:*) - echo x86_64-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - cats:OpenBSD:*:*) - echo arm-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pegasos:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + echo "$machine-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" + exit ;; *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" + exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit 0 ;; + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" + exit ;; + *:SolidBSD:*:*) + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" + exit ;; macppc:MirBSD:*:*) - echo powerppc-unknown-mirbsd${UNAME_RELEASE} - exit 0 ;; + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" + exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit 0 ;; + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on @@ -270,76 +291,73 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha*:OpenVMS:*:*) - echo alpha-hp-vms - exit 0 ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit 0 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit 0 ;; + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 - exit 0;; + exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; + echo "$UNAME_MACHINE"-unknown-amigaos + exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; + echo "$UNAME_MACHINE"-unknown-morphos + exit ;; *:OS/390:*:*) echo i370-ibm-openedition - exit 0 ;; + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; *:OS400:*:*) - echo powerpc-ibm-os400 - exit 0 ;; + echo powerpc-ibm-os400 + exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; + echo arm-acorn-riscix"$UNAME_RELEASE" + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp - exit 0;; + exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then @@ -347,32 +365,51 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in else echo pyramid-pyramid-bsd fi - exit 0 ;; + exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 - exit 0 ;; + exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; + sparc) echo sparc-icl-nx7; exit ;; esac ;; + s390x:SunOS:*:*) + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" + exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux"$UNAME_RELEASE" + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval "$set_cc_for_build" + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) @@ -380,26 +417,26 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" + exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; + echo m68k-sun-sunos"$UNAME_RELEASE" + exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac - exit 0 ;; + exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; + echo sparc-auspex-sunos"$UNAME_RELEASE" + exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor @@ -409,44 +446,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; + echo m68k-milan-mint"$UNAME_RELEASE" + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; + echo m68k-hades-mint"$UNAME_RELEASE" + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; + echo m68k-unknown-mint"$UNAME_RELEASE" + exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit 0 ;; + echo m68k-apple-machten"$UNAME_RELEASE" + exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; + echo powerpc-apple-machten"$UNAME_RELEASE" + exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 - exit 0 ;; + exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + echo mips-dec-ultrix"$UNAME_RELEASE" + exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + echo vax-dec-ultrix"$UNAME_RELEASE" + exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; + echo clipper-intergraph-clix"$UNAME_RELEASE" + exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include <stdio.h> /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -455,94 +492,95 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && exit 0 - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos"$UNAME_RELEASE" + exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax - exit 0 ;; + exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix - exit 0 ;; + exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 - exit 0 ;; + exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 - exit 0 ;; + exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi - exit 0 ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 - exit 0 ;; + exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 - exit 0 ;; + exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd - exit 0 ;; + exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" + exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix - exit 0 ;; + exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" + exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include <sys/systemcfg.h> main() @@ -553,128 +591,143 @@ EOF exit(0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - echo rs6000-ibm-aix3.2.5 + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi - exit 0 ;; - *:AIX:*:[45]) + exit ;; + *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" + exit ;; *:AIX:*:*) echo rs6000-ibm-aix - exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) + exit ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 - exit 0 ;; + exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx - exit 0 ;; + exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 - exit 0 ;; + exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd - exit 0 ;; + exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 - exit 0 ;; + exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if [ "$HP_ARCH" = "" ]; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" - #define _HPUX_SOURCE - #include <stdlib.h> - #include <unistd.h> + #define _HPUX_SOURCE + #include <stdlib.h> + #include <unistd.h> - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if [ "$HP_ARCH" = hppa2.0w ] then - # avoid double evaluation of $set_cc_for_build - test -n "$CC_FOR_BUILD" || eval $set_cc_for_build - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null + eval "$set_cc_for_build" + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" + exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" + exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include <unistd.h> int main () @@ -699,360 +752,364 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd - exit 0 ;; + exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd - exit 0 ;; + exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix - exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf - exit 0 ;; + exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf - exit 0 ;; + exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi - exit 0 ;; + exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites - exit 0 ;; + exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit 0 ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit 0 ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit 0 ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit 0 ;; + exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; *:UNICOS/mp:*:*) - echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" + exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + echo sparc-unknown-bsdi"$UNAME_RELEASE" + exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; *:FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include <features.h> - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - # GNU/KFreeBSD systems have a "k" prefix to indicate we are using - # FreeBSD's kernel, but not the complete OS. - case ${LIBC} in gnu) kernel_only='k' ;; esac - echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} - exit 0 ;; + UNAME_PROCESSOR=`/usr/bin/uname -p` + case "$UNAME_PROCESSOR" in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" + exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; + echo "$UNAME_MACHINE"-pc-cygwin + exit ;; + *:MINGW64*:*) + echo "$UNAME_MACHINE"-pc-mingw64 + exit ;; + *:MINGW*:*) + echo "$UNAME_MACHINE"-pc-mingw32 + exit ;; + *:MSYS*:*) + echo "$UNAME_MACHINE"-pc-msys + exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:[34]*) - echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' - exit 0 ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit 0 ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit 0 ;; + echo "$UNAME_MACHINE"-pc-pw32 + exit ;; + *:Interix*:*) + case "$UNAME_MACHINE" in + x86) + echo i586-pc-interix"$UNAME_RELEASE" + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix"$UNAME_RELEASE" + exit ;; + IA64) + echo ia64-unknown-interix"$UNAME_RELEASE" + exit ;; + esac ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit 0 ;; + echo "$UNAME_MACHINE"-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; + echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" + exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit 0 ;; + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" + exit ;; i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; + echo "$UNAME_MACHINE"-pc-minix + exit ;; + aarch64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + eval "$set_cc_for_build" + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + else + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; cris:Linux:*:*) - echo cris-axis-linux-gnu - exit 0 ;; + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + crisv32:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + frv:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + hexagon:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:Linux:*:*) + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #undef CPU - #undef mips - #undef mipsel + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel + CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips + CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" + test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit 0 ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit 0 ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-"$LIBC" + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-"$LIBC" + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-"$LIBC" + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; esac - exit 0 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit 0 ;; + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-"$LIBC" + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-"$LIBC" + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-"$LIBC" + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" + exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + tile*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + vax:Linux:*:*) + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" + exit ;; x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit 0 ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include <features.h> - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #ifdef __INTEL_COMPILER - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 - ;; + if objdump -f /bin/sh | grep -q elf32-x86-64; then + echo "$UNAME_MACHINE"-pc-linux-"$LIBC"x32 + else + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + fi + exit ;; + xtensa*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 - exit 0 ;; + exit ;; i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; + # Use sysv4.2uw... so that sysv4* matches it. + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" + exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; + echo "$UNAME_MACHINE"-pc-os2-emx + exit ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; + echo "$UNAME_MACHINE"-unknown-stop + exit ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + echo "$UNAME_MACHINE"-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo "$UNAME_MACHINE"-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos"$UNAME_RELEASE" + exit ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + echo "$UNAME_MACHINE"-pc-msdosdjgpp + exit ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi - exit 0 ;; - i*86:*:5:[78]*) + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" + exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` - echo ${UNAME_MACHINE}-pc-isc$UNAME_REL + echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL" elif /bin/uname -X 2>/dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1062,369 +1119,333 @@ EOF && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv32 + echo "$UNAME_MACHINE"-pc-sysv32 fi - exit 0 ;; + exit ;; pc:*:*:*) # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit 0 ;; + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 - exit 0 ;; + exit ;; paragon:*:*:*) echo i860-intel-osf1 - exit 0 ;; + exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi - exit 0 ;; + exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv - exit 0 ;; + exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv - exit 0 ;; + exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + echo m68k-unknown-lynxos"$UNAME_RELEASE" + exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 - exit 0 ;; + exit ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + echo sparc-unknown-lynxos"$UNAME_RELEASE" + exit ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + echo rs6000-unknown-lynxos"$UNAME_RELEASE" + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos"$UNAME_RELEASE" + exit ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; + echo mips-dde-sysv"$UNAME_RELEASE" + exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi - exit 0 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says <Richard.M.Bartel@ccMail.Census.GOV> - echo i586-unisys-sysv4 - exit 0 ;; + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says <Richard.M.Bartel@ccMail.Census.GOV> + echo i586-unisys-sysv4 + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes <hewes@openmarket.com>. # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 - exit 0 ;; + exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 - exit 0 ;; + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo "$UNAME_MACHINE"-stratus-vos + exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos - exit 0 ;; + exit ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; + echo m68k-apple-aux"$UNAME_RELEASE" + exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 - exit 0 ;; + exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv"$UNAME_RELEASE" else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv"$UNAME_RELEASE" fi - exit 0 ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos - exit 0 ;; + exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos - exit 0 ;; + exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos - exit 0 ;; + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; + echo sx4-nec-superux"$UNAME_RELEASE" + exit ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; + echo sx5-nec-superux"$UNAME_RELEASE" + exit ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; + echo sx6-nec-superux"$UNAME_RELEASE" + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" + exit ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + echo powerpc-apple-rhapsody"$UNAME_RELEASE" + exit ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" + exit ;; *:Darwin:*:*) - case `uname -p` in - *86) UNAME_PROCESSOR=i686 ;; - powerpc) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit 0 ;; + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval "$set_cc_for_build" + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" + exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" + exit ;; *:QNX:*:4*) echo i386-pc-qnx - exit 0 ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; + exit ;; + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" + exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux - exit 0 ;; + exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv - exit 0 ;; + exit ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" + exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; + echo "$UNAME_MACHINE"-unknown-plan9 + exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 - exit 0 ;; + exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex - exit 0 ;; + exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 - exit 0 ;; + exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 - exit 0 ;; + exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 - exit 0 ;; + exit ;; *:ITS:*:*) echo pdp10-unknown-its - exit 0 ;; + exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit 0 ;; + echo mips-sei-seiux"$UNAME_RELEASE" + exit ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "$UNAME_MACHINE" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" + exit ;; + i*86:rdos:*:*) + echo "$UNAME_MACHINE"-pc-rdos + exit ;; + i*86:AROS:*:*) + echo "$UNAME_MACHINE"-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; esac -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 +echo "$0: unable to guess system type" >&2 -eval $set_cc_for_build -cat >$dummy.c <<EOF -#ifdef _SEQUENT_ -# include <sys/types.h> -# include <sys/utsname.h> -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include <sys/param.h> - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <<EOF -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include <sys/param.h> -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} +NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize +the system type. Please install a C compiler and try again. EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi + ;; +esac cat >&2 <<EOF -$0: unable to guess system type -This script, last modified $timestamp, has failed to recognize -the operating system you are using. It is advised that you -download the most up to date version of the config scripts from +This script (version $timestamp), has failed to recognize the +operating system you are using. If your script is old, overwrite *all* +copies of config.guess and config.sub with the latest versions from: - ftp://ftp.gnu.org/pub/gnu/config/ + https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +and + https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub -If the version you run ($0) is already up to date, please -send the following data and any information you think might be -pertinent to <config-patches@gnu.org> in order to provide the needed -information to handle your system. +If $0 has already been updated, send the following data and any +information you think might be pertinent to config-patches@gnu.org to +provide the necessary information to handle your system. config.guess timestamp = $timestamp @@ -1443,16 +1464,16 @@ hostinfo = `(hostinfo) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF exit 1 # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'write-file-functions 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/config.h.dist b/config.h.dist index 844a555..4f31fea 100644 --- a/config.h.dist +++ b/config.h.dist @@ -9,10 +9,10 @@ /* User Configuration */ /* - If you define DICT, you can use dictionary look-up function + If you define USE_DICT, you can use dictionary look-up function in w3m. See README.dict for detail. */ -#define DICT +#define USE_DICT /* If you want to load and save URL history. @@ -138,6 +138,7 @@ INSTALL_W3MIMGDISPLAY=$(INSTALL_PROGRAM) #undef USE_W3MIMG_FB #undef USE_IMLIB #undef USE_GDKPIXBUF +#undef X_DISPLAY_MISSING #undef USE_IMLIB2 #define USE_HELP_CGI #undef USE_XFACE @@ -194,7 +195,6 @@ typedef long clen_t; #define HAVE_STRCASESTR #define HAVE_STRCHR #define HAVE_STRERROR -#define HAVE_SYS_ERRLIST #define HAVE_BCOPY #define HAVE_WAITPID #define HAVE_WAIT3 @@ -210,6 +210,7 @@ typedef long clen_t; #define HAVE_SRANDOM #undef HAVE_GETPASSPHRASE #define HAVE_CHDIR +#define HAVE_MKDTEMP #define SETJMP(env) sigsetjmp(env,1) diff --git a/config.h.in b/config.h.in index 2f41eed..6bb0ee0 100644 --- a/config.h.in +++ b/config.h.in @@ -25,6 +25,7 @@ #define PASSWD_FILE RC_DIR "/passwd" #define PRE_FORM_FILE RC_DIR "/pre_form" +#define SITECONF_FILE RC_DIR "/siteconf" #define USER_MAILCAP RC_DIR "/mailcap" #define SYS_MAILCAP CONF_DIR "/mailcap" #define USER_MIMETYPES "~/.mime.types" @@ -74,6 +75,7 @@ #undef USE_IMLIB #undef USE_GDKPIXBUF #undef USE_GTK2 +#undef X_DISPLAY_MISSING #undef USE_IMLIB2 #undef USE_XFACE #undef USE_DICT @@ -84,7 +86,7 @@ #undef INET6 #undef HAVE_SOCKLEN_T #undef HAVE_OLD_SS_FAMILY -#define USE_EGD +#undef USE_EGD #define ENABLE_REMOVE_TRAILINGSPACES #undef MENU_THIN_FRAME #undef USE_RAW_SCROLL @@ -126,7 +128,6 @@ typedef long clen_t; #undef HAVE_STRCASESTR #undef HAVE_STRCHR #undef HAVE_STRERROR -#undef HAVE_SYS_ERRLIST #undef HAVE_BCOPY #undef HAVE_WAITPID #undef HAVE_WAIT3 @@ -142,6 +143,7 @@ typedef long clen_t; #undef HAVE_SRANDOM #undef HAVE_GETPASSPHRASE #undef HAVE_CHDIR +#undef HAVE_MKDTEMP #undef HAVE_SETPGRP #undef HAVE_SETLOCALE #undef HAVE_LANGINFO_CODESET @@ -179,7 +181,7 @@ typedef RETSIGTYPE MySignalHandler; #endif /* __MINGW32_VERSION */ #else # define SETJMP(env) setjmp(env) -# define LONGJMP(env,val) longjmp(env) +# define LONGJMP(env,val) longjmp(env, val) # define JMP_BUF jmp_buf #endif @@ -209,6 +211,10 @@ typedef RETSIGTYPE MySignalHandler; #define SUPPORT_WIN9X_CONSOLE_MBCS 1 #endif +#if defined(__CYGWIN__) && defined(__x86_64__) +#define DONT_CALL_GC_AFTER_FORK +#endif + #if defined(__DJGPP__) #define DEFAULT_TERM "dosansi" #else @@ -1,42 +1,40 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2004-03-12' +timestamp='2018-02-22' -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - +# along with this program; if not, see <https://www.gnu.org/licenses/>. +# # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches to <config-patches@gnu.org>. Submit a context -# diff and a properly formatted ChangeLog entry. + +# Please send patches to <config-patches@gnu.org>. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. @@ -55,12 +53,11 @@ timestamp='2004-03-12' me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -70,8 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -83,11 +79,11 @@ Try \`$me --help' for more information." while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -98,8 +94,8 @@ while test $# -gt 0 ; do *local*) # First pass through any local machine types. - echo $1 - exit 0;; + echo "$1" + exit ;; * ) break ;; @@ -116,17 +112,24 @@ esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ - kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ + storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` + basic_machine=`echo "$1" | sed 's/-[^-]*$//'` + if [ "$basic_machine" != "$1" ] + then os=`echo "$1" | sed 's/.*-/-/'` else os=; fi ;; esac @@ -145,10 +148,13 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) + -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; + -bluegene*) + os=-cnk + ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 @@ -163,54 +169,65 @@ case $os in os=-chorusos basic_machine=$1 ;; - -chorusrdb) - os=-chorusrdb + -chorusrdb) + os=-chorusrdb basic_machine=$1 - ;; + ;; -hiux*) os=-hiuxwe2 ;; + -sco6) + os=-sco5v6 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; -sco5) os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` ;; -psos*) os=-psos @@ -227,56 +244,114 @@ case $basic_machine in # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ + | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | c4x | clipper \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | ba \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ + | hexagon \ + | i370 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ - | m32r | m32rle | m68000 | m68k | m88k | mcore \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ - | mips64vr | mips64vrel \ + | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | moxie \ + | mt \ | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ - | openrisc | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ | pyramid \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xscale | xstormy16 | xtensa \ - | z8k) + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | wasm32 \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) + ;; + ms1) + basic_machine=mt-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) basic_machine=$basic_machine-unknown os=-none ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' @@ -287,70 +362,102 @@ case $basic_machine in ;; # Object if more than one company name word. *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ + | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ - | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | cydra-* \ + | avr-* | avr32-* \ + | ba-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ | ip2k-* | iq2000-* \ - | m32r-* | m32rle-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ + | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ | msp430-* \ - | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | riscv32-* | riscv64-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ + | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ | tron-* \ - | v850-* | v850e-* | vax-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | wasm32-* \ | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ | ymp-* \ - | z8k-*) + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) - basic_machine=i386-unknown + basic_machine=i386-pc os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) @@ -363,7 +470,7 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; - abacus) + abacus) basic_machine=abacus-unknown ;; adobe68k) @@ -384,7 +491,7 @@ case $basic_machine in basic_machine=x86_64-pc ;; amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl @@ -409,6 +516,13 @@ case $basic_machine in basic_machine=m68k-apollo os=-bsd ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; aux) basic_machine=m68k-apple os=-aux @@ -417,10 +531,35 @@ case $basic_machine in basic_machine=ns32k-sequent os=-dynix ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; c90) basic_machine=c90-cray os=-unicos ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; convex-c1) basic_machine=c1-convex os=-bsd @@ -445,13 +584,20 @@ case $basic_machine in basic_machine=j90-cray os=-unicos ;; - cr16c) - basic_machine=cr16c-unknown + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; @@ -481,14 +627,30 @@ case $basic_machine in basic_machine=m88k-motorola os=-sysv3 ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; - dpx2* | dpx2*-bull) + dpx2*) basic_machine=m68k-bull os=-sysv3 ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=$os"spe" + ;; ebmon29k) basic_machine=a29k-amd os=-ebmon @@ -578,9 +740,6 @@ case $basic_machine in hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; - hppa-next) - os=-nextstep3 - ;; hppaosf) basic_machine=hppa1.1-hp os=-osf @@ -592,28 +751,27 @@ case $basic_machine in i370-ibm* | ibm*) basic_machine=i370-ibm ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; - i386-vsta | vsta) + vsta) basic_machine=i386-unknown os=-vsta ;; @@ -631,8 +789,16 @@ case $basic_machine in basic_machine=m68k-isi os=-sysv ;; - m88k-omron*) - basic_machine=m88k-omron + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux ;; magnum | m3230) basic_machine=mips-mips @@ -642,10 +808,21 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; mingw32) - basic_machine=i386-pc + basic_machine=i686-pc os=-mingw32 ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; miniframe) basic_machine=m68000-convergent ;; @@ -654,14 +831,10 @@ case $basic_machine in os=-mint ;; mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` ;; mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k @@ -671,14 +844,29 @@ case $basic_machine in basic_machine=powerpc-unknown os=-morphos ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; msdos) basic_machine=i386-pc os=-msdos ;; + ms1-*) + basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; mvs) basic_machine=i370-ibm os=-mvs ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; ncr3000) basic_machine=i486-ncr os=-sysv4 @@ -707,7 +895,7 @@ case $basic_machine in basic_machine=v70-nec os=-sysv ;; - next | m*-next ) + next | m*-next) basic_machine=m68k-next case $os in -nextstep* ) @@ -743,20 +931,27 @@ case $basic_machine in np1) basic_machine=np1-gould ;; - nv1) - basic_machine=nv1-cray - os=-unicosmp + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; + nsv-tandem) + basic_machine=nsv-tandem + ;; + nsx-tandem) + basic_machine=nsx-tandem + ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; - or32 | or32-*) + openrisc | openrisc-*) basic_machine=or32-unknown - os=-coff ;; os400) basic_machine=powerpc-ibm @@ -778,6 +973,14 @@ case $basic_machine in basic_machine=i860-intel os=-osf ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux + ;; pbd) basic_machine=sparc-tti ;; @@ -787,6 +990,12 @@ case $basic_machine in pc532 | pc532-*) basic_machine=ns32k-pc532 ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; @@ -800,41 +1009,42 @@ case $basic_machine in basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; - ppc) basic_machine=powerpc-unknown + ppc | ppcbe) basic_machine=powerpc-unknown ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; - ppcle | powerpclittle | ppc-le | powerpc-little) + ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) + ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm @@ -843,6 +1053,14 @@ case $basic_machine in basic_machine=i586-unknown os=-pw32 ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; rom68k) basic_machine=m68k-rom68k os=-coff @@ -869,6 +1087,10 @@ case $basic_machine in sb1el) basic_machine=mipsisa64sb1el-unknown ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; sei) basic_machine=mips-sei os=-seiux @@ -876,14 +1098,10 @@ case $basic_machine in sequent) basic_machine=i386-sequent ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh64) - basic_machine=sh64-unknown + sh5el) + basic_machine=sh5le-unknown ;; - sparclite-wrs | simso-wrs) + simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; @@ -901,6 +1119,9 @@ case $basic_machine in basic_machine=i860-stratus os=-sysv4 ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; sun2) basic_machine=m68000-sun ;; @@ -957,17 +1178,9 @@ case $basic_machine in basic_machine=t90-cray os=-unicos ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown @@ -1029,17 +1242,23 @@ case $basic_machine in basic_machine=hppa1.1-winbond os=-proelf ;; + x64) + basic_machine=x86_64-pc + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; xps | xps100) basic_machine=xps100-honeywell ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` + ;; ymp) basic_machine=ymp-cray os=-unicos ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; none) basic_machine=none-none os=-none @@ -1059,31 +1278,24 @@ case $basic_machine in romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; - sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; cydra) basic_machine=cydra-cydrome ;; @@ -1103,7 +1315,7 @@ case $basic_machine in # Make sure to match an already-canonicalized machine name. ;; *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; esac @@ -1111,10 +1323,10 @@ esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` ;; *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` ;; *) ;; @@ -1125,49 +1337,60 @@ esac if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. + # First match some system type aliases that might get confused + # with valid system types. # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; - -svr4*) - os=-sysv4 - ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; - # First accept the basic system types. + # es1800 is here to avoid being matched by es* (a different OS) + -es1800*) + os=-ose + ;; + # Now accept the basic system types. # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. + # Each alternative MUST end in a * to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ + | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) + | -morphos* | -superux* | -rtmk* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ + | -midnightbsd*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1184,12 +1407,12 @@ case $os in -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + -sim | -xray | -os68k* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) - os=`echo $os | sed -e 's|mac|macos|'` + os=`echo "$os" | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc @@ -1198,26 +1421,20 @@ case $os in os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; - -os400*) + -os400*) os=-os400 ;; -wince*) os=-wince ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; -utek*) os=-bsd ;; @@ -1242,7 +1459,7 @@ case $os in -nova*) os=-rtmk-nova ;; - -ns2 ) + -ns2) os=-nextstep2 ;; -nsk*) @@ -1255,7 +1472,7 @@ case $os in -sinix*) os=-sysv4 ;; - -tpf*) + -tpf*) os=-tpf ;; -triton*) @@ -1264,7 +1481,7 @@ case $os in -oss*) os=-sysv3 ;; - -svr4) + -svr4*) os=-sysv4 ;; -svr3) @@ -1279,27 +1496,38 @@ case $os in -ose*) os=-ose ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; - -aros*) - os=-aros + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos ;; - -kaos*) - os=-kaos + -pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $basic_machine in + arm*) + os=-eabi + ;; + *) + os=-elf + ;; + esac + ;; + -nacl*) + ;; + -ios) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 exit 1 ;; esac @@ -1316,6 +1544,12 @@ else # system, and we'll never get to this point. case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; *-acorn) os=-riscix1.2 ;; @@ -1325,9 +1559,24 @@ case $basic_machine in arm*-semi) os=-aout ;; - c4x-* | tic4x-*) - os=-coff - ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 @@ -1346,13 +1595,13 @@ case $basic_machine in ;; m68000-sun) os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 ;; m68*-cisco) os=-aout ;; + mep-*) + os=-elf + ;; mips*-cisco) os=-elf ;; @@ -1368,12 +1617,18 @@ case $basic_machine in sparc-* | *-sun) os=-sunos4.1.1 ;; + pru-*) + os=-elf + ;; *-be) os=-beos ;; *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; *-wec) os=-proelf ;; @@ -1407,7 +1662,7 @@ case $basic_machine in m88k-omron*) os=-luna ;; - *-next ) + *-next) os=-nextstep ;; *-sequent) @@ -1422,9 +1677,6 @@ case $basic_machine in i370-*) os=-mvs ;; - *-next) - os=-nextstep3 - ;; *-gould) os=-sysv ;; @@ -1476,7 +1728,7 @@ case $basic_machine in -sunos*) vendor=sun ;; - -aix*) + -cnk*|-aix*) vendor=ibm ;; -beos*) @@ -1534,15 +1786,15 @@ case $basic_machine in vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os -exit 0 +echo "$basic_machine$os" +exit # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'write-file-functions 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" @@ -1,13 +1,9 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for w3m 0.5.3. +# Generated by GNU Autoconf 2.69 for w3m 0.5.3. # -# Report bugs to <satodai@w3m.jp>. # -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -91,6 +87,7 @@ fi IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -135,6 +132,31 @@ export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -168,7 +190,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -213,14 +236,25 @@ IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -230,11 +264,10 @@ fi $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else - $as_echo "$0: Please tell bug-autoconf@gnu.org and satodai@w3m.jp -$0: about your system, including any error possibly output -$0: before this message. Then install a modern shell, or -$0: manually run the script under such a shell if you do -$0: have one." + $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." fi exit 1 fi @@ -323,6 +356,14 @@ $as_echo X"$as_dir" | } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -444,6 +485,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -478,16 +523,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -499,28 +544,8 @@ else as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -554,7 +579,7 @@ PACKAGE_NAME='w3m' PACKAGE_TARNAME='w3m' PACKAGE_VERSION='0.5.3' PACKAGE_STRING='w3m 0.5.3' -PACKAGE_BUGREPORT='satodai@w3m.jp' +PACKAGE_BUGREPORT='' PACKAGE_URL='' gt_needs= @@ -603,7 +628,6 @@ HELP_DIR SIGNAL_RETURN RETSIGTYPE HAVE_SIGSETJMP -HAVE_SYS_ERRLIST USE_BINMODE_STREAM LIBGC AUXBIN_TARGETS @@ -704,6 +728,11 @@ build_os build_vendor build_cpu build +X_EXTRA_LIBS +X_LIBS +X_PRE_LIBS +X_CFLAGS +XMKMF MAN NKF PERL @@ -748,6 +777,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -770,6 +800,7 @@ SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking +with_x enable_m17n enable_unicode enable_messagel10n @@ -821,6 +852,7 @@ CCC CC CFLAGS CPP +XMKMF PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR @@ -864,6 +896,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1116,6 +1149,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1230,7 +1272,7 @@ Try \`$0 --help' for more information" $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1253,7 +1295,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1281,8 +1323,6 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1408,6 +1448,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1425,6 +1466,10 @@ _ACEOF cat <<\_ACEOF +X features: + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR + System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] @@ -1462,7 +1507,7 @@ Optional Features: --disable-alarm disable alarm --disable-cookie disable cookie --disable-nntp disable NNTP - --enable-gopher enable GOPHER + --disable-gopher disable GOPHER --disable-dict disable dictionary lookup (see README.dict) --disable-help-cgi disable help cgi --disable-external-uri-loader disable external URI loader @@ -1474,6 +1519,7 @@ Optional Features: Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-x use the X Window System --with-charset=CHARSET --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib @@ -1486,11 +1532,11 @@ Optional Packages: --with-migemo=MIGEMO_COMMAND migemo command --with-editor=EDITOR default editor (/usr/bin/vi) --with-mailer=MAILER default mailer (/usr/bin/mail) - --with-browser=BROWSER default browser (/usr/bin/mozilla) + --with-browser=BROWSER default browser (/usr/bin/firefox) --with-ssl=PREFIX support https protocol --with-termlib=LIBS terminal library LIBS is space separated list of: - terminfo mytinfo termcap ncurses curses + terminfo mytinfo termcap tinfo ncurses curses --with-gc=PREFIX libgc PREFIX Some influential environment variables: @@ -1504,6 +1550,7 @@ Some influential environment variables: CC C compiler command CFLAGS C compiler flags CPP C preprocessor + XMKMF Path to xmkmf, Makefile generator for X Window System PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path @@ -1515,7 +1562,7 @@ Some influential environment variables: Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to <satodai@w3m.jp>. +Report bugs to the package provider. _ACEOF ac_status=$? fi @@ -1579,9 +1626,9 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF w3m configure 0.5.3 -generated by GNU Autoconf 2.67 +generated by GNU Autoconf 2.69 -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1625,7 +1672,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile @@ -1663,7 +1710,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile @@ -1700,7 +1747,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp @@ -1732,7 +1779,7 @@ $as_echo "$ac_try_echo"; } >&5 test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -1746,53 +1793,11 @@ fi # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly @@ -1801,7 +1806,7 @@ ac_fn_c_check_func () as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1856,10 +1861,52 @@ fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using @@ -1868,10 +1915,10 @@ $as_echo "$ac_res" >&6; } ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval "test \"\${$3+set}\"" = set; then : + if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -1930,15 +1977,11 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ----------------------------- ## -## Report this to satodai@w3m.jp ## -## ----------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -1947,7 +1990,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel @@ -1960,7 +2003,7 @@ ac_fn_c_check_header_compile () as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1978,7 +2021,7 @@ fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile @@ -1991,7 +2034,7 @@ ac_fn_c_check_type () as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -2032,7 +2075,7 @@ fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type @@ -2053,7 +2096,8 @@ int main () { static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2069,7 +2113,8 @@ int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2095,7 +2140,8 @@ int main () { static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2111,7 +2157,8 @@ int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2145,7 +2192,8 @@ int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2209,7 +2257,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ rm -f conftest.val fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_compute_int @@ -2218,7 +2266,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by w3m $as_me 0.5.3, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2476,7 +2524,7 @@ $as_echo "$as_me: loading site script $ac_site_file" >&6;} || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } fi done @@ -2604,7 +2652,7 @@ if test -z "$CXX"; then set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CXX+set}" = set; then : +if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then @@ -2616,7 +2664,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2648,7 +2696,7 @@ do set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : +if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then @@ -2660,7 +2708,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2812,7 +2860,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C++ compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -2855,7 +2903,7 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 @@ -2914,7 +2962,7 @@ $as_echo "$ac_try_echo"; } >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } fi fi fi @@ -2925,7 +2973,7 @@ rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2966,7 +3014,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi @@ -2976,7 +3024,7 @@ OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : +if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3013,7 +3061,7 @@ ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } -if test "${ac_cv_prog_cxx_g+set}" = set; then : +if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag @@ -3101,7 +3149,7 @@ do set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -3113,7 +3161,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3147,7 +3195,7 @@ if test -n "$ac_tool_prefix"; then set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3159,7 +3207,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3187,7 +3235,7 @@ if test -z "$ac_cv_prog_CC"; then set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3199,7 +3247,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3240,7 +3288,7 @@ if test -z "$CC"; then set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3252,7 +3300,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3280,7 +3328,7 @@ if test -z "$CC"; then set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3293,7 +3341,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -3339,7 +3387,7 @@ if test -z "$CC"; then set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3351,7 +3399,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3383,7 +3431,7 @@ do set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3395,7 +3443,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3438,7 +3486,7 @@ fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -3467,7 +3515,7 @@ done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3504,7 +3552,7 @@ ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -3582,7 +3630,7 @@ else fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -3591,8 +3639,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -3689,7 +3736,7 @@ if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -3805,7 +3852,7 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -3860,7 +3907,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3880,7 +3927,7 @@ case $as_dir/ in #(( # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -3951,7 +3998,7 @@ fi $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -3983,7 +4030,7 @@ if test -n "$ac_tool_prefix"; then set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -3995,7 +4042,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4023,7 +4070,7 @@ if test -z "$ac_cv_prog_RANLIB"; then set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -4035,7 +4082,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4076,7 +4123,7 @@ do set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PERL+set}" = set; then : +if ${ac_cv_path_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $PERL in @@ -4090,7 +4137,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4122,7 +4169,7 @@ do set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_NKF+set}" = set; then : +if ${ac_cv_path_NKF+:} false; then : $as_echo_n "(cached) " >&6 else case $NKF in @@ -4136,7 +4183,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_NKF="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4168,7 +4215,7 @@ do set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MAN+set}" = set; then : +if ${ac_cv_path_MAN+:} false; then : $as_echo_n "(cached) " >&6 else case $MAN in @@ -4182,7 +4229,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MAN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4208,13 +4255,698 @@ fi done test -n "$MAN" || MAN="/usr/bin/man" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 +$as_echo_n "checking for X... " >&6; } + + +# Check whether --with-x was given. +if test "${with_x+set}" = set; then : + withval=$with_x; +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + case $x_includes,$x_libraries in #( + *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( + *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : + $as_echo_n "(cached) " >&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=no ac_x_libraries=no +rm -f -r conftest.dir +if mkdir conftest.dir; then + cd conftest.dir + cat >Imakefile <<'_ACEOF' +incroot: + @echo incroot='${INCROOT}' +usrlibdir: + @echo usrlibdir='${USRLIBDIR}' +libdir: + @echo libdir='${LIBDIR}' +_ACEOF + if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. + for ac_var in incroot usrlibdir libdir; do + eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" + done + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl dylib la dll; do + if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && + test -f "$ac_im_libdir/libX11.$ac_extension"; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case $ac_im_incroot in + /usr/include) ac_x_includes= ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; + esac + case $ac_im_usrlibdir in + /usr/lib | /usr/lib64 | /lib | /lib64) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; + esac + fi + cd .. + rm -f -r conftest.dir +fi + +# Standard set of common directories for X headers. +# Check X11 before X11Rn because it is often a symlink to the current release. +ac_x_header_dirs=' +/usr/X11/include +/usr/X11R7/include +/usr/X11R6/include +/usr/X11R5/include +/usr/X11R4/include + +/usr/include/X11 +/usr/include/X11R7 +/usr/include/X11R6 +/usr/include/X11R5 +/usr/include/X11R4 + +/usr/local/X11/include +/usr/local/X11R7/include +/usr/local/X11R6/include +/usr/local/X11R5/include +/usr/local/X11R4/include + +/usr/local/include/X11 +/usr/local/include/X11R7 +/usr/local/include/X11R6 +/usr/local/include/X11R5 +/usr/local/include/X11R4 + +/usr/X386/include +/usr/x386/include +/usr/XFree86/include/X11 + +/usr/include +/usr/local/include +/usr/unsupported/include +/usr/athena/include +/usr/local/x11r5/include +/usr/lpp/Xamples/include + +/usr/openwin/include +/usr/openwin/share/include' + +if test "$ac_x_includes" = no; then + # Guess where to find include files, by looking for Xlib.h. + # First, try using that file with no special directory specified. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <X11/Xlib.h> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # We can compile using X headers with no special include directory. +ac_x_includes= +else + for ac_dir in $ac_x_header_dirs; do + if test -r "$ac_dir/X11/Xlib.h"; then + ac_x_includes=$ac_dir + break + fi +done +fi +rm -f conftest.err conftest.i conftest.$ac_ext +fi # $ac_x_includes = no + +if test "$ac_x_libraries" = no; then + # Check for the libraries. + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS=$LIBS + LIBS="-lX11 $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <X11/Xlib.h> +int +main () +{ +XrmInitialize () + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + LIBS=$ac_save_LIBS +# We can link X programs with no special library path. +ac_x_libraries= +else + LIBS=$ac_save_LIBS +for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` +do + # Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl dylib la dll; do + if test -r "$ac_dir/libX11.$ac_extension"; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi # $ac_x_libraries = no + +case $ac_x_includes,$ac_x_libraries in #( + no,* | *,no | *\'*) + # Didn't find X, or a directory has "'" in its name. + ac_cv_have_x="have_x=no";; #( + *) + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$ac_x_includes'\ + ac_x_libraries='$ac_x_libraries'" +esac +fi +;; #( + *) have_x=yes;; + esac + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 +$as_echo "$have_x" >&6; } + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$x_includes'\ + ac_x_libraries='$x_libraries'" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 +$as_echo "libraries $x_libraries, headers $x_includes" >&6; } +fi + +if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. + +$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 +$as_echo_n "checking whether -R must be followed by a space... " >&6; } + ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" + ac_xsave_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + X_LIBS="$X_LIBS -R$x_libraries" +else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + X_LIBS="$X_LIBS -R $x_libraries" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 +$as_echo "neither works" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_c_werror_flag=$ac_xsave_c_werror_flag + LIBS=$ac_xsave_LIBS + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn Johnson says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And Karl Berry says + # the Alpha needs dnet_stub (dnet does not exist). + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XOpenDisplay (); +int +main () +{ +return XOpenDisplay (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } +if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_dnet_ntoa=yes +else + ac_cv_lib_dnet_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } +if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet_stub $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_stub_dnet_ntoa=yes +else + ac_cv_lib_dnet_stub_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +fi + + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$ac_xsave_LIBS" + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to T.E. Dickey. + # The functions gethostbyname, getservbyname, and inet_addr are + # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. + ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = xyes; then : + +fi + + if test $ac_cv_func_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 +$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } +if ${ac_cv_lib_nsl_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_gethostbyname=yes +else + ac_cv_lib_nsl_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 +$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +fi + + if test $ac_cv_lib_nsl_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 +$as_echo_n "checking for gethostbyname in -lbsd... " >&6; } +if ${ac_cv_lib_bsd_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bsd_gethostbyname=yes +else + ac_cv_lib_bsd_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 +$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } +if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" +fi + + fi + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says Simon Leinen: it contains gethostby* + # variants that don't use the name server (or something). -lsocket + # must be given before -lnsl if both are needed. We assume that + # if connect needs -lnsl, so does gethostbyname. + ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" +if test "x$ac_cv_func_connect" = xyes; then : + +fi + + if test $ac_cv_func_connect = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 +$as_echo_n "checking for connect in -lsocket... " >&6; } +if ${ac_cv_lib_socket_connect+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_socket_connect=yes +else + ac_cv_lib_socket_connect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 +$as_echo "$ac_cv_lib_socket_connect" >&6; } +if test "x$ac_cv_lib_socket_connect" = xyes; then : + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +fi + + fi + + # Guillermo Gomez says -lposix is necessary on A/UX. + ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" +if test "x$ac_cv_func_remove" = xyes; then : + +fi + + if test $ac_cv_func_remove = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 +$as_echo_n "checking for remove in -lposix... " >&6; } +if ${ac_cv_lib_posix_remove+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char remove (); +int +main () +{ +return remove (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_posix_remove=yes +else + ac_cv_lib_posix_remove=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 +$as_echo "$ac_cv_lib_posix_remove" >&6; } +if test "x$ac_cv_lib_posix_remove" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" +if test "x$ac_cv_func_shmat" = xyes; then : + +fi + + if test $ac_cv_func_shmat = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 +$as_echo_n "checking for shmat in -lipc... " >&6; } +if ${ac_cv_lib_ipc_shmat+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lipc $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shmat (); +int +main () +{ +return shmat (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ipc_shmat=yes +else + ac_cv_lib_ipc_shmat=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 +$as_echo "$ac_cv_lib_ipc_shmat" >&6; } +if test "x$ac_cv_lib_ipc_shmat" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS=$LDFLAGS + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # John Interrante, Karl Berry + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 +$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } +if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lICE $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char IceConnectionNumber (); +int +main () +{ +return IceConnectionNumber (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ICE_IceConnectionNumber=yes +else + ac_cv_lib_ICE_IceConnectionNumber=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 +$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then : + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +fi + + LDFLAGS=$ac_save_LDFLAGS + +fi + # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias @@ -4230,7 +4962,7 @@ fi $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -4248,7 +4980,7 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then @@ -4263,7 +4995,7 @@ fi $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -4469,7 +5201,7 @@ if test x$enable_messagel10n = xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then : + if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -4479,7 +5211,7 @@ do test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do - { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ @@ -4567,7 +5299,7 @@ rm -f conf$$.file set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MSGFMT+set}" = set; then : +if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in @@ -4608,7 +5340,7 @@ fi set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_GMSGFMT+set}" = set; then : +if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in @@ -4622,7 +5354,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4690,7 +5422,7 @@ rm -f conf$$.file set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_XGETTEXT+set}" = set; then : +if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in @@ -4768,7 +5500,7 @@ rm -f conf$$.file set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MSGMERGE+set}" = set; then : +if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in @@ -4890,7 +5622,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi -if test "${acl_cv_path_LD+set}" = set; then : +if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then @@ -4927,7 +5659,7 @@ fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if test "${acl_cv_prog_gnu_ld+set}" = set; then : +if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. @@ -4947,7 +5679,7 @@ with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } -if test "${acl_cv_rpath+set}" = set; then : +if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else @@ -4977,11 +5709,9 @@ else fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then : +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -4995,7 +5725,7 @@ do for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -5044,7 +5774,7 @@ $as_echo "$ac_cv_path_GREP" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -5061,7 +5791,7 @@ do for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -5117,7 +5847,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; } solaris*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 $as_echo_n "checking for 64-bit host... " >&6; } -if test "${gl_cv_solaris_64bit+set}" = set; then : +if ${gl_cv_solaris_64bit+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5664,7 +6394,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } -if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then : +if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" @@ -5698,7 +6428,7 @@ $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } -if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then : +if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" @@ -5774,7 +6504,7 @@ typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } -if eval "test \"\${$gt_func_gnugettext_libc+set}\"" = set; then : +if eval \${$gt_func_gnugettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5837,7 +6567,7 @@ $as_echo "$ac_res" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } -if test "${am_cv_func_iconv+set}" = set; then : +if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else @@ -5894,7 +6624,7 @@ $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } -if test "${am_cv_func_iconv_works+set}" = set; then : +if ${am_cv_func_iconv_works+:} false; then : $as_echo_n "(cached) " >&6 else @@ -6490,7 +7220,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } -if eval "test \"\${$gt_func_gnugettext_libintl+set}\"" = set; then : +if eval \${$gt_func_gnugettext_libintl+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" @@ -6755,7 +7485,7 @@ $as_echo "$enable_image" >&6; } if test x"$enable_image" = xyes; then enable_image=x11 case "`uname -s`" in - Linux|linux|LINUX) + Linux|linux|LINUX|FreeBSD|freebsd|FREEBSD) if test -c /dev/fb0; then enable_image=x11,fb fi;; @@ -6811,6 +7541,9 @@ $as_echo "$with_imagelib" >&6; } fi;; imlib2) with_imlib2="yes" + if test x"$PKG_CONFIG" = x; then + PKG_CONFIG=pkg-config + fi if test x"$IMLIB2_CONFIG" = x; then IMLIB2_CONFIG=imlib2-config fi;; @@ -6823,8 +7556,6 @@ $as_echo "$with_imagelib" >&6; } with_gtk2="yes" if test x"$PKG_CONFIG" = x; then PKG_CONFIG=pkg-config - else - PKG_CONFIG=: fi;; esac done @@ -6926,8 +7657,8 @@ $as_echo "$as_me: WARNING: Imlib2 is not installed. Install Imlib2 (version >= $as_echo "#define USE_GTK2 1" >>confdefs.h - IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`" - IMGX11LDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`" + IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0`" + IMGX11LDFLAGS="-lX11 `${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0`" elif test x"$have_gdkpixbuf" = xyes; then $as_echo "#define USE_W3MIMG_X11 1" >>confdefs.h @@ -6955,7 +7686,7 @@ $as_echo "$as_me: WARNING: Imlib2 is not installed. Install Imlib2 (version >= $as_echo "#define USE_IMLIB2 1" >>confdefs.h IMGX11CFLAGS="`${IMLIB2_CONFIG} --cflags`" - IMGX11LDFLAGS="`${IMLIB2_CONFIG} --libs`" + IMGX11LDFLAGS="-lX11 `${PKG_CONFIG} --libs imlib2`" else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to build w3mimgdisplay with X11 support" >&5 $as_echo "$as_me: WARNING: unable to build w3mimgdisplay with X11 support" >&2;} @@ -6971,8 +7702,8 @@ $as_echo "$as_me: WARNING: unable to build w3mimgdisplay with X11 support" >&2;} $as_echo "#define USE_GTK2 1" >>confdefs.h - IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gtk+-2.0`" - IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gtk+-2.0`" + IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0`" + IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0`" elif test x"$have_gdkpixbuf" = xyes; then $as_echo "#define USE_W3MIMG_FB 1" >>confdefs.h @@ -6991,7 +7722,7 @@ $as_echo "$as_me: WARNING: unable to build w3mimgdisplay with X11 support" >&2;} IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" IMGFBCFLAGS="`${IMLIB2_CONFIG} --cflags`" - IMGFBLDFLAGS="`${IMLIB2_CONFIG} --libs`" + IMGFBLDFLAGS="`${PKG_CONFIG} --libs imlib2`" else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to build w3mimgdisplay with FB support" >&5 $as_echo "$as_me: WARNING: unable to build w3mimgdisplay with FB support" >&2;} @@ -7045,7 +7776,7 @@ $as_echo "$enable_xface" >&6; } set dummy uncompface; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_uncompface+set}" = set; then : +if ${ac_cv_prog_uncompface+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$uncompface"; then @@ -7057,7 +7788,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_uncompface=""yes"" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7102,7 +7833,7 @@ $as_echo "$enable_keymap" >&6; } xlynx) KEYMAP_FILE="keybind_lynx";; *) - as_fn_error $? "keymap should be either w3m or lynx." "$LINENO" 5 ;; + as_fn_error $? "keymap should be either w3m or lynx." "$LINENO" 5;; esac HELP_FILE=w3mhelp-${enable_keymap}_$w3m_lang.html @@ -7225,7 +7956,7 @@ $as_echo_n "checking if gopher is enabled... " >&6; } if test "${enable_gopher+set}" = set; then : enableval=$enable_gopher; else - enable_gopher="no" + enable_gopher="yes" fi test x"$enable_gopher" = xyes && $as_echo "#define USE_GOPHER 1" >>confdefs.h @@ -7344,7 +8075,7 @@ cat >>confdefs.h <<_ACEOF _ACEOF -w3m_browser="/usr/bin/mozilla" +w3m_browser="/usr/bin/firefox" { $as_echo "$as_me:${as_lineno-$LINENO}: checking which external browser is used by default" >&5 $as_echo_n "checking which external browser is used by default... " >&6; } @@ -7395,7 +8126,7 @@ if test x"$enable_ipv6" = xyes; then $as_echo_n "checking if IPv6 API available... " >&6; } ac_fn_c_check_func "$LINENO" "getaddrinfo" "ac_cv_func_getaddrinfo" -if test "x$ac_cv_func_getaddrinfo" = x""yes; then : +if test "x$ac_cv_func_getaddrinfo" = xyes; then : enable_ipv6="yes" else enable_ipv6="no" @@ -7412,7 +8143,7 @@ $as_echo_n "checking for libinet6... " >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo in -linet6" >&5 $as_echo_n "checking for getaddrinfo in -linet6... " >&6; } -if test "${ac_cv_lib_inet6_getaddrinfo+set}" = set; then : +if ${ac_cv_lib_inet6_getaddrinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7446,7 +8177,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_inet6_getaddrinfo" >&5 $as_echo "$ac_cv_lib_inet6_getaddrinfo" >&6; } -if test "x$ac_cv_lib_inet6_getaddrinfo" = x""yes; then : +if test "x$ac_cv_lib_inet6_getaddrinfo" = xyes; then : enable_ipv6="yes" use_libinet6="found"; W3M_LIBS="$W3M_LIBS -linet6"; break else @@ -7534,7 +8265,7 @@ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : +if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in @@ -7548,7 +8279,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7577,7 +8308,7 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in @@ -7591,7 +8322,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7767,7 +8498,7 @@ $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_new in -lssl" >&5 $as_echo_n "checking for SSL_new in -lssl... " >&6; } -if test "${ac_cv_lib_ssl_SSL_new+set}" = set; then : +if ${ac_cv_lib_ssl_SSL_new+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7801,7 +8532,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_new" >&5 $as_echo "$ac_cv_lib_ssl_SSL_new" >&6; } -if test "x$ac_cv_lib_ssl_SSL_new" = x""yes; then : +if test "x$ac_cv_lib_ssl_SSL_new" = xyes; then : w3m_ssl="found"; CFLAGS="$CFLAGS $SSL_CFLAGS" W3M_LIBS="$W3M_LIBS $SSL_LIBS -lssl -lcrypto" else w3m_ssl="not found" @@ -7847,12 +8578,12 @@ $as_echo "$enable_digest_auth" >&6; } ac_fn_c_check_func "$LINENO" "sqrt" "ac_cv_func_sqrt" -if test "x$ac_cv_func_sqrt" = x""yes; then : +if test "x$ac_cv_func_sqrt" = xyes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqrt in -lm" >&5 $as_echo_n "checking for sqrt in -lm... " >&6; } -if test "${ac_cv_lib_m_sqrt+set}" = set; then : +if ${ac_cv_lib_m_sqrt+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7886,7 +8617,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sqrt" >&5 $as_echo "$ac_cv_lib_m_sqrt" >&6; } -if test "x$ac_cv_lib_m_sqrt" = x""yes; then : +if test "x$ac_cv_lib_m_sqrt" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF @@ -7901,7 +8632,7 @@ if test x"$enable_mouse" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Gpm_Open in -lgpm" >&5 $as_echo_n "checking for Gpm_Open in -lgpm... " >&6; } -if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then : +if ${ac_cv_lib_gpm_Gpm_Open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -7935,7 +8666,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gpm_Gpm_Open" >&5 $as_echo "$ac_cv_lib_gpm_Gpm_Open" >&6; } -if test "x$ac_cv_lib_gpm_Gpm_Open" = x""yes; then : +if test "x$ac_cv_lib_gpm_Gpm_Open" = xyes; then : $as_echo "#define USE_GPM 1" >>confdefs.h W3M_LIBS="$W3M_LIBS -lgpm" @@ -7977,12 +8708,12 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_termlib" >&5 $as_echo "$with_termlib" >&6; } - test x"$with_termlib" = xyes && with_termlib="terminfo mytinfo termlib termcap ncurses curses" + test x"$with_termlib" = xyes && with_termlib="terminfo mytinfo termlib termcap tinfo ncurses curses" for lib in $with_termlib; do as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_tgetent" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -l$lib" >&5 $as_echo_n "checking for tgetent in -l$lib... " >&6; } -if eval "test \"\${$as_ac_Lib+set}\"" = set; then : +if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8025,7 +8756,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -8168,7 +8899,7 @@ $as_echo "$with_gc" >&6; } test x"$with_gc" = xyes && with_gc="/usr /usr/local ${HOME}" unset ac_cv_header_gc_h ac_fn_c_check_header_mongrel "$LINENO" "gc.h" "ac_cv_header_gc_h" "$ac_includes_default" -if test "x$ac_cv_header_gc_h" = x""yes; then : +if test "x$ac_cv_header_gc_h" = xyes; then : fi @@ -8187,7 +8918,7 @@ $as_echo "$with_gc" >&6; } $as_echo_n "checking $dir/$inc... " >&6; } unset ac_cv_header_gc_h ac_fn_c_check_header_mongrel "$LINENO" "gc.h" "ac_cv_header_gc_h" "$ac_includes_default" -if test "x$ac_cv_header_gc_h" = x""yes; then : +if test "x$ac_cv_header_gc_h" = xyes; then : gcincludedir="$dir/$inc"; CFLAGS="$CFLAGS -I$dir/$inc"; break fi @@ -8205,7 +8936,7 @@ fi unset ac_cv_lib_gc_GC_init { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GC_init in -lgc" >&5 $as_echo_n "checking for GC_init in -lgc... " >&6; } -if test "${ac_cv_lib_gc_GC_init+set}" = set; then : +if ${ac_cv_lib_gc_GC_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8239,7 +8970,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gc_GC_init" >&5 $as_echo "$ac_cv_lib_gc_GC_init" >&6; } -if test "x$ac_cv_lib_gc_GC_init" = x""yes; then : +if test "x$ac_cv_lib_gc_GC_init" = xyes; then : LIBGC="-lgc" fi @@ -8257,7 +8988,7 @@ $as_echo_n "checking $dir... " >&6; } unset ac_cv_lib_gc_GC_init { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GC_init in -lgc" >&5 $as_echo_n "checking for GC_init in -lgc... " >&6; } -if test "${ac_cv_lib_gc_GC_init+set}" = set; then : +if ${ac_cv_lib_gc_GC_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8291,7 +9022,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gc_GC_init" >&5 $as_echo "$ac_cv_lib_gc_GC_init" >&6; } -if test "x$ac_cv_lib_gc_GC_init" = x""yes; then : +if test "x$ac_cv_lib_gc_GC_init" = xyes; then : gclibdir="$dir/lib"; LIBGC="-L$dir/lib -lgc"; break fi @@ -8303,7 +9034,7 @@ fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zError in -lz" >&5 $as_echo_n "checking for zError in -lz... " >&6; } -if test "${ac_cv_lib_z_zError+set}" = set; then : +if ${ac_cv_lib_z_zError+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8337,7 +9068,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_zError" >&5 $as_echo "$ac_cv_lib_z_zError" >&6; } -if test "x$ac_cv_lib_z_zError" = x""yes; then : +if test "x$ac_cv_lib_z_zError" = xyes; then : AUXBIN_TARGETS="$AUXBIN_TARGETS inflate\$(EXT)" fi @@ -8345,7 +9076,7 @@ fi ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "#include <sys/types.h> #include <sys/socket.h> " -if test "x$ac_cv_type_socklen_t" = x""yes; then : +if test "x$ac_cv_type_socklen_t" = xyes; then : $as_echo "#define HAVE_SOCKLEN_T 1" >>confdefs.h fi @@ -8367,7 +9098,7 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if eval "test \"\${$as_ac_Header+set}\"" = set; then : +if eval \${$as_ac_Header+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -8407,7 +9138,7 @@ done if test $ac_header_dirent = dirent.h; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -8441,11 +9172,11 @@ for ac_lib in '' dir; do fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_opendir+set}" = set; then : + if ${ac_cv_search_opendir+:} false; then : break fi done -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no @@ -8464,7 +9195,7 @@ fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -8498,11 +9229,11 @@ for ac_lib in '' x; do fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test "${ac_cv_search_opendir+set}" = set; then : + if ${ac_cv_search_opendir+:} false; then : break fi done -if test "${ac_cv_search_opendir+set}" = set; then : +if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no @@ -8522,7 +9253,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -8634,7 +9365,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 $as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } -if test "${ac_cv_header_sys_wait_h+set}" = set; then : +if ${ac_cv_header_sys_wait_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -8674,17 +9405,17 @@ $as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h fi ac_fn_c_check_header_mongrel "$LINENO" "termios.h" "ac_cv_header_termios_h" "$ac_includes_default" -if test "x$ac_cv_header_termios_h" = x""yes; then : +if test "x$ac_cv_header_termios_h" = xyes; then : $as_echo "#define HAVE_TERMIOS_H 1" >>confdefs.h else ac_fn_c_check_header_mongrel "$LINENO" "termio.h" "ac_cv_header_termio_h" "$ac_includes_default" -if test "x$ac_cv_header_termio_h" = x""yes; then : +if test "x$ac_cv_header_termio_h" = xyes; then : $as_echo "#define HAVE_TERMIO_H 1" >>confdefs.h else ac_fn_c_check_header_mongrel "$LINENO" "sgtty.h" "ac_cv_header_sgtty_h" "$ac_includes_default" -if test "x$ac_cv_header_sgtty_h" = x""yes; then : +if test "x$ac_cv_header_sgtty_h" = xyes; then : $as_echo "#define HAVE_SGTTY_H 1" >>confdefs.h fi @@ -8697,35 +9428,35 @@ fi ac_fn_c_check_header_mongrel "$LINENO" "float.h" "ac_cv_header_float_h" "$ac_includes_default" -if test "x$ac_cv_header_float_h" = x""yes; then : +if test "x$ac_cv_header_float_h" = xyes; then : $as_echo "#define HAVE_FLOAT_H 1" >>confdefs.h fi ac_fn_c_check_header_mongrel "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_select_h" = x""yes; then : +if test "x$ac_cv_header_sys_select_h" = xyes; then : $as_echo "#define HAVE_SYS_SELECT_H 1" >>confdefs.h fi ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" -if test "x$ac_cv_header_locale_h" = x""yes; then : +if test "x$ac_cv_header_locale_h" = xyes; then : $as_echo "#define HAVE_LOCALE_H 1" >>confdefs.h fi ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" -if test "x$ac_cv_header_stdint_h" = x""yes; then : +if test "x$ac_cv_header_stdint_h" = xyes; then : $as_echo "#define HAVE_STDINT_H 1" >>confdefs.h fi ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" -if test "x$ac_cv_header_inttypes_h" = x""yes; then : +if test "x$ac_cv_header_inttypes_h" = xyes; then : $as_echo "#define HAVE_INTTYPES_H 1" >>confdefs.h fi @@ -8738,7 +9469,7 @@ fi # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 $as_echo_n "checking size of long long... " >&6; } -if test "${ac_cv_sizeof_long_long+set}" = set; then : +if ${ac_cv_sizeof_long_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : @@ -8748,7 +9479,7 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long long) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_long=0 fi @@ -8766,7 +9497,7 @@ _ACEOF -for ac_func in strcasecmp strcasestr strchr memcpy strerror bcopy setpgrp chdir getcwd getwd readlink setenv putenv strtoll stroq atoll atoq symlink readlink lstat srand48 srandom getpassphrase waitpid setlocale +for ac_func in strcasecmp strcasestr strchr memcpy strerror bcopy setpgrp chdir mkdtemp getcwd getwd readlink setenv putenv strtoll stroq atoll atoq symlink readlink lstat srand48 srandom getpassphrase waitpid setlocale do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -8781,7 +9512,7 @@ done for ac_func in strftime do : ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" -if test "x$ac_cv_func_strftime" = x""yes; then : +if test "x$ac_cv_func_strftime" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRFTIME 1 _ACEOF @@ -8790,7 +9521,7 @@ else # strftime is in -lintl on SCO UNIX. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5 $as_echo_n "checking for strftime in -lintl... " >&6; } -if test "${ac_cv_lib_intl_strftime+set}" = set; then : +if ${ac_cv_lib_intl_strftime+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -8824,7 +9555,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5 $as_echo "$ac_cv_lib_intl_strftime" >&6; } -if test "x$ac_cv_lib_intl_strftime" = x""yes; then : +if test "x$ac_cv_lib_intl_strftime" = xyes; then : $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h LIBS="-lintl $LIBS" @@ -8835,7 +9566,7 @@ done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wait3 that fills in rusage" >&5 $as_echo_n "checking for wait3 that fills in rusage... " >&6; } -if test "${ac_cv_func_wait3_rusage+set}" = set; then : +if ${ac_cv_func_wait3_rusage+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -8899,7 +9630,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setpgrp takes no argument" >&5 $as_echo_n "checking whether setpgrp takes no argument... " >&6; } -if test "${ac_cv_func_setpgrp_void+set}" = set; then : +if ${ac_cv_func_setpgrp_void+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -8944,7 +9675,7 @@ case "$host_os" in { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; } -if test "${am_cv_langinfo_codeset+set}" = set; then : +if ${am_cv_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -8978,29 +9709,6 @@ $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys_errlist" >&5 -$as_echo_n "checking for sys_errlist... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -extern char *sys_errlist[]; -int -main () -{ -printf(sys_errlist[0]); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - have_sys_errlist="yes"; $as_echo "#define HAVE_SYS_ERRLIST 1" >>confdefs.h - -else - have_sys_errlist="no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_sys_errlist" >&5 -$as_echo "$have_sys_errlist" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigsetjmp" >&5 $as_echo_n "checking for sigsetjmp... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -9026,7 +9734,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext $as_echo "$have_sigsetjmp" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 $as_echo_n "checking return type of signal handlers... " >&6; } -if test "${ac_cv_type_signal+set}" = set; then : +if ${ac_cv_type_signal+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -9076,7 +9784,7 @@ RC_DIR="~/.$PACKAGE" $as_echo "#define RC_DIR \"\$RC_DIR\"" >>confdefs.h -DOCDIRS="doc:en_English doc-jp:ja_Japanese" +DOCDIRS="doc:en_English doc-jp:ja_Japanese doc-de:de_German" cat >>confdefs.h <<_ACEOF #define DOCDIRS "$DOCDIRS" _ACEOF @@ -9084,9 +9792,10 @@ _ACEOF cvsver=`$AWK '\$1 ~ /Id:/ { print \$3}' $srcdir/ChangeLog` - sed -e 's/define CURRENT_VERSION "\(.*\)+cvs/define CURRENT_VERSION "\1+cvs-'$cvsver'/' $srcdir/version.c.in > version.c + ymdver=`sed -e 's/ .*//;s/-//g;q' $srcdir/ChangeLog` + sed -e 's/define CURRENT_VERSION "\(.*\)YYYYMMDD/define CURRENT_VERSION "\1'$ymdver'/;s/define CURRENT_VERSION "\(.*\)+cvs/define CURRENT_VERSION "\1+cvs-'$cvsver'/' $srcdir/version.c.in > version.c CURRENT_VERSION=`sed -n 's/.*define CURRENT_VERSION *"w3m\/\(.*\)".*$/\1/p' version.c` -ac_config_files="$ac_config_files Makefile posubst po/Makefile.in scripts/Makefile scripts/dirlist.cgi scripts/w3mhelp.cgi scripts/w3mmail.cgi scripts/xface2xpm scripts/multipart/Makefile scripts/multipart/multipart.cgi scripts/w3mman/Makefile scripts/w3mman/w3mman scripts/w3mman/w3mman.1 scripts/w3mman/w3mman2html.cgi libwc/Makefile w3mimg/Makefile w3mimg/fb/Makefile w3mimg/x11/Makefile w3mimg/win/Makefile w3mhelp-w3m_en.html w3mhelp-w3m_ja.html w3mhelp-lynx_en.html w3mhelp-lynx_ja.html" +ac_config_files="$ac_config_files Makefile posubst po/Makefile.in scripts/Makefile scripts/dirlist.cgi scripts/w3mhelp.cgi scripts/w3mmail.cgi scripts/xface2xpm scripts/multipart/Makefile scripts/multipart/multipart.cgi scripts/w3mman/Makefile scripts/w3mman/w3mman scripts/w3mman/w3mman.1 scripts/w3mman/w3mman.de.1 scripts/w3mman/w3mman2html.cgi libwc/Makefile w3mimg/Makefile w3mimg/fb/Makefile w3mimg/x11/Makefile w3mimg/win/Makefile w3mhelp-w3m_en.html w3mhelp-w3m_ja.html w3mhelp-lynx_en.html w3mhelp-lynx_ja.html" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -9152,10 +9861,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -9187,7 +9907,7 @@ LTLIBOBJS=$ac_ltlibobjs -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -9288,6 +10008,7 @@ fi IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -9483,16 +10204,16 @@ if (echo >conf$$.file) 2>/dev/null; then # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -9552,28 +10273,16 @@ else as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -9595,7 +10304,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # values after options handling. ac_log=" This file was extended by w3m $as_me 0.5.3, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -9654,17 +10363,17 @@ $config_headers Configuration commands: $config_commands -Report bugs to <satodai@w3m.jp>." +Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ w3m config.status 0.5.3 -configured by $0, generated by GNU Autoconf 2.67, +configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -9755,7 +10464,7 @@ fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' @@ -9810,6 +10519,7 @@ do "scripts/w3mman/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/w3mman/Makefile" ;; "scripts/w3mman/w3mman") CONFIG_FILES="$CONFIG_FILES scripts/w3mman/w3mman" ;; "scripts/w3mman/w3mman.1") CONFIG_FILES="$CONFIG_FILES scripts/w3mman/w3mman.1" ;; + "scripts/w3mman/w3mman.de.1") CONFIG_FILES="$CONFIG_FILES scripts/w3mman/w3mman.de.1" ;; "scripts/w3mman/w3mman2html.cgi") CONFIG_FILES="$CONFIG_FILES scripts/w3mman/w3mman2html.cgi" ;; "libwc/Makefile") CONFIG_FILES="$CONFIG_FILES libwc/Makefile" ;; "w3mimg/Makefile") CONFIG_FILES="$CONFIG_FILES w3mimg/Makefile" ;; @@ -9821,7 +10531,7 @@ do "w3mhelp-lynx_en.html") CONFIG_FILES="$CONFIG_FILES w3mhelp-lynx_en.html" ;; "w3mhelp-lynx_ja.html") CONFIG_FILES="$CONFIG_FILES w3mhelp-lynx_ja.html" ;; - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -9844,9 +10554,10 @@ fi # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -9854,12 +10565,13 @@ $debug || { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -9881,7 +10593,7 @@ else ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -9909,7 +10621,7 @@ done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -9957,7 +10669,7 @@ t delim rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -9989,7 +10701,7 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF @@ -10023,7 +10735,7 @@ fi # test -n "$CONFIG_FILES" # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -10035,8 +10747,8 @@ _ACEOF # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 @@ -10137,7 +10849,7 @@ do esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -10156,7 +10868,7 @@ do for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -10165,7 +10877,7 @@ do [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" @@ -10191,8 +10903,8 @@ $as_echo "$as_me: creating $ac_file" >&6;} esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -10328,21 +11040,22 @@ s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; @@ -10353,20 +11066,20 @@ which seems to be undefined. Please make sure it is defined" >&2;} if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ + mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; diff --git a/configure.ac b/configure.ac index 7308fc6..0e31d18 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ dnl w3m autoconf dnl Process this file with autoconf to produce a configure script. -AC_INIT(w3m, 0.5.3, satodai@w3m.jp) +AC_INIT(w3m, 0.5.3) PACKAGE=w3m VERSION=0.5.3 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") @@ -28,6 +28,7 @@ AC_PROG_RANLIB AC_PATH_PROGS(PERL, perl, /usr/local/bin/perl) AC_PATH_PROGS(NKF, nkf, /usr/local/bin/nkf) AC_PATH_PROGS(MAN, man, /usr/bin/man) +AC_PATH_XTRA AC_CANONICAL_HOST AC_EXEEXT @@ -150,7 +151,7 @@ dnl AC_FUNC_MEMCMP dnl AC_FUNC_MMAP dnl AC_FUNC_SETVBUF_REVERSED dnl AC_FUNC_VPRINTF -AC_CHECK_FUNCS(strcasecmp strcasestr strchr memcpy strerror bcopy setpgrp chdir getcwd getwd readlink setenv putenv strtoll stroq atoll atoq symlink readlink lstat srand48 srandom getpassphrase waitpid setlocale) +AC_CHECK_FUNCS(strcasecmp strcasestr strchr memcpy strerror bcopy setpgrp chdir mkdtemp getcwd getwd readlink setenv putenv strtoll stroq atoll atoq symlink readlink lstat srand48 srandom getpassphrase waitpid setlocale) AC_FUNC_STRFTIME AC_FUNC_WAIT3 AC_FUNC_SETPGRP @@ -161,7 +162,6 @@ case "$host_os" in AM_LANGINFO_CODESET ;; esac -AC_W3M_SYS_ERRLIST AC_W3M_SIGSETJMP AC_W3M_SIGNAL @@ -172,7 +172,7 @@ AC_SUBST(RC_DIR) RC_DIR="~/.$PACKAGE" AC_DEFINE(RC_DIR, "$RC_DIR") AC_SUBST(DOCDIRS) -DOCDIRS="doc:en_English doc-jp:ja_Japanese" +DOCDIRS="doc:en_English doc-jp:ja_Japanese doc-de:de_German" AC_DEFINE_UNQUOTED(DOCDIRS, "$DOCDIRS") AC_W3M_VERSION @@ -181,7 +181,8 @@ scripts/Makefile scripts/dirlist.cgi \ scripts/w3mhelp.cgi \ scripts/w3mmail.cgi scripts/xface2xpm \ scripts/multipart/Makefile scripts/multipart/multipart.cgi \ -scripts/w3mman/Makefile scripts/w3mman/w3mman scripts/w3mman/w3mman.1 \ +scripts/w3mman/Makefile scripts/w3mman/w3mman \ +scripts/w3mman/w3mman.1 scripts/w3mman/w3mman.de.1 \ scripts/w3mman/w3mman2html.cgi \ libwc/Makefile \ w3mimg/Makefile w3mimg/fb/Makefile w3mimg/x11/Makefile w3mimg/win/Makefile \ @@ -22,10 +22,10 @@ static int is_saved = 1; #define contain_no_dots(p, ep) (total_dot_number((p),(ep),1)==0) -static int -total_dot_number(char *p, char *ep, int max_count) +static unsigned int +total_dot_number(char *p, char *ep, unsigned int max_count) { - int count = 0; + unsigned int count = 0; if (!ep) ep = p + strlen(p); @@ -105,6 +105,7 @@ make_portlist(Str port) pl->next = first; first = pl; } + Strfree(tmp); return first; } @@ -247,16 +248,12 @@ find_cookie(ParsedURL *pu) Strcat(tmp, Sprintf("; $Domain=\"%s\"", p1->domain->ptr)); if (p1->portl) Strcat(tmp, - Sprintf("; $Port=\"%s\"", portlist2str(p1->portl))); + Sprintf("; $Port=\"%s\"", portlist2str(p1->portl)->ptr)); } } return tmp; } -char *special_domain[] = { - ".com", ".edu", ".gov", ".mil", ".net", ".org", ".int", NULL -}; - int check_avoid_wrong_number_of_dots_domain( Str domain ) { @@ -324,7 +321,7 @@ add_cookie(ParsedURL *pu, Str name, Str value, if (version == 0) { /* [NETSCAPE] rule */ - int n = total_dot_number(domain->ptr, + unsigned int n = total_dot_number(domain->ptr, domain->ptr + domain->length, 3); if (n < 2) { @@ -332,19 +329,6 @@ add_cookie(ParsedURL *pu, Str name, Str value, COOKIE_ERROR(COO_ESPECIAL); } } - else if (n == 2) { - char **sdomain; - int ok = 0; - for (sdomain = special_domain; !ok && *sdomain; sdomain++) { - int offset = domain->length - strlen(*sdomain); - if (offset >= 0 && - strcasecmp(*sdomain, &domain->ptr[offset]) == 0) - ok = 1; - } - if (!ok && ! check_avoid_wrong_number_of_dots_domain(domain)) { - COOKIE_ERROR(COO_ESPECIAL); - } - } } else { /* [DRAFT 12] s. 4.3.2 case 2 */ @@ -463,7 +447,7 @@ save_cookies(void) continue; fprintf(fp, "%s\t%s\t%s\t%ld\t%s\t%s\t%d\t%d\t%s\t%s\t%s\n", parsedURL2Str(&p->url)->ptr, - p->name->ptr, p->value->ptr, p->expires, + p->name->ptr, p->value->ptr, (long)p->expires, p->domain->ptr, p->path->ptr, p->flag, p->version, str2charp(p->comment), (p->portl) ? portlist2str(p->portl)->ptr : "", @@ -517,36 +501,36 @@ load_cookies(void) cookie->commentURL = NULL; parseURL(readcol(&str)->ptr, &cookie->url, NULL); if (!*str) - return; + break; cookie->name = readcol(&str); if (!*str) - return; + break; cookie->value = readcol(&str); if (!*str) - return; + break; cookie->expires = (time_t) atol(readcol(&str)->ptr); if (!*str) - return; + break; cookie->domain = readcol(&str); if (!*str) - return; + break; cookie->path = readcol(&str); if (!*str) - return; + break; cookie->flag = atoi(readcol(&str)->ptr); if (!*str) - return; + break; cookie->version = atoi(readcol(&str)->ptr); if (!*str) - return; + break; cookie->comment = readcol(&str); if (cookie->comment->length == 0) cookie->comment = NULL; if (!*str) - return; + break; cookie->portl = make_portlist(readcol(&str)); if (!*str) - return; + break; cookie->commentURL = readcol(&str); if (cookie->commentURL->length == 0) cookie->commentURL = NULL; @@ -257,7 +257,7 @@ make_lastline_link(Buffer *buf, char *title, char *url) parseURL2(url, &pu, baseURL(buf)); u = parsedURL2Str(&pu); if (DecodeURL) - u = Strnew_charp(url_unquote_conv(u->ptr, buf->document_charset)); + u = Strnew_charp(url_decode2(u->ptr, buf)); #ifdef USE_M17N u = checkType(u, &pr, NULL); #endif @@ -487,7 +487,7 @@ displayBuffer(Buffer *buf, int mode) term_title(conv_to_system(buf->buffername)); refresh(); #ifdef USE_IMAGE - if (activeImage && displayImage && buf->img) { + if (activeImage && displayImage && buf->img && buf->image_loaded) { drawImage(); } #endif @@ -497,6 +497,10 @@ displayBuffer(Buffer *buf, int mode) save_current_buf = buf; } #endif + if (mode == B_FORCE_REDRAW && (buf->check_url & CHK_URL) ) { + chkURLBuffer(buf); + displayBuffer(buf, B_NORMAL); + } } static void @@ -521,7 +525,15 @@ drawAnchorCursor0(Buffer *buf, AnchorList *al, int hseq, int prevhseq, break; } if (hseq >= 0 && an->hseq == hseq) { + int start_pos = an->start.pos; + int end_pos = an->end.pos; for (i = an->start.pos; i < an->end.pos; i++) { + if (enable_inline_image && (l->propBuf[i] & PE_IMAGE)) { + if (start_pos == i) + start_pos = i + 1; + else if (end_pos == an->end.pos) + end_pos = i - 1; + } if (l->propBuf[i] & (PE_IMAGE | PE_ANCHOR | PE_FORM)) { if (active) l->propBuf[i] |= PE_ACTIVE; @@ -529,9 +541,9 @@ drawAnchorCursor0(Buffer *buf, AnchorList *al, int hseq, int prevhseq, l->propBuf[i] &= ~PE_ACTIVE; } } - if (active) + if (active && start_pos < end_pos) redrawLineRegion(buf, l, l->linenumber - tline + buf->rootY, - an->start.pos, an->end.pos); + start_pos, end_pos); } else if (prevhseq >= 0 && an->hseq == prevhseq) { if (active) @@ -855,14 +867,16 @@ redrawLineImage(Buffer *buf, Line *l, int i) y = (int)(i * pixel_per_line); sx = (int)((rcol - COLPOS(l, a->start.pos)) * pixel_per_char); sy = (int)((l->linenumber - image->y) * pixel_per_line); - if (sx == 0 && x + image->xoffset >= 0) - x += image->xoffset; - else - sx -= image->xoffset; - if (sy == 0 && y + image->yoffset >= 0) - y += image->yoffset; - else - sy -= image->yoffset; + if (! enable_inline_image) { + if (sx == 0 && x + image->xoffset >= 0) + x += image->xoffset; + else + sx -= image->xoffset; + if (sy == 0 && y + image->yoffset >= 0) + y += image->yoffset; + else + sy -= image->yoffset; + } if (image->width > 0) w = image->width - sx; else @@ -1119,18 +1133,18 @@ addChar(char c, Lineprop mode) } #ifdef USE_M17N if (w == 2 && WcOption.use_wide) - addstr(graph2_symbol[(int)c]); + addstr(graph2_symbol[(unsigned char)c % N_GRAPH_SYMBOL]); else #endif - addch(*graph_symbol[(int)c]); + addch(*graph_symbol[(unsigned char)c % N_GRAPH_SYMBOL]); } else { #ifdef USE_M17N symbol = get_symbol(DisplayCharset, &w); - addstr(symbol[(int)c]); + addstr(symbol[(unsigned char)c % N_SYMBOL]); #else symbol = get_symbol(); - addch(*symbol[(int)c]); + addch(*symbol[(unsigned char)c % N_SYMBOL]); #endif } } diff --git a/doc-de/FAQ.html b/doc-de/FAQ.html new file mode 100644 index 0000000..d88ba64 --- /dev/null +++ b/doc-de/FAQ.html @@ -0,0 +1,691 @@ + +<html> + <head> + <style> + span.mono { + font-family:mono; + } + </style> + <meta http-equiv="content-type" content="text/html;charset=UTF-8"> + <title>W3M FAQ</title> + </head> + <body> + <h1 align="center"> + H辰ufig gestellte Fragen zu w3m + </h1> + <p align="right"> + Akinori Ito <aito@fw.ipsj.or.jp> <br>korrigiert von Tom Berger <tom.be@gmx.net> + </p> + <h2 id="index"> + <u> + bersicht + </u> + </h2> + <ul> + <li> + <a href="#general"> + <b> + Allgemeine Fragen; wie bekomme ich das Programm, welche Arbeitsumgebung wird ben旦tigt? + </b> + </a> + </li> + <ul> + <li> + <b> + Wie wird <q>w3m</q> ausgesprochen? + </b> + </li> + <li> + <b> + Warum hat man es <q>w3m</q> genannt? + </b> + </li> + <li> + <b> + Auf welchen Plattformen l辰uft es? + </b> + </li> + <li> + <b> + Wo bekomme ich mehr Informationen 端ber w3m? + </b> + </li> + <li> + <b> + Gibt es eine Mailingliste f端r w3m? + </b> + </li> + <li> + <b> + Gibt es das Programm fertig kompiliert? + </b> + </li> + </ul> + <li> + <a href="#install"> + <b> + Kompilierung und Installation + </b> + </a> + </li> + <li> + <a href="#command"> + <b> + Optionen, Befehle und Verwendung + </b> + </a> + </li> + <ul> + <li> + <b> + w3m beendet sich von selbst, wenn es ohne Argumente aufgerufen wurde. Was l辰uft hier falsch? + </b> + </li> + <li> + <b> + w3m startet mit schwarzen Zeichen vor schwarzem Hintergrund. Wie kann ich das 辰ndern? + </b> + </li> + <li> + <b> + Kann w3m Dinge in Farbe darstellen? + </b> + </li> + <li> + <b> + Kann w3m mit monochromen Bildschirmen benutzt werden? + </b> + </li> + <li> + <b> + Wie kann ich den angezeigten Bereich verschieben? + </b> + </li> + <li> + <b> + Wie komme ich von einem zum anderen Hyperlink? + </b> + </li> + <li> + <b> + Grafische Browser stellen ein Wort rot dar, w3m hingegen nicht. Warum? + </b> + </li> + <li> + <b> + Wie 辰ndere ich die f端r Hyperlinks, Bilder und Formularfelder benutzten Farben? + </b> + </li> + <li> + <b> + w3m scheint die Umgebungsvariable EDITOR zu ignorieren. Weshalb? + </b> + </li> + <li> + <b> + Wie breche ich eine Suche oder die Eingabe einer URL ab? + </b> + </li> + </ul> + <li> + <a href="#www"> + <b> + Fragen zur Benutzung als Internetbrowser + </b> + </a> + </li> + <ul> + <li> + <b> + Wie f端lle ich mit w3m Formulare aus? + </b> + </li> + <li> + <b> + w3m scheint langsamer als einige andere Browser zu sein. Warum? + </b> + </li> + <li> + <b> + Die Zeit zum Laden einer Seite wird nicht geringer, wenn diese Seite schon einmal angezeigt wurde. + </b> + </li> + <li> + <b> + Wie lade ich eine Datei herunter, auf die verlinkt wird? + </b> + </li> + <li> + <b> + Wie gebe ich einen Proxy-Server vor? + </b> + </li> +<!-- deleted, see mail dated Mon, 04 Apr 2016 20:50:27 +0900 (JST) +from Tatsuya Kinoshita <tats@debian.org> + <li> + <b> + w3m freezes when I invoke an external browser. + </b> + </li> +--> + <li> + <b> + Wie w辰hle ich den standardm辰ig verwendeten Bildbetrachter aus? + </b> + </li> + <li> + <b> + Wie wird eine URL eingegeben? + </b> + </li> + <li> + <b> + w3m h辰ngt eine URL an die vorherige an, obwohl die Zeile mit <span class="mono">STRG-u</span> gel旦scht worden war. Was ist zu tun? + </b> + </li> + </ul> + <li> + <a href="#other"> + <b> + Verschiedenes + </b> + </a> + </li> + <ul> + <li> + <b> + Ich suche die Konfigurationsdatei von w3m. + </b> + </li> + <li> + <b> + Wof端r sind die w3mxxxx Dateien in meinem ~/.w3m Verzeichnis gut? + </b> + </li> + </ul> + </ul> + <h2 id="general"> + <u> + Allgemeine Fragen; wie bekomme ich das Programm, welche Arbeitsumgebung wird ben旦tigt? + </u> + </h2> + <dl> + <dt> + <b> + Wie wird <q>w3m</q> ausgesprochen? + </b> + </dt> + <dd> + <p> + Der Name wird englisch ausgesprochen <q>W-three-M</q> und reimt sich nicht auf <q>pteranodon</q>. + </p> + </dd> + <dt> + <b> + Warum hat man es <q>w3m</q> genannt? + </b> + </dt> + <dd> + <p> + Darin steckt der japanische Satz <q>WWW-wo-Miru</q>, was <q>Sichte das weltweite Netz</q> bedeutet. Dieser Browser k旦nnte also auf deutsch <q>Sdw2N</q> heien. + </p> + </dd> + <dt> + <b> + Auf welchen Plattformen l辰uft es? + </b> + </dt> + <dd> + <p> + Das Programm l辰uft auf verschiedenen Unices, seit der Version 990226 auf OS/2 und seit Version 990303 auch auf Microsoft-Windows mit Cygwin32. + </p> + <p> + Es wurde best辰tigt, dass neuere Versionen laufen auf: + </p> + <ul> + <li> + SunOS 4.1.x + </li> + <li> + HP-UX 9.x, 10.x + </li> + <li> + Solaris 2.5.x, 2.6, 8 + </li> + <li> + Linux 2.0.1 bis 3.17 + </li> + <li> + FreeBSD 2.2.8, 3.1, 3.2, 4.6 + </li> + <li> + NetBSD/macppc, m68k + </li> + <li> + EWS4800 Rel.12.2 Rev.A + </li> + <li> + Digital UNIX: v3.2D, v4.0D + </li> + <li> + IRIX 5.3, IRIX 6.5 + </li> + <li> + OS/2 mit emx + </li> + <li> + Windows 9x/NT mit Cygwin32 b20.1 + </li> + <li> + MS-DOS mit DJGPP und WATT32 Pakettreiber + </li> + <li> + MacOS X Server + </li> + <li> + MacOS X 10.1, 10.2 + </li> + </ul> + </dd> + <dt> + <b> + Wo bekomme ich mehr Informationen 端ber w3m? + </b> + </dt> + <dd> + <p> + Auf der englischen <a href="http://w3m.sourceforge.net/index.en.html">Homepage</a> des w3m-Projekts. + </p> + </dd> + <dt> + <b> + Gibt es eine Mailingliste f端r w3m? + </b> + </dt> + <dd> + <p> + Es gibt eine Mailingliste f端r Entwickler (w3m-dev-en). Einzelheiten dazu finden Sie auf der <a href="http://w3m.sourceforge.net/index.en.html">Homepage</a> des w3m-Projekts. Sie k旦nnen Ihre Anmerkungen auch dem <a href="mailto:aito@fw.ipsj.or.jp">Autor</a> schicken. + </p> + </dd> + <dt> + <b> + Gibt es das Programm fertig kompiliert? + </b> + </dt> + <dd> + <!-- + You can get them from + <a href="http://prdownloads.sourceforge.net/w3m/">here</a>. +!--><p> + Bis jetzt wurde das Programm nur f端r Windows /Cygnus32 kompiliert. Sollten Sie dies f端r andere Plattformen durchgef端hrt haben und m旦chten Ihre Bin辰rversion der Allgemeinheit zur Verf端gung stellen, kontaktieren Sie den <a href="mailto:aito@fw.ipsj.or.jp">Autor</a>. + </p> + </dd> + </dl> + <p align="right"> + <i> + Zur端ck zur <a href="#index">bersicht</a> + </i> + </p> + <h2 id="install"> + <u> + Kompilierung und Installation + </u> + </h2> + <p> + Kein Problem :-) + </p> + <h2 id="command"> + <u> + Optionen, Befehle und Verwendung + </u> + </h2> + <dl> + <dt> + <b> + w3m beendet sich von selbst, wenn es ohne Argumente aufgerufen wurde. Was l辰uft hier falsch? + </b> + </dt> + <dd> + <p> + w3m ist ein <b>Textbetrachter</b>. Deshalb schliet sich das Programm von selbst, wenn es ohne ein Argument aufgerufen wird. Es l辰uft weiter + </p> + <ul> + <li> + mit einem Dateinamen oder einer Adresse als Argument + </li> + <li> + mit aus der Standardeingabe eingehenden Daten + </li> + <li> + nach Aufruf mit der Option -B, woraufhin die Lesezeichendatei gezeigt wird + </li> + <li> + nach Aufruf mit der Option -v, woraufhin eine Begr端ungsseite angezeigt wird + </li> + <li> + wenn die Variablen HTTP_HOME oder WWW_HOME spezifiziert wurden + </li> + </ul> + </dd> + <dt> + <b> + w3m startet mit schwarzen Zeichen vor schwarzem Hintergrund. Wie kann ich das 辰ndern? + </b> + </dt> + <dd> + <p> + Wenn w3m f端r den Farbmodus kompiliert wurde, geht das Programm von weiem Hintergrund aus und zeigt die Buchstaben in schwarz. + </p> + <p> + Sie k旦nnen entweder die Hintergrundfarbe Ihres Terminals 辰ndern (bei xterm z.B. mit der Option -bg) oder so vorgehen + </p> + <ol> + <li> + Mit <span class="mono">w3m -M</span> den Monochrom-Modus von w3m starten + </li> + <li> + <q>o</q> eintippen, was Sie in den Einstellungs-Dialog bringt + </li> + <li> + <q>YES</q> neben <q>in Farbe anzeigen</q> markieren und irgendeine Farbe ausw辰hlen. + </li> + <li> + auf [OK] klicken + </li> + </ol> + </dd> + <dt> + <b> + Kann w3m Dinge in Farbe darstellen? + </b> + </dt> + <dd> + <p> + Ja. Wenn Sie <q>./configure</q> durchf端hren, werden Ihnen folgende M旦glichkeiten angeboten: + </p> +<pre> + Let's do some configurations. Choose config option among the list. <br> 1 - Baby model (no color, no menu, no mouse, no cookie, no SSL) <br> 2 - Little model (color, menu, no mouse, no cookie, no SSL) <br> 3 - Mouse model (color, menu, mouse, no cookie, no SSL) <br> 4 - Cookie model (color, menu, mouse, cookie, no SSL)<br> 5 - Monster model (with everything; you need openSSL library) <br> 6 - Customize Which? +</pre> + <p> + Sie entscheiden sich f端r 2, 3, 4, oder 5. + </p> + </dd> + <dt> + <b> + Kann w3m mit monochromen Bildschirmen benutzt werden? + </b> + </dt> + <dd> + <p> + Ja, Sie k旦nnen entweder + </p> + <ul> + <li> + obige Frage bei <q>./configure</q> mit 1 beantworten, oder + </li> + <li> + w3m mit der Option -M starten, oder + </li> + <li> + innerhalb von w3m die Taste <q>o</q> bet辰tigen, was den Einstellungs-Dialog 旦ffnet, in dem Sie <q>in Farbe anzeigen</q> abschalten k旦nnen. + </li> + </ul> + </dd> + <dt> + <b> + Wie kann ich den angezeigten Bereich verschieben? + </b> + </dt> + <dd> + <p> + Indem Sie den Cursor an den Rand des Bildschirmes bewegen. Auerdem k旦nnen Sie die folgenden Kommmandos nutzen + </p> + <ul> + <li>SHIFT_LEFT und SHIFT_RIGHT, denen die Tasten <span class="mono">></span> und <span class="mono"><</span> zugeordnet sind</li> + <li>SHIFT_LEFT1 und SHIFT_RIGHT1, denen die Tasten <span class="mono">.</span> und <span class="mono">,</span> zugeordnet sind</li> + </ul> + <p> + Ein weiterer Weg w辰re, mit der Option -geometry des Terminalprogramms den zur Anzeige verf端gbaren Platz anzupassen, beispielsweise mit einer Eingabe der Art + </p> + <pre> xterm -geometry 110x45 -bg white -name w3m -e w3m -B</pre> + </dd> + <dt> + <b> + Wie komme ich von einem zum anderen Hyperlink? + </b> + </dt> + <dd> + <p> + + Sie erreichen den n辰chsten Hyperlink mit der TAB-Taste. Zum vorhergehenden springt der Cursor, wenn die ESC-Taste vor der TAB-Taste gedr端ckt wurde. (Mehr zu <a href="MANUAL.html#Functions" target="_blank"> Funktionen und Tastaturbelegung</a> im Handbuch von w3m) + + </p> + </dd> + <dt> + <b> + Grafische Browser stellen ein Wort rot dar, w3m hingegen nicht. Warum? + </b> + </dt> + <dd> + <p> + w3m ignoriert das Attribut COLOR="..." in HTML. Dessen Ber端cksichtigung zu implementieren, w辰re m旦glich, aber ich denke, die Dokumente w辰ren am Ende schwerer lesbar. + </p> + </dd> + <dt> + <b> + Wie 辰ndere ich die f端r Hyperlinks, Bilder und Formularfelder benutzten Farben? + </b> + </dt> + <dd> + <p> + Tippen Sie in w3m <q>o</q> ein und gelangen damit in den Einstellungs-Dialog. Dort k旦nnen Sie die Farben 辰ndern. + </p> + </dd> + <dt> + <b> + w3m scheint die Umgebungsvariable EDITOR zu ignorieren. Weshalb? + </b> + </dt> + <dd> + <p> + Tippen Sie in w3m <q>o</q> ein und gelangen damit in den Einstellungs-Dialog. Jeglicher Eintrag im Feld <q>Editor</q> hat Vorrang gegen端ber der Umgebungsvariablen. + </p> + <p> + Wenn Sie also das durch EDITOR angegebene Textbearbeitungsprogramm verwenden m旦chten, l旦schen Sie den Eintrag und dr端cken [OK]. + </p> + </dd> + <dt> + <b> + Wie breche ich eine Suche oder die Eingabe einer URL ab? + </b> + </dt> + <dd> + <p> + L旦schen Sie den eingegebenen Text mit <span class="mono">STRG-u</span> und dr端cken Sie die Eingabetaste. + </p> + </dd> + </dl> + <p align="right"> + <i> + Zur端ck zur <a href="#index">bersicht</a> + </i> + </p> + <h2 id="www"> + <u> + Fragen zur Benutzung als Internetbrowser + </u> + </h2> + <dl> + <dt> + <b> + Wie f端lle ich mit w3m Formulare aus? + </b> + </dt> + <dd> + <p> + Formular-Eingabefelder werden in rot (oder invertiert) angezeigt. Bewegen Sie den Cursor dorthin. Wenn es + </p> + <ul> + <li> + ein Texteingabefeld ist, dr端cken Sie die Eingabetaste, schreiben den Text unten in die Eingabezeile und dr端cken die Eingabetaste nochmals, + </li> + <li> + sich um einen Radiobutton oder eine Checkbox handelt, wird bei Dr端cken der Eingabetaste die Auswahl ver辰ndert oder neu getroffen + </li> + <li> + sich um einen Texteingabebereich handelt, wird durch Dr端cken der Eingabetaste ein Editor gestartet + </li> + <li> + sich um eine Schaltfl辰chen f端r <q>bermitteln</q> oder <q>Zur端cksetzen</q> handelt, wird die entsprechende Aktion ausgef端hrt. + </li> + </ul> + </dd> + <dt> + <b> + w3m scheint langsamer als einige andere Browser zu sein. Warum? + </b> + </dt> + <dd> + <p> + HTML-Dokumente werden in zwei Schritten verarbeitet. Erst nachdem ein Dokument vollst辰ndig vorliegt, baut w3m die Anzeige auf. + </p> + <p> + Da die meisten anderen Browser die Seite aufbauen, ehe sie komplett ist, scheinen sie schneller. + </p> + </dd> + <dt> + <b> + Die Zeit zum Laden einer Seite wird nicht geringer, wenn diese Seite schon einmal angezeigt wurde. + </b> + </dt> + <dd> + <p> + w3m nutzt keinen eigenen Zwischenspeicher. Es liest daher Dokumente jedesmal neu vom Server ein. Wenn m旦glich, verwenden Sie einen Server f端r die Zwischenspeicherung. + </p> + </dd> + <dt> + <b> + Wie lade ich eine Datei herunter, auf die verlinkt wird? + </b> + </dt> + <dd> + <p> + Verwenden Sie <q>a</q> (oder <q>d</q> bei lynx-artiger Tastaturbelegung) oder <span class="mono">ESC RET</span>. Wenn Sie ein eingebundenes Bild herunterladen m旦chten, dr端cken Sie <span class="mono">ESC I</span>. (Mehr zu <a href="MANUAL.html#Functions" target="_blank"> Funktionen und Tastaturbelegung</a> im Handbuch von w3m) + </p> + </dd> + <dt> + <b> + Wie gebe ich einen Proxy-Server vor? + </b> + </dt> + <dd> + <p> + Setzen Sie die Umgebungsvariablen HTTP_PROXY, HTTPS_PROXY, GOPHER_PROXY und FTP_PROXY oder 旦ffnen mit <q>o</q> den Einstellungs-Dialog. Um beispielsweise den Port 8000 von proxy.example.org zu benutzen, geben Sie ein + </p> + <pre> http://proxy.example.org:8000/</pre> + </dd> +<!-- deleted, see mail dated Mon, 04 Apr 2016 20:50:27 +0900 (JST) +from Tatsuya Kinoshita <tats@debian.org> + <dt> + <b> + w3m freezes when I invoke an external browser. + </b> + </dt> + <dd> + <p> + Enter w3m's option screen using the <q>o</q> key and specify + </p> + <pre> firefox %s &</pre> + <p> + (if you are using Firefox). Note that %s is replaced with the URL + when invoking. + </p> + </dd> + --> + <dt> + <b> + Wie w辰hle ich den standardm辰ig verwendeten Bildbetrachter aus? + </b> + </dt> + <dd> + <p> + Standardm辰ig benutzt w3m den Bildbetrachter xv. Wenn Sie beispielsweise <q>display</q> vorziehen, erg辰nzen Sie ~/.w3m/mailcap oder /etc/mailcap um die Zeile: + </p> +<pre> + image/*; display %s +</pre> + <p> + Ebenso k旦nnen Sie f端r andere Dateitypen externe Anzeigeprogramme festlegen: + </p> +<pre> + image/*; display %s <br>application/postscript; ghostview %s <br>application/x-dvi; xdvi %s +</pre> + </dd> + <dt> + <b> + Wie wird eine URL eingegeben? + </b> + </dt> + <dd> + <p> + Dr端cken Sie <span class="mono">U</span> + </p> + </dd> + <dt> + <b> + w3m h辰ngt eine URL an die vorherige an, obwohl die Zeile mit <span class="mono">STRG-u</span> gel旦scht worden war. Was ist zu tun? + </b> + </dt> + <dd> + <p> + Geben Sie die <i>komplette</i> Adresse ein, z.B. http://www.slashdot.org. + </p> + </dd> + </dl> + <p align="right"> + <i> + Zur端ck zur <a href="#index">bersicht</a> + </i> + </p> + <h2 id="other"> + <u> + Verschiedenes + </u> + </h2> + <dl> + <dt> + <b> + Ich suche die Konfigurationsdatei von w3m. + </b> + </dt> + <dd> + <p> + Es ist ~/.w3m/config. + </p> + + <p> + In dieser Datei kann jeder Benutzer das Verhalten von w3m anpassen. Sie finden dort zeilenweise die Variablen zu den im Einstellungs-Dialog beschriebenen Optionen. Den Namen und die Belegung einer Variable trennt ein Leerzeichen. + </p> + + <p>Ohne eine benutzerspezifische Konfigurationsdatei richtet sich w3m nach der systemweiten Konfigurationsdatei /etc/w3m/config. + </p> + + </dd> + <dt> + <b> + Wof端r sind die w3mxxxx Dateien in meinem ~/.w3m Verzeichnis gut? + </b> + </dt> + <dd> + <p> + Es handelt sich um tempor辰re Dateien, die w3m beim Lesen anlegt. Sie dienen nicht zur Zwischenspeicherung und werden beim Verlassen des Programms normalerweise gel旦scht. Wenn welche zur端ckbleiben, l旦schen Sie sie einfach selbst. + </p> + </dd> + </dl> + <p align="right"> + <i> + Zur端ck zur <a href="#index">bersicht</a> + </i> + </p> + </body> +</html> diff --git a/doc-de/MANUAL.html b/doc-de/MANUAL.html new file mode 100644 index 0000000..e12d3b3 --- /dev/null +++ b/doc-de/MANUAL.html @@ -0,0 +1,2353 @@ + +<html> + <head> + <title>w3m Handbuch</title> + <style> + span.mono { + font-family:mono; + } + </style> + <meta http-equiv="content-type" content="text/html;charset=UTF-8"> + </head> + <body> + <!-- +insertions tagged with "mh 2016-03-29" and "mh 2016-06-11" come from the latest version of manual page w3m (1) + --> + + <h1>w3m HANDBUCH</h1> + <div align="right"> + Akinori Ito<br> aito@fw.ipsj.or.jp + </div> + <h2>bersicht</h2> + <ul> + <li> + <a href="#Einf端hrung"> + Einf端hrung + </a> + </li> + <li> + <a href="#Einstellungen"> + Einstellungen + </a> + </li> + <li> + <a href="#Color"> + Farbzuordnung im Dokument + </a> + </li> + <li> + <a href="#Functions"> + Funktionen und Tastaturbelegung + </a> + </li> +<!-- mh 2016-06-13 obsolete + <li> + <a href="#Key:lynx"> + Lynx-like key bindings + </a> + </li> +--> + <li> + <a href="#Mouse"> + Bedienung per Maus + </a> + </li> +<!-- mh 2016-06-13 obsolete + <li> + <a href="#Key:custom"> + Key customization + </a> + </li> + --> + <li> + <a href="#LocalCGI"> + Lokale CGI-Skripte + </a> + </li> + </ul> + <hr> + <h2 id="Einf端hrung"> + Einf端hrung + </h2> + <p> + w3m ist ein textorientierter Browser und Textbetrachter (Pager). In einem Terminalemulator k旦nnen Sie damit lokale und andere Dokumente anzeigen lassen und Verkn端pfungen (Hyperlinks) weiterverfolgen. + </p> + <hr> + <h2 id="Einstellungen"> + Einstellungen + </h2> + <p> + Der Aufruf per Befehlszeile lautet + </p> +<!-- mh 2016-08-06 invocation adapted to w3m(1). w3m accepts several options and several targets --> +<pre> + w3m [Option] [Datei|Adresse] +</pre> + <p> + Wenn Sie Dateinamen oder Adressen in der Befehlszeile angeben, werden diese Dokumente angezeigt. Fehlen entsprechende Argumente, wird w3m ein Dokument aus der Standardeingabe erwarten und anzeigen. Erh辰lt das Programm auch hier keine Daten, beendet es sich normalerweise selbstst辰ndig. + </p> + <p> + Optionen sind unter anderem: + </p> + <dl> +<h3>Allgemeine Optionen</h3> + <dt> + -B + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + starte mit einer Ansicht aller Lesezeichen (wenn kein anderes Zielobjekt angegeben ist) + </p> + </dd> + <dt> + -M + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + monochrome Anzeige + </p> + </dd> + <dt> + -no-mouse + </dt> + <dd> + <p> + Mausfunktion aus + </p> + </dd> + <dt> + -num + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + zeige Zeilennummern an + + </p> + </dd> +<!-- mh 2016-08-06 commented out. As implementation is not verified. + <dt> + -ppc <i>num</i> + </dt> + <dd> + <p> + width of <i>num</i> pixels per character. Range of 4.0 to 32.0, + default 8.0. Larger values will make tables + narrower. (Implementation not verified) + </p> + </dd> +--> + <dt> + -v + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + begr端e den Benutzer mit einer eingebauten Seite (wenn kein anderes Zielobjekt angegeben ist) + </p> + </dd> + <dt> + -W + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + wechsle zwischen umlaufendem und nicht umlaufendem Suchen + </p> + </dd> + <dt> + -X + </dt> + <dd> + <p> + nach Beenden des Programms das Terminal nicht neu initialisieren. + </p> + </dd> + <dt> + +<i>Zahl</i> + </dt> + <dd> + <!--mh 2016-06-11 --><p> + gehe zu Zeile <i>Zahl</i>. Wirkt nur, wenn <i>Zahl</i> gr旦er ist als die im Terminal verf端gbare Zeilenzahl + </p> + </dd> +<h3>Browser-Optionen</h3> + <dt> + -cols <i>Zahl</i> + </dt> + <dd> + <!-- mh 2016-06-11 --><p> + + bei f端r die Standardausgabe bestimmten Inhalten, nimm bei zur Umsetzung von HTML eine L辰nge von <i>num</i> Zeichen pro Zeile + </p> + </dd> + <dt> + -cookie + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + verwende gespeicherte Cookies und akzeptiere neue + </p> + </dd> + <dt> + -no-cookie + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + verwende weder gespeicherte Cookies noch akzeptiere neue + + </p> + </dd> + <dt> + -F + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + verarbeite Frames + </p> + </dd> + <dt> + -no-graph + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + verwende bei der Umsetzung von Tabellen und Frames keine grafischen Zeichen + </p> + </dd> + <dt> + -header <i>Zeichenkette</i> + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + f端ge der HTTP(S)-Anfrage <i>Zeichenkette</i> an. Diese muss der Kopfdaten-Syntax <span class="mono">"Variable: Wert"</span> entsprechen + </p> + </dd> + <dt> + -m + </dt> + <dd> + <!-- mh 2016-03-29 +Render the body of Usenet messages according to the header <q>Content-type</q> +--><p> + arbeite im <q>Internetnachrichten-Modus</q>. Mit dieser Option entnimmt w3m den Typ eines Dokumentes dessen Kopfdaten. Dies ist n端tzlich beim Lesen von Mails und Usenet-Nachrichten. + + </p> + </dd> + <dt> + -no-proxy + </dt> + <dd> + <!-- mh 2016-06-11--><p> + + verwende keinen Proxy + </p> + </dd> + <dt> + -post <i>Datei</i> + </dt> + <dd> + <!--funktionierend 2016-06-28T08:22>--><p> + verwende die Methode POST, um in <i>Datei</i> hinterlegte Daten hochzuladen. Hierbei wird die Syntax <span class="mono">"var1=wert1[&var2=wert2]…"</span> erwartet + </p> + </dd> +<h3>Textbetrachter-Optionen</h3> + <dt> + -l <i>Zahl</i> + </dt> + <dd> + <!-- mh2016-06-11--><p> + + Anzahl der Zeilen, die zwischengespeichert werden, wenn Text per Standardeingabe 端bergeben wurde. (Voreinstellung ist 10000) + </p> + </dd> + <dt> + -r + </dt> + <dd> + <!-- mh 2016-03-29 --><p> + + verarbeite spezielle Escape-Zeichen (beispielsweise ANSI-Escape-Zeichen oder nroff-R端ckw辰rtsschritte f端r fette und unterstrichene Zeichen) nicht, sondern zeige sie stattdessen mittels Caret-Notation. + </p> + </dd> + <dt> + -s + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + mehrere leere Zeilen werden bis auf eine gel旦scht + </p> + </dd> + + <!--mh 2016-03-29 --><dt> + -t <i>Zahl</i> + </dt> + <dd> + <!--mh 2016-03-29--><p> + Tab-Zeichen so verwerten, dass Spalten mit einer Weite von <i>Zahl</i> Zeichen entstehen. Wirkt nicht auf Standardausgabe + </p> + </dd> +<h3>Datenart- und Datenkodierungs-Optionen</h3> + <dt> + -I <i>Zeichenkodierung</i> + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + zu benutzende Zeichenkodierung f端r erhaltene Daten + </p> + </dd> + <dt> + -O <i>Zeichenkodierung</i> + </dt> + <dd> + <!-- mh 2016-03-29 --><p> + + zu benutzende Zeichenkodierung f端r auszugebende Daten + </p> + </dd> + <dt> + -T <i>Typ</i> + </dt> + <dd> + <!-- mh 2016-06-11--><p> + + legt den MIME-Typ erhaltener Daten fest. Ohne diese Option bestimmt ihn das Programm anhand der Dateinamen-Erweiterung. Wenn dies fehlschl辰gt, wird text/plain als Typ angenommen. Zum Beispiel: + </p> + <p> + bernimm HTML-Dokument von der Standardeingabe und zeige es an + </p> +<pre> + cat beispiel.html | w3m -T text/html +</pre> + <p> + Zeige HTML-Quelltext an + </p> +<pre> + w3m -T text/plain beispiel.html +</pre> + </dd> +<h3>Optionen zur Datenausgabe, mit sofortigem Verlassen des Programms</h3> + <dt> + -dump + </dt> + <dd> + <!-- mh 2016-03-29 --><p> + lies das per URL angegebene Dokument und leite es verarbeitet der Standardausgabe zu. Wenn mit der Option -cols nichts anderes eingestellt ist, erh辰lt es eine Breite von 80 Zeichen + </p> + </dd> + <dt> + -dump_source + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + leite den Seitenquelltext der Standardausgabe zu + </p> + </dd> + <dt> + -dump_head + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + leite die Antwort einer HEAD-Anfrage f端r eine URL der Standardausgabe zu + </p> + </dd> + <dt> + -dump_both + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + leite Antwort auf HEAD-Anfrage und Seitenquelltext der Standardausgabe zu + + </p> + </dd> + <dt> + -dump_extra + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + leite Antwort auf HEAD-Anfrage, Seitenquelltext und Extrainformation der Standardausgabe zu + </p> + </dd> + +<h3>Optionen, die Standards f端r Einstellungen und Datenquellen auer Kraft setzen</h3> + + <dt> + -bookmark <i>Datei</i> + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + benutze anstelle der Standarddatei bookmark.html f端r Lesezeichen die Datei <i>Datei</i> + </p> + </dd> + <dt> + -config <i>Datei</i> + </dt> + <dd> + <!--mh 2016-06-11--><p> + + benutze <i>Datei</i> anstelle der Standard-Konfigurationsdatei + </p> + </dd> + <dt> + -o <i>Option</i>=<i>Wert</i> + </dt> + <dd> + <!-- mh 2016-03-29--><p> + + arbeite mit einer Konfiguration, bei der die Einstellung <i>Option</i> mit <i>Wert</i> belegt ist. Ohne <i>Option=Wert</i> gleichwertig mit <i>-show-option</i> + </p> + </dd> + </dl> + <hr> + <h2 id="Color"> + Farbzuordnung im Dokument + </h2> + <p> + Links und Bildelemente werden wie folgt angezeigt: + </p> + <div align="center"> <table border="1"> <tr> + <th> + </th> + <th> + Farbmodus + </th> + <th> + Monochrom-Modus + </th> + </tr> + <tr> + <td> + Hyperlinks + </td> + <td> + blau + </td> + <td> + unterstrichen + </td> + </tr> + <tr> + <td> + Bilder + </td> + <td> + gr端n + </td> + <td> + invertiert + </td> + </tr> + <tr> + <td> + Formular-Eingabefelder + </td> + <td> + rot + </td> + <td> + invertiert + </td> + </tr> + </table> + </div> + <p> + Diese Farben k旦nnen nach Eingabe von <q>o</q> im Einstellungs-Dialog anders zugeordnet werden. + </p> + <hr> + <h2 id="Functions"> + Funktionen und Tastaturbelegung + </h2> + + <!-- mh 2016-06-13 obsolete + If you prefer using Lynx-like + key bindings, make w3m start with the respective keymap file keymap.lynx. (see w3m (1)).--><p> + Wenn w3m l辰uft, bedienen Sie das Programm, indem Sie Funktionen anhand ihres Namens oder der ihr zugeordneten Tastenkombination aufrufen. Es gibt voreingestellte Tastaturbelegungen. + + </p> +<!-- + <h2 id="Key:custom"> + Key customization + </h2> +--> + <p> + Sie k旦nnen die Tastaturbelegungen (abgesehen von jenen des Men端- und des Texteingabe-Modus) in einer Datei ~/.w3m/keymap anpassen. Beispielsweise bindet + </p> + +<pre> + keymap C-o NEXT_PAGE +</pre> + + <p> + die Funktion <span class="mono">NEXT_PAGE</span> (die normalerweise mit SPC und C-v verkn端pft ist) mit C-o. Siehe die Liste verf端gbarer Funktionen in <a href="README.func">README.func</a>. Original- und Lynx-artige Tastaturbelegungen enthalten die Beispieldateien <a href="keymap.default">keymap.default</a> und <a href="keymap.lynx">keymap.lynx</a>. + </p> + + <p> + Im Folgenden stehen <i>C-</i> und <i>M-</i> f端r die Eingabe-Modifikationen mit der <i>Steuerungs-</i> und der <i>Meta-Taste</i>. Die letztere ersetzt die <i>ALT-Taste</i>, wohingegen Dr端cken der <i>ESC</i>-Taste zwischen <i>Meta</i>-modifiziertem und einfachen Tastendruck wechselt. Das Minus-Zeichen bedeutet das gleichzeitige Dr端cken von Tasten; der Leerraum dagegen steht daf端r, dass eine Taste nach der anderen gedr端ckt wird. Mit <i>2 M</i> ist also gemeint, die <i>2</i> und dann <i>M</i> zu dr端cken. + </p> + + + <table border="1" width="100%"> + <colgroup> + <col width="20%"> + <col width="20%"> + <col width="20%"> + <col width="40%"> + </colgroup> + <tr> + <th rowspan="2"> + Funktion + </th> + <th colspan="2">Tastenkombination + </th> + <th rowspan="2"> + Beschreibung + </th> + </tr> + <tr> + <th> + Standard + </th> + <th> + Lynx-辰hnlich + </th> + </tr> + <tr> + <td colspan="4"> + <h3>Navigation innerhalb von Seiten</h3> +</td> + </tr> + <tr> + <td> + NEXT_PAGE + </td> + <td> + SPC, C-v, +, PGDN + </td> + <td> + SPC, C-v, + + </td> + <td> + Scrolle eine Seite abw辰rts + </td> + </tr> + <tr> + <td> + PREVIOUS_PAGE + </td> + <td> + b, M-v, -, PGUP + </td> + <td> + b, M-v, - + </td> + <td> + Scrolle eine Seite aufw辰rts + </td> + </tr> + <tr> + <td> + MOVE_RIGHT + </td> + <td> + l, C-f, RIGHT + </td> + <td> + l + </td> + <td> + Bewege Cursor nach rechts (mit Verschiebung um halbe Bildschirmbreite an dessen Rand) + </td> + </tr> + <tr> + <td> + C-b, LEFT + </td> + <td> + h, C-b, LEFT + </td> + <td> + h + </td> + <td> + Bewege Cursor nach links (mit Verschiebung um halbe Bildschirmbreite an dessen Rand) + </td> + </tr> + <tr> + <td> + MOVE_DOWN + </td> + <td> + j, C-n, DOWN + </td> + <td> + j + </td> + <td> + Bewege Cursor abw辰rts (scrolle eine Zeile am Bildschirmrand) + </td> + </tr> + <tr> + <td> + MOVE_UP + </td> + <td> + k, C-p, UP + </td> + <td> + k + </td> + <td> + Bewege Cursor aufw辰rts (scrolle eine Zeile am Bildschirmrand) + </td> + </tr> + <tr> + <td> + UP + </td> + <td> + J + </td> + <td> + J + </td> + <td> + Scrolle den Anzeigebereich eine Zeile aufw辰rts + </td> + </tr> + <tr> + <td> + DOWN + </td> + <td> + K + </td> + <td> + K + </td> + <td> + Scrolle den Anzeigebereich eine Zeile abw辰rts + </td> + </tr> + <tr> + <td> + LINE_BEGIN + </td> + <td> + ^, C-a + </td> + <td> + ^ + </td> + <td> + Gehe zum Zeilenanfang + </td> + </tr> + <tr> + <td> + LINE_END + </td> + <td> + $, C-e + </td> + <td> + $ + </td> + <td> + Gehe zum Zeilenende + </td> + </tr> + <tr> + <td> + NEXT_WORD + </td> + <td> + w + </td> + <td> + w + </td> + <td> + Gehe zum n辰chsten Wort + </td> + </tr> + <tr> + <td> + PREVIOUS_WORD + </td> + <td> + W + </td> + <td> + W + </td> + <td> + Gehe zum vorherigen Wort + </td> + </tr> + <tr> + <td> + SHIFT_RIGHT + </td> + <td> + > + </td> + <td> + > + </td> + <td> + Anzeigebereich nach rechts versetzen + </td> + </tr> + <tr> + <td> + SHIFT_LEFT + </td> + <td> + < + </td> + <td> + < + </td> + <td> + Anzeigebereich nach links versetzen + </td> + </tr> + <tr> + <td> + RIGHT + </td> + <td> + . + </td> + <td> + . + </td> + <td> + Anzeigebereich um eine Spalte nach rechts verschieben + </td> + </tr> + <tr> + <td> + LEFT + </td> + <td> + , + </td> + <td> + , + </td> + <td> + Anzeigebereich um eine Spalte nach links verschieben + </td> + </tr> + <tr> + <td> + BEGIN + </td> + <td> + g, M-<, HOME + </td> + <td> + C-a, M-< + </td> + <td> + Gehe zur ersten Zeile + </td> + </tr> + <tr> + <td> + END + </td> + <td> + G, M->, END + </td> + <td> + C-e, M-> + </td> + <td> + Gehe zur letzten Zeile + </td> + </tr> + <tr> + <td> + GOTO_LINE + </td> + <td> + M-g + </td> + <td> + G + </td> + <td> + Gehe zur angegebenen Zeile + </td> + </tr> + <tr> + <td> + LINE_INFO + </td> + <td> + C-g + </td> + <td> + C-g + </td> + <td> + Zeige aktuelle Position im Dokument an + </td> + </tr> + <tr> + <td> + CENTER_H + </td> + <td> + Z + </td> +<!--Correction by mh 2014-04-06 +Description for keybinding of z and Z had been mingled +--> + <td> + Z + </td> + <td> + Bildschirm rechts und links des Cursors zentrieren + </td> + </tr> + <tr> + <td> + CENTER_V + </td> + <td> + z + </td> + <td> + z + </td> + <td> + Bildschirm ober- und unterhalb des Cursors zentrieren + </td> + </tr> + <tr> + <td> + NEXT_LINK + </td> + <td> + TAB + </td> + <td> + TAB, C-n, DOWN + </td> + <td> + Gehe zum n辰chsten Hyperlink + </td> + </tr> + <tr> + <td> + PREVIOUS_LINK + </td> + <td> + M-TAB, C-u + </td> + <td> + M-TAB, C-u, C-p, UP + </td> + <td> + Gehe zum vorangegangen Hyperlink + </td> +<!-- Annotion mh 2016-04-06 +Keybinding description for C-g had been moved as it did not fit to "Hyperlink operation" and position in the default and lynx-like series differed + --> + </tr> + <tr> + <td> + LINK_BEGIN + </td> + <td> + [ + </td> + <td> + [ + </td> + <td> + Gehe zum ersten Hyperlink + </td> + </tr> + <tr> + <td> + LINK_END + </td> + <td> + ] + </td> + <td> + ] + </td> + <td> + Gehe zum letzten Hyperlink + </td> + </tr> +<tr> +<td>MOVE_LIST_MENU</td> +<td>M-m</td> +<td>M-m</td> +<td>ffne Men端 mit vorhandenen Hyperlinks</td> +</tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Umgang mit Hyperlinks</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + GOTO_LINK + </td> + <td> + C-j, C-m, RET + </td> + <td width="100"> + C-f, C-j, C-m, RET, RIGHT + </td> + <td> + Folge dem aktuellen Hyperlink in neuem Puffer + </td> + </tr> +<tr> +<td>LIST_MENU</td> +<td>M-l</td> +<td>M-l</td> +<td>ffne Men端 mit Hyperlinks und folge dem ausgew辰hlten</td> +</tr> + <tr> + <td> + SAVE_LINK + </td> + <td> + a, M-RET + </td> + <td> + d, M-RET + </td> + <td> + Speichere Ziel des Hyperlinks + </td> + </tr> + <tr> + <td> + PEEK_LINK + </td> + <td> + u + </td> + <td> + u + </td> + <td> + Zeige Zieladresse + </td> + </tr> + <tr> + <td> + PEEK_IMG + </td> + <td> + i + </td> + <td> + i + </td> + <td> + Zeige Adresse des Bildes + </td> + </tr> + <tr> + <td> + VIEW_IMAGE + </td> + <td> + I + </td> + <td> + I + </td> + <td> + Zeige Bild in Betrachter + </td> + </tr> + <tr> + <td> + SAVE_IMAGE + </td> + <td> + M-I + </td> + <td> + M-I + </td> + <td> + Speichere Bild + </td> + </tr> +<tr> +<td>MARK_WORD</td> +<td>;</td> +<td>;</td> +<td>Wandle aktuelles Wort in Hyperlink um</td> +</tr> + <tr> + <td> + MARK_URL + </td> + <td> + : + </td> + <td> + : + </td> + <td> + Wandle URL-artige Zeichenketten um in Hyperlinks + </td> + </tr> + <tr> + <td> + MARK_MID + </td> + <td> + M-: + </td> + <td> + M-: + </td> + <!-- changed due to mail dated Mon, 04 Apr 2016 00:47:09 +0900 (JST) +from Tatsuya Kinoshita --><td> + + Wandle Nachrichten-ID-artige Zeichenketten um in Hyperlinks + </td> + </tr> + <tr> + <td> + PEEK + </td> + <td> + c + </td> + <td> + c + </td> + <td> + Zeige aktuelle Adresse an + </td> + </tr> + <tr> + <td> + INFO + </td> + <td> + = + </td> + <td> + = + </td> + <td> + Zeige Informationen 端ber dieses Dokument + </td> + </tr> + <tr> + <td> + HISTORY + </td> + <td> + C-h + </td> + <td> + C-h + </td> + <td> + Chronik aufgesuchter Dokumente + </td> + </tr> + <tr> + <td> + EXTERN + </td> + <td> + M + </td> + <td> + M + </td> + <td> + Zeige das aktuelle Dokument mit einem externen Browser (wird eine Taste von 2 bis 9 gedr端ckt, also beispielsweise 3 M, eingegeben, kommt ein anderer, in der Konfiguration hinterlegter Browser zum Einsatz) + </td> + </tr> + <tr> + <td> + EXTERN_LINK + </td> + <td> + M-M + </td> + <td> + M-M + </td> + <td> + Bringe das Linkziel mit einem externen Browser zur Anzeige (vorangestellte Zahlen wirken sich wie oben beschrieben aus) + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Verwalten von Lesezeichen</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + BOOKMARK + </td> + <td> + M-b + </td> + <td> + v, M-b + </td> + <td> + Lesezeichen ansehen + </td> + </tr> + <tr> + <td> + ADD_BOOKMARK + </td> + <td> + M-a + </td> + <td> + a, M-a + </td> + <td> + Lege f端r aktuelle Seite Lesezeichen an + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Umgang mit Dateien und Datenstr旦men</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + GOTO + </td> + <td> + U + </td> + <td> + g, U + </td> + <td> + ffne angegebenes Dokument in neuem Puffer + </td> + </tr> +<tr> +<td>GOTO_RELATIVE</td> +<td>M-u</td> +<td>M-u</td> +<td>ffne relative Adresse in neuem Puffer</td> +</tr> + <tr> + <td> + LOAD + </td> + <td> + V + </td> + <td> + V + </td> + <td> + ffne lokale Datei in einem neuen Puffer + </td> + </tr> + <tr> + <td> + READ_SHELL + </td> + <td> + @ + </td> + <td> + @ + </td> + <!--Execute shell command and view output--><!--mh 2016-06-13 No difference to PIPE_SHELL could be discerned--><td> + + + F端hre einen Shell-Befehl aus und zeige Ausgabe in einem neuen Puffer + </td> + </tr> + <tr> + <td> + PIPE_SHELL + </td> + <td> + # + </td> + <td> + # + </td> + <!--Execute shell command and browse output--><!--mh 2016-06-13 No difference to READ_SHELL could be discerned--><td> + + + F端hre einen Shell-Befehl aus und zeige Ausgabe in einem neuen Puffer + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Arbeit an Seiteninhalten</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <!-- is an alias to SOURCE --><td> + VIEW + </td> + <td> + v + </td> + <td> + \ + </td> + <td> + Wechsle zwischen HTML-Quellcode und verarbeitetem Dokument + </td> + </tr> +<tr> +<td>LIST</td> +<td>L</td> +<td>L</td> +<td>Liste Link-Elemente, Hyperlinks und Bilder auf</td> +</tr> + <tr> + <td> + FRAME + </td> + <td> + F + </td> + <td> + F + </td> + <td> + Wechsle zwischen Kennung und Umsetzung von HTML-Frames + </td> + </tr> + <tr> + <td> + REDRAW + </td> + <td> + C-l + </td> + <td> + C-l, C-w + </td> + <td> + Bildschirmanzeige neu aufbauen + </td> + </tr> + <tr> + <td> + RELOAD + </td> + <td> + R + </td> + <td> + R, C-r + </td> + <td> + Aktuelles Dokument erneut laden + </td> + </tr> + <tr> + <td> + EDIT + </td> + <td> + E + </td> + <td> + E + </td> + <td> + Bearbeite lokales Quelldokument + </td> + </tr> + <tr> + <td> + EDIT_SCREEN + </td> + <td> + M-e + </td> + <td> + M-e + </td> + <td> + Bearbeite eine Kopie des verarbeiteten Dokuments + </td> + </tr> +<tr> +<td>PIPE_BUF</td> +<td>|</td> +<td>|</td> +<td>Leite aktuellen Pufferinhalt einem Shell-Befehl zu und zeige Ausgabe an</td> +</tr> + <tr> + <!-- is an alias to SAVE --><td> + DOWNLOAD + </td> + <td> + M-s + </td> + <td> + M-s + </td> + <td> + Dokument-Quellcode speichern + </td> + </tr> + <tr> + <td> + SAVE_SCREEN + </td> + <td> + S + </td> + <td> + S, p + </td> + <td> + Speichere verarbeitetes Dokument + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Navigation zwischen Puffern und Reitern</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + BACK + </td> + <td> + B + </td> + <td> + B, C-b, LEFT + </td> + <td> + Schliee aktuellen Puffer und kehre zu dem im Stapel darunterliegenden zur端ck + </td> + </tr> + <tr> + <td> + GOTO_HOME + </td> + <td> + C-_ + </td> + <td> + </td> + <td> + Zur端ck zur Startseite (die Variablen HTTP_HOME oder WWW_HOME spezifiziert wurden) + </td> + </tr> + <tr> + <td> + SELECT_MENU + </td> + <td> + s + </td> + <td> + s, C-h + </td> + <td> + ffne Pufferstapel-Men端 + </td> + </tr> + <tr> + <td> + TAB_MENU + </td> + <td> + M-t + </td> + <td> + M-t + </td> + <td> + ffne das Reiter-Auswahl-Men端 + </td> + </tr> + <tr> + <td> + NEW_TAB + </td> + <td> + T + </td> + <td> + T + </td> + <td> + ffne neuen Reiter (mit aktuellem Dokument) + </td> + </tr> + <tr> + <td> + TAB_LINK + </td> + <td> + C-t + </td> + <td> + C-t + </td> + <td> + Folge dem aktuellen Hyperlink in einem neuen Reiter + </td> + </tr> + <tr> + <td> + NEXT_TAB + </td> + <td> + } + </td> + <td> + } + </td> + <td> + Schalte zum n辰chsten Reiter + </td> + </tr> + <tr> + <td> + PREV_TAB + </td> + <td> + { + </td> + <td> + { + </td> + <td> + Schalte zum vorherigen Reiter + </td> + </tr> + <tr> + <td> + CLOSE_TAB + </td> + <td> + C-q + </td> + <td> + C-q + </td> + <td> + Schliee aktuellen Reiter + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Suchfunktionen</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + SEARCH + </td> + <td> + / + </td> + <td> + /, C-s + </td> + <td> + Suche vorw辰rts + </td> + </tr> + <tr> + <td> + SEARCH_BACK + </td> + <td> + ? + </td> + <td> + </td> + <td> + Suche r端ckw辰rts + </td> + </tr> + <tr> + <td> + ISEARCH + </td> + <td> + C-s + </td> + <td> + </td> + <td> + Inkrementelle Suche vorw辰rts + </td> + </tr> + <tr> + <td> + ISEARCH_BACK + </td> + <td> + C-r + </td> + <td> + </td> + <td> + Inkrementelle Suche r端ckw辰rts + </td> + </tr> + <tr> + <td> + SEARCH_NEXT + </td> + <td> + n + </td> + <td> + n + </td> + <td> + Setze Suche vorw辰rts fort + </td> + </tr> + <tr> + <td> + SEARCH_PREV + </td> + <td> + N + </td> + <td> + </td> + <td> + Setze Suche r端ckw辰rts fort + </td> + </tr> + <tr> + <td> + WRAP_TOGGLE + </td> + <td> + C-w + </td> + <td> + w + </td> + <td> + Wechsle zwischen umlaufendem und nicht-umlaufendem Suchen + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Arbeit mit Textmarken</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + MARK + </td> + <td> + C-SPC + </td> + <td> + C-SPC + </td> + <td> + Setze/L旦sche Markierung + </td> + </tr> + <tr> + <td> + PREV_MARK + </td> + <td> + M-p + </td> + <td> + P + </td> + <td> + Gehe zur vorherigen Markierung + </td> + </tr> + <tr> + <td> + NEXT_MARK + </td> + <td> + M-n + </td> + <td> + N + </td> + <td> + Gehe zur n辰chsten Markierung + </td> + </tr> + <tr> + <td> + REG_MARK + </td> + <td> + " + </td> + <td> + " + </td> + <td> + Markiere alle Vorkommen eines Zeichenmusters + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Verschiedenes</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + COMMAND + </td> + <td> + M-c + </td> + <td> + M-c + </td> + <td> + Rufe eine oder mehrere durch Strichpunkt getrennte w3m-Funktionen auf + </td> + </tr> +<!-- +TODO: Where does this key binding M-Fn come from. I do not find a Fn-key on my keyboard. I do not know how to type in the keystroke combinations listed in keymap.default which are +keymap M-[E MENU +keymap M-[L MENU +keymap M-[2~ MENU +keymap M-[28~ MENU +<tr> +<td>MENU</td> +<Td>M-Fn</Td> +<td></td> +<td>Pop up menu</td> +</tr> +--> + <tr> + <td> + HELP + </td> + <td> + H + </td> + <td> + H, ? + </td> + <td> + Zeige Hilfe-bersicht + </td> + </tr> + <tr> + <td> + OPTIONEN + </td> + <td> + o + </td> + <td> + o + </td> + <td> + Einstellungs-Dialog 旦ffnen + </td> + </tr> +<tr> +<td>SET_OPTION</td> +<td>M-o</td> +<td>M-o</td> +<td>Setze Option</td> +</tr> +<tr> +<td>DEFINE_KEY</td> +<td>M-k</td> +<td>M-k</td> +<td>Definiere eine Verbindung zwischen einer Tastenkombination und einem Kommando</td> +</tr> +<tr> +<td>MOUSE_TOGGLE</td> +<td>m</td> +<td>m</td> +<td>Schalte Mausbedienung an oder ab</td> +</tr> +<tr> +<td>DOWNLOAD_LIST</td> +<td>D</td> +<td>D</td> +<td>bersicht heruntergeladener Dateien anzeigen</td> +</tr> + <tr> + <td> + COOKIE + </td> + <td> + C-k + </td> + <td> + C-k + </td> + <td> + Zeige die gespeicherten Cookies + </td> + </tr> +<!-- +mh 2016-06-12 Interrupt is an alias to SUSPEND, no need to mention it here + <tr> + <td> + INTERRUPT + </td> + <td> + C-c + </td> + <td> + C-c + </td> + <td> + Interrupt + </td> + </tr> +--> +<tr> +<td>UNDO</td> +<td>(</td> +<td>(</td> +<td>Nimm die letzte Cursorbewegung zur端ck</td> +</tr> +<tr> +<td>REDO</td> +<td>)</td> +<td>)</td> +<td>Den letzten R端cknahmebefehl zur端cknehmen</td> +</tr> + <tr> + <!-- is an alias of SHELL --><td> + EXEC_SHELL + </td> + <td> + ! + </td> + <td> + ! + </td> + <td> + Shell-Befehl ausf端hren + </td> + </tr> +<tr> +<td>DICT_WORD</td> +<td>M-w</td> +<td>M-w</td> +<td>F端hre eine W旦rterbuch-Funktion aus (siehe <a href="../doc/README.dict">README.dict</a>)</td> +</tr> +<tr> +<td>DICT_WORD_AT</td> +<td>M-W</td> +<td>M-W</td> +<td>Benutze W旦rterbuch f端r Wort unter Cursor</td> +</tr> +<tr> +<td>VERSION</td> +<td>r</td> +<td>r</td> +<td>Zeige die Version von w3m an</td> +</tr> + <tr> + <td> + SUSPEND + </td> + <td> + C-z + </td> + <td> + C-z + </td> + <td> + w3m zum Hintergrundprozess machen. (Wird mit dem Shell-Befehl <span class="mono">fg</span> zur端ckgenommen.) + </td> + </tr> + <tr> + <td> + QUIT + </td> + <td> + q + </td> + <td> + q + </td> + <td> + Mit Best辰tigungsfrage beenden + </td> + </tr> + <tr> + <td> + EXIT + </td> + <td> + Q + </td> + <td> + Q + </td> + <td> + Sofort beenden + </td> + </tr> + </table> + + <p> + Dar端ber hinaus gibt es die folgenden Bedien-Modi mit fester Tastaturbelegung f端r die entsprechenden Funktionen. Diese sind nicht durch die Funktion DEFINE_KEY oder Eintr辰ge der keymap-Datei ver辰nderbar. + </p> + + <table border="1" width="100%"> + <colgroup> + <col width="20%"> + <col width="40%"> + <col width="40%"> + </colgroup> + <tr> + <th> + Funktion<br>(interner Name) + </th> + <th>Tastenkombination + </th> + <th> + Beschreibung + </th> + </tr> + <tr> + <td colspan="3"> + <h3>Men端-Auswahl-Modus</h3> + </td> + </tr> + <tr> + <td> + BUF:NEXT</td> + <td> + j, C-n, DOWN + </td> + <td> + N辰chster Eintrag + </td> + </tr> + <tr> + <td>BUF:PREV + </td> + <td> + k, C-p, UP + </td> + <td> + Vorheriger Eintrag + </td> + </tr> + <tr> + <td> + BUF:DELETE</td> + <td> + D + </td> + <td> + L旦sche Eintrag + </td> + </tr> + <tr> + <td> + BUF:GO + </td> + <td> + SPC, RET, RIGHT + </td> + <td> + W辰hle Eintrag aus + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="3"> + <h3>Popup-Men端-Modus</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> +MENU:SELECT + </td> + <td> + SPC, RET, RIGHT</td> + <td> + W辰hle Punkt aus + </td> + </tr> + <tr> + <td> +MENU:CLOSE + </td> + <td>C-c + </td> + <td> + Schliee Men端 + </td> + </tr> + <tr> + <td> +MENU:CANCEL + </td> + <td> + LEFT, BKSPC, C-h</td> + <td> + Einen Auswahlschritt zur端ck + </td> + </tr> + <tr> + <td> +MENU:DOWN + </td> + <td>j, C-n, DOWN + </td> + <td> + Gehe zum n辰chsten Punkt + </td> + </tr> + <tr> + <td> +MENU:UP + </td> + <td> + k, C-p, UP</td> + <td> + Gehe zum vorherigen Punkt + </td> + </tr> + <tr> + <td> +MENU:LINE_UP + </td> + <td>K + </td> + <td> + Scrolle einen Punkt aufw辰rts + </td> + </tr> + <tr> + <td> +MENU:LINE_DOWN + </td> + <td>J + </td> + <td> + Scrolle einen Punkt abw辰rts + </td> + </tr> + <tr> + <td> +MENU:TOP + </td> + <td>C-a + </td> + <td> + Gehe zum ersten Punkt + </td> + </tr> + <tr> + <td> +MENU:LAST + </td> + <td>C-e + </td> + <td> + Gehe zum letzten Punkt + </td> + </tr> + <tr> + <td> +MENU:NEXT + </td> + <td>C-v, C-f + </td> + <td>Gehe zur n辰chsten Seite + </td> + </tr> + <tr> + <td> +MENU:PREV + </td> + <td>ESC v, C-b + </td> + <td> + Gehe zur vorherigen Seite + </td> + </tr> + <tr> + <td> +MENU:SEARCH_FORE + </td> + <td>C-s, / + </td> + <td> + Suche vorw辰rts + </td> + </tr> + <tr> + <td> +MENU:SEARCH_BACK + </td> + <td> + C-r, ?</td> + <td> + Suche r端ckw辰rts + </td> + </tr> + <tr> + <td> +MENU:SEARCH_NEXT + </td> + <td> + n</td> + <td> + Suche weitere bereinstimmung</td> + </tr> + <tr> + <td> +MENU:SEARCH_PREV + </td> + <td> + N</td> + <td> + Suche fr端here bereinstimmung</td> + </tr> +<!--mh 2016-06-12 Pressing C-z in menu mode (with menu active) has the same effect as in normal operation of w3m: Browser gets in the background + <tr> + <td> +MENU:SUSPEND + </td> + <td> + C-z</td> + <td> + Suspend</td> + </tr> +--> +<!-- </table>--> + <tr> + <td colspan="3"> + <h3>Eingabezeile-Bearbeitungs-Modus</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + LINEEDIT:FORWARD + </td> + <td width="100"> + C-f, RIGHT + </td> + <td> + Bewege Cursor vorw辰rts + </td> + </tr> + <tr> + <td> +LINEEDIT:BACK + </td> + <td> + C-b, LEFT + </td> + <td> + Bewege Cursor r端ckw辰rts + </td> + </tr> + <tr> + <td> +LINEEDIT:BS + </td> + <td> + C-h, BKSPC + </td> + <td> + Vorheriges Zeichen l旦schen + </td> + </tr> + <tr> + <td> +LINEEDIT:DEL + </td> + <td> + C-d + </td> + <td> + Aktuelles Zeichen l旦schen + </td> + </tr> + <tr> + <td> +LINEEDIT:KILL_AFTER + </td> + <td> + C-k + </td> + <td> + L旦sche alles nach dem Cursor + </td> + </tr> + <tr> + <td> +LINEEDIT:KILL_BEFORE + </td> + <td> + C-u + </td> + <td> + L旦sche alles vor dem Cursor + </td> + </tr> + <tr> + <td> +LINEEDIT:TOP + </td> + <td> + C-a + </td> + <td> + Gehe zum Zeilenanfang + </td> + </tr> + <tr> + <td> +LINEEDIT:BOTTOM + </td> + <td> + C-e + </td> + <td> + Gehe zum Zeilenende + </td> + </tr> + <tr> + <td> +LINEEDIT:PREV + </td> + <td> + C-p, UP + </td> + <td> + Hole den vorherigen Chronik-Eintrag + </td> + </tr> + <tr> + <td> +LINEEDIT:NEXT + </td> + <td> + C-n, DOWN + </td> + <td> + Hole den n辰chsten Chronik-Eintrag + </td> + </tr> + <tr> + <td> +LINEEDIT:COMPLETE + </td> + <td> + TAB, SPC + </td> + <td> + Versuche, den Dateinamen zu komplettieren + </td> + </tr> + <tr> + <td> +LINEEDIT:EDITOR + </td> + <td> + C-o + </td> + <td> + Bearbeite mit externem Editor + </td> + </tr> + <tr> + <td> +LINEEDIT:ACCEPT + </td> + <td> + RET + </td> + <td> + Eingabezeile 端bernehmen + </td> + </tr> + </table> +<!-- mh 2016-06-12 As it suffices to use the provided keymap file for Lynx-like keybindings and this file is listed in section FILES of man w3m (1), the following hint for getting w3m with Lynx-like key bindings has been deleted. + <p> + If w3m was compiled with <q>Lynx-like key bindings</q>, you can use + the following key bindings. + </p> +--> +<!-- mh 2016-06-12 Remark is obsolete as the two sets key binding are presented along within tables + <hr> + <h2 id="Key:lynx"> + <p> + The Lynx-like configuration leaves keymappings unchanged in the + menu-selection and line-editing modes. + </p> + </h2> +--> + <hr> + <h2 id="Mouse"> + Bedienung per Maus + </h2> + <p> + Wenn w3m mit Mausfunktionen kompiliert wurde und Sie das Programm entweder in einer Konsole mit GPM oder in einem X-Terminal-Emulator starten, ist ein Navigieren mit der Maus m旦glich. (Im Falle von rxvt m端ssen Sie die Umgebungsvariable TERM mit <q>xterm</q> oder <q>kxterm</q> belegen.) + </p> + <p>Die Datei <a href="README.mouse">README.mouse</a> erkl辰rt, wie die Bedienung per Maus an eigene Vorlieben angepasst werden kann. + </p> + <table border="1"> + <colgroup> + <col width="20%"> + <col width="80%"> + </colgroup> + <tr> + <th>Handlung + </th> + <th>Beschreibung + </th> + </tr> + <tr> + <td> + Linksklick + </td> + <td> +<b>Zuerst:</b><br> Der Cursor wird an die Mauszeigerposition versetzt.<br> <b>Dann:</b><br> Dem Hyperlink, auf dem der Cursor momentan steht und auf den sich der Mauszeiger richtet, wird gefolgt. + </td> + </tr> + <tr> + <td> + Mittelklick + </td> + <td> + Zur端ck zum vorherigen Puffer. + </td> + </tr> + <tr> + <td> + Rechtsklick + </td> + <td> + ffne Men端. Sie k旦nnen Men端punkte durch Anklicken ausw辰hlen. + </td> + </tr> + <tr> + <td> + Linksziehen + </td> + <td> + Dokument scrollen. Standardm辰ig wird das Dokument im Fenster verschoben. Ein Verschieben des Fensters 端ber dem stehenden Dokument erreichen Sie 端ber den Einstellungs-Dialog. + </td> + </tr> + </table> + <hr> + <h2 id="LocalCGI"> + Lokale CGI-Skripte + </h2> + <p> + w3m ist in der Lage, CGI-Skripte direkt laufen zu lassen. Dies bedeutet, dass sich das Programm wie ein HTTP-Server verh辰lt und das CGI-Skript ausf端hrt und dessen Ausgabe anzeigt. Beispielsweise wurden die Lesezeichen-Registrierung und der Verzeichnis-Browser als lokale CGI-Skripte programmiert. Dar端ber hinaus kann w3m durch solche Skripte als Schnittstelle zum Einholen von Daten aller Art fungieren. + </p> + <p> + Aus Sicherheitsgr端nden kommen f端r von w3m benutzte CGI-Skripte nur folgende Verzeichnisse in Frage: + </p> + <ul> + <li> + Das Verzeichnis, in dem w3m-bezogene Dateien abgelegt sind (typischerweise /usr/local/lib/w3m). Auf dieses Verzeichnis kann mit der Variblen $LIB referenziert werden. + </li> + <li> + Das Verzeichnis /cgi-bin/. Sie k旦nnen /cgi-bin/ im Feld <q>Verzeichnis f端r ausf端hrbare Skripte</q> des Einstellungs-Dialogs jedem gew端nschten Verzeichnis zuordnen. Mehrere Pfade lassen sich durch Doppelpunkt getrennt angeben, also in der Form <span class="mono">/usr/local/cgi-bin:/home/aito/cgi-bin</span>. Es wird davon abgeraten, das aktuelle Verzeichnis hier mitaufzunehmen. Zum Zugriff auf Skripte im Verzeichnis /cgi-bin/ erwartet w3m eine URL folgender Art: + </li> +<pre> + w3m -o cgi_bin=/path/to/cgi-bin file:/cgi-bin/script.cgi +</pre> + </ul> + <p> + Das CGI-Skript kann zur Steuerung von w3m die spezielle Kopfzeile <span class="mono">w3m-control:</span> enthalten. Darin k旦nnen alle Funkionen (siehe <a href="README.func">README.func</a>) eingetragen sein. Die angegebene Funktion wird aufgerufen, nachdem das Dokument angezeigt wird. Beispielsweise, wird eine Skriptausgabe + </p> +<pre> +Content-Type: text/plain<br>W3m-control: BACK +</pre> + <p> + eine leere Seite anzeigen und den Puffer sofort l旦schen. Dies ist n端tzlich, wenn es nicht gew端nscht ist, die Seite nach Aufrufen des Skriptes anzuzeigen. Das n辰chste Beispiel + </p> +<pre> +Content-Type: text/plain<br>W3m-control: DELETE_PREVBUF contents..... +</pre> + <p> + f端hrt zum bergehen des aktuellen Puffers. + </p> + <p> + Jede <span class="mono">w3m-control</span>-Kopfzeile kann nur eine Funktion aufrufen. Jedoch k旦nnen Sie im Kopfteil einer HTTP-Kommunikation mehr als eine <span class="mono">w3m-control</span>-Anweisung hinterlegen. berdies ist es m旦glich, die GOTO-Funktion mit einem Argument aufzurufen: + </p> +<pre> +Content-Type: text/plain<br>W3m-control: GOTO http://www.example.org/ +</pre> + <p> + Sie bewirken damit das gleiche wie mit der Anweisung <q>Location:</q> im Kopfteil: + </p> +<pre> +Content-Type: text/plain<br>Location: http://www.example.org/ +</pre> + <p> + Beachten Sie, dass diese Anweisung wirkungslos ist, wenn das CGI-Skript durch einen HTTP-Server angesprochen wird. + </p> + </body> +</html> diff --git a/doc-de/README.func b/doc-de/README.func new file mode 100644 index 0000000..cb175db --- /dev/null +++ b/doc-de/README.func @@ -0,0 +1,150 @@ +ABORT Sofort beenden +ACCESSKEY ffne Zugangstasten-Men端 +ADD_BOOKMARK Lege f端r aktuelle Seite Lesezeichen an +ALARM Alarm einrichten +BACK Schliee aktuellen Puffer und kehre zu dem im Stapel darunterliegenden zur端ck +BEGIN Gehe zur ersten Zeile +BOOKMARK Lesezeichen ansehen +CENTER_H Um Cursor herum horizontal zentrieren +CENTER_V Um Cursor herum vertikal zentrieren +CHARSET ndere die Zeichenkodierung f端r das aktuelle Dokument +CLOSE_TAB Schliee Reiter +CLOSE_TAB_MOUSE Schliee Reiter bei Mauszeiger +COMMAND Rufe w3m Funktion(en) auf +COOKIE Cookie-Liste ansehen +CURSOR_TOP Cursor auf die h旦chste Zeile bewegen +CURSOR_MIDDLE Cursor auf die mittlere Zeile bewegen +CURSOR_BOTTOM Cursor auf die unterste Zeile bewegen +DEFAULT_CHARSET ndere die Voreinstellung f端r die Zeichenkodierung +DEFINE_KEY Definiere eine Verbindung zwischen einer Tastenkombination und einem Kommando +DELETE_PREVBUF L旦sche vorherigen Puffer (haupts辰chlich f端r lokale CGI-Skripte) +DICT_WORD F端hre eine W旦rterbuch-Funktion aus (siehe README.dict) +DICT_WORD_AT Benutze W旦rterbuch f端r Wort unter Cursor +DISPLAY_IMAGE Starte das Laden und die Erstellung von Bildern erneut +DOWN Scrolle den Anzeigebereich eine Zeile abw辰rts +DOWNLOAD Dokument-Quellcode speichern +DOWNLOAD_LIST Die bersicht heruntergeladener Dateien zeigen +EDIT Bearbeite lokales Quelldokument +EDIT_SCREEN Bearbeite eine Kopie des verarbeiteten Dokuments +END Gehe zur letzten Zeile +EXEC_SHELL F端hre Shell-Befehl aus und zeige Ausgabe an +EXIT Sofort beenden +EXTERN Verwende externen Browser zur Anzeige +EXTERN_LINK Verwende externen Browser zur Anzeige des Linkziels +FRAME Wechsle zwischen Kennung und Umsetzung von HTML-Frames +GOTO ffne angegebenes Dokument in neuem Puffer +GOTO_HOME Zur端ck zur Startseite (die Variablen HTTP_HOME oder WWW_HOME spezifiziert wurden) +GOTO_LINE Gehe zur angebenen Zeile +GOTO_LINK Folge dem aktuellen Hyperlink in neuem Puffer +GOTO_RELATIVE Gehe zu relativer Adresse +HELP Zeige Hilfe-bersicht +HISTORY Chronik aufgesuchter Dokumente +INFO Zeige Informationen 端ber dieses Dokument +INTERRUPT w3m zum Hintergrundprozess machen +ISEARCH Inkrementelle Suche vorw辰rts +ISEARCH_BACK Inkrementelle Suche r端ckw辰rts +LEFT Anzeigebereich um eine Spalte nach links verschieben +LINE_BEGIN Gehe zum Zeilenanfang +LINE_END Gehe zum Zeilenende +LINE_INFO Zeige aktuelle Position im Dokument an +LINK_BEGIN Gehe zum ersten Hyperlink +LINK_END Gehe zum letzten Hyperlink +LINK_MENU ffne Men端 mit den Link-Elementen +LIST Zeige alle referenzierten URLs +LIST_MENU ffne Men端 mit aufsuchbaren Hyperlinks +LOAD ffne lokale Datei in einem neuen Puffer +MAIN_MENU ffne Men端 +MARK Setze/L旦sche Markierung +MARK_MID Wandle Nachrichten-ID-artige Zeichenketten um in Hyperlinks +MARK_URL Wandle URL-artige Zeichenketten um in Hyperlinks +MARK_WORD Wandle aktuelles Wort in Hyperlink um +MENU ffne Men端 +MENU_MOUSE ffne Men端 beim Mauszeiger +MOUSE_TOGGLE Schalte Mausbedienung an oder ab +MOVE_DOWN Cursor abw辰rts +MOVE_DOWN1 Cursor abw辰rts; am Rand gleitend bewegen +MOVE_LEFT Cursor nach links +MOVE_LEFT1 Cursor nach links; am Rand gleitend bewegen +MOVE_LIST_MENU ffne Men端 mit vorhandenen Hyperlinks +MOVE_MOUSE Cursor auf Mauszeigerposition setzen +MOVE_RIGHT Cursor nach rechts +MOVE_RIGHT1 Cursor nach rechts; am Rand gleitend bewegen +MOVE_UP Cursor aufw辰rts +MOVE_UP1 Cursor aufw辰rts; am Rand gleitend bewegen +MSGS Zeige Fehlermeldungen an +NEW_TAB ffne neuen Reiter (mit aktuellem Dokument) +NEXT Schalte zum n辰chsten Puffer +NEXT_DOWN Gehe abw辰rts zum n辰chsten Hyperlink +NEXT_HALF_PAGE Scrolle eine halbe Seite abw辰rts +NEXT_LEFT Gehe zum n辰chsten Hyperlink links +NEXT_LEFT_UP Gehe zum n辰chsten Hyperlink links oder oberhalb +NEXT_LINK Gehe zum n辰chsten Hyperlink +NEXT_MARK Gehe zur n辰chsten Markierung +NEXT_PAGE Eine Seite abw辰rts +NEXT_RIGHT Gehe zum n辰chsten Hyperlink rechts +NEXT_RIGHT_DOWN Gehe zum n辰chsten Hyperlink rechts oder unterhalb +NEXT_TAB Schalte zum n辰chsten Reiter +NEXT_UP Gehe zum n辰chsten Hyperlink oberhalb +NEXT_VISITED Gehe zum n辰chsten besuchten Hyperlink +NEXT_WORD Gehe zum n辰chsten Wort +NOTHING Tue nichts +NULL Tue nichts +OPTIONS Zeige Einstellungen f端r nderungen +PEEK Zeige aktuelle Adresse an +PEEK_IMG Zeige Adresse des Bildes +PEEK_LINK Zeige Zieladresse +PIPE_BUF Leite aktuellen Pufferinhalt einem Shell-Befehl zu und zeige Ausgabe an +PIPE_SHELL F端hre Shell-Befehl aus und zeige Ausgabe an +PREV Schalte zum vorherigen Puffer +PREV_HALF_PAGE Scrolle eine halbe Seite aufw辰rts +PREV_LINK Gehe zum vorangegangen Hyperlink +PREV_MARK Gehe zur vorherigen Markierung +PREV_PAGE Eine Seite aufw辰rts +PREV_TAB Schalte zum vorherigen Reiter +PREV_VISITED Gehe zum vorherigen besuchten Hyperlink +PREV_WORD Gehe zum vorherigen Wort +PRINT Speichere verarbeitetes Dokument +QUIT Mit Best辰tigungsfrage beenden +READ_SHELL F端hre Shell-Befehl aus und zeige Ausgabe an +REDO Den letzten R端cknahmebefehl zur端cknehmen +REDRAW Bildschirmanzeige neu aufbauen +REG_MARK Zu einem Muster passenden Zeichenfolgen 端berall markieren +REINIT Konfigurationsdatei erneut laden +RELOAD Aktuelles Dokument erneut laden +RESHAPE Dokument nochmals verarbeiten +RIGHT Anzeigebereich um eine Spalte nach rechts verschieben +SAVE Dokument-Quellcode speichern +SAVE_IMAGE Speichere Bild +SAVE_LINK Speichere Ziel des Hyperlinks +SAVE_SCREEN Speichere verarbeitetes Dokument +SEARCH Suche vorw辰rts +SEARCH_BACK Suche r端ckw辰rts +SEARCH_FORE Suche vorw辰rts +SEARCH_NEXT Setze Suche vorw辰rts fort +SEARCH_PREV Setze Suche r端ckw辰rts fort +SELECT Zeige Puffferstapel-bersicht +SELECT_MENU ffne Puffferstapel-Men端 +SETENV Setze Umgebungsvariable +SET_OPTION Setze Option +SHELL F端hre Shell-Befehl aus und zeige Ausgabe an +SHIFT_LEFT Anzeigebereich nach links versetzen +SHIFT_RIGHT Anzeigebereich nach rechts versetzen +SOURCE Wechsle zwischen HTML-Wiedergabe und -Verarbeitung +STOP_IMAGE Bilder nicht mehr laden und anzeigen +SUBMIT Formular 端bermitteln +SUSPEND w3m zum Hintergrundprozess machen +TAB_GOTO ffne das angegebene Dokument in einem neuen Reiter +TAB_GOTO_RELATIVE ffne relative Adresse in einem neuen Reiter +TAB_LEFT Einen Reiter weiter nach links gehen +TAB_LINK Folge dem aktuellen Hyperlink in einem neuen Reiter +TAB_MENU ffne das Reiter-Auswahl-Men端 +TAB_MOUSE W辰hle per Maus Reiter aus +TAB_RIGHT Einen Reiter weiter nach rechts gehen +UNDO Nimm die letzte Cursorbewegung zur端ck +UP Scrolle den Anzeigebereich eine Zeile aufw辰rts +VERSION Zeige die Version von w3m an +VIEW Wechsle zwischen HTML-Wiedergabe und -Verarbeitung +VIEW_BOOKMARK Lesezeichen ansehen +VIEW_IMAGE Zeige Bild in Betrachter +WHEREIS Suche vorw辰rts +WRAP_TOGGLE Wechsle zwischen umlaufendem und nicht-umlaufendem Suchen diff --git a/doc-de/w3m.1 b/doc-de/w3m.1 new file mode 100644 index 0000000..7deb203 --- /dev/null +++ b/doc-de/w3m.1 @@ -0,0 +1,334 @@ +.nr N -1 +.nr D 5 +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH W3M 1 2016\-08\-06 "w3m 0.5.3" +.SH NAME +w3m \- Ein auf Texte ausgerichtetes Programme zur Anzeige von Dateien und +Datenstr旦men sowie zum Browsen im Internet +.SH SYNOPSIS +w3m [OPTION]... [ \fIDatei\fP | \fIURL\fP ]... +.SH BESCHREIBUNG +.\" This defines appropriate quote strings for nroff and troff +.ds lq " +.ds rq " +.if t .ds lq `` +.if t .ds rq '' +.if \nN==0 .nr N 10 +.\" Just in case these number registers aren't set yet... +.if \nD==0 .nr D 5 + +\fIw3m\fP ist ein textorientierter Browser, der lokale oder im Internet +liegende Seiten sowie andere Dokumente anzeigen kann. Er verarbeitet +HTML\-Tabellen und Frames, nicht jedoch JavaScript und Cascading Style +Sheets. \fIw3m\fP kann auch als Textbetrachter (Pager) dienen. Entsprechende +Dateien werden beim Aufruf als Argument angegeben oder an der +Standardeingabe als Datenstrom 端bernommen. Mit \fIw3m\fP kann sich der Benutzer +端berdies durch Verzeichnisb辰ume bewegen. + +\fIw3m\fP arbeitet mit Reitern (Registerkarten, Tabs) und Puffern, was einen +einfachen Wechsel zwischen geladenen Inhalten erlaubt. Wenn die Erweiterung +w3m\-img installiert ist, zeigt \fIw3m\fP auch in die Seiten eingebundene +Grafiken an. Wann immer die Umsetzung von HTML\-Inhalten durch \fIw3m\fP Ihren +Anspr端chen nicht gen端gt, reicht ein einzelnes Kommando, um die Ziel\-URL +einem grafischen Browser zu 端bergeben. + +Um nach Start des Programms Hilfe zu den Optionen zu erhalten, dr端cken Sie +\(lqH\(rq. + +.SH ARGUMENTE + +Wenn das Programm mit einem oder mehreren Argumenten aufgerufen wird, +behandelt \fIw3m\fP diese Ziele je nach Typ des Inhalts. Bei Daten aus dem +Internet verwertet \fIw3m\fP die Angabe in den HTTP\-Kopfzeilen. Bei relativen +oder absoluten Pfaden in Dateisystemen richtet sich \fIw3m\fP nach dem +Dateinamen. + +Ohne Argument aufgerufen, erwartet \fIw3m\fP unformatierte Daten aus der +Standardeingabe, es sei denn, der Benutzer hat einen anderen MIME\-Typ +angegeben. + +Sollte \fIw3m\fP weder ein Zielobjekt vorliegen noch ein Ausweichen vorgesehen +sein (beispielsweise durch die Option \fB\-v\fP, siehe unten), gibt das Programm +nur Benutzungshinweise aus. +.SH OPTIONEN +Vor Befehlszeilen\-Optionen steht das \(lq\-\(rq Zeichen einzeln, ihnen kann +ein Argument folgen. +.SS "Allgemeine Optionen" +.TP +\fB\-B\fP +starte mit einer Ansicht aller Lesezeichen (wenn kein anderes Zielobjekt +angegeben ist) +.TP +\fB\-M\fP +monochrome Anzeige +.TP +\fB\-no\-mouse\fP +Mausfunktion aus +.TP +\fB\-num\fP +zeige Zeilennummern an +.TP +\fB\-N\fP +verteile die 端bergebenen Argumente unter Reitern. Standardm辰ig w端rde ein +Stapel von Puffern benutzt +.TP +\fB\-ppc \fP\fInum\fP +Weite von \fInum\fP Bildpunkten pro Zeichen, einstellbar von 4.0 bis 32.0, +standardm辰ig 8.0. Gr旦ere Werte machen Tabellen enger. (Implementierung +unklar) +.TP +\fB\-ppl \fP\fInum\fP +H旦he von \fInum\fP Bildpunkten pro Linie, einstellbar von 4.0 bis +64.0. (Implementierung unklar) +.TP +\fB\-title\fP, \fB\-title=TERM\fP +verwende den Puffernamen auch als Titel des Terminalfensters. Soweit TERM +eingegeben wurde, konfiguriert dieser Wert den Stil des Titels +.TP +\fB\-v\fP +begr端e den Benutzer mit einer eingebauten Seite (wenn kein anderes +Zielobjekt angegeben ist) +.TP +\fB\-W\fP +wechsle zwischen umlaufendem und nicht umlaufendem Suchen +.TP +\fB\-X\fP +initialisiere nach Verlassen des Programms das Terminal nicht neu +.TP +\fB+\fP\fIZahl\fP +gehe zu Zeile \fIZahl\fP; wirkt nur, wenn \fIZahl\fP gr旦er ist als die im +Terminal verf端gbare Zeilenzahl +.SS Browser\-Optionen +.TP +\fB\-cols \fP\fInum\fP +bei f端r die Standardausgabe bestimmten Inhalten, nimm bei der Umsetzung von +HTML eine L辰nge von \fInum\fP Zeichen pro Zeile +.TP +\fB\-cookie\fP, \fB\-no\-cookie\fP +verwende gespeicherte Cookies und akzeptiere neue. Oder tue weder das eine +noch das andere +.TP +\fB\-F\fP +verarbeite Frames +.TP +\fB\-graph\fP, \fB\-no\-graph\fP +bei der Umsetzung von Tabellen und Frames grafische Zeichen verwenden oder +nicht verwenden +.TP +\fB\-header \fP\fIZeichenkette\fP +f端ge \fIZeichenkette\fP der HTTP(S)\-Anfrage an. Diese muss der Kopfdaten\-Syntax +\f(CWVariable: Wert\fP entsprechen +.TP +\fB\-m\fP +stelle eine Usenet\-Nachricht entsprechend \(lqContent\-type\(rq in den +Kopfdaten dar +.TP +\fB\-no\-proxy\fP +verwende keinen Proxy +.TP +\fB\-post \fP\fIDatei\fP +verwende die Methode POST, um in \fIDatei\fP hinterlegte Daten +hochzuladen. Hierbei wird die Syntax \f(CWvar1=wert1[&var2=wert2]\fP erwartet +.TP +\fB\-4\fP +nur IPv4. Entspricht dns_order=4 in der Konfigurationsdatei +.TP +\fB\-6\fP +nur IPv6. Entspricht dns_order=6 in der Konfigurationsdatei +.SS Textbetrachter\-Optionen +.TP +\fB\-l \fP\fInum\fP +Anzahl der Zeilen, die zwischengespeichert werden, wenn Text per +Standardeingabe 端bergeben wurde. (Voreinstellung ist 10000) +.TP +\fB\-r\fP +verarbeite spezielle Escape\-Zeichen (beispielsweise ANSI\-Escape\-Zeichen oder +nroff\-R端ckw辰rtsschritte f端r fette und unterstrichene Zeichen) nicht, sondern +zeige sie stattdessen mittels Caret\-Notation. +.TP +\fB\-s\fP +mehrere leere Zeilen werden bis auf eine gel旦scht +.TP +\fB\-t\fP \fInum\fP +ber端cksichtige Tab\-Zeichen so, dass Spalten mit einer Weite von \fInum\fP +Zeichen entstehen +.SS "Datenart\- und Datenkodierungs\-Optionen" +.TP +\fB\-I \fP\fIcharset\fP +zu benutzende Zeichenkodierung f端r erhaltene Daten +.TP +\fB\-O \fP\fIcharset\fP +zu benutzende Zeichenkodierung f端r auszugebende Daten +.TP +\fB\-T \fP\fITyp\fP +zu benutzender MIME\-Typ f端r erhaltenen Daten +.SS "Optionen zur Datenausgabe, mit sofortigem Verlassen des Programms" +.TP +\fB\-dump\fP +leite die verarbeitete Seite der Standardausgabe zu. Die Option gilt als +gesetzt, wenn der Aufruf beinhaltet, dass die Ausgabe in eine Datei +umgeleitet oder einem weiteren Programm 端bergeben wird. +.TP +\fB\-dump_source\fP +leite den Seitenquelltext der Standardausgabe zu +.TP +\fB\-dump_head\fP +leite die Antwort einer HEAD\-Anfrage f端r eine URL der Standardausgabe zu +.TP +\fB\-dump_both\fP +leite Antwort auf HEAD\-Anfrage und Seitenquelltext der Standardausgabe zu +.TP +\fB\-dump_extra\fP +leite Antwort auf HEAD\-Anfrage, Seitenquelltext und Extrainformation der +Standardausgabe zu +.TP +\fB\-help\fP +zeige eine Zusammenfassung verf端gbarer Funktionen und Befehlszeilen\-Optionen +.TP +\fB\-show\-option\fP +zeige alle zur Konfiguration verf端gbaren Optionen +.TP +\fB\-version\fP +gibt die Version von \fIw3m\fP aus +.SS "Optionen, die Standards f端r Einstellungen und Datenquellen auer Kraft setzen" +.TP +\fB\-bookmark \fP\fIDatei\fP +benutze anstelle der Standarddatei bookmark.html f端r Lesezeichen die Datei +\fIDatei\fP +.TP +\fB\-config \fP\fIDatei\fP +benutze \fIDatei\fP anstelle der Standardkonfigurationsdatei +.TP +\fB\-debug\fP +BITTE NICHT BENUTZEN +.TP +\fB\-o \fP\fIOption=Wert\fP +arbeite mit einer Konfiguration, bei der die Einstellung \fIOption\fP mit +\fIWert\fP belegt ist. Ohne \fIOption=Wert\fP gleichwertig mit \fB\-show\-option\fP +.TP +\fB\-reqlog\fP +Protokolliere Header der HTTP\-Kommunikation in Datei \f(CW~/.w3m/request.log\fP +.SH BEISPIELE +.SS "Verwendung als Textbetrachter" +.TP +zwei HTML\-Fragmente zusammengef端gt anzeigen +.EX +$ cat header.html footer.html | w3m \-T text/html +.EE +.TP +zwei Dateien unter Reitern einander gegen端berstellen +.EX +$ w3m \-N config.old config +.EE +.SS "browser\-artige Verwendung" +.TP +zeige Internet\-Inhalt in monochromem Terminal +.EX +$ w3m \-M http://w3m.sourceforge.net +.EE +.TP +zeige eingebettete Grafiken an +.EX +$ w3m \-o auto_image=TRUE http://w3m.sourceforge.net +.EE +.TP +zeige Inhalt aus dem Usenet +.EX +$ w3m \-m nntp://news.aioe.org/comp.os.linux.networking +.EE +.TP +mit der POST\-Methode Daten f端r eine URL hochladen +.EX +$ w3m \-post \- http://example.com/form.php <<<'a=0&b=1' +.EE +.SS "filterartige Verwendung" +.TP +konvertiere eine HTML\-Datei in reinen Text von bestimmter Zeilenl辰nge +.EX +$ w3m \-cols 40 foo.html > foo.txt +.EE +.TP +端bergib den Bestand an Lesezeichen mit zugeh旦rigen Links als reinen Text einer Datei. +.EX +$ w3m \-B \-o display_link_number=1 > out.txt +.EE +.TP +Konvertierung in ein anderes Dateiformat und eine andere Zeichenkodierung +.EX +$ w3m \-T text/html \-I EUC\-JP \-O UTF\-8 < foo.html > foo.txt +.EE +.SS "starte ohne Eingabedaten" +.TP +begr端e den Benutzer mit einer eingebauten Seite +.EX +$ w3m \-v +.EE +.\".SH Errors +.SH UMGEBUNGSVARIABLEN +\fIw3m\fP weicht auf den Wert der Umgebungsvariablen WWW_HOME aus, wenn das +Programm ohne Zielobjekt aufgerufen wurde. +.SH DATEIEN +.TP +\f(CW~/.w3m/bookmark.html\fP +voreingestellte Datei f端r Lesezeichen +.TP +\f(CW~/.w3m/config\fP +benutzerdefinierte Konfigurationsdatei; gegen端ber \f(CW/etc/w3m/config\fP +vorrangig +.TP +\f(CW~/.w3m/cookie\fP +Ablageort f端r Cookies; wird beim Verlassen des Programms geschrieben und +beim Aufruf gelesen +.TP +\f(CW~/.w3m/history\fP +Chronik besuchter Seiten und URLs +.TP +\f(CW~/.w3m/keymap\fP +benutzerdefinierte Tastaturbelegung, setzt standardm辰ige Belegung auer +Kraft +.TP +\f(CW~/.w3m/mailcap\fP +Konfigurationsdatei f端r Programme zur externen Anzeige +.TP +\f(CW~/.w3m/menu\fP +benutzerdefiniertes Men端; vorrangig gegen端ber Standardmen端 +.TP +\f(CW~/.w3m/mime.types\fP +Datei mit MIME\-Typen +.TP +\f(CW~/.w3m/mouse\fP +benutzerdefinierte Mauseinstellungen +.TP +\f(CW~/.w3m/passwd\fP +Datei mit Nutzerkonto\-Passwort\-Liste +.TP +\f(CW~/.w3m/pre_form\fP +.\" .TP +.\" .I $~/.w3m/urimethodmap +.\" ??? +enth辰lt vordefinierte Werte f端r wiederkehrende HTML\-Formulare +.SH "SIEHE AUCH" +README und Beispieldateien finden Sie im Dokumentationsverzeichnis Ihrer +\fIw3m\fP\-Installation. Aktuelle Informationen zu \fIw3m\fP finden Sie auf der +Projektseite +.UR http://w3m.sourceforge.net +unter +.UE +.SH DANKSAGUNGEN +In \fIw3m\fP ist Programmcode verschiedener Quellen eingeflossen. Benutzer +haben mit Korrekturen (Patch\-Dateien) und Vorschl辰gen zur Verbesserung des +Programms beigetragen. +.SH AUTOR +.UR aito@fw.ipsj.or.jp +Akinori ITO +.UE +Die deutsche bersetzung wurde 2016 von +.UR markus.hiereth@freenet.de +Markus Hiereth +.UE +erstellt. + diff --git a/doc-jp/CVS/Entries b/doc-jp/CVS/Entries deleted file mode 100644 index cfd3d8e..0000000 --- a/doc-jp/CVS/Entries +++ /dev/null @@ -1,26 +0,0 @@ -/FAQ.html/1.9/Sat Apr 8 11:26:23 2006// -/HISTORY/1.1.1.1/Thu Nov 8 05:16:27 2001// -/README.SSL/1.4/Tue May 13 17:17:54 2003// -/README.cygwin/1.4/Sun Feb 23 16:00:17 2003// -/README.dict/1.4/Wed Apr 24 18:46:48 2002// -/README.func/1.22/Mon Sep 22 21:02:23 2003// -/README.keymap/1.1.1.1/Thu Nov 8 05:16:34 2001// -/README.mailcap/1.2/Fri Nov 9 04:59:18 2001// -/README.menu/1.2/Wed Nov 27 16:28:37 2002// -/README.migemo/1.2/Tue May 13 17:17:54 2003// -/README.mouse/1.1/Mon Nov 25 17:23:47 2002// -/README.pre_form/1.3/Mon May 12 16:24:53 2003// -/README.tab/1.1/Tue Nov 5 17:24:48 2002// -/STORY.html/1.3/Tue May 13 17:17:54 2003// -/keymap.lynx/1.4/Fri Dec 13 03:02:04 2002// -/menu.default/1.4/Fri Apr 7 15:22:07 2006// -/menu.submenu/1.3/Fri Apr 7 15:22:07 2006// -/keymap.default/1.8/Sat Jun 10 09:52:18 2006// -/MANUAL.html/1.9/Tue Jan 4 09:22:24 2011// -/README.img/1.7/Tue Jan 4 09:22:24 2011// -/README.m17n/1.3/Tue Jan 4 09:22:24 2011// -/README.passwd/1.1/Tue Aug 3 10:02:16 2010// -/w3m.1/1.7/Tue Jan 4 09:22:24 2011// -/README.cookie/1.4/Sat Jan 15 01:57:39 2011// -/README/1.26/Sat Jan 15 02:17:10 2011// -D diff --git a/doc-jp/CVS/Repository b/doc-jp/CVS/Repository deleted file mode 100644 index f7f574e..0000000 --- a/doc-jp/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/doc-jp diff --git a/doc-jp/CVS/Root b/doc-jp/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/doc-jp/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/doc-jp/FAQ.html b/doc-jp/FAQ.html index e16a986..0e38158 100644 --- a/doc-jp/FAQ.html +++ b/doc-jp/FAQ.html @@ -3,25 +3,25 @@ <TITLE>W3M FAQ</TITLE> </HEAD> <BODY> -<h1>w3mに関して良く聞かれる(であろう)質問とその答え</h1> +<h1>w3m≪(с)莖膈</h1> <div align=right> -伊藤 彰則<br> +篌 綵医<br> aito@fw.ipsj.or.jp </div> <a name="general"> <center> -<h2>一般的なこと,入手方法,動作環境</h2> +<h2>筝鐚ユ号鐚篏医</h2> </center> <dl> -<dt>``w3m''は何と読むのですか? -<dd>「だぶりゅーさんえむ」または「だぶりゅーすりーえむ」です. -``w3m''と書いてプテラノドンと読んだりはしません. +<dt>``w3m''篏茯с鐚 +<dd>吟若障吟若若с鐚 +``w3m''吾潟茯障鐚 <P> -<dt>どうして``w3m''という名前なの? -<dd>WWW-wo-Miru(WWWを見る)から付けました. +<dt>``w3m''鐚 +<dd>WWW-wo-Miru(WWW荀)篁障鐚 <P> -<dt>どういう環境で動くの? -<dd>一般的なUNIXで動きます.最新版またはそれに近いバージョンで動作が確認されているのは, +<dt>医у鐚 +<dd>筝UNIXу障鐚亥障菴若吾с潟у篏腆肴鐚 <blockquote> <pre> SunOS 4.1.x @@ -39,175 +39,175 @@ MS-DOS with DJGPP and WATT32 packet driver MacOS X Server MacOS X 10.1, 10.2 </pre></blockquote> -などです.その他のものでも,メジャーなUNIXシステムなら動くでしょう. +с鐚篁с鐚<吾c若UNIX激鴻с鐚 <P> -version 990226 から,OS/2 で動くようです. +version 990226 鐚OS/2 ус鐚 <P> -version 990303 から,Windows+cygwin32 で動くようになりました. +version 990303 鐚Windows+cygwin32 у障鐚 <P> -<dt>Windows 9x/NT では動かないの? -<dd><a href="http://www.cygwin.com/">Cygwin</a>を使えば動きます. +<dt>Windows 9x/NT с鐚 +<dd><a href="http://www.cygwin.com/">Cygwin</a>篏帥医障鐚 <p> -<dt>w3mに関する情報はどこから手に入るの? +<dt>w3m≪宴ャ鐚 <dd><a href="http://w3m.sourceforge.net/index.ja.html"> -http://w3m.sourceforge.net/</a>に w3m のページ -があります. +http://w3m.sourceforge.net/</a> w3m 若 +障鐚 <p> -<dt>最新版はどこから手に入るの? +<dt>亥ャ鐚 <dd><a href="http://prdownloads.sourceforge.net/w3m/"> -http://prdownloads.sourceforge.net/w3m/</a>から手に入ります. +http://prdownloads.sourceforge.net/w3m/</a>ャ障鐚 <p> -<dt>w3m に関するMLはありませんか? +<dt>w3m ≪ML障鐚 <dd> -開発者向けML(w3m-dev(日本語)とw3m-dev-en(英語))があります。詳しくは -<a href="http://w3m.sourceforge.net/">w3m のページ</a> -をご覧ください。開発関連以外で -何か言いたいことがある場合には,作者に<a href="mailto:aito@fw.ipsj.or.jp"> -直接メール</a>するか,あるいは<a href="http://mi.med.tohoku.ac.jp/~satodai/w3m/bbs/spool/log.html"> -w3m BBS</a>に書いてください. -<p> -<dt>バイナリ配布はしないの? +肴ML(w3m-dev(ユ茯)w3m-dev-en(沿))障荅潟 +<a href="http://w3m.sourceforge.net/">w3m 若</a> +荀с咲∫d札紊 +篏荐翫鐚篏<a href="mailto:aito@fw.ipsj.or.jp"> +贋・<若</a>鐚<a href="http://mi.med.tohoku.ac.jp/~satodai/w3m/bbs/spool/log.html"> +w3m BBS</a>吾鐚 +<p> +<dt>ゃ絽鐚 <dd> -いくつかのプラットフォームについて,w3mのバイナリ配布をやって -くださっているサイトがあります.詳しくは +ゃ若ゃ鐚w3mゃ絽c +c泣ゃ障鐚荅潟 <a href="http://w3m.sourceforge.net/"> -w3mのページ</a>をごらんください. +w3m若</a>鐚 </dl> <a name="install"></a> -<center><h2>コンパイルとインストール</h2></center> -特に問題なし :-) +<center><h2>潟潟ゃゃ潟鴻若</h2></center> +鴻馹 :-) <a name="command"></a> -<center><h2>オプション,コマンド,使いかた</h2></center> +<center><h2>激с鰹潟潟鐚篏帥</h2></center> <dl> -<dt> w3m と入力したら,何も表示せずに終わっちゃいました.何が悪いの? -<dd> w3m は<B>ページャ</B>です.ですから,何も指定しないで起動すれば -そのまま終了します.何か表示させたい場合には, +<dt> w3m ュ鐚篏茵腓冴腟c<障鐚篏鐚 +<dd> w3m <B>若吾</B>с鐚с鐚篏絎ц儀 +障丞篋障鐚篏茵腓冴翫鐚 <ol> -<li>引数にファイル名かURLを書く. -<li>標準入力に何か入れてあげる. -<li>-B オプション(ブックマーク表示)をつける. -<li>環境変数 HTTP_HOME か WWW_HOME に,見たいページのURLを入れておく. +<li>綣違<ゃURL吾鐚 +<li>罔羣ュ篏ャ鐚 +<li>-B 激с(若茵腓)ゃ鐚 +<li>医紊 HTTP_HOME WWW_HOME 鐚荀若吾URLャ鐚 </ol> -のどれかをやってください. +c鐚 <p> -<dt>w3mを起動したら,画面が真っ黒になってしまいました.どうして? -<dd>w3mをカラー表示の設定でコンパイルすると,最初は背景色が白で -文字色が黒の設定になります.そのため,ふだん背景を黒にしている状態で -w3mを起動すると,字が見えなくなります.<p> -こういう場合は,次のようにして色を設定します. +<dt>w3m莎桁鐚脂≪ic障障鐚鐚 +<dd>w3m取;腓冴荐絎с潟潟ゃ鐚蚊純 +絖蚊藥荐絎障鐚鐚泣藥倶 +w3m莎桁鐚絖荀障鐚<p> +翫鐚罨<蚊荐絎障鐚 <UL> -<LI>w3m -M で w3m を起動し,白黒モードで表示する. -<LI>"o" コマンドでオプション設定画面にする. -<LI><B>カラー表示モードをONにし</B>,適当な文字色を選んで, -[OK]を選択する. +<LI>w3m -M w3m 莎桁鐚初≪若ц;腓冴鐚 +<LI>"o" 潟潟с激с活┃絎脂≪鐚 +<LI><B>取;腓冴≪若ON</B>鐚綵絖蚊吾э +[OK]御鐚 </UL> <p> -<dt>カラー表示をさせるにはどうするの? -<dd>コンパイル時に,configure のオプションに --disable-color を指定しな -ければカラー表示ができるようになります。 +<dt>取;腓冴鐚 +<dd>潟潟ゃ鐚configure 激с潟 --disable-color 絎 +違取;腓冴с障 <p> -<dt>白黒で表示したいんだけど? -<dd>方法は3つあります. +<dt>初ц;腓冴鐚 +<dd>号3ゃ障鐚 <OL> -<LI>上記の質問に 1 と答えてコンパイルする. -<LI>-M オプションをつけて起動する. -<LI>"o" コマンドでオプション設定パネルを起動し,カラー表示をOFFにする. +<LI>筝荐莖 1 膈潟潟ゃ鐚 +<LI>-M 激с潟ゃ莎桁鐚 +<LI>"o" 潟潟с激с活┃絎莎桁鐚取;腓冴OFF鐚 </OL> <p> -<dt>画面をはみ出した部分を見るには? -<dd>カーソルを画面の端に移動させれば,それに合わせて画面全体がずれます. -また,">"と"<"で画面全体をずらすことができます. -<p> -<dt>カーソル移動がわずらわしい. -<dd>TABで次のアンカーに移動するので,Lynxと似た感覚で使えるでしょう. -また,C-uおよびESC TABで前のアンカーに戻ります. -<p> -<dt>Netscapeでは赤い文字になっている部分が,w3m では黒いまま.なぜ? -<dd>w3mは,<FONT COLOR="..">による文字の色指定には対応していません. -対応は不可能ではないですが,文字の色が背景と同じになったりして見づらく -なるのがオチなので,あまり対応する気になりません. -<p> -<dt>アンカー/画像/formの色を変えるには? -<dd>990309版から,オプションで切りかえられるようになりました."o" コマンド -で設定パネルを表示させ,好きな色を選んでください.字の表示色が背景と同じに -なって何も見えないという場合には,-M オプションで白黒表示にしてから設定を -するとよいでしょう. -<p> -<dt>環境変数 EDITOR を設定したけど,効かないのはなぜ? -<dd>"o"コマンドでオプションを表示させてみてください. -エディタの項目に何か書いてあれば,それが優先されます. -環境変数を効かせたい場合は,この欄を空白にしてオプションを -更新してください. -<p> -<dt>サーチやURL入力を途中でやめるには? -<dd><!-- C-u で入力内容を消して,RETを押します.--> - C-c で戻ります. +<dt>脂≪水冴荀鐚 +<dd>若純脂≪腴腱糸逸脂√篏障鐚 +障鐚">""<"х脂√篏с障鐚 +<p> +<dt>若純腱糸鐚 +<dd>TABф<≪潟若腱糸эLynx篌若荀т戎с鐚 +障鐚C-uESC TABу≪潟若祉障鐚 +<p> +<dt>Netscapeс莎ゃ絖c鐚w3m с藥障常鐚 +<dd>w3m鐚<FONT COLOR="..">絖我絎絲上障鐚 +絲上筝純сс鐚絖蚊c荀ャ +э障絲上羂障鐚 +<p> +<dt>≪潟/糸/form蚊紊鐚 +<dd>990309鐚激с潟у障鐚"o" 潟潟 +ц┃絎茵腓冴鐚絅純蚊吾с鐚絖茵腓肴蚊 +c篏荀翫鐚-M 激с潟х初茵腓冴荐絎 +с鐚 +<p> +<dt>医紊 EDITOR 荐絎鐚鴻鐚 +<dd>"o"潟潟с激с潟茵腓冴帥鐚 +c帥篏吾逸障鐚 +医紊違鴻翫鐚罨腥榊純激с潟 +贋違鐚 +<p> +<dt>泣若URLュ筝с鐚 +<dd><!-- C-u уュ絎鴻羔鐚RET若障鐚--> + C-c ф祉障鐚 </dl> <a name="www"></a> -<center><h2>WWWを使う場合の質問</h2></center> +<center><h2>WWW篏帥翫莖</h2></center> <dl> -<dt>formに入力するにはどうするの? -<dd>formの部分は,画面上で赤(または反転)で表示されていますので, -そこにカーソルを持っていってリターンを押します.すると, +<dt>formュ鐚 +<dd>form鐚脂≫ц気(障荵)ц;腓冴障э +若純cc帥若潟若障鐚鐚 <UL> -<LI>text の場合は,画面最下行で入力待ちになりますので,文字を入力します. -<LI>radio, checkbox の場合は,その項目が選ばれます. -<LI>textarea の場合は,エディタが起動しますので,文章を入力します. -このとき,必ず表示用漢字コードと同じ漢字コードでファイルを保存してください. -<LI>submit, reset の場合は,formの内容を送信/クリアします. +<LI>text 翫鐚脂∽筝茵уュ緇<障э絖ュ障鐚 +<LI>radio, checkbox 翫鐚吾違障鐚 +<LI>textarea 翫鐚c帥莎桁障э腴ュ障鐚 +鐚綽茵腓榊羲√潟若羲√潟若с<ゃ篆絖鐚 +<LI>submit, reset 翫鐚form絎鴻篆/≪障鐚 </UL> -<dt>文書の表示が遅いんだけど? -<dd>w3mはHTML文書を2パスで整形するので,文書全体を読みこまないと -表示ができません.Netscapeなどは文書を読みながら表示するので, -表示が速いように思えるのでしょう. +<dt>吾茵腓冴鐚 +<dd>w3mHTML吾2鴻ф翫就э後篏茯帥障 +茵腓冴с障鐚Netscape吾茯帥茵腓冴э +茵腓冴с鐚 <p> -<dt>一度読んだ文書を2度目に読んだときに,読みこみが速くならないんだけど? -<dd>他の多くのブラウザと違い,w3mはキャッシュを持っていません. -そのため,文書を読むたびにWWWサーバから文書を転送します.もし可能なら, -キャッシュサーバを利用すると快適です.設定はプロキシの設定と同じです. +<dt>筝綺茯吾2綺茯鐚茯帥帥鐚 +<dd>篁紊吟鐚w3mc激ャc障鐚 +鐚吾茯潟WWW泣若吾荵∫障鐚純鐚 +c激ャ泣若綽с鐚荐絎激荐絎с鐚 <p> -<dt>リンク先のファイルを直接保存する方法はないの? -<dd>'a' (Lynx 風キーバインドの場合は 'd') または ESC RETでリンク先の文書を -保存します.画像を保存する場合は ESC I です. +<dt>潟<ゃ贋・篆絖号鐚 +<dd>'a' (Lynx 蘂若ゃ潟翫 'd') 障 ESC RETс潟吾 +篆絖障鐚糸篆絖翫 ESC I с鐚 <p> -<dt>プロキシの設定はどうするの? -<dd>環境変数 HTTP_proxy を設定するか,"o" コマンドのオプション設定パネル -で設定します.例えば proxy.hogege.com というホストの 8000番ポートを -利用する場合, +<dt>激荐絎鐚 +<dd>医紊 HTTP_PROXY, HTTPS_PROXY, GOPHER_PROXY, FTP_PROXY 荐絎鐚"o" 潟潟激с活┃絎 +ц┃絎障鐚箴 proxy.hogege.com 鴻 8000若 +翫鐚 <p> <pre> http://proxy.hogege.com:8000/ </pre> <p> -と設定します. +荐絎障鐚 <p> -<dt>外部ブラウザを起動すると,w3mが固まってしまいます. -何とかなりませんか? -<dd>"o"コマンドで設定パネルを表示し,外部ブラウザの項目に,例えば +<dt>紊吟莎桁鐚w3m冴障c障障鐚 +篏障鐚 +<dd>"o"潟潟ц┃絎茵腓冴鐚紊吟鐚箴 <p> <pre> netscape %s & </pre> <p> -のように入力します.この場合,%s の部分が URL に置きかわってブラウザが起動し -ます. +ュ障鐚翫鐚%s URL 臀c吟莎桁 +障鐚 <p> -<dt>画像のビューアを変えたいんだけど,どうするの? -<dd>初期設定では画像を見るのに xv を使うようになっていますが,これを -例えば display に変える場合は,~/.w3m/mailcap または /etc/mailcap に次のよ -うな記述を入れます. +<dt>糸ャ若≪紊鐚鐚 +<dd>荐絎с糸荀 xv 篏帥c障鐚 +箴 display 紊翫鐚~/.w3m/mailcap 障 /etc/mailcap 罨< +荐菴違ャ障鐚 <p> <pre> image/*; display %s </pre> <p> -同じように,他のタイプのデータを処理するプログラムを指定することも -できます. +鐚篁帥ゃ若帥違絎 +с障鐚 <p> <pre> image/*; display %s @@ -218,19 +218,19 @@ application/x-dvi; xdvi %s </dl> <a name="other"></a> -<center><h2>その他</h2></center> +<center><h2>篁</h2></center> <dl> -<dt>設定ファイルはどこにあるの? -<dd>~/.w3m ディレクトリの下の config です. -オプション設定パネルで変更できると記述されているオプションの値を -このファイルで変更すると,w3m の挙動を調整できます. -オプションの名前と値を空白で区切ったものを 1 行に 1 組ずつ書いて設定します. -<p> -<dt>~/.w3m の下に w3mXXXXXX のようなファイルがたくさんあるけど,何? -<dd>WWWサーバからファイルを読んでいるときに,それを一時的に保存する -ファイルです.いわゆるキャッシュファイルではありません. -w3m を終了すれば消去されるはずですが,w3mが異常終了した場合には残る -ことがあります.そういう場合は手で消してください. +<dt>荐絎<ゃ鐚 +<dd>~/.w3m c筝 config с鐚 +激с活┃絎у眼с荐菴違激с潟ゃ +<ゃу眼鐚w3m 茯炊眼с障鐚 +激с潟ゃ腥榊純у阪c 1 茵 1 腟ゆ吾荐絎障鐚 +<p> +<dt>~/.w3m 筝 w3mXXXXXX <ゃ鐚篏鐚 +<dd>WWW泣若<ゃ茯с鐚筝篆絖 +<ゃс鐚c激ャ<ゃс障鐚 +w3m 腟篋井サс鐚w3m医幻腟篋翫罧 +障鐚翫ф鐚 <p> </dl> diff --git a/doc-jp/HISTORY b/doc-jp/HISTORY index ce90974..af1248e 100644 --- a/doc-jp/HISTORY +++ b/doc-jp/HISTORY @@ -1,28 +1,28 @@ 2001/3/23 ============================================================== From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01807] Re: w3m-0.2.0 -* url.c が USE_NNTP や __EMX__ でコンパイルできない。 -* EWS4800 用の patch (間に合いませんでしたね。坂根さん) -* ssl_forbid_method がらみで #define USE_SSL で #undef USE_SSL_VERIFY - の場合の処理。(rc.c と url.c) - # hsaka24 でアナウンスせずに修正を入れてしまったのが問題でしたね。 - # すみません。 -* rc.c に一部 ISO-2022-JP があるものを修正。 - # 添付の patch であたるかどうか… -* saveBufferDelNum で del==TRUE の時、":" 以前が2回削除される。 -* main.c の URL履歴を保存する位置の修正。 - # これも hsaka24 でアナウンスせずに修正を入れてました。 +* url.c USE_NNTP __EMX__ с潟潟ゃс +* EWS4800 patch (障с鴻) +* ssl_forbid_method 帥 #define USE_SSL #undef USE_SSL_VERIFY + 翫(rc.c url.c) + # hsaka24 с≪潟鴻篆罩cャ障c馹с + # 帥障 +* rc.c 筝 ISO-2022-JP 篆罩c + # 羞私 patch с +* saveBufferDelNum del==TRUE ":" 篁ュ鐚ゃ +* main.c URL絮ユ眼篆絖篏臀篆罩c + # hsaka24 с≪潟鴻篆罩cャ障 From: TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> Subject: [w3m-dev 01810] deflate (was: w3m-0.2.0) -0.2.0 には Content-encoding: deflate に対応するためのパッチ [w3m-dev 01684] -も含まれているようですが、これだけでは http://cvs.m17n.org/~akr/diary/ -は閲覧できませんでした。 +0.2.0 Content-encoding: deflate 絲上 [w3m-dev 01684] +障сс http://cvs.m17n.org/~akr/diary/ +画Ηс障с From: Fumitoshi UKAI <ukai@debian.or.jp> Subject: [w3m-dev 01808] Re: w3m-0.2.0 -GNU/Linux で glibc 2.2系だと sin.ss_len がないので -IPv6 でコンパイルできません。 +GNU/Linux glibc 2.2膤祉 sin.ss_len +IPv6 с潟潟ゃс障 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev-en 00399] Re: w3m-0.2.0 @@ -36,82 +36,82 @@ Subject: [w3m-dev-en 00399] Re: w3m-0.2.0 >> - private mailcap extension has an illegal name From: SATO Seichi <seichi@as.airnet.ne.jp> -Subject: w3mの正規表現検索におけるバグ -検索文字列として $* を渡すと Segmentation fault が -発生するようです。(全然無意味な文字列なんですが) +Subject: w3m罩h頫憝膣≪ +罎膣∽絖 $* 羝< Segmentation fault +榊с(句≧潟絖с) 2001/3/22 ============================================================== From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01664] Re: Patch for anonymizer.com -HTTP(HTTPS)の場合に URL が - http://<host>/<scheme>: ... -となっていれば cleanupName() を呼ばない様にしてみました。 +HTTP(HTTPS)翫 URL +http://<host>/<scheme>: ... +c cleanupName() 若違罕帥障 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01670] Re: w3m-0.1.11-pre-kokb24-test1 -Str.c の strcpy/strncpy を bcopy or memcpy にする件ですが、 -bcopy 系と memcpy 系を統一するのは後にするとしても、とりあえず全て -bcopy に置き換えた方がいいと思います。 -ついでに、saveBufferDelNum で一部 '\0' が扱えなくなっているバグの修正です。 +Str.c strcpy/strncpy bcopy or memcpy 篁吟с +bcopy 膤祉 memcpy 膤祉腟延緇 +bcopy 臀鴻障 +ゃсsaveBufferDelNum т '\0' 宴c違篆罩cс From: TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> Subject: [w3m-dev 01618] backend patch Subject: [w3m-dev 01671] backend patch for w3m-0.1.11-pre-kokb24-test1 -w3m を対話的なクライアントとして働く機能を追加するパッチです。 +w3m 絲乗援ゃ≪潟閟純菴遵с From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01673] SEGV in append_frame_info() ->w3m/0.1.11-pre-kokb23-m17n-0.8 を使っていますが、Der Angriff のトップページ ( ->http://i.am/goebbels/)で、ページの情報を見ようと「=」キーを押したら、 ->Segmentation Fault してしまいました。 -との指摘がありました。m17n 版に限らないので、とりあえず対処しておきます。 +>w3m/0.1.11-pre-kokb23-m17n-0.8 篏帥c障Der Angriff 若 ( +>http://i.am/goebbels/)с若吾宴荀=若若 +>Segmentation Fault 障障 +障m17n с絲上障 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01674] image map -> AREAで作ったクライアントサイドイメージマップのhrefが"#test"のような場合に、 -> ジャンプ出来ません。 -> Image map links の画面では、URLだけでなく、altやtitleも表示した方が良いと -> 思います。 -との指摘がありましたので修正/対応してみました。ただし、 -* #undef MENU_MAP の場合、#label のみであっても reload になる。 - 別のバッファからの呼び出しなので、こうしないとちょっと難しいです。 - なお、内部で作成したバッファからの呼び出しは全てそうなる様にしました。 - バッファを作らない #define MENU_MAP の方がいいかと思います。 -* 追加した属性は alt のみ (title って何?) - MapList 構造体を変えた方が良いようにも思いましたが、面倒なので止めました。 -となってます。 +> AREAтcゃ≪潟泣ゃゃ<若吾href"#test"翫 +> 吾c潟堺ャ障 +> Image map links 脂≪сURLсalttitle茵腓冴鴻 +> 障 +障т信罩/絲上帥障 +* #undef MENU_MAP 翫#label 帥сc reload + ャ<若喝冴с<ccс + т<若喝冴罕障 + <篏 #define MENU_MAP 鴻障 +* 菴遵絮с alt (title c篏鐚) + MapList 罕篏紊鴻障√ф≪障 +c障 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01675] goto label -GOTO や #define MENU_MAP の場合のイメージマップ -で #label のみの URL が指定された場合に reload しない様にしました。 -それから、[w3m-dev 01101] space in URL で追加された処理を goURL() に移し -ました。ただし、inputLineHist() で URL を入力する場合、空白文字は ^V を -使わないと入力できないので必要ないとも思います。そういうこともあって -後ろの空白の処理は外しました。 +GOTO #define MENU_MAP 翫ゃ<若吾 + #label 帥 URL 絎翫 reload 罕障 +[w3m-dev 01101] space in URL ц申 goURL() 腱祉 +障inputLineHist() URL ュ翫腥榊醇絖 ^V +篏帥ュсу荀障c +緇腥榊純紊障 From: Tsutomu Okada <okada@furuno.co.jp> Subject: [w3m-dev 01676] Re: w3m-0.1.11-pre-kokb24-test1 Subject: [w3m-dev 01678] Re: w3m-0.1.11-pre-kokb24-test1 -須藤さんの [w3m-dev 01627] のパッチのうち、GC_warn 関連と細かなソース -の修正は当てておいたほうがいいように思います。 +ゃ [w3m-dev 01627] <GC_warn ∫c膣違純若 +篆罩c綵祉障 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01680] Re: w3m-0.1.11-pre-kokb24-test1 - >> 岡田です。 - >> 私の環境では、-pedantic によって + >> 絏∞違с + >> 腱医с-pedantic c >> warning: ANSI forbids assignment between function pointer and `void *' >> warning: pointer targets in initialization differ in signedness -う、ごめんなさい。私ですね。墓穴を掘ってしまった... +腱с紜腥眼c障c... >> warning: overflow in implicit constant conmplicit con version >> warning: pointer targets in passing arg 2 of `Strcat_charp_n' differ in signedness - >> という警告が出ましたが、これらも修正すべきでしょうか? -修正するにこしたことはないので patch を出します。 + >> 茘冴障篆罩c鴻с鐚 +篆罩c patch 冴障 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01684] Re: http://cvs.m17n.org/~akr/diary/ -application/x-deflate 対応. +application/x-deflate 絲上鐚 From: Moritz Barsnick <barsnick@gmx.net> Subject: [w3m-dev-en 00318] Information about current page @@ -137,209 +137,209 @@ but it would be nice for me & some others if it was in the official From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01772] Re: visited anchor Subject: [w3m-dev 01773] Re: visited anchor - * visited anhor color。 - * textlist ベースの history。hash 化された (URL) history。 - * #undef KANJI_SYMBOLS の場合の rule の実装の変更。 + * visited anhor color + * textlist 若鴻 historyhash (URL) history + * #undef KANJI_SYMBOLS 翫 rule 絎茖紊眼 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01786] Re: w3m-0.1.11-pre-hsaka24 Subject: [w3m-dev 01787] Re: w3m-0.1.11-pre-hsaka24 - >> 1. http://www.tomoya.com/ で、<FRAMESET> の文書を表示させ(フレームの自 - >> 動表示が ON なら、F を押す)、MAIN のフレームを表示させようとすると、 - >> main.c:2082 の Sprintf で落ちる(gotoLabel を label=0x0 で呼びだしてい - >> る)。 -[w3m-dev 01675] の致命的なバグ。すみません。 - >> 2. 掲示板α http://133.5.222.232/keijiban/index.htm を表示させようとす - >> ると、frame.c:668 の strcasecmp で落ちる -こっちは前々から。 + >> 1. http://www.tomoya.com/ с<FRAMESET> 吾茵腓冴(若 + >> 茵腓冴 ON F 若)MAIN 若茵腓冴 + >> main.c:2082 Sprintf ц純<(gotoLabel label=0x0 у若潟 + >> ) +[w3m-dev 01675] 翫順違帥障 + >> 2. イ腓堺仁 http://133.5.222.232/keijiban/index.htm 茵腓冴 + >> frame.c:668 strcasecmp ц純< +c< From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01788] Re: w3m-0.1.11-pre-hsaka24 -w3m-0.1.11-pre-hsaka24 のバグ修正です。 +w3m-0.1.11-pre-hsaka24 遺信罩cс From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01792] Re: w3m-0.1.11-pre-hsaka24 - >> 全然別件なのですが、useVisitedColor が TRUE のとき - >> http://www.kusastro.kyoto-u.ac.jp/%7Ebaba/wais/other-system.html にお - >> いて、最後の画面の表示が 1〜2 秒ほど待たされます。具体的には、goLineL -retrieveAnchor() が linear search だったのが原因でした。 -binary search に変えてみました。どうでしょう。 + >> 九ヤ散сuseVisitedColor TRUE + >> http://www.kusastro.kyoto-u.ac.jp/%7Ebaba/wais/other-system.html + >> 緇脂≪茵腓冴 12 腱祉緇障隙goLineL +retrieveAnchor() linear search cс +binary search 紊帥障с From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01793] <li type=".."> -<li> タグの type 属性ですが、その <li> にのみ有効なのではなくて、 -<ol> や <ul> での指定を上書きする(以降の <li> にも有効となる)様 -ですので修正しました。 +<li> 帥違 type 絮сс <li> 炊鴻с +<ol> <ul> с絎筝吾(篁ラ <li> 鴻)罕 +ст信罩c障 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01801] some fixes. -frame を表示していて、2重に出力されている部分がありました。 -その修正です。 +frame 茵腓冴鐚阪障 +篆罩cс Subject: IPv6 support for w3m's ftp From: Hajimu UMEMOTO <ume@imasy.or.jp> - w3m の HTTP は IPv6 対応されているのですが、残念ながら FTP 機能の方 -は IPv6 対応していません。FTP 機能に対する IPv6 対応パッチを作成しまし -たので、非公式パッチに含めて頂けないでしょうか? + w3m HTTP IPv6 絲上с罧綽泣 FTP 罘純 + IPv6 絲上障FTP 罘純絲障 IPv6 絲上篏障 +с綣с鐚 2001/3/16 ================================================================== From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01711] Authorization -・http://user:pass@hostname/ に対応. +http://user:pass@hostname/ 絲上鐚 From: hsaka@mth.biglobe.ne.jp Subject: [w3m-dev 01724] buf->type when mailcap is used. -mailcap を使った場合(copiousoutput, htmloutput) にも、 -buf->type を設定する様にしました。 -'v', 'E' を使いたいのと、m17n の方でバッファが text/html だという -情報が必要な箇所があるので。 +mailcap 篏帥c翫(copiousoutput, htmloutput) +buf->type 荐絎罕障 +'v', 'E' 篏帥m17n 鴻с< text/html +宴綽荀膊с From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01726] anchor jump too slow by TAB-key on STDIN. -標準入力からHTMLを読んでいる場合, -リンク先の URL が相対 path 指定だったりすると、常に、currentdir() が -呼ばれているために速度が低下していました. -そこで立ち上げた時点で一度 カレントディレクトリを設定する様にしました。 -ついでに標準入力からの場合の変な URL "file:///-" を "-" だけにしました。 +罔羣ュHTML茯с翫鐚 +潟 URL 後 path 絎c絽吾currentdir() +若違綺篏筝障鐚 +х>鴻т綺 潟c荐絎罕障 +ゃс罔羣ュ翫紊 URL "file:///-" "-" 障 From: sakane@d4.bsd.nes.nec.co.jp (Yoshinobu Sakane) Subject: [w3m-dev 01727] C-z when stdin % cat main.c | w3m -して、C-z した際にシェルプロンプトに戻らない件に対するパッチ -です。 +C-z 激с潟祉篁吟絲障 +с From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> Subject: [w3m-dev 01729] ignore_null_img_alt -ignore_null_img_alt が OFF だと、<img src="file"> という ALT 属性が -無い場合でも何も表示しなくなっていたので修正しました。 -それから、<img width=300 height=1 src="bar.gif"> の様な指定の場合に、 -<hr> で置き換えると、width 属性が無視され改行が入ってしまうのが -いまいちなので <hr> と同様の処理を入れる様にしました。 +ignore_null_img_alt OFF <img src="file"> ALT 絮с +<翫с篏茵腓冴cт信罩c障 +<img width=300 height=1 src="bar.gif"> 罕絎翫 +<hr> х舟width 絮с∴壕ャc障 +障< <hr> 罕ャ罕障 From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> Subject: [w3m-dev 01730] Re: <hr> in a table -<hr>の改良. +<hr>壕鐚 From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> Subject: [w3m-dev 01731] completion list -最下行入力でのファイル名の補完時に +筝茵ュс<ゃ茖絎 ----- Completion list ----- X11R6/ compat/ include/ libdata/ local/ nfs/ ports/ share/ bin/ games/ lib/ libexec/ mdec/ obj/ sbin/ src/ (Load)Filename? /usr/ -の様に表示させるための patch です。 +罕茵腓冴 patch с From: Kiyokazu SUTO <suto@ks-and-ks.ne.jp> Subject: [w3m-dev 01733] A patch concerning SSL -SSLを使う時に -1. 使わないメソッドを指定するオプション「ssl_forbid_method」を追加する、 -2. 接続確立に失敗したときにエラーメッセージを表示する、 +SSL篏帥 +1. 篏帥<純絎激с潟ssl_forbid_method菴遵 +2. ・膓腆榊紊掩若<祉若吾茵腓冴 From: Kiyokazu SUTO <suto@ks-and-ks.ne.jp> Subject: [w3m-dev 01735] Re: A patch concerning SSL Subject: [w3m-dev 01737] Re: A patch concerning SSL -1. ssl_forbid_methodの「データ型」をP_STRINGからP_SSLPATHに変えて、起 - 動後のオプション設定パネルによる変更でもSSL接続に使われるメソッドの - 選択に反映されるようにした、 -2. 各種エラーメッセージをある程度取っておいて後で見れるようにした(mule - 2.3 base on emacs 19.34の機能のパクリ、他のemacsenにあるかは知らず)、 +1. ssl_forbid_method若水P_STRINGP_SSLPATH紊莎 + 緇激с活┃絎紊眼сSSL・膓篏帥<純 + 御 +2. 腮若<祉若吾腮綺c緇ц(mule + 2.3 base on emacs 19.34罘純篁emacsenャ) From: sakane@d4.bsd.nes.nec.co.jp (Yoshinobu Sakane) Subject: [w3m-dev 01738] [w3m-doc] w3m document maintenance -w3m連絡帳(http://mi.med.tohoku.ac.jp/~satodai/w3m/bbs/spool/log.html) -にも書きましたが、懸案であったw3mのドキュメント整備を始めた -いと思います。 +w3mg機絽(http://mi.med.tohoku.ac.jp/~satodai/w3m/bbs/spool/log.html) +吾障御сcw3mャ<潟翫紮 +障 From: kiwamu <kiwamu@debian.or.jp> -Subject: [w3m-dev 01739] ホイールマウス対応 patch -w3mをホイールマウス対応させてみました。 -rxvtとxtermで使用できます。 -ktermだとホイールの上下が同じコントロールコードを返してしまうので -実現不可能みたいです。 +Subject: [w3m-dev 01739] ゃ若劫上 patch +w3mゃ若劫上帥障 +rxvtxtermт戎с障 +ktermゃ若筝筝潟潟若潟若菴障 +絎憘純帥с From: Fumitoshi UKAI <ukai@debian.or.jp> Subject: [w3m-dev 01742] w3mmee 0.1.11p16-6 segfault -w3mmee 0.1.11p16-6 ですが、mime.types の内容によっては segfault します。 -# 空行があるとダメ +w3mmee 0.1.11p16-6 сmime.types 絎鴻c segfault 障 +# 腥肴 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01752] SEGV in search_param() - > >> ・w3m -o 1 等で SEGV します。 - > search_param() で size_t が unsigned のため i = 0 のとき - > e = 4294967295 になってしまっているようです。 + > >> w3m -o 1 膈 SEGV 障 + > search_param() size_t unsigned i = 0 + > e = 4294967295 c障cс From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01753] empty <select> -<select>〜</select> に <option> が無い場合、 +<select></select> <option> <翫 <form action=A> <select name=B></select> <input type=submit> </form> -の様な場合に、SUBMIT で落ちますので修正 patch です。 +罕翫SUBMIT ц純<障т信罩 patch с From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01754] A search does not stop. -標準入力から大きなファイルを読んでいる時に折り返し検索が ON だと -検索がヒットしない場合に無限ループになるバグを修正しました。 +罔羣ュ紊с<ゃ茯с菴罎膣≪ ON +罎膣≪翫♂若違篆罩c障 -また、[w3m-dev 01617] の抜かりですが検索時のカーソル位置の動作も -他と合わせました。 +障[w3m-dev 01617] с罎膣∽若純篏臀篏 +篁障 From: WATANABE Katsuyuki <katsuyuki_1.watanabe@toppan.co.jp> Subject: [w3m-dev 01755] relative path with -bookmark option -* -bookmark オプションでブックマークファイルを指定したとき、 - 相対パスでファイル名を与えると、ブックマークの追加ができません。 -* -bookmark で指定されたファイルが相対パスの場合には、絶対パスに - 直して保持するようにしてみました。 +* -bookmark 激с潟с若<ゃ絎 + 後障鴻с<ゃ筝若菴遵с障 +* -bookmark ф絎<ゃ後障鴻翫腟九障鴻 + 眼篆帥障 2001/2/7 From: aito Subject: [w3m-dev 01722] <hr> in a table -表の中の<hr>が枠をつき抜けるバグの修正. +茵筝<hr>ゃ違篆罩o 2001/2/6 From: aito -Local CGI の認証用に,Local cookie というしくみを実装しました. -Local cookie の動作は次のようなものです. -・w3m は,プロセスに固有な "Local cookie" を自動生成する. -・Local CGI の呼び出しでは,環境変数 LOCAL_COOKIE を経由してスクリプト - に Local cookie が渡される. -・スクリプトは,次回の呼び出し用のformやurl の中に local cookie を埋め - こむ. -・スクリプトの2回目以降の呼び出しでは,CGIパラメータ経由のcookie と - 環境変数経由の cookie が同じかどうかチェックし,同じでなかったら - 危険な動作をしない. +Local CGI 茯荐主鐚Local cookie 帥絎茖障鐚 +Local cookie 篏罨<с鐚 +w3m 鐚祉鴻堺 "Local cookie" 鐚 +Local CGI 若喝冴с鐚医紊 LOCAL_COOKIE 腟宴鴻 + Local cookie 羝<鐚 +祉鴻鐚罨≦若喝冴formurl 筝 local cookie + 鐚 +祉鴻2篁ラ若喝冴с鐚CGI<若睡宴cookie + 医紊亥宴 cookie с鐚сc + 演冴篏鐚 -w3mbookmark, w3mhelperpanel に Local cookie 認証を入れました. +w3mbookmark, w3mhelperpanel Local cookie 茯荐若ャ障鐚 -ついでに,Linux で gc library が /usr/local/lib 等にインストールされて -いた場合に gcmain.c がコンパイルできなくなっていたので,修正してみました. +ゃс鐚Linux gc library /usr/local/lib 膈ゃ潟鴻若 +翫 gcmain.c 潟潟ゃсcэ篆罩c帥障鐚 2001/1/25 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01667] Re: mailer %s - Editor が "vi %s" などの場合に "vi file +10" などと展開されてしまい、 - 問題があったので、Editor の展開を、 - ・%s がある場合 - * %d があれば、 - Sprintf(Editor, linenum, file) # 順番は固定 - * そうでなければ + Editor "vi %s" 翫 "vi file +10" 絮障 + 馹cсEditor 絮 + %s 翫 + * %d 違 + Sprintf(Editor, linenum, file) # 阪 + * с Sprintf(Editor, file) - ・%s がない場合 - * %d があれば、 + %s 翫 + * %d 違 Sprintf(Editor, linenum) file - * "vi" という文字列があれば、 + * "vi" 絖違 Sprintf("%s +%d", Editor, linenum) file - * そうでなければ + * с Editor file - としてみました。 + 帥障 2001/1/24 @@ -354,9 +354,9 @@ Subject: [w3m-dev 01662] Re: <head> 2001/1/23 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・属性値の中の ", <, > & 等がクォートされているかどうかチェックする - ようにした. - ・属性を持てないタグの, 属性のチェックが抜けていた問題の修正. + 糸уゃ筝 ", <, > & 膈若с + . + 糸с帥違, 絮сс馹篆罩. From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01652] mailer %s @@ -366,14 +366,14 @@ Subject: [w3m-dev 01663] replace addUniqHist with addHist in loadHistory() From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01617] Re: first body with -m (Re: w3m-m17n-0.7) - 端末をリサイズした場合の動作も同じにしました(単に忘れていただけ)。 - ついでに、多段のフレームで構成されているページの時、INFO('=') での - フレーム情報の表示がおかしかったのでその修正です。 + 腴泣ゃ冴翫篏障(綽) + ゃс紊罧泣若ф若吾INFO('=') с + 若宴茵腓冴cс篆罩cс From: Tsutomu Okada <okada@furuno.co.jp> Subject: [w3m-dev 01621] NEXT_LINK and GOTO_LINE problem - NEXT_LINK と GOTO_LINE ですが、次のページの最初の行に移動したときだけ、 - 1 ページ分スクロールしてしまいます。 + NEXT_LINK GOTO_LINE с罨<若吾茵腱糸 + 1 若後鴻若障障 From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> Subject: [w3m-dev 01623] Re: (frame) http://www.securityfocus.com/ @@ -384,112 +384,112 @@ From: Tsutomu Okada <okada@furuno.co.jp> Subject: [w3m-dev 01624] Re: first body with -m From: Hironori Sakamoto <h-saka@udlew10.uldev.lsi.nec.co.jp> Subject: [w3m-dev 01625] Re: first body with -m - pgFore, pgBack で、currentLine が画面外となり、かつ、一画面分 - スクロールできなかったときに、今まで表示されていた部分と新しく表示され - た部分の間に currentLine を持ってくるようなパッチを書いてみました。 + pgFore, pgBack сcurrentLine 脂√ゃ筝脂√ + 鴻若сc篁障ц;腓冴違頫腓冴 + currentLine c吾帥障 From: Hironori Sakamoto <h-saka@udlew10.uldev.lsi.nec.co.jp> Subject: [w3m-dev 01635] Directory list - local.c の directory list を作成する部分にバグがありました。 + local.c directory list 篏違障 From: Hironori Sakamoto <h-saka@udlew10.uldev.lsi.nec.co.jp> Subject: [w3m-dev 01643] buffername Subject: [w3m-dev 01650] Re: buffername - buffername (title) に関する改良(?)と修正です。 - ・displayLink が ON の場合に長い URL を表示する時は buffername の方を - 切りつめる様にしてみました。 - ・ついでに displayBuffer() のコードの整理。 - ・HTML 中から title を取る場合に末尾の空白文字は削除する様にしました。 - ・[w3m-dev 01503], [w3m-dev 01504] の件の修正 - buffername は常に cleaup_str されて保持されています。 - なお、現時点では、SJIS のファイル名を持つファイルを読むと、 - buffername や URL が SJIS になって悪さをすることがあるかもしれません。 + buffername (title) ≪壕(?)篆罩cс + displayLink ON 翫激 URL 茵腓冴 buffername 鴻 + ゃ罕帥障 + 祉ゃс displayBuffer() 潟若雁 + HTML 筝 title 翫絨障腥榊醇絖ゃ罕障 + [w3m-dev 01503], [w3m-dev 01504] 篁吟篆罩 + buffername 絽吾 cleaup_str 篆障 + 憝鴻сSJIS <ゃゃ<ゃ茯 + buffername URL SJIS c障 From: Hironori Sakamoto <h-saka@udlew10.uldev.lsi.nec.co.jp> Subject: [w3m-dev 01646] putAnchor - HTML のサイズと速度のベンチマークをしてみようと思って、いろいろ - やってると、あるサイズから急激に速度が低下することがありました。 + HTML 泣ゃ冴綺潟若帥c + c泣ゃ冴ユ綺篏筝障 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01647] Re: first body with -m - 坂根さんから #label つきの URL を持つバッファを reload すると、 - カーソル位置がずれてしまう場合があるとの指摘がありましたので、 - 修正 patch です。 + 鴻 #label ゃ URL ゃ< reload + 若純篏臀障翫障с + 篆罩 patch с From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01651] display column position with LINE_INFO - LINE_INFO(Ctrl-g) でカラム位置も出力する様にしてみました。 + LINE_INFO(Ctrl-g) с篏臀阪罕帥障 2001/1/5 From: Ryoji Kato <ryoji.kato@nrj.ericsson.se> Subject: [w3m-dev 01582] rfc2732 patch - RFC2732 に記述されているような URL 中の '[' と ']' でくくられた - literal IPv6 address を解釈する。 + RFC2732 荐菴違 URL 筝 '[' ']' с + literal IPv6 address 茹i From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> Subject: [w3m-dev 01594] first body with -m (Re: w3m-m17n-0.7) - "-m" オプションをつけて動かしたときに、メールのヘッダと本文の間の - 空行の処理がおかしいです。 + "-m" 激с潟ゃ<若 + 腥肴с From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01602] Re: first body with -m (Re: w3m-m17n-0.7) ... - どこかに、 + buf->lastLine->linenumber - buf->topLine->linenumber < LASTLINE - 1 - という縛りを加えるといいのかな。 - というわけで patch を作ってみたのですが、ちょっと自信無しです。 - なお、pgFore, pgBack のカーソル位置の設定を、スクロール('J', 'K') - と同じ動作にしています。すなわち 『数 SPC』と『数 J』 は同じ。 - vi の動作とはこっちが合ってるはずですが、どうでしょう。 - ついでに、reload, edit 時にカーソル位置を保存する実装を改良しています。 + 膰 + patch 篏c帥с<c篆∞<с + pgFore, pgBack 若純篏臀荐絎鴻若('J', 'K') + 篏障 SPC J + vi 篏c<cсс + ゃсreload, edit 若純篏臀篆絖絎茖壕障 2001/1/1 From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> Subject: [w3m-dev 01584] Re: attribute replacing in frames. (Re: some fixes) - もう一度。frame内のtag書き換えを単純にしたpatchを送ります。 + 筝綺frametag吾膣patch障 2000/12/27 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ファイルの終わりに空行が余分に追加される問題の修正. + <ゃ腟腥肴篏菴遵馹篆罩. 2000/12/26 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01560] Re: long URL - >> 岡田です。 - >> PEEK や PEEK_LINK で画面幅より長い URL を見られるように、prefix を利用 - >> して実装してみました。 - >> 本当は一度に全部表示したかったのですが、画面制御まわりがよくわからなかっ - >> たので、とりあえず表示したい部分を指定する方法をとっています。2c や 3u - >> と入力すると、指定された部分に対応する、URL の一部が表示されます。 - >> 御意見、御感想お待ちしております。 - こういうのはどうでしょう。 - 連続した 'u' や 'c' で URL が一文字ずつスクロールします。 + >> 絏∞違с + >> PEEK PEEK_LINK х脂√激 URL 荀prefix + >> 絎茖帥障 + >> 綵筝綺茵腓冴cс脂√九勝障 + >> с茵腓冴絎号c障2c 3u + >> ュ絎絲上URL 筝茵腓冴障 + >> 緇≧頳緇≧潟緇<障 + с + g 'u' 'c' URL 筝絖ゃ鴻若障 From: Tsutomu Okada <okada@furuno.co.jp> Subject: [w3m-dev 01570] Re: long URL - 坂本さん> # 岡田さんの案も入れてもいいかもしれません。 + > # 絏∞違罅ャ障 - 坂本さんの [w3m-dev 1560] からの差分を添付します。非常に長い URL の場 - 合は有効かと思います(あまり需要はなさそうですが)。 + [w3m-dev 1560] 綏羞私障絽吾激 URL + 鴻障(障荀с) From: Tsutomu Okada <okada@furuno.co.jp> Subject: [w3m-dev 01506] compile option of gc.a - NO_DEBUGGING を付けて gc.a をコンパイルすると、gc.a や w3m のバイ - ナリサイズが多少ですが小さくなります。 + NO_DEBUGGING 篁 gc.a 潟潟ゃgc.a w3m + 泣ゃ冴紊絨с絨障 From: Fumitoshi UKAI <ukai@debian.or.jp> Subject: [w3m-dev 01509] Forward: Bug#79689: No way to view information on SSL certificates - 現ドキュメントの情報を表示('=')で見ても SSLに関する証明書情報を - みられないのは確かに悲しいなぁ と思っていたので 適当なパッチ - つくってみました。(かなりいいかげん) + 憗ャ<潟宴茵腓('=')ц SSL≪荐惹御宴 + 帥腆冴蚊 c 綵 + ゃc帥障() From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01556] Re: ANSI color support (was Re: w3m-m17n-0.4) @@ -499,253 +499,253 @@ From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> Subject: [w3m-dev 01535] how to check wait3 in configure. From: Tsutomu Okada <okada@furuno.co.jp> Subject: [w3m-dev 01537] Re: how to check wait3 in configure. - BSD/OS 3.1, SunOS 4.1.3 で, configure が wait3() を検出できない問 - 題への対処. + BSD/OS 3.1, SunOS 4.1.3 , configure wait3() 罎冴с + 蕁吾絲上. 2000/12/25 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01568] <plaintext> bug - <plaintext> がまともに動いていなかった問題の修正. + <plaintext> 障c馹篆罩. 2000/12/22 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01555] Re: some fixes for <select> - <option> なしの <select> があると落ちる様にしてしまっていましたの - で修正です。 + <option> <select> 純<罕障c障 + т信罩cс 2000/12/21 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・feed_table のトークン分割処理を HTMLlineproc0 で行なうように変更 - した. - ・HTMLlineproc0 のフォームの処理もメインループで行なうように変更し - た. - ・table で <xmp> と </xmp> の間にあるタグが消える事がある問題の修 - 正. - ・フォームのデータに内部コードが含まれる事があるので, 修正. + feed_table 若喝峨 HTMLlineproc0 ц紊 + . + HTMLlineproc0 若<ゃ潟若ц紊眼 + . + table <xmp> </xmp> 帥違羔篋馹篆 + 罩. + 祉若若帥潟若障篋, 篆罩. From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> Subject: [w3m-dev 01536] Re: <P> in <DL> Subject: [w3m-dev 01544] Re: <P> in <DL> - 問題のある HTML で, 異常終了する事がある問題への対処. + 馹 HTML , 医幻腟篋篋馹吾絲上. From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - <a>, <img_alt>, <b>, <u> 等のタグが閉じていないとき, 終了タグを補 - 完するようにした. + <a>, <img_alt>, <b>, <u> 膈帥違, 腟篋帥違茖 + 絎. 2000/12/20 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - 以下のバグをフィクスした. - ・feed_table_tag の <dt> タグの処理が少しおかしかった. - ・table 中でタグが閉じていない場合, 異常終了する事があった. - また, <dt> タグ直後の <p> は無視するようにした. + 篁ヤ違c鴻. + feed_table_tag <dt> 帥違絨c. + table 筝с帥違翫, 医幻腟篋篋c. + 障, <dt> 帥亥翫 <p> ∴. From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> Subject: [w3m-dev 01530] returned at a morment. - read_token の " で囲まれた属性値の処理で改行をスキップしていなかっ - たバグの修正. + read_token " у蚊障絮уゃф壕鴻 + 違篆罩. Subject: [w3m-dev 01531] coocie check in header from stdin. - cat めーる | w3m -m - とすると落ちます。 + cat 若 | w3m -m + 純<障 2000/12/17 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01513] Re: w3m-0.1.11-pre-kokb23 - frame.c にバグと思われる箇所がありました。 + frame.c 違膊障 Subject: [w3m-dev 01515] some fixes for <select> Subject: [w3m-dev 01516] Re: some fixes for <select> - <select>〜<option> に関して幾つかの改良を行いました。 - ・multiple 属性が定義されている場合や #undef MENU_SELECT の場合に - <option> の value 属性が指定されていないと form としての - 値が送られないバグの修正。 - ・<option> の label 属性への対応。 - ・デフォルトの name 属性の値が "default" であるのを <input> などに - 合わせて "" に。 - ・<option> の label が "" である場合 "???" になるのを止めた。 - # 空白であって欲しい場合も考えられる。 - ・n_select >= MAX_SELECT となった場合、#undef MENU_SELECT のコードを - 使える様にした。 - # MAX_SELECT = 100 なのでまず無意味 + <select><option> ≪綛障ゃ壕茵障 + multiple 絮с絎臂翫 #undef MENU_SELECT 翫 + <option> value 絮с絎 form + ゃ違篆罩c + <option> label 絮с吾絲上 + 祉 name 絮сゃ "default" с <input> + "" + <option> label "" с翫 "???" 罩≪ + # 腥榊純сc罨蚊翫 + n_select >= MAX_SELECT c翫#undef MENU_SELECT 潟若 + 篏帥罕 + # MAX_SELECT = 100 с障≧ 2000/12/14 From: Tsutomu Okada <okada@furuno.co.jp> Subject: [w3m-dev 01501] Re: w3m-0.1.11-pre-kokb23 - no menu のときにひとつだけコンパイルエラーが出ましたので、その修正 - パッチです。 + no menu 蚊ゃ潟潟ゃ若冴障с篆罩 + с 2000/12/13 From: sekita-n@hera.im.uec.ac.jp (Nobutaka SEKITANI) Subject: [w3m-dev 01483] Patch to show image URL includes anchor - リンク付き画像のURLを見るとき、`u'ではリンクのURLしか見られません - でしたが、このパッチを使えば`i'で画像そのもののURLが見られるように - なります。 + 潟篁糸URL荀`u'с潟URL荀障 + с篏帥`i'х糸URL荀 + 障 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01500] fix risky code in url.c - url.c にあった危険性のあるコードを修正しました。 - local.c はおまけの修正です。 + url.c c演堺с潟若篆罩c障 + local.c 障篆罩cс 2000/12/12 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01491] bug ? - file.c の以下の部分ですが、たぶんこうだと思いますが。 + file.c 篁ヤс吟障 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ヌル文字を含む文字列に対する検索ができるようにした. + 絖絖絲障罎膣≪с. From: Tsutomu Okada <okada@furuno.co.jp> Subject: [w3m-dev 01498] Re: null character - 無限ループにはまってしまいました。 + ♂若障c障障 2000/12/11 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・StrmyISgets で, 単独の '\r' が改行と認識されないバグの修正. - また, 改行コードやナル文字の変換を cleanup_line に分離した. - ・ページャモードで, ナル文字を扱えるようにした. - ・base64 や quoted printable のデコード処理を convertline から - istream.c に移動. + StrmyISgets , '\r' 壕茯茘違篆罩. + 障, 壕潟若絖紊 cleanup_line ≪. + 祉若吾c≪若, 絖宴. + base64 quoted printable 潟若 convertline + istream.c 腱糸. From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01487] A string in <textarea> is broken after editing - w3m-0.1.11-pre-kokb21 の頃からですが、<textarea> の中の文字列を編 - 集すると文字列中に ^` の様な文字が入ることがあります。 + w3m-0.1.11-pre-kokb21 с<textarea> 筝絖膩 + 絖筝 ^` 罕絖ャ障 Subject: [w3m-dev 01488] buffer overflow bugs - バッファーオーバーフローを引き起こす恐れのある以下の問題点を修正しました。 - * file.c の select_option[MAX_SELECT] の添字のチェックが無かった。 - → n_select と MAX_SELECT を比較 - * file.c の textarea_str[MAX_TEXTAREA] の添字のチェックが不完全だった。 - → n_textarea と MAX_TEXTAREA を比較 - * file.c の form_stack[FORMSTACK_SIZE] の添字のチェックが無かった。 - → forms に合わせて form_stack もポインタとし自動伸張する様にした。 - * doFileCopy(), doFileSave() の sprintf を使った msg[LINELEN] への代入。 - → Str msg と Sprintf() に置き換え。 - * local.c の dirBuffer() の sprintf を使った fbuf[1024] への代入。 - → Str fbuf に置き換え。 + <若若若若綣莎激篁ヤ馹鴻篆罩c障 + * file.c select_option[MAX_SELECT] 羞糸с<c + n_select MAX_SELECT 罸莠 + * file.c textarea_str[MAX_TEXTAREA] 羞糸с筝絎c + n_textarea MAX_TEXTAREA 罸莠 + * file.c form_stack[FORMSTACK_SIZE] 羞糸с<c + forms form_stack ゃ潟帥篌後宍罕 + * doFileCopy(), doFileSave() sprintf 篏帥c msg[LINELEN] 吾篁eャ + Str msg Sprintf() 臀 + * local.c dirBuffer() sprintf 篏帥c fbuf[1024] 吾篁eャ + Str fbuf 臀 2000/12/9 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - maximum_table_width で td, th タグの width 属性値を考慮するように - 変更. + maximum_table_width td, th 帥違 width 絮уゃ + 紊. 2000/12/8 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01473] Re: internal tag and attribute check - 以前、[w3m-dev 01446] で、 - >> frame 時に追加される属性 framename, referer, charset などは - >> 問題ないのでしょうか。効果的に悪用する例は思い付きませんが、 - と書きましたが、<form charset=e> 等で w3m が終了してしまいます。 - accept-charset も同様ですので修正しました。 + 篁ュ[w3m-dev 01446] с + >> frame 菴遵絮 framename, referer, charset + >> 馹с号箴篁障 + 吾障<form charset=e> 膈 w3m 腟篋障障 + accept-charset 罕ст信罩c障 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・table タグの hborder 属性は通常でも受け付けるように変更. - ・table タグの border 属性に値が与えられていないときの扱いを元に戻 - した. + table 帥違 hborder 絮с絽吾с篁紊. + table 帥違 border 絮сゃ筝宴 + . From: sakane@d4.bsd.nes.nec.co.jp (Yoshinobu Sakane) Subject: [w3m-dev 01478] Option Setting Panel - 横長のウィンドウで Option Setting Panel を開くと、間延びして - 左右の対応が取りづらいので、間を詰めるパッチです。 + 罔激c潟 Option Setting Panel 綮吟潟 + 綏劻絲上ャс荅違с 2000/12/7 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・parse_tag に gethtmlcmd の機能も持たせるようにした. - ・最初の parse_tag で内部タグや属性を受け付けないようにした. - また, 内部属性が含まれる場合は, その内部属性を含まないようにタグ - を作り直すようにした. - ・visible_length では不要なタグの解析を止めた. + parse_tag gethtmlcmd 罘純. + 紙 parse_tag у帥違絮с篁. + 障, 絮с障翫, 絮с障帥 + 篏眼. + visible_length с筝荀帥違茹f罩≪. From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01456] linein.c - m17n からの feed back ですが、linein.c を calcPosition() ベースに - 書き直しました。処理は display.c とほぼ同様です。 - 長い文字列中にタブやコントロール文字があっても正しくカーソルが - 動くようになっていると思います。 + m17n feed back сlinein.c calcPosition() 若鴻 + 吾眼障 display.c 祉弱罕с + 激絖筝帥潟潟若絖c罩c若純 + c障 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01457] cursor position on sumbit form - TABキーで<input type="submit" 〜 value="OK">の上にカーソルを移動さ - せたときの位置がずれていた問題への対処. + TAB若<input type="submit" value="OK">筝若純腱糸 + 篏臀馹吾絲上. 2000/12/3 From: Kiyokazu SUTO <suto@ks-and-ks.ne.jp> Subject: [w3m-dev 01449] Re: Directory of private header of gc library. - popText (rpopText) で最後の要素を取り出した後にこのリストにアクセ - スしようとすると異常終了してしまう事がある問題に対する修正. + popText (rpopText) ф緇荀膣冴緇鴻≪ + 鴻医幻腟篋障篋馹絲障篆罩. 2000/12/2 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - まだ, image map が使えない問題が残っていたので修正. + 障, image map 篏帥馹罧cт信罩. From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - 内部テーブル (MYCTYPE_MAP) によって, 文字を分類するように変更. - 漢字, latin1, ascii, internal character の判別には INTCTYPE_MAP を - 使うように変更. - # 結果として必要無くなった CTYPE_MAP は削除した. + 若 (MYCTYPE_MAP) c, 絖蕁紊. + 羲√, latin1, ascii, internal character ゅャ INTCTYPE_MAP + 篏帥紊. + # 腟綽荀<c CTYPE_MAP ゃ. 2000/12/1 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: Security hole in w3m (<input_alt type=file>) - ・HTMLlineproc1, HTMLtagproc1 等の引数にフラグを持たせて、 - 外部から内部タグを使えない様にした。 - ・map.c で `<', `>' 等がクォートされていなかった所の修正。 + HTMLlineproc1, HTMLtagproc1 膈綣違違 + 紊帥違篏帥罕 + map.c `<', `>' 膈若c篆罩c Subject: [w3m-dev 01432] Re: w3m-0.1.11-pre-kokb22 patch - まだ、修正の抜かりがありました。patch を付けます。 - ([w3m-dev 01431] での岡田さんの指摘への修正も入ってます) + 障篆罩c障patch 篁障 + ([w3m-dev 01431] с絏∞違吾篆罩cャc障) Subject: [w3m-dev 01437] Re: w3m-0.1.11-pre-kokb22 patch - セキュリティ関連の修正で image map が使えなくなる問題への対処. + 祉ャi∫c篆罩c image map 篏帥馹吾絲上. From: sekita-n@hera.im.uec.ac.jp (Nobutaka SEKITANI) Subject: [w3m-dev 01415] Lineedit patch for kokb21 Subject: [w3m-dev 00976] move & delete until /, &, or ? - で投稿したURL等入力機能を拡張するパッチをw3m-0.1.11-pre-kokb21用に - 書き直しました。kokb20でもパッチは正常に当てられます。 + ф腮帥URL膈ュ罘純≦宍w3m-0.1.11-pre-kokb21 + 吾眼障kokb20с罩e幻綵障 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - 岡田さんのパッチ [w3m-dev 01427] を参考に, HTML バッファの文末の空 - 白を削除するコンパイルオプション (ENABLE_REMOVE_TRAILINGSPACES) を - 追加した. + 絏∞違 [w3m-dev 01427] , HTML <腥 + 純ゃ潟潟ゃ激с (ENABLE_REMOVE_TRAILINGSPACES) + 菴遵. From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev-en 00301] Re: "w3m -h" outputs to stderr - w3m -h の出力先を stderr から stdout に変更. + w3m -h 阪 stderr stdout 紊. From: sakane@d4.bsd.nes.nec.co.jp (Yoshinobu Sakane) Subject: [w3m-dev 01430] Re: w3m-0.1.11-pre-kokb22 patch - EWS4800(/usr/abiccs/bin/cc) のコンパイルエラーへの対処. + EWS4800(/usr/abiccs/bin/cc) 潟潟ゃ若吾絲上. From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・dumm_table タグの id 属性の範囲チェックを加えた. - ・form_int タグの fid 属性の範囲チェックを加えた. - ・table スタックのオーバフローのチェックを加えた. + dumm_table 帥違 id 絮с膀蚊с. + form_int 帥違 fid 絮с膀蚊с. + table 鴻帥若若с. 2000/11/29 @@ -754,156 +754,156 @@ From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01422] bpcmp in anchor.c From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01423] Re: bpcmp in anchor.c - 高速化のための幾つかの修正. + 蕭綛障ゃ篆罩. From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・checkType のバグフィクスおよび若干の高速化. - ・漢字を 2 バイト単位で扱うように変更. + checkType 違c鴻活ュ慌蕭. + 紙滋絖 2 ゃ篏ф宴紊. 2000/11/28 From: Takenobu Sugiyama <sugiyama@ae.advantest.co.jp> Subject: patch for cygwin - cygwin での ftpサイトからの download ですが, 以下の patchで対処で - きました. cygwin では, ファイルの open/closeを binary モードにし - ておかないと, いろいろと問題があるようです. + cygwin с ftp泣ゃ download с, 篁ヤ patchу上 + 障. cygwin с, <ゃ open/close binary ≪若 + , 馹с. 2000/11/27 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01401] Re: bugfix of display of control chars, merge of easy UTF-8 patch, etc. - この修正の追加ですが、一行の最後にコントロール文字があると画面シフ - ト量が足らなくなって、その文字を表示できないバグの修正です。 + 篆罩c菴遵с筝茵緇潟潟若絖脂≪激 + 莇潟c絖茵腓冴с違篆罩cс From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - table のレンダリングの高速化. + table 潟潟違蕭. 2000/11/25 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - table のカラム幅が width 属性で指定したものより小さくなる事がある - 問題の修正. + table 綛 width 絮сф絎絨篋 + 馹篆罩. 2000/11/24 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - まだファイルを読み込んでないときは, プログレスパーに転送速度を表示 - しないように変更した. + 障<ゃ茯粋昭с, 違鴻若荵∫綺茵腓 + 紊眼. -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> Subject: [w3m-dev 01385] Re: w3m-0.1.11-pre-kokb20 patch - w3m-0111-utf8-kokb20 ですが、conv.c で一箇所間違いと思われるところ - がありましたので、パッチを添付します。ついでに、インデントやコンパ - イル時の warning の修正も一部してあります。 + w3m-0111-utf8-kokb20 сconv.c т膊 + 障с羞私障ゃсゃ潟潟潟潟 + ゃ warning 篆罩c筝障 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・コマンドラインでオプション設定を変更したとき, proxy や cookie 等 - 変更が反映されない部分があった問題に対する修正. - ・ローカルファイルをセーブするとき, 元のファイルを上書きしてしまう - 事がある問題に対する修正. + 祉潟潟ゃ潟с激с活┃絎紊眼, proxy cookie 膈 + 紊眼c馹絲障篆罩. + 祉若<ゃ祉若, <ゃ筝吾障 + 篋馹絲障篆罩. 2000/11/23 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・StrStream に対しては, 元の Str をそのままバッファとして利用するよ - うに変更. - ・get_ctype をマクロ化し, テーブルを使って判断するようにした. - ・menu.c に返り値が宣言と一致していない所があったので修正. + StrStream 絲障, Str 障障< + 紊. + get_ctype , 若篏帥cゆ. + menu.c 菴ゃ絎h筝眼cт信罩. 2000/11/22 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - 主に高速化のための変更です. - ・ファイル読み込み時に自前でバッファリングを行なうようにした. - ・conv.c の関数を Str ベースに変更. - 可能な限り文字列のコピーを行なわないようにした. - ・checkType の高速化. - ・カーソル上に文字が無いとき cursorRight の動作に問題があったので, - 修正した. - また一行が LINELEN を越えたときに, calcPosition で配列の外をアク - セスする可能性があるのでサイズを変更. + 筝祉蕭紊眼с. + 祉<ゃ茯粋昭炊с<潟違茵. + conv.c ∽違 Str 若鴻紊. + 純絖潟若茵. + checkType 蕭. + 祉若純筝絖< cursorRight 篏馹c, + 篆罩c. + 障筝茵 LINELEN 莇, calcPosition ч紊≪ + 祉鴻醇сс泣ゃ冴紊. From: Fumitoshi UKAI <ukai@debian.or.jp> Subject: [w3m-dev 01372] w3m sometimes uses the wrong mailcap entry http://bugs.debian.org/77679 - ですが、mime type の判断が substring match になってるからだと - 思います。これで直るんじゃないでしょうか + сmime type ゆ substring match c + 障х眼с 2000/11/20 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - 中身の無い table が table の中にあるときに, 外の table が崩れる問 - 題への対処. + 筝荳< table table 筝, 紊 table 經 + 蕁吾絲上. 2000/11/19 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - gc6 対応. + gc6 絲上. 2000/11/18 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・バッファ内部の空白文字を 0x80-0x9f に割当てるように変更した. - ・日本語版でも, バッファ内では は 0xa0 で表わすにした. - ・坂本さんの簡易 UTF-8 版の UTF-8 とは関係無い部分のコードをマージ - した. - またデバッグのときに便利なので, 内部コードを文書コードに指定する - 事ができるようにした. - ・表示不可能領域 (0x80-0xa0) にある文字は \xxx の形で表示するよう - にした. - 関連して, 画面シフト時に, コントロール文字が含まれていると表示が - 乱れるバグがあったので修正した. - -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> + 祉≦腥榊醇絖 0x80-0x9f 峨紊眼. + 紙ユ茯с, ≦с 0xa0 ц;. + 糸膂≧ UTF-8 UTF-8 ≫<潟若若 + . + 障違箴水, 潟若吾潟若絎 + 篋с. + 肢;腓坂初 (0x80-0xa0) 絖 \xxx 綵≪ц;腓冴 + . + ∫c, 脂≪激, 潟潟若絖障茵腓冴 + 箙宴違cт信罩c. + +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> Subject: [w3m-dev 01354] minimize when #undef USE_GOPHER or USE_NNTP - #undef USE_GOPHER や #undef USE_NNTP としたときに、関連するコードがで - きるだけ少なくなるように変更してみました。 + #undef USE_GOPHER #undef USE_NNTP ∫c潟若 + 絨紊眼帥障 2000/11/16 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - 異常な実体参照で getescapechar が変は値を返す事がある問題への対処. + 医幻絎篏с getescapechar 紊ゃ菴篋馹吾絲上. 2000/11/15 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・table の枠が崩れる事があるバグの修正. - ・DEL 文字を折り返し可能な空白文字として扱うように変更し, バッファ - 内部の空白文字を から DEL に変更. + table 經篋違篆罩. + DEL 絖菴純腥榊醇絖宴紊眼, + 腥榊醇絖 DEL 紊. From: Kiyokazu SUTO <suto@ks-and-ks.ne.jp> Subject: [w3m-dev 01338] Re: Lynx patch for character encoding in form Subject: [w3m-dev 01342] Re: Lynx patch for character encoding in form - form タグの accept-charset 属性を受け付けるようになった. + form 帥違 accept-charset 絮с篁c. 2000/11/14 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・クォートするのを忘れていると思われる部分を修正. - ・cleanup_str, htmlquote_str は, もし (アン) クォートする必要が無 - ければ, 元の文字列をそのまま返すようにした. + 祉若綽篆罩. + cleanup_str, htmlquote_str , (≪) 若綽荀 + , 絖障乗. 2000/11/10 -From: 渡邉勝之 <katsuyuki_1.watanabe@toppan.co.jp> +From: 羝♂箙 <katsuyuki_1.watanabe@toppan.co.jp> Subject: [w3m-dev 01336] patch for Cygwin 1.1.x - Cygwin 1.1.x (おそらく 1.1.3 以降) 向けのパッチを作成しました。 - Cygwin 1.x 以降の環境において、 - ・標準のインストールパスを /cygnus/cygwin-b20/H-i586-cygwin32 - 以下へ変更しない - ・T_as,T_ae,T_ac を空にするのをやめた + Cygwin 1.1.x ( 1.1.3 篁ラ) 篏障 + Cygwin 1.x 篁ラ医 + 紙羣ゃ潟鴻若鴻 /cygnus/cygwin-b20/H-i586-cygwin32 + 篁ヤ後眼 + T_as,T_ae,T_ac 腥冴 2000/11/8 @@ -917,199 +917,199 @@ Subject: [w3m-dev-en 00189] [PATCH] w3m menu <select> search From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01331] Re: form TEXT: - 検索文字列とフォーム入力文字列のヒストリの一本化. + 罎膣∽絖若ュ絖鴻筝. 2000/11/4 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - セル幅が画面幅を越えるとき, セルの中身は画面幅で整形するようにした. + 祉綛脂√莇, 祉筝荳脂√ф翫就. 2000/11/2 -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> Subject: [w3m-dev 01313] Re: SCM_NNTP - MARK_URL で nntp: もマッチするようにしてみました。正規表現は gopher: - のものをコピーしただけです。 + MARK_URL nntp: 帥障罩h頫憗 gopher: + 潟若с 2000/10/31 From: Kiyokazu SUTO <suto@ks-and-ks.ne.jp> Subject: [w3m-dev 01310] Re: option select (Re: w3mmee-0.1.11p10) - gcライブラリのエラーメッセージをdisp_message_nsecを通して出力する - ようにした. + gcゃ若<祉若吾disp_message_nsec阪 + . 2000/10/30 From: sakane@d4.bsd.nes.nec.co.jp (Yoshinobu Sakane) Subject: [w3m-dev 01294] mouse no effect on blank page. - mouseありのw3m でblankなペイジを表示している時、mouseボタン - が効かない(中ボタンで戻れないのがツライ)ので修正してみました。 + mousew3m blankゃ吾茵腓冴mouse帥 + 鴻(筝帥潟ф祉)т信罩c帥障 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01295] Re: mouse no effect on blank page. - 実際に落ちたわけではないのですが、こうしておく方が安全ですね。 + 絎純<сс鴻絎с From: SASAKI Takeshi <sasaki@ct.sakura.ne.jp> Subject: [w3m-dev 01297] Re: backword search bug report - [w3m-dev 01296] で報告されている, 次の問題に対する対処. - > 報告だけなんですが、"aaaa" や "ああああ" のような同じ文字が連続してい - > るときに "a" や "あ" で backword search すると、カーソル位置が 1 文字 - > 飛んでしまうようです。 + [w3m-dev 01296] у怨, 罨<馹絲障絲上. + > 怨с"aaaa" "" 絖g + > "a" "" backword search 若純篏臀 1 絖 + > 蕋с障с From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01298] Re: backword search bug report - backword search で wrapped search が有効の時、現在の行の後方を検索 - できないバグを直しました。 + backword search wrapped search 鴻憜茵緇鴻罎膣 + с違眼障 Subject: [w3m-dev 01299] Re: backword search bug report - 日本語を検索するときに 2byte目と次の文字の 1byte目とでマッチする問 - 題と、 little endian では正規表現 [あ-ん] が正しく機能しない問題、 - 英語版では latin1 が上手く検索できなかった(であろう)問題を直しました。 + ユ茯罎膣≪ 2byte罨<絖 1byteс + 蕁 little endian с罩h頫 [-] 罩c閟純馹 + 沿с latin1 筝閌膣≪сc(с)馹眼障 2000/10/29 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・LESSOPEN を使用するかどうかを Option Setting Panel で選択するよ - うにした (default は使用しない). - ・圧縮ファイル伸張後のテンポラリファイルを作るときの拡張子を, 元の - ファイルの拡張子 (.Z, .gz, .bz2) を除いた部分から決めるように変 - 更した. - ・gunzip_stream, save2tmp, visible_length の高速化. + LESSOPEN 篏睡 Option Setting Panel ч御 + (default 篏睡). + 糸х軒<ゃ篌後宍緇潟<ゃ篏≦宍絖, + <ゃ≦宍絖 (.Z, .gz, .bz2) ゃ羆冴紊 + 眼. + gunzip_stream, save2tmp, visible_length 蕭. 2000/10/28 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - コンパイル時, ファイル名補完中のキー割当てを Emacs-like にできるよ - うにした. - (config.h で #define EMACS_LIKE_LINEEDIT にします) - また, 補完候補一覧時にバックスクロールを可能にした. + 潟潟ゃ, <ゃ茖絎筝弱峨 Emacs-like с + . + (config.h #define EMACS_LIKE_LINEEDIT 障) + 障, 茖絎茖筝荀ф鴻若純. From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01284] Re: improvement of filename input - ・URL入力時(U)では file:/ から始める場合のみファイル名補完を有効 - にしました。 - (URL 解析の仕様上これ以外では確実に local-file にならないため) - ・岡部さんのアドバイスにより CTRL-D での一覧表示は、 - 文字列の最後にカーソルがある場合に限定しました。 + URLュ(U)с file:/ 紮翫帥<ゃ茖絎 + 障 + (URL 茹f篁罕筝篁ュс腆阪 local-file ) + 糸押≪ゃ鴻 CTRL-D с筝荀ц;腓冴 + 絖緇若純翫絎障 From: Kiyokazu SUTO <suto@ks-and-ks.ne.jp> Subject: [w3m-dev 01280] Stop to prepend rc_dir to full path. - rcFile()を、フルパスにはrc_dirを付けないようするパッチです。 + rcFile()鴻rc_dir篁с 2000/10/27 -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> Subject: [w3m-dev 01269] Re: SCM_NNTP - [w3m-dev 1258] で坂本さんが指摘されていたところを修正してみました。パッ - チを添付します。私の環境では、この修正をしないと news:<Message-ID> が - 動きませんでした。 + [w3m-dev 1258] у篆罩c帥障 + 羞私障腱医с篆罩c news:<Message-ID> + 障с Subject: [w3m-dev 01273] Re: SCM_NNTP - url.c を修正して、#undef USE_GOPHER や #undef USE_NNTP のときには - gopther: や news: が動作しないようにしました。また、nntp: も動作しない - ようにしました。 - 加えて、GOTO URL で mailto: を入力したときに動作するように変更してみま - した。ついでに、コメントの間違いも直してあります。 + url.c 篆罩c#undef USE_GOPHER #undef USE_NNTP + gopther: news: 篏障障nntp: 篏 + 障 + GOTO URL mailto: ュ篏紊眼帥 + ゃс潟<潟眼障 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01258] improvement of filename input - 最下行でファイル名を入力する時の強化を行いました。 - ・Ctrl-D で補完候補の一覧を表示するようにしました。 - 画面に入り切らない時は連続した Ctrl-D で次の候補の一覧が出ます。 - # 文字の削除は BackSpace か Del を使ってください。 - ・URL 入力時(GOTO)で文字列が file:/, file:/// や file://localhost/ から - 始まっている場合は、ファイル名を補完する様にしました。(下津さんからの要望) - # http: や ftp: は何もしません。ヒストリからの補完でも面白いけど。 - ・URL をヒストリに保存する場合に password 部分は削除する様に修正しました。 - なお、以前からある undocument な機能ですが、検索文字の入力などの場合でも、 - Ctrl-X で TAB(Ctrl-I) での ファイル名補完が有効になります。 + 筝茵с<ゃュ綣桁茵障 + Ctrl-D ц絎茖筝荀с茵腓冴障 + 脂≪ャg Ctrl-D ф<茖筝荀с冴障 + # 絖ゃ BackSpace Del 篏帥c + URL ュ(GOTO)ф絖 file:/, file:/// file://localhost/ + 紮障c翫<ゃ茖絎罕障(筝羇ャ荀) + # http: ftp: 篏障鴻茖絎с∝純 + URL 鴻篆絖翫 password ゃ罕篆罩c障 + 篁ュ undocument 罘純с罎膣∽絖ュ翫с + Ctrl-X TAB(Ctrl-I) с <ゃ茖絎鴻障 From: Fumitoshi UKAI <ukai@debian.or.jp> Subject: [w3m-dev 01277] Accept-Encoding: gzip (Re: some wishlists) Accept-Encoding: gzip, compress - をリクエストヘッダに付けるようにした. + 鴻篁. Subject: [w3m-dev 01275] Re: squeeze multiple blank lines option ( http://bugs.debian.org/75527 ) - とりあえず #ifdef DEBIAN で - squeeze multiple blank line は -s - 端末文字コード指定の -s/-e/-j はナシ。かわりに -o kanjicode={S,E,J} を使う - ことにしておきます。 + #ifdef DEBIAN + squeeze multiple blank line -s + 腴絖潟若絎 -s/-e/-j 激 -o kanjicode={S,E,J} 篏帥 + 障 Subject: [w3m-dev 01274] Re: SCM_NNTP - せっかくなので nntp: をサポートしてみました + c nntp: 泣若帥障 Subject: [w3m-dev 01276] URL in w3m -v - LANG=EN (というか undef JP_CHARSET)の時の visual mode で使われてる URL - が正しくないようです。 + LANG=EN ( undef JP_CHARSET) visual mode т戎 URL + 罩cс 2000/10/26 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - mailcap と mime.type ファイルの場所を Option Setting Panel で設定 - 可能にした. + mailcap mime.type <ゃ贋 Option Setting Panel ц┃絎 + 純. 2000/10/25 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01247] Re: buffer selection menu - メニュー関連の patch および仕様変更 [w3m-dev 01227], [w3m-dev 01228], - [w3m-dev 01229], [w3m-dev 01237], [w3m-dev 01238] をまとめました。 - ・Select メニューでの消去(キーは 'D') - ・Select メニューでのコメントの表示 - ┃--- SPC for select / D for delete buffer ---┃ - ┗━━━━━━━━━━━━━━━━━━━━━━┛ - ・メニューからのコマンド実行を許可。 + <ャ守∫c patch 割罕紊 [w3m-dev 01227], [w3m-dev 01228], + [w3m-dev 01229], [w3m-dev 01237], [w3m-dev 01238] 障障 + Select <ャ若с羔サ(若 'D') + Select <ャ若с潟<潟茵腓 + --- SPC for select / D for delete buffer --- + + 祉<ャ若潟潟絎茵荐怨 2000/10/24 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・ クッキーの設定で, `.' は全てのドメインを表わすようにした. - ・ bm2menu.pl を CVS に add するのを忘れていたので, 追加. + 若荐絎, `.' <ゃ潟茵. + bm2menu.pl CVS add 綽, 菴遵. -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> Subject: [w3m-dev 01240] Re: w3m-0.1.11-pre-kokb17 patch - とりあえずコンパイル時に incompatible pointer type といわれたとこ - ろの修正パッチを添付します。 + 潟潟ゃ incompatible pointer type + 篆罩c羞私障 2000/10/23 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・ オプション設定パネルで, クッキーを受け付ける (受け付けない) ド - メインを設定できるようにした. - また, クッキー設定を一つのセクションとして分離した. - ・ frame の reload の際, プロクシのキャッシュが更新されていなかっ - た問題への対処. + 激с活┃絎, 若篁 (篁) + <ゃ潟荐絎с. + 障, 取┃絎筝ゃ祉激с潟≪. + frame reload , 激c激ャ贋違 + 馹吾絲上. From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01211] Re: a small change to linein.c Subject: [w3m-dev 01214] Re: a small change to linein.c - 長い文字列を編集する際, 全ての文字列が表示されない事がある問題への - 対処. + 激絖膩, 絖茵腓冴篋馹吾 + 絲上. From: Fumitoshi UKAI <ukai@debian.or.jp> Subject: [w3m-dev 01216] error message for invalid keymap From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01220] Re: error message for invalid keymap - keymap に問題があったときに, エラーメッセージを出すように修正. + keymap 馹c, 若<祉若吾冴篆罩. From: Fumitoshi UKAI <ukai@debian.or.jp> Subject: [w3m-dev 01217] keymap.lynx example could be better. - keymap.lynx の更新. + keymap.lynx 贋. 2000/10/20 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - cookie の取り扱いに関して幾つかの修正を加えた. - ・ version 1 cookie に対する扱いを + cookie 宴≪綛障ゃ篆罩c. + version 1 cookie 絲障宴 http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-state-man-mec-12.txt - に準拠するように変更. - Netscape-style cookie のリクエストヘッダに, Cookie2 を追加. - ・ [w3m-dev-en 00190] patch に対する幾つかの変更. + 羣紊. + Netscape-style cookie 鴻, Cookie2 菴遵. + [w3m-dev-en 00190] patch 絲障綛障ゃ紊. 2000/10/19 @@ -1128,107 +1128,107 @@ Subject: [w3m-dev-en 00190] w3m-0.1.10 patch (mostly version 0 cookie handling) 2000/10/18 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - 文字幅を設定可能にした. + 絖綛荐絎純. From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01208] '#', '?' in ftp:/.... - ftp:/ でファイル名に '#' が入っているとアクセスできない問題への対 - 処. + ftp:/ с<ゃ '#' ャc≪祉鴻с馹吾絲 + . From: Kiyokazu SUTO <suto@ks-and-ks.ne.jp> Subject: [w3m-dev 01209] http_response_code and ``Location:'' header - 「Location:」ヘッダがあると、無条件にそれに従うようになってますが、 - http_response_codeを見て301〜303の時だけ従うようにしてみました。 + Location:≧>散緇c障 + http_response_code荀301303緇帥障 2000/10/17 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - local CGI で, ゾンビができる問題への対処. + local CGI , 障潟с馹吾絲上. 2000/10/16 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - table 中で <textarea> が閉じてない時, 終了できなくなる問題への対処. - ([w3m-dev 00959] の代替案). - <select> の扱いに準じるようにした. + table 筝 <textarea> , 腟篋с馹吾絲上. + ([w3m-dev 00959] 篁f炊). + <select> 宴羣. From: maeda@tokyo.pm.org Subject: [w3m-dev 00990] auth password input - 何に対するパスワードなのかわからないので、以下のような - パッチを当てました。sleep(2)は長すぎるかも。 + 篏絲障鴻若с篁ヤ + 綵障sleep(2)激 -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> Subject: [w3m-dev 01193] Re: frame bug? - フレームのあるページを往来しているとき, 落ちる事がある問題への対処. + 若若吾緇ャ, 純<篋馹吾絲上. 2000/10/13 From: SASAKI Takeshi <sasaki@ct.sakura.ne.jp> Subject: [w3m-dev 00928] misdetection of IPv6 support on CYGWIN 1.1.2 - CYGWIN 1.1.2以降で, 誤って IPv6 サポートを検出してしまう問題への対 - 処. + CYGWIN 1.1.2篁ラ, 茯ゃc IPv6 泣若罎冴障馹吾絲 + . From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01170] Re: cursor position after RELOAD, EDIT - ・cache ファイルが残ることがあるバグの修正. - その他 - ・ディレクトリリストの URL が /$LIB/dirlis.cgi… と格好悪かったので、 - 元のディレクトリそのものになるようにしました。 - dirlist.in を変更していますので、configure を再実行するか、 - cp dirlist.in dirlist.cgi として @PERL@ と @CYGWIN@ を書き換えてください。 - ・keymap で引数を記述できる拡張を以下の関数に適用しました。 - LOAD … ファイル名 - EXTERN, EXTERN_LINK … 外部ブラウザ名 - (w3m-control: からは使えません) - EXEC_SHELL, READ_SHELL, PIPE_SHELL … shellコマンド - (w3m-control: からは使えません) - SAVE, SAVE_IMAGE, SAVE_LINK, SAVE_SCREEN … ファイル名(pipe コマンド) - (w3m-control: からは使えません) + cache <ゃ罧違篆罩. + 篁 + 祉c鴻 URL /$LIB/dirlis.cgi 弱ソcс + c障 + dirlist.in 紊眼障сconfigure 絎茵 + cp dirlist.in dirlist.cgi @PERL@ @CYGWIN@ 吾 + keymap у違荐菴違с≦宍篁ヤ∽違障 + LOAD <ゃ + EXTERN, EXTERN_LINK 紊九 + (w3m-control: 篏帥障) + EXEC_SHELL, READ_SHELL, PIPE_SHELL shell潟潟 + (w3m-control: 篏帥障) + SAVE, SAVE_IMAGE, SAVE_LINK, SAVE_SCREEN <ゃ(pipe 潟潟) + (w3m-control: 篏帥障) 2000/10/11 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・標準入力からのバッファに読み込むとき, MAN_PN を見てバッファ名を決め - るようにした. + 紙羣ュ<茯粋昭, MAN_PN 荀≦羆冴 + . -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> Subject: [w3m-dev 01156] Re: w3m-0.1.11-pre-kokb15 - ・mydirname のバグ修正と関数宣言の追加 - ・SERVER_NAME を設定するように変更 - ・[w3m-dev-en 00234] を参考に GATEWAY_INTERFACE を設定するように変更 - ・current working directory を変更して popen する、よりまともな実装 + mydirname 遺信罩c∽医h菴遵 + SERVER_NAME 荐絎紊 + [w3m-dev-en 00234] GATEWAY_INTERFACE 荐絎紊 + current working directory 紊眼 popen 障絎茖 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01158] some bugs fix when RELOAD, EDIT Subject: [w3m-dev 01164] cursor position after RELOAD, EDIT - ・local CGI として呼び出した file:... を EDIT できるバグを修正しました。 - # currentURL.scheme ではなく real_scheme を使うようにしました。 - ・HTML をソース表示状態から RELOAD, EDIT した後には - ソース表示状態になるようにしました(一部不具合がありました)。 - ・逆に plain text ファイルを HTML 表示している状態から RELOAD, EDIT - した後には HTML 表示状態になるようにしました。 - ・RELOAD, EDIT 後のカーソル位置を RELOAD, EDIT 前と同じになるように - しました。 + local CGI 若喝冴 file:... EDIT с違篆罩c障 + # currentURL.scheme с real_scheme 篏帥障 + HTML 純若壕;腓榊倶 RELOAD, EDIT 緇 + 純若壕;腓榊倶障(筝筝桁障) + 脂 plain text <ゃ HTML 茵腓冴倶 RELOAD, EDIT + 緇 HTML 茵腓榊倶障 + RELOAD, EDIT 緇若純篏臀 RELOAD, EDIT + 障 2000/10/10 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01166] Re: cell width in table - table 関係のバグフィクスです. - ・ 画面幅が十分あるにも関わらず, 文が途中で折り返されてしまう問題の修正. - ・ table で <wbr> が効かない事がある問題の修正. - ・ feed_table_tag() の処理の共通化. + table ≫違c鴻с. + 脂√≪, 筝ф菴障馹篆罩. + table <wbr> 鴻篋馹篆罩. + feed_table_tag() 演. From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01155] history of data for <input type=text> - ふと思い出して <input type=text> で入力したデータもヒストリを - 辿れる様にしてみました。 - 検索サービスを渡り歩く時などに便利と思います。 + 泣冴 <input type=text> уュ若帥鴻 + 莨帥罕帥障 + 罎膣≪泣若鴻羝<罩箴水障 2000/10/9 @@ -1237,13 +1237,13 @@ From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01150] Some bug fixes [w3m-dev 00956] unknown scheme in frame [w3m-dev 00975] goto link from frame page - で報告された問題の修正. + у怨馹篆罩. From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01145] buffer overflow in linein.c - inputLineHist(linein.c) でデフォルト文字列が 256 文字以上の場合に - strProp が領域外アクセスすることがありましたので、その修正 patch です。 - また文字列長の制限値を 1024 にしました。 + inputLineHist(linein.c) с絖 256 絖篁ヤ翫 + strProp 紊≪祉鴻障с篆罩 patch с + 障絖激狗ゃ 1024 障 2000/10/8 @@ -1251,681 +1251,681 @@ Subject: [w3m-dev 01145] buffer overflow in linein.c From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01136] function argument in keymap Subject: [w3m-dev 01139] Re: function argument in keymap - 長らく宿題になってた ~/.w3m/keymap での関数の引数指定を可能にしました。 + 激鎘翠c ~/.w3m/keymap с∽違綣井絎純障 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 01143] image map with popup menu - image map を popup menu を使って <option> の様に表示するようにしてみました。 - config.h で #define MENU_MAP としてコンパイルしてみてください。 + image map popup menu 篏帥c <option> 罕茵腓冴帥障 + config.h #define MENU_MAP 潟潟ゃ帥 -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> Subject: [w3m-dev 00971] Re: segmentation fault with http: - URL として http: や http:/ を入力すると落ちてしまうので修正しました。 + URL http: http:/ ュ純<障т信罩c障 2000/10/07 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01134] w3m in xterm horribly confused by Japanese in title (fr - http://bugs.debian.org/w3m で報告されている, 英語版で日本語タイトルの - あるページを見たときに, w3m が発狂する事がある問題に対するバグフィクス - です. + http://bugs.debian.org/w3m у怨, 沿фユ茯帥ゃ + 若吾荀, w3m 榊篋馹絲障違c + с. From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01127] SIGINT signal in ftp session (Re: my w3m support page) - ftp の際に SIGINT が発生すると落ちるバグの修正. + ftp SIGINT 榊純<違篆罩. 2000/10/06 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - ・ table の recalc_width() の wmin の最大値を 0.05 に変更. - ・ 外部コマンドの出力バッファの filename, basename, type を変更. - ・ http と local file 以外の圧縮データを伸長するのに, 一旦テンポラリ - ファイルに落とすようにした. - ・ テンポラリファイル名を生成する方法の変更. - ・ mailcap の edit= を解釈するようにした. - ・ URLFile の初期化が不完全だった問題の修正. - ・ 残っていた非公式パッチのゴミの削除. + table recalc_width() wmin 紊уゃ 0.05 紊. + 紊潟潟阪< filename, basename, type 紊. + http local file 篁ュх軒若帥篌檎激, 筝潟 + <ゃ純. + 潟<ゃ号紊. + mailcap edit= 茹i. + URLFile 筝絎c馹篆罩. + 罧c綣眼. 2000/10/05 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - -dump, -source_dump オプションの改善, frame 中の <meta> タグを無視 - するようにた. + -dump, -source_dump 激с潟劫, frame 筝 <meta> 帥違∴ + . From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 00930] HTML-quote in w3mbookmark.c - "ブックマークの登録" で URL や Title が HTML-quote されていないのを - 修正しました。 + "若脂" URL Title HTML-quote + 篆罩c障 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) Subject: [w3m-dev 00972] better display of progress bar ? - 2Mb のファイルを読んでいる時に、ずっと 0/2Mb になって悲しかったので、 - プログレスバーの表示を %.0f (%.1f) から %.3g にしてみたんですが、 - どんなもんでしょう。 + 2Mb <ゃ茯сc 0/2Mb c蚊cс + 違鴻若茵腓冴 %.0f (%.1f) %.3g 帥с + с 2000/10/05 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> - textlist に対する null pointer チェックを加えた. + textlist 絲障 null pointer с. From: Fumitoshi UKAI <ukai@debian.or.jp> Subject: [w3m-dev 01100] space in URL - * http://bugs.debian.org/60825 と http://bugs.debian.org/67466 + * http://bugs.debian.org/60825 http://bugs.debian.org/67466 - form を submit する時に value しか form_quote() してませんが - name の方も form_quote() する必要があります。 + form submit value form_quote() 障 + name 鴻 form_quote() 綽荀障 * http://bugs.debian.org/66887 - Goto URL: で先頭に space が入ると currentからの相対扱いになるのを - やめてほしいという報告。たしかに cut & paste するときになりがちなので - (ついでなので後ろの空白も削除) + Goto URL: у space ャ current後丈宴 + 祉怨 cut & paste < + (ゃсу腥榊純) From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01111] bug of conv.c - UTF-8 なページ(Shift_JIS と誤認される)で w3m の表示が乱れる - (コントロールシーケンスが漏れる)ことがあったので調べてみたところ、 - conv.c がバグってました。単純ミスです。すみませんm(_o_)m + UTF-8 若(Shift_JIS 茯よ) w3m 茵腓冴箙宴 + (潟潟若激若宴潟鴻羲)cц帥鴻帥 + conv.c 違c障膣鴻с帥障m(_o_)m From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01113] bug fix (content charset) - content charset の設定部でバグってましたので、修正 patch です。 + content charset 荐絎с違c障с篆罩 patch с 2000/10/02 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01112] Re: mailcap test= directive - mailcap の扱いを拡張しました. - ・ %s 以外に, %t (content-type name) を使えるようにしました. - ・ nametemplate オプションが有効になりました. - ・ %s が無い場合は, 標準入力を %s にリダイレクトしてコマンドを実行す - るようにしました. - シェルの構文としてボーンシェルを仮定しているので, OS/2 等ではこの - ままでは駄目かもしれません. - ・ needsterminal が指定されている場合は, フォアグランドでコマンドを実 - 行するようにしました. - ・ copiousoutput が指定されている場合は, コマンドの実行結果をバッファ - に読み込むようにしました. - ・ RFC 1524 には無いのですが, コマンドの実行結果を text/html として - バッファに読み込むためのオプション htmloutput を追加しました. - これは, 坂本さんが [w3m-dev 01079] で提案されていたものの代替案の - つもりです. - まだテストしてませんが, ちゃんと動いていれば + mailcap 宴≦宍障. + %s 篁ュ, %t (content-type name) 篏帥障. + nametemplate 激с潟鴻障. + %s <翫, 罔羣ュ %s ゃ潟潟絎茵 + 障. + 激с罕若潟激с篁絎, OS/2 膈с + 障障с薈障. + needsterminal 絎翫, ≪違潟с潟潟絎 + 茵障. + copiousoutput 絎翫, 潟潟絎茵腟 + 茯粋昭障. + RFC 1524 <с, 潟潟絎茵腟 text/html + <茯粋昭激с htmloutput 菴遵障. + , [w3m-dev 01079] ф罅篁f炊 + ゃс. + 障鴻障, < application/excel; xlHtml %s | lv -Iu8 -Oej; htmloutput - とすれば, lv の実行結果が html として w3m のバッファに表示される - はずです. - 同じ content-type のエントリが複数ある場合, htmloutput オプション - があるものを優先するようにしてあるので, 他のプログラムと mailcap - を共有しても問題無いと思います. - しかし, RFC 1524 に準拠してないのは確かなので, 御意見お待ちしてま - す. - ・ (gunzip_stream() による) 圧縮ファイルの閲覧が ftp に対しても使え - るようにしました. - 多分 [w3m-dev 01078] のバグだと思いますが, http に対して, 圧縮し - たテキストデータの閲覧ができなくなってたので, 修正しました. + , lv 絎茵腟 html w3m <茵腓冴 + с. + content-type 潟茲違翫, htmloutput 激с + , 篁違 mailcap + 掩馹<障. + , RFC 1524 羣腆冴, 緇≧頳緇< + . + (gunzip_stream() ) х軒<ゃ画Η ftp 絲障篏帥 + 障. + 紊 [w3m-dev 01078] 違障, http 絲障, х軒 + 鴻若帥画Ηсc, 篆罩c障. 2000/09/28 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01097] gunzip_stream problem - 圧縮ファイルを読み込んでる途中で, INT シグナルが発生したときの動作 - が変なので, 修正しました. + х軒<ゃ茯粋昭с筝, INT 激違榊篏 + 紊, 篆罩c障. From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01092] CONFIG_FILE - config.h の CONFIG_FILE を変更しても反映されないなと思ったら、 - いつのまにかハードコーディングに戻ってました。 - その修正です。 + config.h CONFIG_FILE 紊眼c + ゃ障若潟若c潟違祉c障 + 篆罩cс 2000/09/17 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01078] treatment of content type - document type の扱いの改良を行ないました. - ・ examineFile における, lessopen_stream と gunzip_stream の優先順位 - を変更しました. - ・ lessopen_stream の処理後は, plain text として扱うようにしました. - ・ lessopen_stream は, document type が text/* であるか, 外部ビューア - が設定されていない場合のみ使うようにしました. - また, text/html 以外の, text/* 型は w3m 内部で処理するようにしま - した. - ・ page_info_panel で表示される document type は, examineFile で処理 - される前の値を使うようにしました. - ・ 外部ビューアをバックグランドで動かすとき, コマンドラインに - ">/dev/null 2>&1 &" を付けてみました. + document type 宴壕茵障. + examineFile , lessopen_stream gunzip_stream 篏 + 紊眼障. + lessopen_stream 緇, plain text 宴障. + lessopen_stream , document type text/* с, 紊ャ若 + 荐絎翫推戎障. + 障, text/html 篁ュ, text/* w3m у + . + page_info_panel ц;腓冴 document type , examineFile у + ゃ篏帥障. + 紊ャ若≪違潟у, 潟潟ゃ潟 + ">/dev/null 2>&1 &" 篁帥障. 2000/09/13 -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> Subject: [w3m-dev 01053] Re: Location: in local cgi. - [w3m-dev 01051] のパッチでは、w3m -m で Location: のヘッダのある文章を - 見ると飛んでいってしまうので、local CGI のときのみ Location: を参照す - るように変更しました。 + [w3m-dev 01051] сw3m -m Location: 腴 + 荀蕋сc障сlocal CGI Location: с + 紊眼障 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01065] map key '0' - keymap がらみの修正です。 - ・単独の '0' をキーマップ可能にしました。 - 『10 j』とかは以前通りです。 - ・『ESC あ』など ESC の後に 0x80-0xff の文字を入力すると - 配列外アクセスをする可能性があったものを修正。 + keymap 帥篆罩cс + 糸 '0' 若純障 + 10 j篁ュс + 祉ESC ESC 緇 0x80-0xff 絖ュ + 紊≪祉鴻醇сc篆罩c From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 01066] 104japan - frame 中の form の文字コードの変換が上手く処理できていないよう - ですので、修正しました。 + frame 筝 form 絖潟若紊筝с + сс篆罩c障 2000/09/07 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01058] <dt>, <dd>, <blockquote> (Re: <ol> etc.) - ・ <blockquote> の前後の空行は常に入るようにした. - ・ <dt>, <dd> タグ直後の <p> タグを無視しないようにした. + <blockquote> 緇腥肴絽吾ャ. + <dt>, <dd> 帥亥翫 <p> 帥違∴. 2000/09/04 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01052] cellpadding, cellspacing, vspace, etc. - 空白や空行に関する, 次のようないくつかの変更を行ないました. - ・ 余分なセルが出来るのを防ぐために, <tr> や <td> の外にある - <a name="..."></a> や, <font> 等は次のセルに入るようにした. - ・ <table> の cellspacing 属性の解釈を間違っていたので, 修正した. - vspace 属性も解釈できるようにした. - ・ 空行の判定条件を変更した. - ・ </p> タグで空行が入るようにした. + 腥榊純腥肴≪, 罨<ゃ紊眼茵障. + 篏祉堺ャ蚊, <tr> <td> 紊 + <a name="..."></a> , <font> 膈罨<祉ャ. + <table> cellspacing 絮с茹ic, 篆罩c. + vspace 絮с茹iс. + 腥肴ゅ>散紊眼. + </p> 帥違х肴ャ. 2000/08/17 -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> Subject: [w3m-dev 01018] sqrt DOMAIN error in table.c From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01019] Re: sqrt DOMAIN error in table.c - 根号の中身が負になる場合がある問題の修正. + 劫垩筝荳莢翫馹篆罩. 2000/08/15 From: satodai@dog.intcul.tohoku.ac.jp (Dai Sato) Subject: [w3m-dev 01017] value of input tag in option panel - aito 連絡帳(http://ei5nazha.yz.yamagata-u.ac.jp/BBS/spool/log.html) - に出てた問題です。option 画面の外部 editor などに '"' が含まれる - コマンドが指定されると,再度 option 画面を呼び出した時に '"' 以降が - 表示されなくなると言う問題。 + aito g機絽鰹http://ei5nazha.yz.yamagata-u.ac.jp/BBS/spool/log.html鐚 + 冴馹сoption 脂≪紊 editor '"' 障 + 潟潟絎鐚綺 option 脂≪若喝冴 '"' 篁ラ + 茵腓冴荐馹 2000/08/06 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01016] Table geometry calculation - table のジオメトリー計算で実数を整数に丸める手順を変更して, table 幅の - 指定値と本当の幅の差が可能な限り小さくなるようにしてみました. + table 吾<取膊у違贋違筝吾紊眼, table 綛 + 絎ゃ綵綛綏純絨帥障. 2000/07/26 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01006] initialize PRNG of openssl 0.9.5 or later - バージョン 0.9.5 以降の openssl ライブラリで, ランダムデバイス - (/dev/urandom) が存在しない環境でも SSL が使えるようにしてみました. + 若吾с 0.9.5 篁ラ openssl ゃ, 潟ゃ + (/dev/urandom) 絖医с SSL 篏帥帥障. 2000/07/21 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01004] unused socket is not closed. - C-c (SIGINT) でファイルの読み込みを中断したとき, socket がクローズされ - ていない場合があるようです. + C-c (SIGINT) с<ゃ茯粋昭帥筝, socket 若冴 + 翫с. From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01005] table caption problem - </caption> を忘れていたときに w3m が終了しなくなる問題の問題の修正. + </caption> 綽 w3m 腟篋馹馹篆罩. 2000/07/19 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 00966] ssl and proxy authorization - authorization を必要とする場合の HTTP proxy サーバの SSL トンネリ - ングに問題があったので修正. + authorization 綽荀翫 HTTP proxy 泣若 SSL 潟 + 潟違馹cт信罩. From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 01003] Some bug fixes for table - table のジオメトリ計算のいくつかの問題に対する修正. + table 吾<荐膊ゃ馹絲障篆罩. 2000/07/16 From: SASAKI Takeshi <sasaki@ct.sakura.ne.jp> Subject: [w3m-dev 00999] Re: bookmark - ブックマークが登録できない場合がある問題の修正. + 若脂蚊с翫馹篆罩. 2000/06/18 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> Subject: [w3m-dev 00934] clear_buffer bug - clear_buffer が TRUE のとき, selBuf() で画面が消えてしまう問題に対する - バグフィクスです. + clear_buffer TRUE , selBuf() х脂≪羔障馹絲障 + 違c鴻с. 2000/06/17 From: SASAKI Takeshi <sasaki@ct.sakura.ne.jp> Subject: [w3m-dev 00929] ftp.c patch - USER コマンドに対して 230 が返ってきた場合には成功したものと - みなす patch を作成しました。以下に添付します。 + USER 潟潟絲障 230 菴c翫 + 帥 patch 篏障篁ヤ羞私障 2000/06/16 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 00923] some bug fixes - ・ #undef JP_CHARSET の場合に file.c が make できなくなっていた - バグ(私のミスでした_o_)の修正と、 - ・ buffer.c の '=' が '==' になっていたものの修正です。 + #undef JP_CHARSET 翫 file.c make сc + (腱鴻с_o_)篆罩c + buffer.c '=' '==' c篆罩cс From: Kazuhiko Izawa <izawa@nucef.tokai.jaeri.go.jp> Subject: [w3m-dev 00924] Re: w3m-0.1.11pre From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> Subject: [w3m-dev 00925] Re: w3m-0.1.11pre - file://localhost/foo の形式の URL にアクセスしようとしたとき異常終 - 了してしまう問題の修正. + file://localhost/foo 綵√ URL ≪祉鴻医幻腟 + 篋障馹篆罩. 2000.6.14 From: aito -・ ~/.w3m が開けなかったときには、cookie と config を保存しないようにした。 -・<isindex prompt="..." action="...">に対応。 -・<tag/>が解析できるように変更。 + ~/.w3m ccookie config 篆絖 +<isindex prompt="..." action="...">絲上 +<tag/>茹fс紊眼 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> -・[w3m-dev 00846] doc-jp/w3m.1 の形式を mandoc から man に変換。 -・[w3m-dev 00861] 標準入力からデータを読んでいるときに、'G' の - 挙動がおかしいバグの修正。 -・[w3m-dev 00874] FTP_proxy == "" の場合に落ちるバグの修正。 -・[w3m-dev 00875] uncompress, gunzip 部分のコードで気になった部分を修正 - しました。 -・[w3m-dev 00876] バッファに圧縮ファイルを表示しているとき、そのバッファを - 再表示すると文字が化けるバグの修正。 -・[w3m-dev 00887] getNextPage() がらみの修正/改良をしました。 - ・-m オプション使用時に quoted-printable をデコード可能にした。 - ・showProgress を getNextPage() 内で呼ぶ様にした。 - これにより、Transferred byte(buf->trbyte) に正しく値が入るようになった。 - ・変数名を loadBuffer 等とだいたい合わせた。 - また、getNextPage とは関係無い部分でも - ・showProgress を呼ぶ位置を正しいと思われる位置に変更 - しています。 +[w3m-dev 00846] doc-jp/w3m.1 綵√ mandoc man 紊 +[w3m-dev 00861] 罔羣ュ若帥茯с'G' + 違篆罩c +[w3m-dev 00874] FTP_proxy == "" 翫純<違篆罩c +[w3m-dev 00875] uncompress, gunzip 潟若фc篆罩 + 障 +[w3m-dev 00876] <х軒<ゃ茵腓冴< + 茵腓冴絖違篆罩c +[w3m-dev 00887] getNextPage() 帥篆罩/壕障 + -m 激с割戎 quoted-printable 潟若純 + showProgress getNextPage() у若倶 + Transferred byte(buf->trbyte) 罩cゃャc + 糸医 loadBuffer 膈 + 障getNextPage ≫<с + showProgress 若銀臀罩c篏臀紊 + 障 From: satodai@dog.intcul.tohoku.ac.jp (Dai Sato) -・[w3m-dev 00848] NEWS-OS 4 対応。 +[w3m-dev 00848] NEWS-OS 4 絲上 From: Hiroshi Kawashima <kei@arch.sony.co.jp> -・[w3m-dev 00849][w3m-dev 00863] mipsel patch の修正。 +[w3m-dev 00849][w3m-dev 00863] mipsel patch 篆罩c From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> and many others -・[w3m-dev 00851] #ifdef JP_CHARSET の付け忘れの修正。 +[w3m-dev 00851] #ifdef JP_CHARSET 篁綽篆罩c From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> -・[w3m-dev 00859] caption が折り返されないバグの修正。 -・[w3m-dev 00872] <LI> で空行が入るバグの修正。 -・[w3m-dev 00891]次のような問題に対するバグフィクスです. - 1. table 中の <pre><nobr>, <xmp>, <listing> で table が崩れる. - 2. <xmp>, <listing> の直後から改行までが無視されている. - 3. table 中の <textarea>, <xmp>, <listing> 等の中に含まれるタグも処 - 理してしまっていた. - 4. feed_select() のタグマッチングで <option> は始めの 7 文字だけしか - 見てなかったため, <optionxxx> 等のタグにもマッチしてた. - 逆に, </option> は > の前の空白が許されてなかった. - 5. <table> 中で </script> (</style>?) を忘れたときに, 無限ループにな - る. - さらに次のような変更をしました. - 6. goLine でカーソルが行頭に行くようにした. -・[w3m-dev 00914] 見えていないバッファのメモりを解放するときに、 - その内容をキャッシュとしてファイルに格納するよう改良。 +[w3m-dev 00859] caption 菴違篆罩c +[w3m-dev 00872] <LI> х肴ャ違篆罩c +[w3m-dev 00891]罨<馹絲障違c鴻с. + 1. table 筝 <pre><nobr>, <xmp>, <listing> table 經. + 2. <xmp>, <listing> 翫壕障с∴. + 3. table 筝 <textarea>, <xmp>, <listing> 膈筝障帥違 + 障c. + 4. feed_select() 帥違潟違 <option> 紮 7 絖 + 荀c, <optionxxx> 膈帥違. + , </option> > 腥榊純荐宴c. + 5. <table> 筝 </script> (</style>?) 綽, ♂若 + . + 罨<紊眼障. + 6. goLine с若純茵茵. +[w3m-dev 00914] 荀<<≪茹f障 + 絎鴻c激ャ<ゃ主壕 From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> -・[w3m-dev 00853] dirlist.in の修正。 +[w3m-dev 00853] dirlist.in 篆罩c From: Altair <NBG01720@nifty.ne.jp> -・[w3m-dev 00885][w3m-dev 00892] for OS/2 - ・NetscapeやLynxのブックマークから、ローカル・ファイルにアクセスて - せなかったのを修正(沢田石 順さんのパッチ)。file:///D|path/file形 - 式(Dはドライブレター)をサポート。 - ・作業域として“/tmp”ディレクトリを決め打ちしていたのを、環境変数 - TMPの設定を優先。(これも沢田石 順さんのパッチ)。 - ・DOSやOS/2のコンソールで広く使われているIBM codepage 850文字集合 - に、ISO latin-1からの変換を行い、英語版w3mでの文字化けをなくしま - した。 - ・Insertキーによるメニュー呼び出しを、OS/2環境でも可能に。 - ・xtermやkterm、rxvtなどで、画面にゴミが表示されてしまうのを対策。 - (XFree86/OS2で、ターミナルのIEXTENフラグのインプリメントがLinux - などと違うのが原因)。 - ・キー入力処理周りのパッチが、いかにもパッチでございますと言った雰 - 囲気だったのを、オリジナルのプログラムに似せた。 - -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> -・[w3m-dev 00898][w3m-dev 00899] close_effect0 と close_anchor0のバグ修正。 +[w3m-dev 00885][w3m-dev 00892] for OS/2 + NetscapeLynx若若祉<ゃ≪祉鴻 + c篆罩(羃∝亥 )file:///D|path/file綵 + 綣(Dゃ帥)泣若 + 私罐/tmpc羆冴<医紊 + TMP荐絎(羃∝亥 ) + DOSOS/2潟潟純若у鋎帥IBM codepage 850絖 + ISO latin-1紊茵沿w3mс絖 + + Insert若<ャ弱若喝冴OS/2医с純 + xtermktermrxvtс脂≪眼茵腓冴障絲丞 + (XFree86/OS2с帥若IEXTEN違ゃ潟<潟Linux + ) + 祉弱ュс障荐c + 我c吾違篌若 + +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> +[w3m-dev 00898][w3m-dev 00899] close_effect0 close_anchor0遺信罩c From: sekita-n@hera.im.uec.ac.jp (Nobutaka SEKITANI) -・[w3m-dev 00908] case-sensitive searchの実装。 +[w3m-dev 00908] case-sensitive search絎茖 2000.6.6 From: aito -・[w3m-dev 00826] - ・CGI の POST メソッドで取得したヘッダに Location: があった場合、そこで - redirect されたページを reload すると失敗するバグの修正。 - ・URL中の空白文字を消す処理を追加。 +[w3m-dev 00826] + CGI POST <純у緇 Location: c翫 + redirect 若吾 reload 紊掩違篆罩c + URL筝腥榊醇絖羔菴遵 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> -・[w3m-dev 00827] onA() が効いていないバグの修正。 +[w3m-dev 00827] onA() 鴻違篆罩c From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> -・[w3m-dev 00835] frame内のラベルへの移動動作の改良。 +[w3m-dev 00835] frame吾腱糸篏壕 2000.6.5 From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> -・[w3m-dev 00789] かなり古いバグですが, <li> タグの幅計算が狂ってるようです. -・[w3m-dev 00801] で改行されることがあるバグの修正。 -・[w3m-dev 00813] 文書中の > がうまく解析できない問題の修正。 -・[w3m-dev 00818][w3m-dev 00819] <textarea>内の<xmp>,<listing>等がうまく - 動いていないバグの修正。 -・[w3m-dev 00820] 漢字で行が終っているとき, 行の長さが画面幅 + 1 である場合 - 等で, スクリーンシフトしない事があるようです. +[w3m-dev 00789] ゃ違с, <li> 帥違綛荐膊cс. +[w3m-dev 00801] ф壕違篆罩c +[w3m-dev 00813] 娯賢 > 障頵fс馹篆罩c +[w3m-dev 00818][w3m-dev 00819] <textarea><xmp>,<listing>膈障 + 違篆罩c +[w3m-dev 00820] 羲√ц腟c, 茵激脂√ + 1 с翫 + 膈, 鴻若潟激篋с. From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -・[w3m-dev 00807] table中に<select>のない<option>が出現すると落ちる - バグの修正。 -・[w3m-dev 00816] <textarea>〜</textarea> 内の改行が空白に置き換わって - しまうようです。 +[w3m-dev 00807] table筝<select><option>榊憗純< + 違篆罩c +[w3m-dev 00816] <textarea></textarea> 壕腥榊純臀c + 障с -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> -・[w3m-dev 00814] 'V' コマンドでtextでないファイルを指定すると、その後 - 落ちるバグの修正。 +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> +[w3m-dev 00814] 'V' 潟潟textс<ゃ絎緇 + 純<違篆罩c 2000.6.1 -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> -・[w3m-dev 00578] HTTP_HOME 等と w3m -v の判定の順序を入れ - 替えるパッチです。 -・[w3m-dev 00581] BUFINFO関連のバグ修正。 -・[w3m-dev 00641] config 中の extbrowser の設定が反映されないバグの修正。 -・[w3m-dev 00660] 外部プログラムに渡すパス名が、/home/okada/.w3m//w3mv6244-0..pdf - のようになっていました。そのままでも動作に問題はないですが、修正してみました。 -・[w3m-dev 00672] configure 中で BUFINFO を定義。 -・[w3m-dev 00701] [w3m-dev 00684]の改良。 +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> +[w3m-dev 00578] HTTP_HOME 膈 w3m -v ゅ綺ャ + 帥с +[w3m-dev 00581] BUFINFO∫c遺信罩c +[w3m-dev 00641] config 筝 extbrowser 荐絎違篆罩c +[w3m-dev 00660] 紊違羝<劫/home/okada/.w3m//w3mv6244-0..pdf + c障障障с篏馹с篆罩c帥障 +[w3m-dev 00672] configure 筝 BUFINFO 絎臂 +[w3m-dev 00701] [w3m-dev 00684]壕 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -・[w3m-dev 00582] - ・w3m -T a -B 等でセーブ(キャンセル)後 SEGV します。 - ・w3m -o 1 等で SEGV します。 - ・リンクがアクティブにならなくありませんか? - ・kterm でマウスが効きません。 -・[w3m-dev 00584] - ・show_params() で sections[j].name の方も conv() すべきと思います。 -・[w3m-dev 00586] - ・define CLEAR_BUF の場合にバッファ選択画面で、 - Currentbuf 以外のバッファが [0 line] と表示されてしまいます。 -・[w3m-dev 00605] - ・show_params() の表示の改良。 - ・define CLEAR_BUF の場合に HTML 以外の local ファイルが - reload されると source ファイルがテンポラリファイルに - 変わってしまいます。さらに 2 度目に reload されると、 - 読みだし口と同じファイルに上書きしてしまいます。 -・[w3m-dev 00606] textarea に最初からあった文章を変更せずに送信すると、改行コード - が CR のまま送信してしまうバグの修正。 -・[w3m-dev 00630] マウスをドラッグしてスクロールさせる時、斜めにスクロールさせると - 動作がおかしかったので修正しました。 -・[w3m-dev 00654] [w3m-dev 00666] CLEAR_BUF 定義時に、FORMのあるページにBACKで戻ると - FORMの内容が消えるバグの修正。 -・[w3m-dev 00677] [w3m-dev 00704] 日本語コード判定の改良。 -・[w3m-dev 00684] コマンドライン引数のチェックを少し強化しました。 -・[w3m-dev 00687] save 時の動作について以下の修正と改良をしました。 - ・ftp のとき Content-Type: application/? 等で download になる時、 - パイプへの出力を許さない様にした。 - ・save するファイル名を URL から取る時、query 部分は使わない様にした。 - ・URL からファイル名が取れなかった場合は、index.html を使うようにした。 -・[w3m-dev 00696] - ・PIPE_SHELL('#') で読んだ時にパイプが閉じられなくなってしまっていた - ・READ_SHELL('@') や PIPE_SHELL('#') から読み込んだバッファを - VIEW('v') で HTML 表示できなかった - ・mouse 使用時に EXEC_SHELL('!') の結果が流れてしまっていた -・[w3m-dev 00706] CLEAR_BUF 時に、一度 : でアンカー化したバッファを再び - 表示するとアンカーが消えているバグの修正。 -・[w3m-dev 00720] dirlist.cgi を修正して、ツリー構造の場合に - 選択したディレクトリの位置に飛ぶ様にしました。 -・[w3m-dev 00721] CLEAR_BUF を ~/.w3m/config で変更できる様にしてみました。 -・[w3m-dev 00724] -m オプション使用時に一つのヘッダが複数行に渡ると - 上手く扱えていないバグの修正。 -・[w3m-dev 00728] HTTPヘッダに日本語が入っていた場合の対処。 +[w3m-dev 00582] + w3m -T a -B 膈с祉若(c潟祉)緇 SEGV 障 + w3m -o 1 膈 SEGV 障 + 祉潟≪c障鐚 + kterm с鴻鴻障 +[w3m-dev 00584] + show_params() sections[j].name 鴻 conv() 鴻障 +[w3m-dev 00586] + define CLEAR_BUF 翫♂御脂≪с + Currentbuf 篁ュ< [0 line] 茵腓冴障障 +[w3m-dev 00605] + show_params() 茵腓冴壕 + define CLEAR_BUF 翫 HTML 篁ュ local <ゃ + reload source <ゃ潟<ゃ + 紊c障障 2 綺 reload + 茯帥c<ゃ筝吾障障 +[w3m-dev 00606] textarea c腴紊眼篆<壕潟若 + CR 障冗篆<障違篆罩c +[w3m-dev 00630] 鴻違鴻若鴻若 + 篏cт信罩c障 +[w3m-dev 00654] [w3m-dev 00666] CLEAR_BUF 絎臂FORM若吾BACKф祉 + FORM絎鴻羔違篆罩c +[w3m-dev 00677] [w3m-dev 00704] ユ茯潟若ゅ壕 +[w3m-dev 00684] 潟潟ゃ喝違с絨綣桁障 +[w3m-dev 00687] save 篏ゃ篁ヤ篆罩c壕障 + ftp Content-Type: application/? 膈 download + ゃ吾阪荐宴罕 + save <ゃ URL query 篏帥罕 + URL <ゃc翫index.html 篏帥 +[w3m-dev 00696] + PIPE_SHELL('#') цゃc障c + READ_SHELL('@') PIPE_SHELL('#') 茯粋昭< + VIEW('v') HTML 茵腓冴сc + mouse 篏睡 EXEC_SHELL('!') 腟羌障c +[w3m-dev 00706] CLEAR_BUF 筝綺 : с≪潟弱< + 茵腓冴≪潟若羔違篆罩c +[w3m-dev 00720] dirlist.cgi 篆罩c惹翫 + 御c篏臀蕋倶障 +[w3m-dev 00721] CLEAR_BUF ~/.w3m/config у眼с罕帥障 +[w3m-dev 00724] -m 激с割戎筝ゃ茲域羝< + 筝宴違篆罩c +[w3m-dev 00728] HTTPユ茯ャc翫絲上 From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> -・[w3m-dev 00589] w3m -T a -B 等でセーブ(キャンセル)後 SEGV するバグの修正 -・[w3m-dev 00595] frameset 関連バグ修正 -・[w3m-dev 00610] frameset 関連バグ修正 -・[w3m-dev 00631][w3m-dev 00633] ID_EXT関連バグ修正 -・[w3m-dev 00632] <META HTTP-EQUIV="Refresh">のURL中にcharacter entity が - あった場合の扱いの変更。 -・[w3m-dev 00646] クリッカブルフォームイメージのちょぃと斜め下をクリックするのと、 - table化frameにframe nameをIDタグとして埋め込むpatchをつけます。 -・[w3m-dev 00680] -・[w3m-dev 00683] frame 中で <STRONG> がコメントになってしまうバグの修正。 -・[w3m-dev 00707] frame関連のバグ修正 -・[w3m-dev 00774] file の close 漏れがあり、fileが新たにopenできなくなるバグの - 修正。 +[w3m-dev 00589] w3m -T a -B 膈с祉若(c潟祉)緇 SEGV 違篆罩 +[w3m-dev 00595] frameset ∫c遺信罩 +[w3m-dev 00610] frameset ∫c遺信罩 +[w3m-dev 00631][w3m-dev 00633] ID_EXT∫c遺信罩 +[w3m-dev 00632] <META HTTP-EQUIV="Refresh">URL筝character entity + c翫宴紊眼 +[w3m-dev 00646] 若ゃ<若吾<筝 + tableframeframe nameID帥違莨若patchゃ障 +[w3m-dev 00680] +[w3m-dev 00683] frame 筝 <STRONG> 潟<潟c障違篆罩c +[w3m-dev 00707] frame∫c遺信罩 +[w3m-dev 00774] file close 羲file違openс違 + 篆罩c From: SASAKI Takeshi <sasaki@sysrap.cs.fujitsu.co.jp> -・[w3m-dev 00598] ID_EXT関連バグ修正 -・[w3m-dev 00700] 'o' でオプション設定画面に行くと「表示用漢字コード」が常に - EUC-JP になってしまうようです。 +[w3m-dev 00598] ID_EXT∫c遺信罩 +[w3m-dev 00700] 'o' с激с活┃絎脂≪茵茵腓榊羲√潟若絽吾 + EUC-JP c障с From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> -・[w3m-dev 00602] <title>...</title>の処理時に画面に改行が入るバグの修正。 -・[w3m-dev 00617] <table> 中の <blockquote>(または <ul>, <ol>, <dl>) 中にある - <table> の表示がおかしくなるバグの修正。 -・[w3m-dev 00675] (0xa0) が表示できない端末への対応。 -・[w3m-dev 00732] <!--comment --\n> の形のコメントがうまく扱えていなかった - バグの修正。 -・[w3m-dev 00750] [w3m-dev 00772] Win95のtelnet等で、EUCの2バイト目にカーソル - がくると文字化けするバグの修正。 +[w3m-dev 00602] <title>...</title>脂≪壕ャ違篆罩c +[w3m-dev 00617] <table> 筝 <blockquote>(障 <ul>, <ol>, <dl>) 筝 + <table> 茵腓冴違篆罩c +[w3m-dev 00675] (0xa0) 茵腓冴с腴吾絲上 +[w3m-dev 00732] <!--comment --\n> 綵≪潟<潟障宴c + 違篆罩c +[w3m-dev 00750] [w3m-dev 00772] Win95telnet膈сEUC2ゃ若純 + 絖違篆罩c From: Fumitoshi UKAI <ukai@debian.or.jp> -・[w3m-dev 00679] USE_SSL_VERIFY しているbinaryで option を save すると SSL が使え - なくなるバグを fix するパッチです。 -・[w3m-dev 00686] w3mhelperpanel.c の修正。 +[w3m-dev 00679] USE_SSL_VERIFY binary option save SSL 篏帥 + 違 fix с +[w3m-dev 00686] w3mhelperpanel.c 篆罩c From: sakane@d4.bsd.nes.nec.co.jp (Yoshinobu Sakane) -・[w3m-dev 00692] w3m-0.1.10-pre+666 を EWS4800 の /usr/abiccs/bin/cc でmake時 - にfile.cがコンパイルエラーとなりました。 +[w3m-dev 00692] w3m-0.1.10-pre+666 EWS4800 /usr/abiccs/bin/cc make + file.c潟潟ゃ若障 From: Hiroshi Kawashima <kei@arch.sony.co.jp> -・[w3m-dev 00742] w3m-0.1.9 を mipsel アーキテクチャで動作させるための - パッチを作成しましたので、ポストさせていただきます。(変更点は gc 回り - です。) +[w3m-dev 00742] w3m-0.1.9 mipsel ≪若cу篏 + 篏障с鴻障(紊雁鴻 gc + с) 2000.5.17 From: Hiroaki Shimotsu <shim@d5.bs1.fc.nec.co.jp> -・[w3m-dev 00543] personal_document_rootが効かなくなっているバグの修正。 -・[w3m-dev 00544] local で <a href="foo/">foo/</a> のような anchor を辿るとき - foo に index.html のような file が存在したら、 - dirlist の代わりにそちらを表示する patch を作成しました。 - option でその file 名を指定します。(一個だけ) - あと document_root を展開するようにしました。 +[w3m-dev 00543] personal_document_root鴻c違篆罩c +[w3m-dev 00544] local <a href="foo/">foo/</a> anchor 莨帥 + foo index.html file 絖 + dirlist 篁c<茵腓冴 patch 篏障 + option с file 絎障(筝) + document_root 絮障 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -・[w3m-dev 00545] w3m -num < file の様に -num オプションを標準入力(パイプ)と - 共に使った時に 'v'(view HTML) で行番号までも整形されて - しまうバグを修正しました。 -・[w3m-dev 00557] -dump 指定時に一時ファイルが消えないバグの修正。 +[w3m-dev 00545] w3m -num < file 罕 -num 激с潟罔羣ュ(ゃ) + 宴篏帥c 'v'(view HTML) ц垩障с翫就 + 障違篆罩c障 +[w3m-dev 00557] -dump 絎筝<ゃ羔違篆罩c From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> -・[w3m-dev 00568] <table>中で、<tr>..</tr>の外に<blockquote>があると - 表が崩れる問題の修正。 +[w3m-dev 00568] <table>筝с<tr>..</tr>紊<blockquote> + 茵經馹篆罩c 2000.5.16 From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> -・[w3m-dev 00487] termcapにsrが無いばあいに正常に動くよう改良。 -・[w3m-dev 00512][w3m-dev 00514][w3m-dev 00515] 漢字コード判定の改良。 -・[w3m-dev 00530] w3mが <ISINDEX> を使ったcgiをうまく処理できないのを - 何とかするpatchです。 -・[w3m-dev 00537] URL中の改行を除くように改良。 -・[w3m-dev 00542] 「HTMLの中の多重framesetの一部の、他のHTMLのframesetによ - る上書き」に対応。 +[w3m-dev 00487] termcapsr<違罩e幻壕 +[w3m-dev 00512][w3m-dev 00514][w3m-dev 00515] 羲√潟若ゅ壕 +[w3m-dev 00530] w3m <ISINDEX> 篏帥ccgi障с + 篏patchс +[w3m-dev 00537] URL筝壕ゃ壕 +[w3m-dev 00542] HTML筝紊frameset筝篁HTMLframeset + 筝吾絲上 From: SASAKI Takeshi <sasaki@ct.sakura.ne.jp> -・[w3m-dev 00488] id属性のサポートが不完全であった問題の修正。 -・[w3m-dev 00497] configure で IPv6の環境を自動検出するように改良。 +[w3m-dev 00488] id絮с泣若筝絎сc馹篆罩c +[w3m-dev 00497] configure IPv6医罎冴壕 From: Kiyokazu SUTO <suto@ks-and-ks.ne.jp> -・[w3m-dev 00489] - ・ USE_GPMもUSE_SYSMOUSEも定義されない環境だと、 USE_MOUSEが定義され - ていてかつ{k,x}term上でも、マウスが使えない。 - ・ SSLのクライアント認証を要求するページが、まったく表示されない。 - ・ -o オプションのパラメータ一覧を表示させるオプションを追加。 -・[w3m-dev 00519] I コマンドに関するセキュリティホールの修正。 +[w3m-dev 00489] + USE_GPMUSE_SYSMOUSE絎臂医 USE_MOUSE絎臂 + {k,x}term筝с鴻篏帥 + SSLゃ≪潟茯荐若荀羆若吾障c頫腓冴 + -o 激с潟<若推荀с茵腓冴激с潟菴遵 +[w3m-dev 00519] I 潟潟≪祉ャc若篆罩c From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -・[w3m-dev 00498] ファイル名補完で、 / (root)からの場合に補間できなくなって - いたバグの修正。 -・[w3m-dev 00508] 色の指定が出来なくなっていたバグの修正。 -・[w3m-dev 00518] I コマンドに関するセキュリティホールの修正。 -・[w3m-dev 00535] マウスのGPM/SYSMOUSE対応のバグ修正。 +[w3m-dev 00498] <ゃ茖絎с / (root)翫茖сc + 違篆罩c +[w3m-dev 00508] 蚊絎堺ャc違篆罩c +[w3m-dev 00518] I 潟潟≪祉ャc若篆罩c +[w3m-dev 00535] 鴻GPM/SYSMOUSE絲上遺信罩c From: Kazuhiro Nishiyama <nishiyama@mx1.tiki.ne.jp> -・[w3m-dev 00503] cygwinで$extensionがちゃんと設定されていなかったので - なおしてみました。ついでにいちいちWho are you?って聞かれるのも修正し - てみました。 +[w3m-dev 00503] cygwin$extension<荐絎c + 帥障ゃс<Who are you?c篆罩c + 帥障 From: Hiroaki Shimotsu <shim@nw.bs1.fc.nec.co.jp> -・[w3m-dev 00516] formに文字列を送信するときに、safeな文字をエスケープ - しないようにした。 +[w3m-dev 00516] form絖篆<safe絖鴻宴若 + -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> -・[w3m-dev 00471] 画面の最初にリンクがあるページを表示させたときに、リン - クがアクティブにならないことがあるのを修正するパッチです。 +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> +[w3m-dev 00471] 脂≪潟若吾茵腓冴 + ≪c篆罩cс From: Fumitoshi UKAI <ukai@debian.or.jp> -・[w3m-dev 00539] proxyの初期設定のバグ修正。 +[w3m-dev 00539] proxy荐絎遺信罩c 2000.4.24 From: aito -・見えていないバッファはメモりから削除するようにしてみた。 -・file:// 形式でローカルファイルにアクセスして失敗した場合、 - http:// を補わないようにした。 -・GPMまたはSYSMOUSEを使っていないと、xterm/kterm上でマウスが - 効かないバグの修正。 +肢<<≪ゃ帥 +file:// 綵√с若<ゃ≪祉鴻紊掩翫 + http:// 茖 +GPM障SYSMOUSE篏帥cxterm/kterm筝с鴻 + 鴻違篆罩c From: rubikitch <rubikitch@ruby-lang.org> -・Buffer の URL をファイルにセーブする機能追加。 +Buffer URL <ゃ祉若罘処申 From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> -・FTP proxyが効かなくなっていたバグの修正。 -・C comment cleanup. -・画面サイズを変更すると、1回のキー入力ごとに reshapeBuffer() - が呼ばれていたバグの修正。 +FTP proxy鴻c違篆罩c +C comment cleanup. +紫脂≪泣ゃ冴紊眼鐚弱ュ reshapeBuffer() + 若違違篆罩c From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> -・gc が /usr/local 以下にあると configure で - found -> dones't seem to work となる場合があります。 -・w3m -v として W3M HomePage に飛ぼうとするとこけました。 -・ISO-8859-1 の『×』と『÷』のコードが間違っていました。 - # LANG == EN の時 0x80-0x9F を表示しない様になっていますが - # ISO-8859-* 以外の CP??? や Big5 で使っている人が困るかも。 -・file://host の形式の時 file:/ をアクセスしていたのを、 - file://host/ と同様に ftp://host/ をアクセスする様に修正。 - (場合分けの抜かりでした)。 - なお、file://user@host/hoge は file:/hoge をアクセスするのですが、 - 何故わざわざこうしたか自分でも思い出せないのでそのままにしておきます。 - (1999/08/31 版への patch だった) +gc /usr/local 篁ヤ configure + found -> dones't seem to work 翫障 +w3m -v W3M HomePage 蕋若障 +ISO-8859-1 テテ激潟若c障 + 鐚 LANG == EN 0x80-0x9F 茵腓冴罕c障 + 鐚 ISO-8859-* 篁ュ CP??? Big5 т戎c篋冴違 +file://host 綵√ file:/ ≪祉鴻 + file://host/ 罕 ftp://host/ ≪祉鴻罕篆罩c + (翫с) + file://user@host/hoge file:/hoge ≪祉鴻с + 篏с冴с障障障 + (1999/08/31 吾 patch c) 2000.4.21 From: Kiyokazu SUTO <suto@ks-and-ks.ne.jp> - ・ 匿名FTPログイン用パスワードが文字「@」で終わっている場合、 FTPサーバと - の接続に使われるソケットからFQDNを求めて、パスワードに追加する。 - ・ オプションの設定を、「--オプション名=値」という形で、コマンドラインから - 可能にする。 - ・ news URIで記事を取得する際に、環境変数NNTPMODEの値が空文字列ではないと - き、その値を引数として「mode」コマンドを投入する。 - ・ SSL関連の以下のオプションを追加。 + 水FTP違ゃ括鴻若絖@хc翫 FTP泣若 + ・膓篏帥純宴FQDN羆鴻若菴遵 + 激с潟荐絎--激с喝=ゃ綵≪с潟潟ゃ潟 + 純 + news URIц篋緇医紊NNTPMODEゃ腥堺絖с + ゃ綣違mode潟潟ャ + SSL∫c篁ヤ激с潟菴遵 ssl_verify_server ON/OFF - SSLのサーバ認証を行う(デフォルトはOFF)。 - ssl_cert_file ファイル名 - SSLのクライアント用PEM形式証明書ファイル(デフォルトは<NULL>)。 - ssl_key_file ファイル名 - SSLのクライアント用PEM形式秘密鍵ファイル(デフォルトは<NULL>)。 - ssl_ca_path ディレクトリ名 - SSLの認証局のPEM形式証明書群のあるディレクトリへのパス(デフォルトは<NULL>) - 。 - ssl_ca_file ファイル名 - SSLの認証局のPEM形式証明書群のファイル(デフォルトは<NULL>)。 - ただし「SSLEAY_VERSION_NUMBER >= 0x0800」な環境でないと無駄なコードが増 - えるだけなので、 configure時にdisableしておいたほうがよいでしょう。 - - また実際に認証を行う場合、 ssl_ca_pathまたはssl_ca_fileで、サーバの鍵に - 署名している認証局の証明書を (ssl_verify_serverのON/OFFに関係無く) 指定 - しないと認証が成功しないようです。 + SSL泣若茯荐若茵(OFF) + ssl_cert_file <ゃ + SSLゃ≪潟PEM綵√頥惹吾<ゃ(<NULL>) + ssl_key_file <ゃ + SSLゃ≪潟PEM綵√霡絲泣<ゃ(<NULL>) + ssl_ca_path c + SSL茯荐弱PEM綵√頥惹悟召c吾(<NULL>) + + ssl_ca_file <ゃ + SSL茯荐弱PEM綵√頥惹悟召<ゃ(<NULL>) + SSLEAY_VERSION_NUMBER >= 0x0800医с♂潟若紜 + с configuredisable祉с + + 障絎茯荐若茵翫 ssl_ca_path障ssl_ca_fileс泣若泣 + 臀峨茯荐弱荐惹吾 (ssl_verify_serverON/OFF≫<) 絎 + 茯荐若с From: aito -・幅の相対指定されている表が入れ子になり、COLSPANが2以上の - 場合にCOLSPAN指定が効かないバグの修正。 -・configureにオプションを追加。 -・local fileからのリンク参照に Referer: が付いていたバグの修正。 +糸後丈絎茵ャ絖COLSPAN2篁ヤ + 翫COLSPAN絎鴻違篆罩c +configure激с潟菴遵 +local file潟с Referer: 篁違篆罩c From: Rogue Metal - Jake Moorman <roguemtl@stampede.org> - All T/NILs are replaced with TRUE/FALSE. - Messages are added for FTP connection. -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> -・一行入力中にDELを押すと落ちるバグの修正。 -・コメント処理のバグ修正。 +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> +私茵ュ筝DEL若純<違篆罩c +祉潟<潟遺信罩c From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> -・FTP_proxy 設定時に、proxyが認証を要求する場合の対処。 +FTP_proxy 荐絎proxy茯荐若荀羆翫絲上 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -・<input_alt fid=0>でw3mが落ちるバグの修正。 +<input_alt fid=0>w3m純<違篆罩c 2000.4.7 From: aito -・<select>に対して</select>が無いとコアダンプするバグの修正。 -・#ifdef USE_GPM, #ifdef USE_SYSMOUSE が #ifdef MOUSE で - 囲まれていなかったバグの修正。 +<select>絲障</select><潟≪潟違篆罩c +#ifdef USE_GPM, #ifdef USE_SYSMOUSE #ifdef MOUSE + 蚊障c違篆罩c -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> -・ローカルファイルへのリンクをたどるとコアダンプするバグの - 修正。 -・行編集でDELを使うと落ちるバグの修正。 +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> +祉若<ゃ吾潟潟≪潟違 + 篆罩c +肢膩DEL篏帥純<違篆罩c From: Shin HATTORI <mituzi@he.mirai.ne.jp> -・bzip2 サポートのバグ修正。 +bzip2 泣若遺信罩c From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -・-dump, -dump_head, -dump_source オプションが競合している - バグの修正。 -・-oオプションを追加。 -・-dump オプションを使うとコアダンプするバグの修正。 -・メッセージの表示中にマウスがきかなくなるバグの修正。 -・ウィンドウサイズ変更がうまくいかなかったバグの修正。 -・終了時の確認のデフォルトを n に変更。 -・term.c での ScreenImage の確保を動的にした。 +-dump, -dump_head, -dump_source 激с潟腴九 + 違篆罩c +-o激с潟菴遵 +-dump 激с潟篏帥潟≪潟違篆罩c +祉<祉若吾茵腓坂賢鴻違篆罩c +祉c潟泣ゃ阪眼障c違篆罩c +紫篋腆肴 n 紊眼 +term.c с ScreenImage 腆坂 From: Sven Mascheck <mascheck@faw.uni-ulm.de> * There are websites using (unprintable) special characters (eg '0x96') @@ -1946,40 +1946,40 @@ From: lars brinkhoff <lars@nocrew.org> ARM linux patch. From: Hiroaki Shimotsu <shim@nw.bs1.fc.nec.co.jp> -'u'コマンドで、formの種類が表示されるように改良。 +'u'潟潟сform腮蕁茵腓冴壕 From: patakuti -o Cygwin では snprintf がなくてコンパイルできなかったので修正 -o text/html 以外のドキュメントを -dump しようとした場合の - 挙動がおかしかったので修正 -o ローカルファイルのファイルの拡張子と mime-type の対応を - ファイルに記述できるようにした (多分 ftp でも 同様) +o Cygwin с snprintf 潟潟ゃсcт信罩 +o text/html 篁ュャ<潟 -dump 翫 + cт信罩 +o 若<ゃ<ゃ≦宍絖 mime-type 絲上 + <ゃ荐菴違с (紊 ftp с 罕) 2000.4.5 -From: 坂本 <hsaka@mth.biglobe.ne.jp> -・'U'コマンドで、現在のバッファのURLがヒストリの先頭に来るようにした。 -・table 中に <h1>〜<h1> があると幅がおかしくなります。 - 実際には frame でおかしくなることがありそうです。 -・table 中に開始タグのない </ol>,</ul>,</dl>,</blockquote> があると、 - table が崩れます。(こんな HTML を書く方が悪いのですが) +From: <hsaka@mth.biglobe.ne.jp> +'U'潟潟с憜<URL鴻ャ +table 筝 <h1><h1> 綛障 + 絎 frame сс +table 筝紮帥違 </ol>,</ul>,</dl>,</blockquote> + table 經障( HTML 吾鴻с) From: "Shin'ya Kumabuchi" <kumabu@t3.rim.or.jp> -・通常のロード時に Pragma: no-cache を出すことがあるバグの修正。 +脂絽吾若 Pragma: no-cache 冴違篆罩c From: Tomoyuki Kosimizu <greentea@fa2.so-net.ne.jp> -w3m-0.1.6のrc.cで些細な問題を見つけましたので報告いたします。 +w3m-0.1.6rc.cт膣違馹荀ゃ障у怨障 2000.3.29 -From: Altair☆ <NBG01720@nifty.ne.jp> +From: Altair <NBG01720@nifty.ne.jp> -OS/2対応強化。 -・ローカル・ファイルのオープンに失敗した時、http://を仮定してリト - ライさせることで、それがディレクトリだった時にdirlist.cgiが呼び - 出して貰えないことがあるのを対策。(url.cの後半) -・非XのOS/2環境でも矢印キーを効くようにする -・外部プログラムがうまく呼び出されなかったのを修正 -・ファイル・アクセスでドライブ・レターを有効にする +OS/2絲上綣桁 +祉若祉<ゃ若潟紊掩http://篁絎 + ゃсccdirlist.cgi若 + 冴莢違絲丞(url.c緇) +脂XOS/2医с√違若鴻 +糸違障若喝冴c篆罩 +祉<ゃ祉≪祉鴻сゃ祉帥若鴻 From: David Leonard <leonard@csee.uq.edu.au> after filling in a simple form @@ -2005,37 +2005,37 @@ element is not wrapped. I have verified that the bug exists in w3m finished compiling it. From: aito -<select> なしで <option> が出現すると core dump するバグの修正. -ドキュメントの先頭に <blockquote> が来ると,先頭行がインデント -されないバグの修正. -application/x-bzip に対応. -mktable, w3mbookmark, w3mhelperpanel で GC の初期化ができない -ことがあるバグの修正. -マウスのドラッグ動作が上下と左右で一貫性がなかったバグの修正. +<select> <option> 榊憗 core dump 違篆罩o +ャ<潟 <blockquote> ャ鐚茵ゃ潟潟 +違篆罩o +application/x-bzip 絲上鐚 +mktable, w3mbookmark, w3mhelperpanel GC с +違篆罩o +鴻医篏筝筝綏劻т莢сc違篆罩o From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> -正規のタグでない <...>を使うと挙動がおかしいことがあるバグの修正. -quoteShell() のセキュリティホールの修正. -set_environ() の中でcore dump することがあるバグの修正. -<table width="xxx%"> の表示がうまくいかなかったバグの修正. -'!' でコマンドを実行したときに画面が乱れるバグの修正. +罩h帥違с <...>篏帥違篆罩o +quoteShell() 祉ャc若篆罩o +set_environ() 筝core dump 違篆罩o +<table width="xxx%"> 茵腓冴障c違篆罩o +'!' с潟潟絎茵脂≪箙宴違篆罩o From: Fumitoshi UKAI <ukai@debian.or.jp> -各種一時ファイルのパスに // が含まれるバグの修正. -0.1.7 で https が使えなくなっているバグの修正. +腮筝<ゃ鴻 // 障違篆罩o +0.1.7 https 篏帥c違篆罩o From: Hiroaki Shimotsu <shim@nw.bs1.fc.nec.co.jp> -proxy を設定していて,そこに接続できなかった場合はエラーになる -ように修正. -w3m に直接引数として与えた URL が, 'U' コマンドの履歴に入らない -バグの修正. +proxy 荐絎鐚・膓сc翫若 +篆罩o +w3m 贋・綣違筝 URL 鐚 'U' 潟潟絮ユ眼ャ +違篆罩o From: sasaki@ct.sakura.ne.jp -HTML4.0 の ID 属性をリンクで辿れるようにしてみました。 +HTML4.0 ID 絮с潟ц梢帥障 From: Okabe Katsuya <okabe@fphy.hep.okayama-u.ac.jp> -table の中に <input type=hidden> などがあると表が崩れるバグの -修正. +table 筝 <input type=hidden> 茵經違 +篆罩o 2000.2.12 From: Rogue Metal - Jake Moorman <roguemtl@stampede.org> @@ -2061,107 +2061,107 @@ From: Rogue Metal - Jake Moorman <roguemtl@stampede.org> 2000.1.28 From: aito -mySystem() を変更.自前で fork/execvp するのではなくて,shellの -特殊文字をエスケープしてから system() を使うようにしてみた. +mySystem() 紊器 fork/execvp с鐚shell +号絖鴻宴若 system() 篏帥帥鐚 From: SASAKI Takeshi <sasaki@ct.sakura.ne.jp> -w3mbookmark の改良. -1. 正常に登録できた場合は今の動作 -2. 登録できない場合は登録パネルに戻る +w3mbookmark 壕鐚 +1. 罩e幻脂蚊с翫篁篏 +2. 脂蚊с翫脂蚊祉 From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> - frame表示bufferからbufferを作らない(ダウンロードまたはプログラム起 - 動)場合に、"Can't なんとか"というframeのあるbufferができる。reloadす - ると、もう一度ダウンロードしてくる -を直しました。framesetは、今のところ8重目きめうちで切っています。 -あいかわらずw3m-0.1.6からのパッチです。今のところ、下の不具合があるこ -とがわかっています。 - "q" で正常終了しても一部のキャッシュファイルが残ることがある - もしかしたらtarget以外のframeも上書きするかもしれない - frame内のmetaのhttp-equiv="refresh"を表示しないので、稀に困るペー - ジがある + frame茵腓bufferbuffer篏(潟若障違莎 + )翫"Can't "framebufferсreload + 筝綺潟若 +眼障frameset篁8<уc障 +w3m-0.1.6с篁筝筝桁 +c障 + "q" фe幻腟篋筝c激ャ<ゃ罧 + target篁ュframe筝吾 + framemetahttp-equiv="refresh"茵腓冴с腮違 + 吾 From: aito -GlobalKeymap[] 他のキーマップを,w3mFuncList[] の添字の配列に変更. -gopher:, news: へのアクセスをオプションにした. -searchForward, searchBackward のバグ修正. -system()を利用するように mySystem() を変更. -FORMAT_NICE をデフォルトで off とするよう変更. +GlobalKeymap[] 篁若鐚w3mFuncList[] 羞糸紊器 +gopher:, news: 吾≪祉鴻激с潟鐚 +searchForward, searchBackward 遺信罩o +system() mySystem() 紊器 +FORMAT_NICE off 紊器 From: IIMURA Takuji <uirou@din.or.jp> - ・background image 以外に、 + background image 篁ュ APPLET ARCHIVE="" EMBED SRC="" - の二つへも link を作るようにしました。 - なので、#ifdef BACKGROUND_IMAGE_DISPLAY から、 - #ifdef VIEW_UNSEENOBJECTS へ名前を変えました。 - ・'o' で開くオプションメニューで - 「現在選択されているリンクの色を指定する」を使って ON/OFF 出来るようにしました。 - cookie 関係で、 - 「クッキーを使用する」 ON/OFF の他に、 - 「クッキーを受け付ける」 ON/OFF もつけました。 - これで、既に受け付けた cookie を送るだけで、 - 新しい cookie は食べない mode に出来ます。 + 篋ゃ吾 link 篏障 + с#ifdef BACKGROUND_IMAGE_DISPLAY + #ifdef VIEW_UNSEENOBJECTS 後紊障 + 'o' ч激с潟<ャ若 + 憜御潟蚊絎篏帥c ON/OFF 堺ャ障 + cookie ≫с + 若篏睡 ON/OFF 篁 + 若篁 ON/OFF ゃ障 + с≪篁 cookie с + 違 cookie 蕋鴻 mode 堺ャ障 From: Christian Weisgerber <w3m-dev-en@mips.rhein-neckar.de> FreeBSD sysmouse support. From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) --B -dump などで落ちるバグの修正と関連動作の整理です。 -・入力 - 引数に URL(ファイル名)が無い場合、リダイレクト(< file)かパイプ - → -B(ブックマーク) → HTTP_HOME → WWW_HOME → -v オプション - の順に試して何もなければ usage() で終了。 - 何かあれば、それを -dump やフレーム表示等も URL と同等に扱います。 - # ソースコードも共通化しています。 -・出力 - リダイレクト(> file )やパイプの場合、-halfdump, -dump_source, - -dump_head でなければ、-dump を仮定する様にしました。 - w3m file.html > file.txt でフォーマッタになります。 - # コード変換ツールともするため i18n でもこうしてます。 +-B -dump ц純<違篆罩c∫e篏雁с +糸ュ + 綣違 URL(<ゃ)<翫ゃ(< file)ゃ + -B(若) HTTP_HOME WWW_HOME -v 激с + 荅篏 usage() х篋 + 篏違 -dump 若茵腓榊 URL 膈宴障 + 鐚 純若鴻潟若演障 +糸阪 + ゃ(> file )ゃ翫-halfdump, -dump_source, + -dump_head с違-dump 篁絎罕障 + w3m file.html > file.txt с若帥障 + 鐚 潟若紊若 i18n с障 2000.1.27 From: aito -* FORMAT_NICEを定義した場合,<UL><LI>...</UL>の表示がおかしくなる - バグの修正. -* pq.c, pq.h を削除.PQ_xxx のかわりに全て qsort を使うようにした. -* ディレクトリリストが表示できないバグの修正. +* FORMAT_NICE絎臂翫鐚<UL><LI>...</UL>茵腓冴 + 違篆罩o +* pq.c, pq.h わPQ_xxx qsort 篏帥鐚 +* c鴻茵腓冴с違篆罩o 2000.1.25 From: Fumitoshi UKAI <ukai@debian.or.jp> -mailto: で、mailを出す途中に C-c で intr かけると segfaultすると -いうバグです。このパッチでなおりましたが… +mailto: сmail冴筝 C-c intr segfault +違сс障 From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> - * fm.h, frame.c, map.c, buffer.c, file.c, main.c: framesetの変 - 更履歴のbackができるように、Bufferの内部でframesetをスタックに - して持つように変更。Buffer selectのように任意の時点を指定する - のは難しいっぽいです + * fm.h, frame.c, map.c, buffer.c, file.c, main.c: frameset紊 + 翫吋罩眼backсBufferframeset鴻帥 + ゃ紊眼Buffer select篁紙鴻絎 + cc純с - * rc.c, main.c, frame.c: default targetを_selfに変更。伴って、 - bufferA(targetを追わない。今かいたばかりで未試験)を追加したけ - ど、keybindには登録せず + * rc.c, main.c, frame.c: default target_self紊眼篌眼c + bufferA(target菴純篁違ф荅薑)菴遵 + keybind脂蚊 - * main.c (reload): frameでのreloadの動作を、frameset中未読 - frameのみreloadに変更。frameの丸ごとreloadはF->R->Fでできる、 - はず + * main.c (reload): frameсreload篏frameset筝茯 + framereload紊眼frame筝吾reloadF->R->Fсс + - * frame.c (newFrameSet): frameからtableの横幅をつくる部分で、 - カウンタと総和を勘違いしていたのを修正 + * frame.c (newFrameSet): frametable罔綛ゃс + 潟帥膩篆罩 - * frame.c (createFrameFile): frame中でtable stackのunder flow - を捕まえて、table、td、th、trあたりを必要に応じ表示しないよう - に変更。ついでにoverflowのときには、ファイルの最後に必要な数だ - け/tableが入るようになっているはず + * frame.c (createFrameFile): frame筝table stackunder flow + 障tabletdthtr綽荀綽茵腓冴 + 紊眼ゃсoverflow<ゃ緇綽荀違 + /tableャc - * html.h, url.c, file.c, menu.c, frame.c: オブジェクトの捕まえ - 方 (retrieve schemeだろうか)の流れを、char *url -> parse?URL() + * html.h, url.c, file.c, menu.c, frame.c: 吾с障 + (retrieve scheme)羌char *url -> parse?URL() -> parsedURL.scheme -> openURL() -> URLFile.scheme -> - loadGeneralFile() -> Buffer.real_scheme と仮定して、openURL() - にてurlがlocal_cgiだったときにはURLFile.schemeにSCM_LOCAL_CGI - をいれて、cache file付きで返すように変更。つまり、frameでディ - レクトリを見れるようになってます。SCM_EXECは……見逃してくださ - い + loadGeneralFile() -> Buffer.real_scheme 篁絎openURL() + urllocal_cgicURLFile.schemeSCM_LOCAL_CGI + cache file篁ц紊眼ゃ障frameс + 荀c障SCM_EXEC荀 + 2000.1.21 @@ -2186,32 +2186,32 @@ the server, i.e. From: aito -'<' の次にタグ名以外のものが来たときに,'<'をそのまま表示するよう -に改良. +'<' 罨<帥医篁ュャ鐚'<'障乗;腓冴 +壕鐚 From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -画面描画のバグ修正. +脂∽祉遺信罩o From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -w3m 0.1.4 に対して, 以下の修正を行ないました. - ・Set-Cookie2 の discard 属性を受け入れるようにした. - 以前の版では, expires 属性と discard 属性は排他的であると勘違いし - て無視していました. - ・<dl> タグの前の空行の有無と, </dl> タグの後の空行の有無がバランス - していなかったので, </dl> タグの後には必ず空行が入るようにした. -さらに <p>, <[duo]l> などのタグが続いた時に空行が 2 つ入るのを防ぐため -に, いくつかの変更を行なってますが, 何か問題があるかもしれません. -例えばもし <p><p> で 2行空いた方が良ければ, 元のままにしておいてください. +w3m 0.1.4 絲障, 篁ヤ篆罩c茵障. + Set-Cookie2 discard 絮сャ. + 篁ュс, expires 絮с discard 絮с篁с + ∴障. + <dl> 帥違腥肴<, </dl> 帥違緇腥肴<潟 + c, </dl> 帥違緇綽腥肴ャ. + <p>, <[duo]l> 帥違膓腥肴 2 ゅャ蚊 +, ゃ紊眼茵c障, 篏馹障. +箴違 <p><p> 2茵腥冴鴻, 障障. From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -table の geometry 計算にちょっとしたバグがありました. -以下, その修正です. +table geometry 荐膊<c違障. +篁ヤ, 篆罩cс. From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -table で width=0 の場合に対応. +table width=0 翫絲上鐚 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> -inputLineHist() のバグ修正. +inputLineHist() 遺信罩o 2000.1.14 From: ChiDeok Hwang <cdhwang@sr.hei.co.kr> @@ -2222,59 +2222,59 @@ Reason was above site had the very strange frameset with only one frame. Simple following fix was enough for me. From: aito -URL の scheme が無いものを読みこむときに,local で開けなかった場合は -http:// を仮定するようにしてみた. +URL scheme <茯帥鐚local чc翫 +http:// 篁絎帥鐚 -configure を変更.mkdir -p を使うようにした. +configure 紊器mkdir -p 篏帥鐚 -ldHelp() を変更.HELP_DIR から常に読みこむようにした. +ldHelp() 紊器HELP_DIR 絽吾茯帥鐚 From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> -RFC 882のheaderのentryが2行のときのmulti byteの扱いミス退治 -frameからのframeset htmlの参照でもtargetを追跡するよう変更 +RFC 882headerentry2茵multi byte宴拷羃 +frameframeset htmlссtarget菴処掘紊 target="_parent" -frame内のformで、稀に不思議なURIができるのを修正 -一部変数・関数の方と初期値の定義を追加その他 - ただし、_parentの実装は、navigatorと解釈が違うっぽいです。 +frameformс腮筝茘違URIс篆罩 +筝紊違脂∽違鴻ゃ絎臂菴遵篁 + _parent絎茖navigator茹ic純с From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> -progress bar に graphic 文字を使う -必然性もそれほどないので、反転の '|' で代用してみました。 +progress bar graphic 絖篏帥 +綽倶с祉с荵≪ '|' т撮帥障 From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -今度は, 画面の右端の文字が消えてしまう事があるという問題です. -以下のパッチで対処しました. +篁綺, 脂≪勆絖羔障篋馹с. +篁ヤу上障. 2000.1.12 From: aito -word fillを実装してみた. -(ドキュメントなし: config.h の中でコッソリ #define FORMAT_NICE -とやると動く.) +word fill絎茖帥鐚 +(ャ<潟鐚 config.h 筝с潟純 #define FORMAT_NICE +鐚) From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> - >> w3m -halfdump の時、$HOME/.w3m 配下のw3m* で始まるファイルが - >> 残るようです。 -これ自体は以下の patch でいいと思います。 + >> w3m -halfdump $HOME/.w3m 筝w3m* у障<ゃ + >> 罧с +篏篁ヤ patch с障 From: sakane@d4.bsd.nes.nec.co.jp (Yoshinobu Sakane) -"w3m ."とかw3mhelperpanel が動作しなくなってました。 -以下、configure へのパッチです。 +"w3m ."w3mhelperpanel 篏c障 +篁ヤconfigure 吾с 2000.1.11 From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> - readHeader()でのheaderの表示と処理の切り分けと、base targetの指定な -しでもtargetを使いたいのと、MIME encoded-word間の空白の処理を好みに変 -えた結果のパッチです。 + readHeader()сheader茵腓冴base target絎 +сtarget篏帥MIME encoded-word腥榊純絅純帥紊 +腟с From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -freshmeat (http://freshmeat.net/appindex/1999/06/09/928951047.html) で, -Yahoo! で cookie がうまく使えないとあったので調べてみました. -どうやら, path エントリー '/' の後に空白が引っついているのが問題のよう -です. +freshmeat (http://freshmeat.net/appindex/1999/06/09/928951047.html) , +Yahoo! cookie 障鋎帥cц帥鴻帥障. +, path 潟 '/' 緇腥榊純綣cゃ馹 +с. From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -table のジオメトリー計算に以下の問題の修正を行ないました. - 1. 次のような table の 1 カラム目に空白が残ってしまう問題. +table 吾<取膊篁ヤ馹篆罩c茵障. + 1. 罨< table 1 腥榊純罧c障馹. -------------------------------------------------------------------------- <table border width="600"> <tr> @@ -2282,82 +2282,82 @@ table のジオメトリー計算に以下の問題の修正を行ないました. <td COLSPAN=2>fooo booo fooo booo fooo booo fooo booo fooo booo fooo booo </table> -------------------------------------------------------------------------- - 2. <dt> タグがあるとき, カラム幅の計算を間違っていた. - 3. HTML 4.0 で追加された table タグ (<thead>, <tbody> など) をスキッ - プするようにした. -その他 w3m 0.1.1 の修正で漏れていた, - <sa6zouvxzg0.fsf@okaibm.hep.okayama-u.ac.jp> (Article 84) および, + 2. <dt> 帥違, 綛荐膊c. + 3. HTML 4.0 ц申 table 帥 (<thead>, <tbody> ) 鴻 + . +篁 w3m 0.1.1 篆罩cф, + <sa6zouvxzg0.fsf@okaibm.hep.okayama-u.ac.jp> (Article 84) , <sa6iu1pzou7.fsf@okaibm.hep.okayama-u.ac.jp> (Article 59) -のパッチ. +鐚 From: aito -'!'コマンドによるshellの実行と,textareaへの入力でのエディタ起動を -system() に戻す. +'!'潟潟shell絎茵鐚textarea吾ュсc粋儀 +system() 祉鐚 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -『-- 空白文字 >』のタイプのコメントの処理にまだ問題がありました。 -patch をつけます。 +-- 腥榊醇絖 >帥ゃ潟<潟障馹障 +patch ゃ障 2000.1.7 From: Fumitoshi UKAI <ukai@debian.or.jp> -deb をつくった時の patch です。 +deb ゃc patch с * XMakefile - - dependency には $(GCLIB) じゃなくて $(GCTARGET) だと思うのですが。 - - help file (architecture independent)を /usr/share/w3m == $(HELP_DIR) - bookmark (architecture dependent)を /usr/lib/w3m == $(LIB_DIR) - にわけてます (まぁ全部 /usr/lib/w3m でもいいのかも) + - dependency $(GCLIB) $(GCTARGET) с + - help file (architecture independent) /usr/share/w3m == $(HELP_DIR) + bookmark (architecture dependent) /usr/lib/w3m == $(LIB_DIR) + 障 (障 /usr/lib/w3m с) * file.c @@ -386,8 +386,8 @@ - content-encoding: の後のspaceなくてもよいように + content-encoding: 緇space @@ -3504,6 +3504,7 @@ - http://haskell.org/hugs/ みたいな html で 無限loop におちいるのを fix + http://haskell.org/hugs/ 帥 html ♂loop < fix * main.c @@ -66,7 +66,11 @@ - libgc5-dev package用に変更 + libgc5-dev package紊 @@ -1092,7 +1100,11 @@ - LIB_DIR と HELP_DIR を分離したので + LIB_DIR HELP_DIR ≪ * proto.h, rc.c - これも LIB_DIR と HELP_DIR を分離したので + LIB_DIR HELP_DIR ≪ * terms.c - こうしないと SIGWINCH に対応しない + SIGWINCH 絲上 2000.1.5 -From: やま - 以前投稿しました田フレームのパッチの補足です。991203のまま -だと、colもrowも指定のないフレームセットの生成に失敗する点に -ついて、手元のsourceは修正しておいて、その部分のパッチを公開 -するのを忘れていました。 - 原因は、frameset.split_directionの定義を行わず、正気check -に失敗するからです。実のところ、colもrowも両方同時使用O.K.に -した時点で、split_directionは無用になったので、消してしまい -ました。 +From: + 篁ュ腮帥障違若茖莇潟с991203障 +colrow絎若祉紊掩鴻 +ゃsource篆罩c +綽障 + frameset.split_direction絎臂茵罩fcheck +紊掩с絎colrow筝≧劫篏睡O.K. +鴻сsplit_direction∞cс羔障 +障 From: aito -C-c で読みこみを中止したときに,バックグラウンドで動いている外部ビューア -が終了するバグの修正. +C-c ц帥帥筝罩≪鐚違潟у紊ャ若 +腟篋違篆罩o From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -また、標準入力やパイプから読み込んだ時の -m オプションが -壊れていたみたいです。 -# 何が原因か分からないのですが最近よく SEGV します。 -# ....と、危ない箇所を見つけたので追加 patch です。 -# 一般に foo->bar->hoge は危ないですね。 - -From: (の)の人 <sekita-n@hera.im.uec.ac.jp> -Subject: Referer: の抑制オプションを追加するパッチ -タイトルのとおりです。 -どこから飛んできたのかを隠したい場合は`o'でオプション画面に飛んで -「Referer: を送らないようにする」をONにしてください。 - -From: (の)の人 <sekita-n@hera.im.uec.ac.jp> -Subject: `q'について -「Do you want to exit w3m? (y or n)」 -で何も入力せずに改行するとw3mが終わってしまうので、それを修正するパッ -チです(991206用)。 +障罔羣ュゃ茯粋昭 -m 激с潟 +紕帥с +鐚 篏с菴 SEGV 障 +鐚 ....宴膊荀ゃц申 patch с +鐚 筝 foo->bar->hoge 宴с + +From: ()篋 <sekita-n@hera.im.uec.ac.jp> +Subject: Referer: 吟激с潟菴遵 +帥ゃс +蕋с翫`o'с激с括脂≪蕋 +Referer: ON + +From: ()篋 <sekita-n@hera.im.uec.ac.jp> +Subject: `q'ゃ +Do you want to exit w3m? (y or n) +тュ壕w3m腟c障с篆罩c +с(991206) From: aito -直接コマンドラインで指定したURLをダウンロードする際に,入力した -ファイル名の最後に改行文字が付いてしまうバグの修正. +贋・潟潟ゃ潟ф絎URL潟若鐚ュ +<ゃ緇壕絖篁障違篆罩o 2000.1.4 From: Sven Oliver Moll <smol0999@rz.uni-hildesheim.de> @@ -2368,96 +2368,96 @@ dragging is that I drag the window over the text. So I added a config option called 'reverse mouse'. From: aito -Lynx-like keymapに `M' (外部ブラウザ呼びだし)を追加. +Lynx-like keymap `M' (紊九若潟)菴遵鐚 From: SUMIKAWA Munechika <sumikawa@ebina.hitachi.co.jp> -KAME on FreeBSD-3.3 で +KAME on FreeBSD-3.3 #define INET6 -として、w3m-19991203をmakeしたところ、makeが通りませんでした。 -これは、etc.c:FQDN()で使われているPF_UNSPECやSOCK_STREAMがsys/socket.h -で定義されているためです。 +w3m-19991203makemake障с +etc.c:FQDN()т戎PF_UNSPECSOCK_STREAMsys/socket.h +у臂с -From: kjm@rins.ryukoku.ac.jp (KOJIMA Hajime / 小島肇) -NEWS-OS 6.x サポート. +From: kjm@rins.ryukoku.ac.jp (KOJIMA Hajime / 絨鎤区) +NEWS-OS 6.x 泣若鐚 From: aito -メニュー表示時にマウスがアクティブになっていなかったバグの修正. -gcc -Wall で警告が出ないように調整. -configureで IPv6 を自動判定するようにした. +<ャ取;腓堺鴻≪ccc違篆罩o +gcc -Wall ц冴茯炊器 +configure IPv6 ゅ鐚 (Thanks to sumikawa@ebina.hitachi.co.jp) 1999.12.28 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -tmpPropBuf に保存しておいてカーソルが外れたら戻す部分にバグ -(複数行の場合)があり、その方式で修正するのは大変そうだったので、 -以下の様にしてみました。 -・選択されているリンクの色が指定さている場合は、 - 『+ その色 + 下線』で表示 -・選択されているリンクの色が指定されていない場合は、 - 『+ 下線』で表示 -・白黒の場合は、『+ ボールド』で表示 - (下線だと意味がないので変更してみました) -方式は、カーソルのあるアンカーに PE_ACTIVE を設定し、 -他の効果(mode)の後で効果(mode)を上書きするようにしています。 +tmpPropBuf 篆絖若純紊祉 +(茲域翫)劫т信罩c紊уcс +篁ヤ罕帥障 +脂御潟蚊絎翫 + + + 筝膩ц;腓 +脂御潟蚊絎翫 + + 筝膩ц;腓 +紫初翫+ 若ц;腓 + (筝膩潟у眼帥障) +劫若純≪潟若 PE_ACTIVE 荐絎 +篁号(mode)緇у号(mode)筝吾障 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -日本語を表示できる(#define JP_CHARSET)状態で、 -#undef KANJI_SYMBOLS の場合にテーブルやメニューの枠 -に graph 文字を使える様にする patch です。 -非常にすっきりした表示になります。 +ユ茯茵腓冴с(#define JP_CHARSET)倶с +#undef KANJI_SYMBOLS 翫若<ャ若 + graph 絖篏帥罕 patch с +絽吾c茵腓冴障 From: Fumitoshi UKAI <ukai@debian.or.jp> -えーと ALT="" の時に表示するのはバグだとうるさい人がいる:< -のでオプションにしてみました。 +若 ALT="" 茵腓冴違篋冴:< +с激с潟帥障 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> -・frame で構成されるペイジの場合、reload 時には frame表示/非frame表示 - にかかわらず両方とも削除され、frame表示だった場合には、 - さらに frame表示のバッファが作成されます。 -・edit 時(非frame表示のみ可能)にも frame表示のバッファがある場合には - それも削除されます。 - (非frame表示バッファをなくした frame表示バッファは - ほとんど無意味なので削除でいいと思います。) -※) 多段のフレームには対応できていません(rFrame 自体対応していない)。 +frame фゃ吾翫reload frame茵腓/frame茵腓 + 筝≧鴻ゃframe茵腓冴c翫 + frame茵腓冴<篏障 +edit (frame茵腓冴水) frame茵腓冴<翫 + ゃ障 + (frame茵腓冴< frame茵腓冴< + 祉≧潟уゃс障) +) 紊罧泣若絲上с障(rFrame 篏絲上) From: aito -HTTP の response code が 200 の場合でも, WWW-Authenticate: ヘッダ -があるとユーザ認証をしていたバグの修正. +HTTP response code 200 翫с鐚 WWW-Authenticate: +若区荐若違篆罩o From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> - >> 日本語を表示できる(#define JP_CHARSET)状態で、 - >> #undef KANJI_SYMBOLS の場合にテーブルやメニューの枠 - >> に graph 文字を使える様にする patch です。 -progress 表示の部分の不具合を修正しました。 + >> ユ茯茵腓冴с(#define JP_CHARSET)倶с + >> #undef KANJI_SYMBOLS 翫若<ャ若 + >> graph 絖篏帥罕 patch с +progress 茵腓冴筝桁篆罩c障 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -ISO-2022-JP の時に半角カナの一部が全角に変換されない -不具合の修正です。 +ISO-2022-JP 茹筝茹紊 +筝桁篆罩cс From: aito -nameが未定義の textarea に default という名前が勝手に -定義されてしまっていた. +name絎臂 textarea default +絎臂障c鐚 From: Yamate Keiichirou <yamate@ebina.hitachi.co.jp> -Location: で指定されたURLに飛ぶときに,最後の改行を落とし -忘れていたバグの修正. +Location: ф絎URL蕋吟鐚緇壕純 +綽違篆罩o From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -・<TD>,<TH>に相対幅指定があった場合の挙動の大幅な改良. -・w3m 991203 版では, コードが 0x80 以上の escape 文字がそのまま表示され - てしまうようです. +<TD>,<TH>後上絎c翫紊у壕鐚 +w3m 991203 с, 潟若 0x80 篁ヤ escape 絖障乗;腓冴 + 障с. From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -コメントで <!-- .... -- > のように -- と > の後に -スペースを許すよう変更. +潟<潟 <!-- .... -- > -- > 緇 +鴻若鴻荐宴紊器 1999.12.27 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -dirlist.cgiの改良. +dirlist.cgi壕鐚 From: aito -'!' コマンドで最後に & を付けたときにバックグラウンドにならない -バグの修正. +'!' 潟潟ф緇 & 篁違潟 +違篆罩o 1999.12.14 From: Christian Weisgerber <naddy@unix-ag.uni-kl.de> @@ -2468,265 +2468,265 @@ From: Christian Weisgerber <naddy@unix-ag.uni-kl.de> would require a substantial rewrite.) From: aito -・w3m-control: で,GOTO url を与えると,そのurl に行くようにした. -・<meta http-equiv="Refresh" content="0; url=URL"> があった場合, - ただちにそのページを読みこむようにした. -・'M', 'ESC M' で外部ブラウザを立ちあげるときに,外部ブラウザが - 定義されていなかった場合には,コマンドラインからコマンドを入力 - するようにしてみた. +w3m-control: эGOTO url 筝鐚url 茵鐚 +<meta http-equiv="Refresh" content="0; url=URL"> c翫鐚 + <若吾茯帥鐚 +'M', 'ESC M' у吟腴<鐚紊吟 + 絎臂c翫鐚潟潟ゃ潟潟潟ュ + 帥鐚 1999.12.8 From: aito -Proxy-Authorization に対応. +Proxy-Authorization 絲上鐚 1999.12.3 From: aito -ディレクトリ表示に外部コマンドを使うことができるようにした. -デフォルトは坂本さんの dirlist.cgi. +c茵腓冴紊潟潟篏帥с鐚 + dirlist.cgi鐚 1999.12.2 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -メニュー,バッファ選択画面で,カーソルが選択項目のところ -に来るように変更. +<ャ種♂御脂≪э若純御 +ャ紊器 From: aito -TERM={xterm|kterm}の場合には GPM を使わないよう変更. -xterm でマウスを使う場合,キー入力のときだけマウスが有効 -になるように変更. +TERM={xterm|kterm}翫 GPM 篏帥紊器 +xterm с鴻篏帥翫鐚弱ュ鴻 +紊器 1999.12.1 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -HTTP_HOMEを設定して立ちあげると止まるバグの修正. +HTTP_HOME荐絎腴<罩≪障違篆罩o From: Fumitoshi UKAI <ukai@debian.or.jp> -ある種のFormを読むとsegmentation fault を起こすバグの修正. -tableの項目数を増やす部分のバグ修正. +腮Form茯segmentation fault 莎激違篆罩o +table違紜遺信罩o From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -<tr> タグの align 属性に対応しました。 -また、<th> タグの場合のデフォルトの align は center にしました。 +<tr> 帥違 align 絮с絲上障 +障<th> 帥違翫 align center 障 -From: Tsutomu Okada (岡田 勉) <okada@furuno.co.jp> -・再び JP_CHARSET を定義したときに、latin1 の文字が表示されないように - なっていたのを修正 -・JP_CHARSET の定義が、fm.h, conv.c, terms.c にあったのを fm.h にまと - めた -・README.func に合わせて、func.c の COOKIES を COOKIE に変更 +From: Tsutomu Okada (絏∞ ) <okada@furuno.co.jp> +糸 JP_CHARSET 絎臂latin1 絖茵腓冴 + c篆罩 +JP_CHARSET 絎臂fm.h, conv.c, terms.c c fm.h 障 + +README.func func.c COOKIES COOKIE 紊 From: aito -HTTP header の : の後に空白がなくても良いように変更. +HTTP header : 緇腥榊純紊器 From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -TABでアンカーを移動するとき,TABLEの中のアンカーの順番が狂う -バグの修正. +TABс≪潟若腱糸鐚TABLE筝≪潟若 +違篆罩o From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) --v オプションに限らず、コマンドラインから URL を指定した場合の -処理がなんか怪しいので、少し本腰をいれて直してみました、 -以下の様な patch でどうでしょう。以前に報告した - w3m フレーム.html フレーム.html ... -にも対応しています。 --v オプションに関しては、表示するバッファが無い場合に -v が指定 -されていると初期画面が表示されます。 +-v 激с潟潟潟ゃ潟 URL 絎翫 +с絨違眼帥障 +篁ヤ罕 patch сс篁ュ怨 + w3m 若.html 若.html ... +絲上障 +-v 激с潟≪茵腓冴<<翫 -v 絎 +脂≪茵腓冴障 1999.11.26 From: Fumitoshi UKAI <ukai@debian.or.jp> -mailcap等に記述するコマンドの引数を ' ' で囲むとうまく実行 -されないバグの修正. +mailcap膈荐菴違潟潟綣違 ' ' у蚊障鎘茵 +違篆罩o 1999.11.20 From: SASAKI Takeshi <sasaki@isoternet.org> -「現在選択されているリンクに色を付ける」オプションをONにして -いる場合にコアダンプするバグの修正. +憜御潟蚊篁激с潟ON +翫潟≪潟違篆罩o 1999.11.19 From: aito -XMakefile の記述を修正. -local file が2回ロードされるバグの修正. -<UL>などがネストした時に,</ul>直後に日本語がくるとインデント -が狂うバグの修正. -GPM対応. +XMakefile 荐菴違篆罩o +local file 2若違篆罩o +<UL>鴻鐚</ul>翫ユ茯ゃ潟潟 +違篆罩o +GPM絲上鐚 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -プログレスバー表示をさらに改良. +違鴻取;腓冴壕鐚 1999.11.18 From: Ben Winslow <rain@insane.loonybin.net> -プログレスバーの表示の改良. +違鴻若茵腓冴壕鐚 From: patakuti -<input type=button>に name が定義されていなかった場合に,勝手に -name がつけられてしまうバグの修正. +<input type=button> name 絎臂c翫鐚 +name ゃ障違篆罩o -From: やま -フレームで row と col を両方指定した場合に対処. +From: +若 row col 筝≧号絎翫絲上鐚 From: aito -bookmarkコマンドをw3m本体から分離.w3mbookmarkというコマンドにする. -それに伴ない,CGIからw3mを遠隔操作できるようにする. +bookmark潟潟w3m篏鐚w3mbookmark潟潟鐚 +篌眼鐚CGIw3m篏с鐚 -C-s で画面表示が止まっていたバグの修正. +C-s х脂∵;腓冴罩≪障c違篆罩o -文字入力時に C-g で中止できるようにした. +絖ュ C-g т賢罩≪с鐚 From: hovav@cs.stanford.edu -外部ビューアのないタイプのファイルをダウンロードするときに, -保存先として存在しないディレクトリを指定するとコアダンプ -するバグの修正. +紊ャ若≪帥ゃ<ゃ潟若鐚 +篆絖絖c絎潟≪潟 +違篆罩o From: minoura@netbsd.org -ሴ のような character entity を使うと segmentation -fault が起きることがあるバグの修正. +ሴ character entity 篏帥 segmentation +fault 莎激違篆罩o From: Christi Alice Scarborough <christi@chiark.greenend.org.uk> -現在選択されているリンクに色を付けられるようにした. +憜御潟蚊篁鐚 1999.11.17 From: aito -<OL>,<UL>等のリストで,それが最初のレベルである時だけ前後に空行を -空けるようにした. --bookmarkオプションで,bookmarkファイルが指定できるようにした. +<OL>,<UL>膈鴻эс緇腥肴 +腥冴鐚 +-bookmark激с潟эbookmark<ゃ絎с鐚 From: Hiroaki Shimotsu <shim@nw.bs1.fc.nec.co.jp> -検索の件ですが、C-r C-r は皆さん無反応なのと N が空いてたの -で、vi の N と同様の機能を作成してみました。 -o srchnxt(), srchprv() 共に内部関数 srch_nxtprv() を呼ぶ。 -o srch_nxtprv() で引数 1 で読んだ場合は、現状の - searchRoutine でない方を呼ぶ。 +罎膣≪篁吟сC-r C-r ≦綽 N 腥冴 +сvi N 罕罘純篏帥障 +o srchnxt(), srchprv() 宴∽ srch_nxtprv() 若吟 +o srch_nxtprv() у 1 ц翫憟吟 + searchRoutine с鴻若吟 1999.11.16 From: Kiyohiro Kobayashi <k-kobaya@mxh.mesh.ne.jp> -wu-ftpdが2.6.0になってから、NLSTに対してディレクトリ名を返さなくなった -ために、w3mでアクセスするとディレクトリがみえなくなってしまっています。 -それで、NLSTではなくLISTを使用するように、改造してみました。 -ついでに、ファイルの日付、サイズも表示するようにしてみました。 -991028版に対するpatchを添付します。 +wu-ftpd2.6.0cNLST絲障c菴c +w3mс≪祉鴻c帥c障c障 +сNLSTсLIST篏睡拷帥障 +ゃс<ゃヤ泣ゃ冴茵腓冴帥障 +991028絲障patch羞私障 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -checkContentType() にバグが入り込んでました。 -# また、-m が壊れてたわけです+_+ +checkContentType() 違ャ莨若с障 +鐚 障-m 紕с+_+ From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -メニューの動作を少し拡張/変更しました。 -拡張内容 -・C-f, C-v で次ページの項目を表示する -・C-b, M-v で前ページの項目を表示する -・INS キーとして ^[[L(コンソール)、^[[E(PocketBSD) を追加 -・DEL(C-?) で親のメニューに戻る … BS(C-h) と同じ動作です -・#define MENU_THIN_FRAME でコンパイルすると細い罫線を使う - デフォルトは #undef。 -変更内容 -・長いメニューの場合、マウスで上下の ":" をクリックすると - 次/前ページの項目を表示する様に変更 - (これまでは次/前の項目だったので面倒だった) -・階層型(sub-menu)の場合、マウスで枠外をクリックすると - 親のメニューに戻る様に変更 - (これまでは全て消去だったためマウスだけで戻ることが出来なかった) -・<, >, +, - へのバインドをやめた - (??-like でもないし、異様に使いづらいので誰も使ってないと思います) - -From: おかだ <okada@furuno.co.jp> -lynx の動作を真似しただけなんですが、<SELECT>の選択時やメニュー表示の -ときに、最初や最後の候補をすぐに選ぶことができるようにしてみました。 -C-a と C-e にバインドしてあります。 +<ャ若篏絨≦宍/紊眼障 +≦宍絎 +C-f, C-v ф<若吾茵腓冴 +C-b, M-v у若吾茵腓冴 +INS 若 ^[[L(潟潟純若)^[[E(PocketBSD) 菴遵 +DEL(C-?) цΚ<ャ若祉 BS(C-h) 篏с +#define MENU_THIN_FRAME с潟潟ゃ膣違臀膩篏帥 + #undef +紊翫絎 +脂激<ャ若翫鴻т筝 "鐚" + 罨/若吾茵腓冴罕紊 + (障с罨/cч√c) +脂絮ゅ(sub-menu)翫鴻ф紊 + 荀<ャ若祉罕紊 + (障с羔サc鴻ф祉堺ャc) +<, >, +, - 吾ゃ潟 + (??-like с井篏帥ャц違篏帥c障) + +From: <okada@furuno.co.jp> +lynx 篏篌若с<SELECT>御<ャ取;腓冴 +緇茖吾吟с帥障 +C-a C-e ゃ潟障 From: "OMAE, jun" <jun-o@osb.att.ne.jp> From: Fumitoshi UKAI <ukai@debian.or.jp> -FTP の Multiline reply に対応していなかったバグの修正. +FTP Multiline reply 絲上c違篆罩o From: "OMAE, jun" <jun-o@osb.att.ne.jp> -w3m-991028-2 を使用していて, -* buffer 数がちょうど LASTLINE と同じ値のとき - selectBuffer() で最後の buffer から更に下へスクロールでき - てしまい, その後に移動しようとする core dump します. -* buffer が LASTLINE + 1 以上あるときに selectBuffer() を行 - い, LASTLINE + 1 個目(1 origin で)の buffer を選択します. - 直後に selectBuffer() をすると現在の buffer 位置が表示され - ません. 特に buffer 数がちょうど LASTLINE + 1 と同じ値のと - き, 下へ移動しようとすると core dump します. -* cygwin-b20.1 のみ. cd / && w3m . をすると usage が表示され - てしまいます. +w3m-991028-2 篏睡, +* buffer 違< LASTLINE ゃ + selectBuffer() ф緇 buffer 眼筝吾鴻若с + 障, 緇腱糸 core dump 障. +* buffer LASTLINE + 1 篁ヤ selectBuffer() 茵 + , LASTLINE + 1 (1 origin ) buffer 御障. + 翫 selectBuffer() 憜 buffer 篏臀茵腓冴 + 障. 鴻 buffer 違< LASTLINE + 1 ゃ + , 筝悟Щ core dump 障. +* cygwin-b20.1 . cd / && w3m . usage 茵腓冴 + 障障. 1999.11.15 From: aito -HTTP で読んできた文書に <BASE> タグがあり,それが現在の URL と -違っていた場合,Referer: の値が狂うバグの修正. -&#xnnn; でコントロールコードを送ってきた時にちゃんとデコード -できなかったバグの修正. -local-CGIを使う場合に,CGIスクリプトが file:///cgi-bin/ か -file:///usr/local/lib/w3m/ にある場合以外は CGI として扱わ -ないようにした. -system() をできるだけ使わないよう改良. +HTTP цс吾 <BASE> 帥違鐚憜 URL +c翫鐚Referer: ゃ違篆罩o +&#xnnn; с潟潟若潟若c<潟若 +сc違篆罩o +local-CGI篏帥翫鐚CGI鴻 file:///cgi-bin/ +file:///usr/local/lib/w3m/ 翫篁ュ CGI 宴 +鐚 +system() с篏帥壕鐚 1999.11.11 From: aito -feed_table() の中のタグ解析部分を分離.gethtmlcmd() のタグ検索を -線形探索からハッシュ表に改良. +feed_table() 筝帥域В鐚gethtmlcmd() 帥井膣≪ +膩綵∽「膣≪激ヨ;壕鐚 1999.11.5 From: aito -table表示の際に,アルファベットに latin-1 を表す character entity -が混ざっていると,表の最小幅の計算が狂うバグの修正. +table茵腓冴鐚≪< latin-1 茵 character entity +羞激c鐚茵絨鎶荐膊違篆罩o 1999.11.1 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) - >> w3m-991028 + patch1 ですが、no menu でコンパイルしようとすると - >> main.c で + >> w3m-991028 + patch1 сno menu с潟潟ゃ + >> main.c >> main.c:1645: `FormSelectOptionItem' undeclared (first use this function) >> : - >> となりますね。 - >> #ifdef MENU_SELECT〜#endif で囲めばいいのでしょうか。 - >> ・file.c に S_IFDIR が残ってしまっているので後で patch を送ります。 - >> # local.h で S_ISDIR などを定義する様に整理する予定 -両方の patch です。 -# Symblic link は readlink() でチェックする様にしました。 -# Symblic link のない OS で w3m って make できるのだろうか? - >> ・dirlist.cgi も、ちょっと強化しました。 + >> 障 + >> #ifdef MENU_SELECT#endif у蚊違с + >> file.c S_IFDIR 罧c障cу patch 障 + >> 鐚 local.h S_ISDIR 絎臂罕雁篋絎 +筝≧鴻 patch с +鐚 Symblic link readlink() сс罕障 +鐚 Symblic link OS w3m c make с鐚 + >> dirlist.cgi <c綣桁障 From: ukai@debian.or.jp -Strcat_char()のバグ修正. +Strcat_char()遺信罩o 1999.10.28 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> file?var=value/#label -の時に label がラベルとして認識されないものの修正です。 -# file?var=value#label は問題ありませんでした。 + label 茯茘篆罩cс +鐚 file?var=value#label 馹障с From: aito -デバッグコードが含まれていたものを削除. +違潟若障わ 1999.10.27 -From: おかだ <okada@furuno.co.jp> -以前に、w3m で JP_CHARSET を定義した状態で ISO8859-1 の文字(¢ 等) -が表示されないと投稿したのですが、原因がわかりましたのでパッチを添付し -ます。 +From: <okada@furuno.co.jp> +篁ュw3m JP_CHARSET 絎臂倶 ISO8859-1 絖(¢ 膈) +茵腓冴腮帥с障с羞私 +障 -From: やま -あるWEBを使ったアプリケーションが動かないので、調べてみたところ、 -cookieにパスがない場合の動作がNavigator等々と少々異なるためとわかりま -した。下にパッチをつけます。 +From: +WEB篏帥c≪宴若激с潟с茯帥鴻帥 +cookie鴻翫篏Navigator膈絨違 +筝ゃ障 From: "OMAE, jun" <jun-o@osb.att.ne.jp> -CGI のページを reload するときに,元が POST だったものを -GET で reload しようとするバグの修正. +CGI 若吾 reload 鐚 POST c +GET reload 違篆罩o From: aito -frameの中からリンクを辿ったときに,Referer: の値が現在のframe -ではなく,元の frameset の URL になっていたものを修正. +frame筝潟莨帥c鐚Referer: ゃ憜frame +с鐚 frameset URL c篆罩o -configure を変更.モデルを設ける. +configure 紊器≪荐鐚 -FTP で,RETR,NLST の成功に対して応答コード 150 を期待していたが, -それ以外でも良いようなので修正. +FTP эRETR,NLST 絲障綽膈潟若 150 緇鐚 +篁ュст信罩o -<select multiple>...</select> の場合,メニューにしないよう修正. +<select multiple>...</select> 翫鐚<ャ若篆罩o From: Takashi Nishimoto <g96p0935@mse.waseda.ac.jp> -getshell, getpipe, execdict 関数において、 -バッファ名に今実行しているコマンド名(調べている単語)も含めるようなパッ -チを書きました。 +getshell, getpipe, execdict ∽違 +≦篁絎茵潟潟(茯帥鴻茯) +吾障 From: Colin Phipps <cph@crp22.trin.cam.ac.uk> When a load of cookies expire w3m SEGVs on startup. @@ -2744,265 +2744,265 @@ work out what the effects of it would be). 1999.10.21 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -source/HTML 表示時の buffername の修正です。 -また、<input type=hidden> の場合には、nitems をインクリメント -しないようにしました。 +source/HTML 茵腓堺 buffername 篆罩cс +障<input type=hidden> 翫nitems ゃ潟<潟 +障 1999.10.20 From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -<dt> と <dd> の間に <p>(..</p>) や <h3>..<h3> などがあると -それ以降全て bold になってしまうバグの修正. +<dt> <dd> <p>(..</p>) <h3>..<h3> +篁ラ bold c障違篆罩o From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -自動フレーム表示の時に 'B'(backBf) で元の HTML も消す様にするための -機構を元の HTML のバッファへのポインタを覚えておく様にしてみました。 -そして、その機構を使うと、'F'(rFrame), 'v'(vwSrc), '='(pginfo) が -トグル動作可能になることに気づきました。その patch です。 +若茵腓冴 'B'(backBf) у HTML 羔罕 +罘罕 HTML <吾ゃ潟帥荀閝帥障 +罘罕篏帥'F'(rFrame), 'v'(vwSrc), '='(pginfo) +違篏純羂ャ障 patch с From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) --dump オプション使用時の以下の動作を修正しました。 -・w3m -dump < file だと最後に \377 が入る。 -・w3m -dump -s < file などがコード変換されない。 - -num, -S なども効かない。 -・w3m -dump -T text/plain < file が何も出力されない。 +-dump 激с割戎篁ヤ篏篆罩c障 +w3m -dump < file 緇 \377 ャ +w3m -dump -s < file 潟若紊 + -num, -S 鴻 +w3m -dump -T text/plain < file 篏阪 From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -・menu.c: graphic char 関係の修正(Cygwin がらみは terms.c へ) -・terms.c: Cygwin の場合には T_as = T_as = T_ac = "" - graph_ok() に T_ac != '\0' を追加 -・LINES - 1 となってしまっていた箇所を LASTLINE にしました。 - (これで、LINES が terms.c 以外から消えました) -・bookmark.c: KANJI_SYMBOL -> LANG == JA +menu.c: graphic char ≫篆罩(Cygwin 帥 terms.c ) +terms.c: Cygwin 翫 T_as = T_as = T_ac = "" + graph_ok() T_ac != '\0' 菴遵 +LINES - 1 c障c膊 LASTLINE 障 + (сLINES terms.c 篁ュ羔障) +bookmark.c: KANJI_SYMBOL -> LANG == JA From: "OMAE, jun" <jun-o@osb.att.ne.jp> -./configure で +./configure #define LANG JA #undef KANJI_SYMBOLS -になるように答えて make した w3m で popup menu を出そうとする -と core dump します. +膈 make w3m popup menu 冴 + core dump 障. From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -・frame に日本語が含まれていない場合にコード変換に失敗するバグの修正. -・mouse_init() を安全側に。 -・doc/menu.submenu に日本語が入っていました(_o_) +frame ユ茯障翫潟若紊紊掩違篆罩o +mouse_init() 絎眼 +doc/menu.submenu ユ茯ャc障(_o_) From: SASAKI Takeshi <sasaki@isoternet.org> -1. Location: ヘッダで移動するときに,もとの URI にラベルが -ついていたらそのラベルを新しい URI の末尾に付けるようにした。 -2. local CGI の REMOTE_ADDR がなぜか 128.0.0.1 になっていた (^^;) -ので,127.0.0.1 にした。 +1. Location: хЩ鐚 URI +ゃ違 URI 絨障篁 +2. local CGI REMOTE_ADDR 128.0.0.1 c (^^;) +э127.0.0.1 1999.10.15 From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> - 1. cookie で name の比較を case sensitive で行なっている部分が残って - いたのを修正. - 2. terminal の状態によって, sleep_till_anykey() でキーを押しても直に - 元の状態に戻らないことがある問題の修正. - また, このときのキー入力は捨てるようにした (連続した disp_message() - の動作がおかしいので). - また, 最大の sleep 時間を指定できるようにした. - 3. HTTPRequest の引数を整理した. - 間違ってたらごめんなさい. + 1. cookie name 罸莠 case sensitive цc罧c + 篆罩. + 2. terminal 倶c, sleep_till_anykey() с若若眼 + 倶祉馹篆罩. + 障, 弱ュ (g disp_message() + 篏). + 障, 紊с sleep 絎с. + 3. HTTPRequest 綣違雁. + c. From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -configureで lib*.a と lib*.so が両方ある場合に -l* が -2つ付いてしまう問題の修正. +configure lib*.a lib*.so 筝≧鴻翫 -l* +2や障馹篆罩o From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -・内部で HTML を生成する場合に URL 等を HTML-quote していなかったのを修正 -・frame の各ソースの <base href=... target=...> を読むようにした。 -・file://host/… を ftp://host/… に切替えるとき、 - port の指定が無い場合は ftp のデフォルトの port(21) を使う様にした。 -・BASE となる URL から補完する場合は、scheme が同じ場合のみにした。 +糸 HTML 翫 URL 膈 HTML-quote c篆罩 +frame 純若鴻 <base href=... target=...> 茯 +file://host/ ftp://host/ 帥 + port 絎<翫 ftp port(21) 篏帥罕 +BASE URL 茖絎翫scheme 翫帥 From: Takashi Nishimoto <g96p0935@mse.waseda.ac.jp> From: hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) -バッファのリンク関係の整理. +<潟≫雁鐚 From: SASAKI Takeshi <sasaki@isoternet.org> -domain, path ともに同一で name だけが異なる cookie が -複数送られた場合に,以前の cookie が残ってしまうことが -あるようです。 +domain, path 筝 name 違 cookie +茲育翫鐚篁ュ cookie 罧c障 +с From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -(cookie修正関連) -name は case insensitive で比較しなければならないようなので, -次の修正も追加してください. +(cookie篆罩i∫) +name case insensitive ф莠違, +罨<篆罩c菴遵. From: aito -・~/.w3m/cookie がない場合に C-k を実行するとコアダンプ - する場合があった. -・-dump でクッキーを送るサイトの内容をダンプしたときに, - ~/.w3m/cookie が更新されなかった. -・&xxx;で Latin-1 の文字を出しているときに,その文字の場所で - linebreak されていたバグの修正. +~/.w3m/cookie 翫 C-k 絎茵潟≪潟 + 翫c鐚 +-dump с若泣ゃ絎鴻潟鐚 + ~/.w3m/cookie 贋違c鐚 +&xxx; Latin-1 絖冴鐚絖贋 + linebreak 違篆罩o From: sakane@d4.bsd.nes.nec.co.jp (Yoshinobu Sakane) - o "w3m http://foo.co.jp/foo.jpg"実行後、 - "Hit any key to quit w3m:" とメッセージを出し、終了を待 - ち合わせるようにした - o "w3m http://foo.co.jp/foo.tar.gz"で実行し、download後、 - w3m終了時 usage が出ないようにした(上記と同じ) - o ftp プロトコルでdownload中、経過を表示するようにした - o ftp プロトコルでdownload中、中断を可能とした - o download時の経過表示をshowProgress()で行うように変更 - o FTP_proxy が設定されている時、no_proxyなftpサーバからの - 転送が正常に行われていなかったことを修正 - o 一部パッチの適用が漏れていた部分を復活 - o conv.c:cConvJS()に対して行ったパッチの一部に誤り(実質的 - には問題無いが)があったので、それを修正 + o "w3m http://foo.co.jp/foo.jpg"絎茵緇 + "Hit any key to quit w3m:" <祉若吾冴腟篋緇 + ≦ + o "w3m http://foo.co.jp/foo.tar.gz"у茵download緇 + w3m腟篋 usage 冴(筝荐) + o ftp 潟download筝腟茵腓冴 + o ftp 潟download筝筝純 + o download腟茵腓冴showProgress()ц紊 + o FTP_proxy 荐絎no_proxyftp泣若 + 荵∫罩e幻茵c篆罩 + o 筝羲緇羇 + o conv.c:cConvJS()絲障茵c筝茯ゃ(絎莖 + 馹<)cс篆罩 From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -proxy server で SSL が使えるように改良. +proxy server SSL 篏帥壕鐚 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> <form enctype="multipart/form-data"> <input type=file> -対応のための patch です。 +絲上 patch с From: "OMAE, jun" <jun-o@osb.att.ne.jp> -w3m-991008 を cygwin で使用していて - 1. / を参照すると Directory list が表示されない. - 2. ローカルディレクトリを参照すると, ファイルへの link が - file://///foo のようになる. - 3. file:///windows が load できない. -というのがありましたので, patch を作ってみました. +w3m-991008 cygwin т戎 + 1. / с Directory list 茵腓冴. + 2. 若cс, <ゃ吾 link + file://///foo . + 3. file:///windows load с. +障, patch 篏c帥障. From: Fumitoshi UKAI <ukai@debian.or.jp> % http_proxy=http://foo/bar w3m http: -などとしたときに segmentation fault します。 + segmentation fault 障 1999.10.8 From: sakane@d4.bsd.nes.nec.co.jp (Yoshinobu Sakane) -ISO-2022-jp 風の文書で,異なるキャラクタセットへの指示が -混在している場合の対処. +ISO-2022-jp 蘂吾э違c帥祉吾腓冴 +羞桁翫絲上鐚 From: aito -table 中に <pre>... <p>... </pre><p> というタグ列があると, -<pre>の外側で文の追いこみがされなくなるというバグの修正. -文書内の anchor の数を数えるカウンタを short から int に変更. -<b><u>hoge</u></b> moge のような記述で,`hoge 'の部分に下線が -引かれてしまうバグの修正. +table 筝 <pre>... <p>... </pre><p> 帥医鐚 +<pre>紊眼ф菴純帥違篆罩o +後 anchor 違違潟帥 short int 紊器 +<b><u>hoge</u></b> moge 荐菴違э`hoge '筝膩 +綣障違篆罩o 1999.10.7 From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -Cookie, SSL のサポート. +Cookie, SSL 泣若鐚 From: aito -configure で,lib*.a だけでなく lib*.so も探すようにした.ダイナミック -ライブラリしか持っていないシステムへの配慮. +configure эlib*.a с lib*.so 「鐚ゃ +ゃc激鴻吾鐚 From: HIROSE Masaaki <hirose31@t3.rim.or.jp> From: Anthony Baxter <anthony@ekorp.com> -Host: ヘッダにポート番号を付けていなかった. +Host: 若垩篁c鐚 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> -リリース早々申し訳ないのですが、ラベルに移動した時に URL が変わらなく -なっていましたので、その修正 patch です。 -# http://www.ntk.net/ 見ていて気づきました。 -また、ラベルに移動した時にはまだバグがあって copyBuffer() を使っているために、 -sourcefile も同じになり Buffer を消した時に元の Buffer の sourcefile -も消されてしまいます。他にも、pagerSource や frameset もまずいようです。 -そこで、カウンタ(int のポインタ)を設けておいて、それが 0 になったら消すように -してみました。 +若号潟荐潟с腱糸 URL 紊 +c障с篆罩 patch с +鐚 http://www.ntk.net/ 荀羂ャ障 +障腱糸障違c copyBuffer() 篏帥c +sourcefile Buffer 羔 Buffer sourcefile +羔障障篁pagerSource frameset 障с +с潟(int ゃ潟)荐 0 c羔 +帥障 From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> -<ul> 等のネストが 20 を越えると落ちていたものの修正です。 -・MAX_ENV_LEVEL(=20) を越えたネストは無視します。 - MAX_ENV_LEVEL を越えた場合の表示は保証できません。 - # <dl><li> とか <ul><dt> とかが平気で出てくる;_; -・MAX_INDENT_LEVEL(=10) を越えたネストはそれ以上インデントしません。 -としています。 +<ul> 膈鴻 20 莇純<篆罩cс +MAX_ENV_LEVEL(=20) 莇鴻∴障 + MAX_ENV_LEVEL 莇翫茵腓冴篆荐若с障 + 鐚 <dl><li> <ul><dt> 綛恰у冴;_; +MAX_INDENT_LEVEL(=10) 莇鴻篁ヤゃ潟潟障 +障 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> -Content-Transfer-Encoding: quoted-printable の場合のバグ修正です。 +Content-Transfer-Encoding: quoted-printable 翫遺信罩cс From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> -・最下行で最後の文字が漢字の1バイト目だとメニューがおかしくなって - いたのにとりあえず対応。(terms.c で対応すべき?) -・ファイル名をマルチカラム表示する時のカラム数の計算を修正 - (岡部さんの table になってからと思っていて忘れてました) +紙筝茵ф緇絖羲√鐚ゃ<ャ若c + 絲上(terms.c у上鴻鐚) +祉<ゃ茵腓冴違荐膊篆罩 + (絏♂ table cc綽障) From:aito -<frameset > の中に COLS= と -ROWS= が両方指定してあると,フレームがうまくレンダリング -できなくなるようです. +<frameset > 筝 COLS= +ROWS= 筝≧号絎鐚若障潟潟 +сс鐚 From: sakane@d4.bsd.nes.nec.co.jp (Yoshinobu Sakane) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP X-Mailer: mnews [version 1.21PL5] 1999-04/04(Sun) -坂根です。 -w3m-990928 のgziped 廻りの(一部)改善をしました。 - o "w3m /tmp/hoge.Z"を見られるようにした - o 〜.gz などのアンカーで"Return"だけの場合、text/plainで - あればgunzipして表示、それ以外であれば downloadするよ - うにした - o mouseありw3m で"w3m /tmp/hoge.gz"すると、w3m終了後、 - mouse が効かなくなることの修正 - o 〜.gzをw3m で表示した時、ゾンビが残ることの修正 - (鵜飼さんのパッチをマージ) - o download中、download byte数を表示するようにした(512バ - イト毎) - o download中、SIGINTを有効にした(DELキーなどでdownloadを - 中断できる) +鴻с +w3m-990928 gziped 綮祉(筝)劫障 + o "w3m /tmp/hoge.Z"荀 + o .gz ≪潟若"Return"翫text/plain + gunzip茵腓冴篁ュс download + + o mousew3m "w3m /tmp/hoge.gz"w3m腟篋緇 + mouse 鴻篆罩 + o .gzw3m ц;腓冴障潟罧篆罩 + (薺蕋若若) + o download筝download byte違茵腓冴(512 + ゃ罸) + o download筝SIGINT鴻(DEL若download + 筝с) From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> -○ B-encode のデコード時のバグ修正です(発見者は坂根さん)。 -○ Currentbuf == NULL の場合に、disp_message() を使用した場合、 - ちょっと危険でしたので修正しました。 + B-encode 潟若遺信罩cс(肴鴻) + Currentbuf == NULL 翫disp_message() 篏睡翫 + <c演冴ст信罩c障 From: Hironori Sakamoto <h-saka@lsi.nec.co.jp> - >> リリース早々申し訳ないのですが、ラベルに移動した時に URL が変わらなく - >> なっていましたので、その修正 patch です。 -この修正が間違っていましたので、その修正と -vwSrc 時にも似たような現象になっていましたのでその修正です。 -また、フレーム表示で target 属性のあるアンカーを ESC RET で download -しようとすると異常になっていましたので、その修正です。 + >> 若号潟荐潟с腱糸 URL 紊 + >> c障с篆罩 patch с +篆罩cc障с篆罩c +vwSrc 篌若憠院c障с篆罩cс +障若茵腓冴 target 絮с≪潟若 ESC RET download +医幻c障с篆罩cс 1999.9.28 From: SASAKI Takeshi <sasaki@isoternet.org> -wrap search を行なうための -patch を作ってみました。次のことが可能になっています。 +wrap search 茵 +patch 篏c帥障罨<純c障 -1. forward/backward search での wrap search(文章の終端/先頭まで -到達したら先頭/終端から search を続ける) -2. オプションで search のデフォルトの振舞を変更する。 -3. コマンドライン上でデフォルトの設定を逆にする(-W というオプションで -割り当ててあります)。 -4. キーによる search の振舞の切替え(通常では C-w, lynx 風バインドでは -w にしてあります。) +1. forward/backward search с wrap search(腴腟腴/障 +育/腟腴 search 膓) +2. 激с潟 search 紊眼 +3. 潟潟ゃ割с荐絎(-W 激с潟 +蚊綵障) +4. 若 search 帥(絽吾с C-w, lynx 蘂ゃ潟с +w 障) From: SASAKI Takeshi <sasaki@isoternet.org> -今の w3m は &#xnnnn(n は16進数字)の解釈がおかしいようなので -patch を作ってみました。 +篁 w3m &#xnnnn(n 16我医)茹i +patch 篏c帥障 Change default character color to 'terminal' (do nothing). [aito] From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -linux コンソールで BG_COLOR を define した w3m を使うと, 終了した後 -w3m の画面がそのまま残ってしまうようです. +linux 潟潟純若 BG_COLOR define w3m 篏帥, 腟篋緇 +w3m 脂≪障丈c障с. From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> -以前に報告した、フレーム内の <pre> の直後の改行がおかしくなる件の -修正をしました。 +篁ュ怨若 <pre> 翫壕篁吟 +篆罩c障 From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - >> 最下行より下でマウスをクリックすると、アンカーの位置と - >> カーソルの位置がずれるので気がついたのですが、 -以下の patch でどうでしょう。 + >> 筝茵筝с鴻≪潟若篏臀 + >> 若純篏臀фゃс +篁ヤ patch сс From: Takashi Nishimoto <g96p0935@mse.waseda.ac.jp> -マウスの右ボタンでポップアップメニューが開きますが、 -カーソルを移動してから開いた方が自然だと思います。 +鴻劻帥潟с≪<ャ若障 +若純腱糸鴻吟障 From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> - >> 西本さんの patch だと、アンカー上のカーソルの上で右クリックすると - >> リンク先へ飛んでしまいませんか? - >> やはり、右ボタンと左ボタンとで処理は分けた方がいいと思います。 -修正した patch です。 + >> 茱炊 patch ≪潟寂若純筝у劻 + >> 潟檎с障障鐚 + >> 劻帥潟綏帥潟у鴻障 +篆罩c patch с @@ -3010,15 +3010,15 @@ From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> Fix a bug that renders <...> in form button as <...> tag. - 先程、config.h で #define DICT した時に有効になる機能で、 -SIGSEGV してしまう bug をみつけたので fix する patch を書きました。 -次回の update の時に入れて頂けると嬉しいです。 -(飯村さん uirou@din.or.jp) + 腮config.h #define DICT 鴻罘純с +SIGSEGV 障 bug 帥ゃ fix patch 吾障 +罨≦ update ャ絳с +(蕋 uirou@din.or.jp) -w3m から <BODY BACKGROUND="..."> -といった形式の background image を観る事が出来ないようでしたので、 -なんとなく patch を作ってみましたので contribute します。 -(飯村さん uirou@din.or.jp) +w3m <BODY BACKGROUND="..."> +c綵√ background image 荀潟篋堺ャсс + patch 篏c帥障 contribute 障 +(蕋 uirou@din.or.jp) From: Doug Kaufman <dkaufman@rahul.net> I just downloaded and compiled the 19990902 version of w3m with cygwin @@ -3026,1222 +3026,1222 @@ I just downloaded and compiled the 19990902 version of w3m with cygwin compilation problems. -NEXTSTEP 3.3Jにて、w3m(beta-990901)をmakeしたのですが、 -local.cにて、定義されずに使われている変数がありましたので -パッチを送らせて頂きます。 -(早瀬@大阪大学さん) +NEXTSTEP 3.3Jw3m(beta-990901)makeс +local.c絎臂篏帥紊違障 +障 +(@紊ч紊у) -From: おき -Subject: リスト環境内の HR -リスト環境中に HR が存在している場合,Netscape ではインデント位置から -開始されます.これと同じことができないかとやってみました.正しいかはわ -かりませんが,動作しているようです. +From: +Subject: 鴻医 HR +鴻医筝 HR 絖翫鐚Netscape сゃ潟潟篏臀 +紮障鐚сc帥障鐚罩c +障鐚篏с鐚 -From: おかだ +From: Subject: latin1_tbl -HTML中に ア のような表記があると、Segmentation fault で落ちるとき -があるので、以下のようにしてしのいでいますが、これでいいのでしょうか? - -CGI の場合のファイル名解析のバグ(_o_)とかもあったので、 -local CGI を試してみました。 -すると、 -・ソースファイルが消去される(discardBuffer) -・ヘッダ部分を読みにいかない(loadGeneralFile, openURL) -・セグメントエラーで落ちる(loadGeneralFile) -・現 URL が :///filename とおかしくなる(parsedURL2Str) -と、かなりバグってましたT_T -修正の方針は、scheme を SCM_LOCALCGI に設定するのを止めて、 -(SCM_LOCAL のままにしておいて) is_cgi フラグを使う様にしています。 -理由は、scheme として SCM_LOCALCGI があることを考慮していない部分が、 -かなりあったためです。(坂本さん) - -一行入力で ^V + 漢字 の場合にうまく動作しないものを修正しました。 -ついでに無駄な変数を整理しました(gcc -Wall で怒られるので)。 -(坂本さん) - -以下の問題を修正しました: - - 1. 英語版を Linux コンソールで実行したとき, グラフィクス文字が化ける. - 2. いくつかの kterm のカラー表示の不具合. - EWS4800 等の kterm では, termcap の me でカラーがリセットされない - ようです. - それで termcap に op= があれば, op を使ってカラーをリセットするよ - うにしてみました. - 3. その他もろもろ. -(岡部さん) - -どうも二つのバグが原因のようです. -一つはかなり大きなバグで, なんと相対幅指定が無効になっていました. -もう一つはバグというよりは仕様ですが, 浮動小数を整数に丸めるときに, 中 -身が同じセルの幅が最悪2文字差が出る事があるという問題です. -(岡部さん) - -w3m で download する時や gunzip の扱いに幾つか不具合がありました。 -・フレームを含む画面から download しようとすると異常になる -(坂本さん) - -次の修正を行ないました: - 1. <td> の相対幅指定が有効になった結果, <table> 幅指定が存在しない場 - 合に table の実際の幅が <td> の相対幅指定値に依存するという不具合 - が生じたのでマトリックス計算の重みを変更しました. - 2. 1 行スクロールの速度を改善. -(岡部さん) +HTML筝 ア 茵荐Segmentation fault ц純< +с篁ヤс障сс鐚 + +CGI 翫<ゃ茹f(_o_)cс +local CGI 荅帥障 + +祉純若鴻<ゃ羔サ(discardBuffer) +祉茯帥(loadGeneralFile, openURL) +祉祉違<潟若ц純<(loadGeneralFile) +紫 URL :///filename (parsedURL2Str) +違c障T_T +篆罩c拷scheme SCM_LOCALCGI 荐絎罩≪ +(SCM_LOCAL 障障) is_cgi 違篏帥罕障 +宴scheme SCM_LOCALCGI +cс() + +筝茵ュ ^V + 羲√ 翫障篏篆罩c障 +ゃс♂紊違雁障(gcc -Wall ф) +() + +篁ヤ馹篆罩c障: + + 1. 沿 Linux 潟潟純若у茵, 違c号絖. + 2. ゃ kterm 取;腓冴筝桁. + EWS4800 膈 kterm с, termcap me с若祉 + с. + termcap op= , op 篏帥c若祉 + 帥障. + 3. 篁. +(絏♂) + +篋ゃ違с. +筝ゃ紊с違, 後上絎≦鴻c障. +筝ゃ違篁罕с, 羌絨違贋違筝吾, 筝 +荳祉綛2絖綏冴篋馹с. +(絏♂) + +w3m download gunzip 宴綛障ゃ筝桁障 +祉若脂≪ download 医幻 +() + +罨<篆罩c茵障: + 1. <td> 後上絎鴻c腟, <table> 綛絎絖 + table 絎綛 <td> 後上絎ゃ箴絖筝桁 + с壕膊帥紊眼障. + 2. 1 茵鴻若綺劫. +(絏♂) 1999.9.3 -CGI使用時のURL解析のバグ修正.(坂本さん) +CGI篏睡URL茹f遺信罩o() - 1. 画面の描画の際の文字種の判定方法の誤りの修正. - 2. 画面再描画の必要性の判断方法の誤りの修正. - 3. no_clrtoeol の削除. -(岡部さん) + 1. 脂≪祉絖腮ゅ号茯ゃ篆罩. + 2. 脂√祉綽荀сゆ号茯ゃ篆罩. + 3. no_clrtoeol . +(絏♂) -w3m 英語版の挙動がおかしいバグの修正. -・T_eA が '\0' の場合でも graphic モードを使う。 - # 幾つかの端末では eA が必要ないので。 -・menu.c で graphic モードが使えない場合により安全にした。 -(坂本さん) +w3m 沿違篆罩o +T_eA '\0' 翫с graphic ≪若篏帥 + # 綛障ゃ腴с eA 綽荀с +menu.c graphic ≪若篏帥翫絎 +() 1999.9.2 -英語版でコンパイルする場合の不具合を修正. (坂本さん) +沿с潟潟ゃ翫筝桁篆罩o () -英語版のフォームで Latin-1 文字をコントロール文字と判断している -バグの修正.(岡部さん) +沿若 Latin-1 絖潟潟若絖ゆ +違篆罩o(絏♂) -<pre>..</pre>の中の改行が無視されるバグの修正.(岡部さん) +<pre>..</pre>筝壕∴違篆罩o(絏♂) -" がシングルクオートになっていたバグの修正.(くろきげんさん) +" 激潟違若c違篆罩o() -file://localhost/... が使えなくなっていたバグの修正.(坂本さん) +file://localhost/... 篏帥c違篆罩o() 1999.8.31 -オプション画面で多数の物を選択する部分を<select>にしてみた. +激с括脂≪у違御<select>帥鐚 From: hsaka@mth.biglobe.ne.jp -w3m-990820 への patch(その1) です。 +w3m-990820 吾 patch(鐚) с -一行入力(linein.c)での動作を修正/改良しました。 -・ファイル名やコマンドの入力の場合は、先頭のスペースを削除してから - 返す様にしました。(変なファイル名が出来てしまうことがあったため) -・補完の動作を整理しました。 +筝茵ュ(linein.c)с篏篆罩/壕障 +祉<ゃ潟潟ュ翫鴻若鴻ゃ + 菴罕障(紊<ゃ堺ャ障c) +肢絎篏雁障 (1) LOAD(V), SAVE_LINK(a, ESC RET) - 常にファイル名を補完 (CPL_ALWAYS) - 補完キーは、TAB と SPACE + 絽吾<ゃ茖絎 (CPL_ALWAYS) + 茖絎若TAB SPACE flag = IN_FILENAME - (2) SAVE(ESC s), SAVE_SREEEN(S) … "|" で始まるとパイプとみなされる + (2) SAVE(ESC s), SAVE_SREEEN(S) "|" у障ゃ帥 SHELL(!), PIPE_SHELL(#), READ_SHELL(@) - C-x で補完機能をトグル。最初は有効 (CPL_ON) - 補完キーは、TAB のみ + C-x ц絎罘純違 (CPL_ON) + 茖絎若TAB flag = IN_COMMAND - ※ シェルのようなコマンドの補完は出来ません - (3) GOTO(U), SEARCH(/), フォームの入力など通常の入力 - C-x で補完機能をトグル。最初は無効 (CPL_OFF) - 補完キーは、TAB のみ - flag = 無し - (4) パスワードの入力 - 常に補完しない (CPL_NEVER) + 激с潟潟茖絎堺ャ障 + (3) GOTO(U), SEARCH(/), 若ュ絽吾ュ + C-x ц絎罘純違≦ (CPL_OFF) + 茖絎若TAB + flag = < + (4) 鴻若ュ + 絽吾茖絎 (CPL_NEVER) flag = IN_PASSWORD From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> -local ファイル名の展開を改良しました。 -・doc-jp/README.local で NG となっていたファイル名のほとんどを - 適当なものに展開します。doc-jp/README.local は削除してください。 -・foo/../bar や foo/./bar などは常に短縮します。 - FTP の場合も短縮します。HTTP は短縮しません。 -・# で始まる local ファイル名の場合は常にファイル名とみなします。 - (これまで、directory/#1 の形は扱えていませんでした。) -・file://FOO/bar の形の場合は、Cygwin では FOO をドライブ名としてみなし - それ以外のシステムでは ftp://FOO/bar と FOO をホスト名とみなして - FTP を試します。 +local <ゃ絮壕障 +doc-jp/README.local NG c<ゃ祉 + 綵絮障doc-jp/README.local ゃ +foo/../bar foo/./bar 絽吾膰障 + FTP 翫膰障HTTP 膰障 +# у障 local <ゃ翫絽吾<ゃ帥障 + (障сdirectory/#1 綵≪宴障с) +file://FOO/bar 綵≪翫Cygwin с FOO ゃ帥 + 篁ュ激鴻с ftp://FOO/bar FOO 鴻帥 + FTP 荅障 From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -表の幅が狂うバグの修正. +茵綛違篆罩o From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -岡部です. +絏♂с. Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> writes: -> >> とこで、pipei(`@'や`#') を調べている時に、 -> >> `@' を3回使うと固まってしまう現象に出くわしたのですが、 -> >> 再現する方いらしゃいますか? -> >> OS は EWS4800 です。ゾンビが出来てたりします。 +> >> сpipei(`@'`#') 茯帥鴻 +> >> `@' 鐚篏帥冴障c障憠院冴с +> >> 憗鴻障鐚 +> >> OS EWS4800 с障潟堺ャ障 > -> FreeBSD でも再現しました。原因はまだ分かりません。 +> FreeBSD с憗障障障 -ちょっと時間ができたので, 調べてみました. -shell を起動する前に, それまでの shell の output を deleteBuffer で消して -いる所があるのですが, その buffer が Currentbuf のときでも消してし -まいます. -その後 pushBuffer によって新しい shell output を Currentbuf の前に -追加しようとして, 前と後がリンクした Buffer list ができてしまいます. -そのため, 3 回目に実行したときに pushBuffer の中で無限ループになってし -まうようです. +<cс, 茯帥鴻帥障. +shell 莎桁, 障с shell output deleteBuffer ф +с, buffer Currentbuf с羔 +障障. +緇 pushBuffer c違 shell output Currentbuf +菴遵, 緇潟 Buffer list с障障. +, 3 絎茵 pushBuffer 筝х♂若c +障с. -それで, buffer == Currentbuf なら Currentbuf を Currentbuf->nextBuffer -に変更してから buffer を消すようにしてみました. -ついでに共有できそうなコードはまとめてみました. +, buffer == Currentbuf Currentbuf Currentbuf->nextBuffer +紊眼 buffer 羔帥障. +ゃс掩с潟若障帥障. From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> -坂本です。 +с -背景の色を使えるようにした時(#define BG_COLOR)の雑多な修正と、 -ついでに kterm などの端末の foreground, background を使える -様にしてみました。(リクエストを囁かれたので^^;) -あと、細かい修正とかです。 +蚊篏帥(#define BG_COLOR)紊篆罩c +ゃс kterm 腴 foreground, background 篏帥 +罕帥障(鴻^^;) +膣違篆罩cс -コードについて、 -・clrtobotx, clrtoeolx の意味を変えています。 - clrtobot, clrtoeol を term.c 以外で使うことはまずないので - むしろ、clrtobotx を clrtobot を名付けた方がいいかも。 -・term.c の l_prop を int にしてしまったのでちょっと - メモリを食うかもしれません。 +潟若ゃ +clrtobotx, clrtoeolx 潟紊障 + clrtobot, clrtoeol term.c 篁ュт戎障 + clrtobotx clrtobot 篁鴻 +term.c l_prop int 障cс<c + <≪蕋障 From: Okabe Katsuya <okabe@okaibm.hep.okayama-u.ac.jp> -岡部です. +絏♂с. -端末の foreground を黒と仮定している部分があるので, 修正しました. +腴 foreground 藥篁絎, 篆罩c障. From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp> -・990820-hsaka7.patch - 検索(`/', `?')で検索文字列が \0 の場合は前回の検索文字列を使用し、 - NULL(C-c) の場合は検索しないようにした(vim や less 等と同じ動作)。 - また、'/' 等を押した場合のデフォルト値は空とした。 - 前回の検索文字列はヒストリを使って C-p(↑) で取り出すことができる - (lynx, vim 等と同じ)。 +990820-hsaka7.patch + 罎膣(`/', `?')ф膣∽絖 \0 翫罎膣∽絖篏睡 + NULL(C-c) 翫罎膣≪(vim less 膈篏) + 障'/' 膈若翫ゃ腥冴 + 罎膣∽絖鴻篏帥c C-p() у冴с + (lynx, vim 膈) -・990820-hsaka8.patch - etc.c の checkType() で \b の扱いを厳密にして less と同様になる - ように修正。"あ\bあ" でも bold の "あ" となる。 +990820-hsaka8.patch + etc.c checkType() \b 宴ウ絲 less 罕 + 篆罩c"\b" с bold "" -・990820-hsaka9.patch - 一行入力で Shift-JIS の場合に日本語の表示が出来なくなっていた問題の修正。 - 原因は checkType() が InnerCode(EUC) を前提にしていたため。 - 内部では常に InnerCode を使う様にし、また checkType() は使わない様にした - (\b を解析する必要がない & 高速化)。 +990820-hsaka9.patch + 筝茵ュ Shift-JIS 翫ユ茯茵腓冴堺ャc馹篆罩c + checkType() InnerCode(EUC) + с絽吾 InnerCode 篏帥罕障 checkType() 篏帥罕 + (\b 茹f綽荀 鐚 蕭) -・990820-hsaka10.patch - term.c の l_prop を short に戻した。 - 小細工のため、ややコードが読みにくくなっているかも。 - また、端末の色(kterm の foreground, background など)を使った場合に - need_redraw() がうまく働かなかったため、判定条件をきつくしている。 +990820-hsaka10.patch + term.c l_prop short 祉 + 絨靘医轡潟若茯帥c + 障腴(kterm foreground, background )篏帥c翫 + need_redraw() 障cゅ>散ゃ 1999.8.19 --S オプション(less の -s と同じ)を追加.< 坂根さん +-S 激с(less -s )菴遵鐚< 鴻 sakane@d4.bsd.nes.nec.co.jp THANKS! -入れ子になった表のセンタリングがうまくできないバグの -修正. +ャ絖c茵祉潟帥潟違障с違 +篆罩o -ftp のコネクションの close し忘れの修正. +ftp 潟激с潟 close 綽篆罩o -':' でアンカーを追加した場合に,TABでのアンカー移動の -順番がおかしいバグの修正.< -岡部さん okabe@fphy.hep.okayama-u.ac.jp THANKS! +':' с≪潟若菴遵翫鐚TABс≪潟主Щ +違篆罩o< +絏♂ okabe@fphy.hep.okayama-u.ac.jp THANKS! 1999.8.17 -環境変数LESSOPENを見るようにした. < てんこうさん +医紊LESSOPEN荀鐚 < tnh@aurora.dti.ne.jp THANKS! -form でうまく日本語が送れない場合があるバグの修正. -< 坂本さん hsaka@mth.biglobe.ne.jp THANKS! +form с障ユ茯翫違篆罩o +< hsaka@mth.biglobe.ne.jp THANKS! -<title>...</title>に複数行が入っていたときに,その一部が -contents として表示されてしまうバグの修正.< -岡部さん okabe@fphy.hep.okayama-u.ac.jp THANKS! +<title>...</title>茲域ャc鐚筝 +contents 茵腓冴障違篆罩o< +絏♂ okabe@fphy.hep.okayama-u.ac.jp THANKS! -ISO-8859-1 表示時に,罫線をグラフィックキャラクタで出す -ようにした. +ISO-8859-1 茵腓堺鐚臀膩違cc帥у冴 +鐚 -IPv6対応で,URLにport が指定してあった場合にうまく動作しなかった -バグの修正.< 鵜飼さん ukai@debian.or.jp THANKS! +IPv6絲上эURLport 絎c翫障篏c +違篆罩o< 薺蕋若 ukai@debian.or.jp THANKS! -<table width="">のような指定の場合に,幅指定を無視するようにした. +<table width="">絎翫鐚綛絎∴鐚 1999.8.15 -ISO-8859-1 対応. - -<PRE>の後に 改行が連続する時に、それがすべて無視されていたバグの -修正。 - -坂本さん hsaka@mth.biglobe.ne.jp による以下の修正。THANKS!!! -w3m (990814) の修正と改良です。 - -[表示] -・<ol> タグの type(="1","i","I","a","A"), start 属性に対応。 - <ul> タグの type(="disc","circle","square") 属性に対応(KANJI_SYMBOLS のみ)。 - <li> タグの type, value 属性に対応。 -・Overwrite のスペルミス -・SELECT(selBuf) や Selectメニューでの表示で localファイル以外は URL で - 表示する様にした。 -・size 属性が width 属性と同じになっていたのを修正。 -・最下行や SELECT(selBuf) などでのタイトルの表示で & などを変換して - 表示する様に修正(cleanup_str を使用) - -[動作] -・数 pgBack(), 数 pgFore() の動作を less や more と同じに戻した。 - 例えば、3 SPC で 3 行進む(3 J と同じ)。 - vi-like にするためには VI_PREC_NUM を #defile してください。 -・Save 時に(-dump の場合にも) ~/ や ~user/ を展開する様にした。 -・デフォルトの拡張子属性に .png, .PNG, .lzh, .LZH を追加 -・label が漢字な URL の場合に内部コードに変換してから label を探索する - ようにした - -[バッファ] -・フレーム表示、ソース表示画面や内部ページの扱いを統一的にするため、 - Buffer 構造体の bufferprop に BP_FRAME(フレーム), BP_SOURCE(ソース表示) - BP_INTERNAL(内部ページ), BP_NO_URL(基準URLなし) を設定するようにした。 -・自動フレーム表示の場合は、LOAD(ldfile) でもフレーム表示をするように修正。 -・フレーム表示状態で RELOAD(reload) した場合にはフレーム表示をするように修正。 -・ソース表示画面で EDIT(eidtBf) した後、通常の HTML 画面になってしまうのを修正。 -・ソース表示画面でも RELOAD(reload) できる様にした。 -・オプション表示画面等の内部ページを表示している時に GOTO(goURL) を - 使うとアボートすることがあったのを修正 -・オプション表示画面等の内部ページを表示している時に外部ブラウザを - 立ち上げると以上異常なページを表示することがある修正 -・フレームのあるページを表示している時、ウィンドウの幅が変わった場合に - ~/.w3m/w3mframe* の一時ファイルが残ってしまうことのあるバグ修正。 -・editBf() で gotoLine() にの位置がおかしく、行位置が保存されないものの修正。 - また、直後に arrangeCursor() に追加。 -・editSrc() に arrangeCursor() を追加。 - -[その他] -・func.h、doc-jp/README.func, doc-jp/README.keymap, doc-jp/menu.*, - doc-jp/keymap.* が3倍になっていた。 -・demo のソースが混入していた。 -・マニュアル類に、サスペンド(中断)にあたる C-z を追加。 - 文書の読み込みの中断(中止)は C-c (正確には stty で設定する intr に - あたるキー、キーバインド変更不可) です。 -・Strupper() が Strlower() になっていた。 -・キーマップファイル、メニュー定義ファイル、mailcap を config.h で - マクロ定義にした。 +ISO-8859-1 絲上鐚 + +<PRE>緇 壕g鴻∴違 +篆罩c + + hsaka@mth.biglobe.ne.jp 篁ヤ篆罩cTHANKS!!! +w3m (990814) 篆罩c壕с + +[茵腓] +<ol> 帥違 type(="1","i","I","a","A"), start 絮с絲上 + <ul> 帥違 type(="disc","circle","square") 絮с絲上(KANJI_SYMBOLS ) + <li> 帥違 type, value 絮с絲上 +Overwrite 鴻 +SELECT(selBuf) Select<ャ若с茵腓冴 local<ゃ篁ュ URL + 茵腓冴罕 +size 絮с width 絮сc篆罩c +紙筝茵 SELECT(selBuf) с帥ゃ茵腓冴 & 紊 + 茵腓冴罕篆罩(cleanup_str 篏睡) + +[篏] +紙 pgBack(), pgFore() 篏 less more 祉 + 箴違3 SPC 3 茵蚊(3 J ) + vi-like VI_PREC_NUM #defile +Save (-dump 翫) ~/ ~user/ 絮罕 +祉≦宍絖絮с .png, .PNG, .lzh, .LZH 菴遵 +label 羲√ URL 翫潟若紊 label 「膣≪ + + +[] +祉若茵腓冴純若壕;腓榊脂≪若吾宴腟延 + Buffer 罕篏 bufferprop BP_FRAME(若), BP_SOURCE(純若壕;腓) + BP_INTERNAL(若), BP_NO_URL(堺URL) 荐絎 +肢若茵腓冴翫LOAD(ldfile) с若茵腓冴篆罩c +祉若茵腓榊倶 RELOAD(reload) 翫若茵腓冴篆罩c +祉純若壕;腓榊脂≪ EDIT(eidtBf) 緇絽吾 HTML 脂≪c障篆罩c +祉純若壕;腓榊脂≪с RELOAD(reload) с罕 +祉激с活;腓榊脂∝若吾茵腓冴 GOTO(goURL) + 篏帥≪若c篆罩 +祉激с活;腓榊脂∝若吾茵腓冴紊吟 + 腴>篁ヤ医幻若吾茵腓冴篆罩 +祉若若吾茵腓冴c潟綛紊c翫 + ~/.w3m/w3mframe* 筝<ゃ罧c障遺信罩c +editBf() gotoLine() 篏臀茵篏臀篆絖篆罩c + 障翫 arrangeCursor() 菴遵 +editSrc() arrangeCursor() 菴遵 + +[篁] +func.hdoc-jp/README.func, doc-jp/README.keymap, doc-jp/menu.*, + doc-jp/keymap.* 鐚c +demo 純若鴻羞桁ャ +祉ャ≪蕁泣鴻潟(筝) C-z 菴遵 + 吾茯粋昭帥筝(筝罩) C-c (罩g∈ stty ц┃絎 intr + 若若ゃ潟紊岩) с +Strupper() Strlower() c +祉若<ゃ<ャ弱臂<ゃmailcap config.h + 絎臂 #define KEYMAP_FILE "~/.w3m/keymap" #define MENU_FILE "~/.w3m/menu" #define USER_MAILCAP "~/.mailcap" #define SYS_MAILCAP "/etc/mailcap" 1999.8.14 -岡部さん(okabe@fphy.hep.okayama-u.ac.jp)の非公式パッチを全面採用. -変更が多くて書ききれない.THANKS!!! +絏♂(okabe@fphy.hep.okayama-u.ac.jp)綣∽。鐚 +紊眼紊吾鐚THANKS!!! -gzip で圧縮された文書が読めるようにした.IPv6に対応. -< 鵜飼さん ukai@debian.or.jp THANKS! +gzip ух軒吾茯鐚IPv6絲上鐚 +< 薺蕋若 ukai@debian.or.jp THANKS! -lynx風キーバインドのhelpを作成.< 佐藤大さん satodai@dog.intcul.tohoku.ac.jp +lynx蘂若ゃ潟help篏鐚< 篏ゅぇ satodai@dog.intcul.tohoku.ac.jp THANKS! -frame の中に form があったときに,そのformに送信する漢字コードが -常にEUCになっていた不具合の修正.< てんこうさん tnh@aurora.dti.ne.jp +frame 筝 form c鐚form篆<羲√潟若 +絽吾EUCc筝桁篆罩o< tnh@aurora.dti.ne.jp THANKS! 1999.7.29 -タイトルが * で始まるHTML文書を 'E' で編集できないバグの修正. -< 下津さん shim@nw.bs1.fc.nec.co.jp THANKS! +帥ゃ * у障HTML吾 'E' х隈с違篆罩o +< 筝羇ャ shim@nw.bs1.fc.nec.co.jp THANKS! -表の幅が2pixel以下の場合に,関数 log_like が 0 を返し,列の -幅がなくなってしまうバグの修正.< 坂本さん hsaka@mth.biglobe.ne.jp +茵綛2pixel篁ヤ翫鐚∽ log_like 0 菴鐚 +綛c障違篆罩o< hsaka@mth.biglobe.ne.jp THANKS! - □ <ul>のネストが 10を越える場合の修正が不完全だった。 - □ メニューの項目の長さが画面幅を越える場合にメニューが崩れるバグの修正 - □ フォームの入力時に、C-cを押した場合デフォルト値を返すようにした。 - □ func.h、doc-jp/README.func, doc-jp/README.keymap, doc-jp/menu.*, doc-jp - /keymap.*が3倍になっていた。 - □ demoのソースが混入していた。 - □ マニュアル類に、サスペンド(中断)にあたる C-zを追加。 - 文書の読み込みの中断(中止)は C-c (正確には sttyで設定する intrにあたる - キー、キーバインド変更不可)です。 - □ doc/FAQ.htmlで href= ftpと '"'が抜けていたのを修正 -< 坂本さん hsaka@mth.biglobe.ne.jp THANKS! + <ul>鴻 10莇翫篆罩c筝絎c + <ャ若激脂√莇翫<ャ若經違篆罩 + 若ュC-c若翫ゃ菴 + func.hdoc-jp/README.func, doc-jp/README.keymap, doc-jp/menu.*, doc-jp + /keymap.*鐚c + demo純若鴻羞桁ャ + ャ≪蕁泣鴻潟(筝) C-z菴遵 + 吾茯粋昭帥筝(筝罩) C-c (罩g∈ sttyц┃絎 intr + 若若ゃ潟紊岩)с + doc/FAQ.html href= ftp '"'篆罩 +< hsaka@mth.biglobe.ne.jp THANKS! 1999.7.16 -http://location/#label の形のURLでは #label をラベルとして, -file:///#file の場合には特別に #file をファイル名とみなすように -URLの解釈を変更した.< 佐々木さん sasaki@isoternet.org THANKS! +http://location/#label 綵≪URLс #label 鐚 +file:///#file 翫劫ャ #file <ゃ帥 +URL茹i紊眼鐚< 篏 sasaki@isoternet.org THANKS! -'E'でソースを編集したときに無限ループに陥ることがあるバグの修正. -< 坂本さん hsaka@mth.biglobe.ne.jp THANKS! +'E'с純若鴻膩♂若ャ違篆罩o +< hsaka@mth.biglobe.ne.jp THANKS! -local CGI で,環境変数 CONTENT_TYPE に渡すタイプが間違っていた. -(application/x-www-form-urlencoded にすべきところを, -x-www-form-urlencoded にしていた) +local CGI э医紊 CONTENT_TYPE 羝<帥ゃc鐚 +(application/x-www-form-urlencoded 鴻鐚 +x-www-form-urlencoded ) -画面をリサイズすると,バッファの総行数と現在行がずれてしまうバグ -の修正.< 坂本さん hsaka@mth.biglobe.ne.jp THANKS! +脂≪泣ゃ冴鐚<膩頫違憜茵障 +篆罩o< hsaka@mth.biglobe.ne.jp THANKS! -'w' で前方移動するときに,最後の行で実行すると無限ループに陥る -バグの修正. +'w' у合Щ鐚緇茵у茵♂若ャ +違篆罩o -MANUAL_lynx.html を更新.< 大' さん satodai@dog.intcul.tohoku.ac.jp +MANUAL_lynx.html 贋逸< 紊' satodai@dog.intcul.tohoku.ac.jp THANKS! 1999.7.13 -linein.cでのJIS入力がうまくいかないバグの修正.(一旦直したつもりが, -SJISでの入力がうまくいかないバグが混入していた.) - -form の RESETボタンを押すと,HIDDEN属性の値までクリアされていた -バグの修正. -中身のないファイルの情報を'='コマンドで見ようとするとコアダンプ -するバグの修正. -US_ASCIIだけのファイルの情報を見ると,document_code のところで -中身が切れてしまうバグの修正. -内容がないファイルをreloadできないバグの修正. -< 牧野さん m-yoshi@jaist.ac.jp THANKS! +linein.cсJISュ障違篆罩o(筝眼ゃ鐚 +SJISсュ障違羞桁ャ鐚) + +form RESET帥潟若鐚HIDDEN絮сゃ障с≪ +違篆罩o +筝荳<ゃ宴'='潟潟ц潟≪潟 +違篆罩o +US_ASCII<ゃ宴荀鐚document_code +筝荳障違篆罩o +絎鴻<ゃreloadс違篆罩o +< ч m-yoshi@jaist.ac.jp THANKS! 1999.7.2 -<pre>と<nobr>を入れ子にすると<nobr>が勝手に改行を入れるバグ -の修正. +<pre><nobr>ャ絖<nobr>壕ャ +篆罩o -存在するファイルに上書きするときに確認メッセージを出すよう改良. -localファイルを同じファイルにSaveすると内容が消えるバグの修正. -ディレクトリ表示の改良. -~/.w3m/keymap によりキーバインドを定義できるようにした. -~/.w3m/menu によリメニューを定義できるようにした. -メニューのキーバインドの変更. -バッファオーバーフローの修正. -< 以上,坂本さん hsaka@mth.biglobe.ne.jp THANKS! +絖<ゃ筝吾腆肴<祉若吾冴壕鐚 +local<ゃ<ゃSave絎鴻羔違篆罩o +c茵腓冴壕鐚 +~/.w3m/keymap 若ゃ潟絎臂с鐚 +~/.w3m/menu <ャ若絎臂с鐚 +<ャ若若ゃ潟紊器 +<若若若篆罩o +< 篁ヤ鐚 hsaka@mth.biglobe.ne.jp THANKS! -table で,rowspan と colspan が重なるセルがあると枠が崩れるバグ -の修正.< 岡部さん okabe@okaibm.hep.okayama-u.ac.jp THANKS! +table эrowspan colspan 祉經 +篆罩o< 絏♂ okabe@okaibm.hep.okayama-u.ac.jp THANKS! -ファイルでないものを見ているときに reload すると SEGV が -起きることがあるバグの修正. +<ゃс荀 reload SEGV +莎激違篆罩o 1999.6.30 -<select>..</select>をメニューでレンダリングするように改良. +<select>..</select><ャ若с潟潟違壕鐚 1999.6.25 -'w' を使うときに,その行の最後の文字が2バイト文字だと無限ループ -になるバグの修正. +'w' 篏帥鐚茵緇絖2ゃ絖♂若 +違篆罩o --no-mouse オプションの指定順序によって挙動が違う問題の解決. -横長の端末の際、画面右端にアンカーがある場合、マウスによ -るカーソル移動ができない場合がある問題の解決. -c や u で URLを表示している間は、mouseを無効にする. - < 坂根さん sakane@d4.bsd.nes.nec.co.jp THANKS! +-no-mouse 激с潟絎綺c馹茹f浦鐚 +罔激腴脂√勆≪潟若翫鴻 +若純腱糸с翫馹茹f浦鐚 +c u URL茵腓冴mouse≦鴻鐚 + < 鴻 sakane@d4.bsd.nes.nec.co.jp THANKS! -<u><b>が入れ子になっている場合に正常に表示ができないバグの -修正.< 岡部さん okabe@okaibm.hep.okayama-u.ac.jp THANKS! +<u><b>ャ絖c翫罩e幻茵腓冴с違 +篆罩o< 絏♂ okabe@okaibm.hep.okayama-u.ac.jp THANKS! -<nobr>..</nobr>が画面の幅を越えているときに,その直前で強制 -改行していた挙動を変更.<nobr>の直前に長さを持つ要素があった -場合には改行し,そうでない場合には改行しないようにした. +<nobr>..</nobr>脂≪綛莇鐚翫у七 +壕紊器<nobr>翫激よ膣c +翫壕鐚с翫壕鐚 1999.6.24 -<input type=checkbox> で,VALUE 属性が指定されていなかった時に, -デフォルトの値を "on" にした.Netscape 等のブラウザの真似. +<input type=checkbox> эVALUE 絮с絎c鐚 +ゃ "on" 鐚Netscape 膈吟篌種 1999.6.23 -大きさ0のファイルの中でカーソル移動をすると Segmentation fault -するバグの修正. +紊с0<ゃ筝с若純腱糸 Segmentation fault +違篆罩o -'\0' を含むファイルもそれなりに表示できるようにした. +'\0' <ゃ茵腓冴с鐚 -lynx風キーバインドで,'G' をgoto-lineに,'g'を goto-URL に変更. +lynx蘂若ゃ潟э'G' goto-line鐚'g' goto-URL 紊器 -table の中で <H1 align=center> 等を使うと,その見出しを越えて -justification が適用されてしまうバグのfix. +table 筝 <H1 align=center> 膈篏帥鐚荀冴莇 +justification 障違fix. -<p align=xxx> の後にtableを置くと,それが常に左寄せになってしまう -バグの修正.原因は,table がレンダリングされると <pre>...</pre> -になっていて,かつ <pre> が段落を閉じていたせいだった. +<p align=xxx> 緇table臀鐚絽吾綏絲c障 +違篆罩o鐚table 潟潟違 <pre>...</pre> +c鐚 <pre> 罧笈純c鐚 -単語検索機能を追加.(ESC w, ESC W) -w で一単語右,W で一単語左に移動するコマンドを追加. -< 西本さん g96p0935@mse.waseda.ac.jp THANKS! +茯罎膣∽純菴遵鐚(ESC w, ESC W) +w т茯勜W т茯綏腱糸潟潟菴遵鐚 +< 茱炊 g96p0935@mse.waseda.ac.jp THANKS! -メッセージ行が 300 字を越えると terms.c の配列 ScreenElem の -中身が壊れるバグの修正. -文字化けしているページで, コード 0x8e の文字が含まれているとき w3m が -落ちることがある問題の修正. -< 岡部さん okabe@okaibm.hep.okayama-u.ac.jp THANKS! +<祉若梧 300 絖莇 terms.c ScreenElem +筝荳紕違篆罩o +絖若吾, 潟若 0x8e 絖障 w3m +純<馹篆罩o +< 絏♂ okabe@okaibm.hep.okayama-u.ac.jp THANKS! -メニュー機能を追加. -最下行でのキー入力にヒストリ機能を追加. -< 坂本さん hsaka@mth.biglobe.ne.jp THANKS! +<ャ惹純菴遵鐚 +筝茵с弱ュ鴻罘純菴遵鐚 +< hsaka@mth.biglobe.ne.jp THANKS! 1999.6.21 -minimum_length() の中の isalpha() を IS_ALPHA()に修正. +minimum_length() 筝 isalpha() IS_ALPHA()篆罩o -lynx風キーバインドを変更.j,k をカーソル移動に,J,Kを -1行スクロールに割りあてた.< Doug Kaufman dkaufman@rahul.net THANKS! +lynx蘂若ゃ潟紊器j,k 若純腱糸鐚J,K +1茵鴻若蚊鐚< Doug Kaufman dkaufman@rahul.net THANKS! 1999.6.16 -XMakefile のインストールディレクトリに $(DESTDIR)を追加. -< 山縣さん yamagata@ns1.plathome.co.jp THANKS! +XMakefile ゃ潟鴻若c $(DESTDIR)菴遵鐚 +< 絮援牽 yamagata@ns1.plathome.co.jp THANKS! --v オプションを付けた. +-v 激с潟篁鐚 -最下行にリンクを表示するときに,まん中を ... で省略表示 -するようにした. -dirBuffer() で /home/../.. などのディレクトリが正しく展開 -されていなかったものの修正. -バッファ選択モードで、矢印キーを有効にしてみた。 -< 坂本さん hsaka@mth.biglobe.ne.jp THANKS! +筝茵潟茵腓冴鐚障筝 ... хヨ;腓 +鐚 +dirBuffer() /home/../.. c罩c鎡 +c篆罩o +♂御≪若с√違若鴻帥 +< hsaka@mth.biglobe.ne.jp THANKS! -inputLine で -no-mouse オプションによらず、mouse_end(), -mouse_init() が呼ばれていたものの修正. -< 坂本さん hsaka@mth.biglobe.ne.jp && 坂根さん sakane@d4.bsd.nes.nec.co.jp +inputLine -no-mouse 激с潟mouse_end(), +mouse_init() 若違篆罩o +< hsaka@mth.biglobe.ne.jp && 鴻 sakane@d4.bsd.nes.nec.co.jp THANKS! 1999.6.15 -FAQ.html を入れかえ.< Tom Berger tom.be@gmx.net THANKS! +FAQ.html ャ鐚< Tom Berger tom.be@gmx.net THANKS! 1999.6.10 -<nobr>の扱いを改良. +<nobr>宴壕鐚 1999.6.9 -HP-UX11.00 on PA-RISC2.0 対応. -インストール時に,インストール先ディレクトリがないと make -がコケる問題の修正.< Dave Eaton dwe@arde.com THANKS! +HP-UX11.00 on PA-RISC2.0 絲上鐚 +ゃ潟鴻若鐚ゃ潟鴻若c make +潟宴馹篆罩o< Dave Eaton dwe@arde.com THANKS! -<dl compact>の挙動の修正.< 坂本さん hsaka@mth.biglobe.ne.jp +<dl compact>篆罩o< hsaka@mth.biglobe.ne.jp THANKS! 1999.6.8 --no-mouse オプションをつけた. +-no-mouse 激с潟ゃ鐚 -<nobr>と<pre>が入れ子になっているときに,内側のタグの -中身が表示されないバグの修正. -<table>の中に<nobr>があり,その中に <br>や <p> などがあっ -たときに,表の幅計算が狂うバグの修正.< 岡部さん +<nobr><pre>ャ絖c鐚眼帥違 +筝荳茵腓冴違篆罩o +<table>筝<nobr>鐚筝 <br> <p> +鐚茵綛荐膊違篆罩o< 絏♂ okabe@okaibm.hep.okayama-u.ac.jp THANKS! -パスワード付きページで,送ったパスワードがまちがっていて -再入力したときに,それが使われないバグの修正.< 畑口さん +鴻若篁若吾эc鴻若障<c +ュ鐚篏帥違篆罩o< c THANKS! -char == unsigned char なマシンでうまく動かない部分の修正. -< すながわさん kei_sun@ba2.so-net.ne.jp THANKS! +char == unsigned char 激潟с障篆罩o +< kei_sun@ba2.so-net.ne.jp THANKS! -NetBSD/macppc 用のパッチを用意.< すながわさん +NetBSD/macppc 鐚< kei_sun@ba2.so-net.ne.jp THANKS! -tableの中にコメントがあり,それが閉じていないとき,無限 -ループになるバグのfix. < 岡部さん okabe@okaibm.hep.okayama-u.ac.jp +table筝潟<潟鐚鐚♂ +若違fix. < 絏♂ okabe@okaibm.hep.okayama-u.ac.jp THANKS! 1999.6.5 -マウス使用時に,状態行のアイコンをクリックしてページ -上下と前ページ移動ができるようにした. +剛戎鐚倶茵≪ゃ潟潟若 +筝筝若悟Щс鐚 1999.6.3 -ファイル名の最初に#が来た場合の処理にバグがあった. +<ゃ#ャ翫違c鐚 -再読みこみ時に,元の行番号の行に復帰するようにした. +茯帥炊鐚茵垩茵緇絽違鐚 -マウス対応部分の改良.mouse_init()とmouse_term()を -terms.c に移動. +劫上壕鐚mouse_init()mouse_term() +terms.c 腱糸鐚 -開始・終了時に termcap の ti/te を出すようにして -みた. +紮紫篋 termcap ti/te 冴 +帥鐚 -パスワード付きページで,送ったパスワードがまちがっていた -場合,無限ループになるバグの修正. +鴻若篁若吾эc鴻若障<c +翫鐚♂若違篆罩o -news:newsgroups の形式のURLを辿ろうとしたとき,「それは -使えない」旨のメッセージを出すことにした. +news:newsgroups 綵√URL莨帥鐚 +篏帥<祉若吾冴鐚 1999.6.1 -マウスのドラッグに対応.< 武さん ytake@phys2.med.osaka-u.ac.jp +鴻違絲上鐚< 罩 ytake@phys2.med.osaka-u.ac.jp THANKS! 1999.5.26 -ファイル名の最初と最後に # が来た場合には,それを -ラベルとして解釈しないようにした. +<ゃ緇 # ャ翫鐚 +茹i鐚 -行番号表示機能を追加. +茵埈;腓堺純菴遵鐚 --no-proxy オプションを追加. +-no-proxy 激с潟菴遵鐚 -マウス対応.< 武さん ytake@phys2.med.osaka-u.ac.jp +劫上鐚< 罩 ytake@phys2.med.osaka-u.ac.jp THANKS! -&...; が来た場合の幅の計算にバグがあった.< 岡部さん +&...; ャ翫綛荐膊違c鐚< 絏♂ okabe@okaibm.hep.okayama-u.ac.jp THANKS! -1文字横スクロール機能を追加.< 下津さん +1絖罔鴻若罘純菴遵鐚< 筝羇ャ shim@nw.bs1.fc.nec.co.jp THANKS! -<wbr> に対応. +<wbr> 絲上鐚 -table の中での空白の扱いにバグがあったので修正. +table 筝с腥榊純宴違cт信罩o -table の中での <nobr>..</nobr>の幅計算にミスがあった -ので修正. +table 筝с <nobr>..</nobr>綛荐膊鴻c +т信罩o -NNTPで記事を取り出すコマンドを article から ARTICLE -に変更.< patakuti さん patakuti@t3.rim.or.jp THANKS! +NNTPц篋冴潟潟 article ARTICLE +紊器< patakuti patakuti@t3.rim.or.jp THANKS! -openURL()の中で,URLFile 型変数 uf の初期化が不完全 -だった(uf.encoding を初期化していなかった)ために動作 -が不安定になっていた.修正. < まきのさん +openURL()筝эURLFile 紊 uf 筝絎 +c(uf.encoding c)篏 +筝絎絎c鐚篆罩o < 障 1999.5.19 -table の中に,; で終了しない character entity が -出てきたときに無限ループに陥るバグの修正. -< 山本さん mituharu@math.s.chiba-u.ac.jp THANKS! +table 筝鐚; х篋 character entity +冴♂若ャ違篆罩o +< 絮掩 mituharu@math.s.chiba-u.ac.jp THANKS! -HTML でないものはソースを表示しないようにした. +HTML с純若鴻茵腓冴鐚 -  のように ; のないものも,character entity と -解釈できる場合にはそのように表示することにした. +  ; 鐚character entity +茹iс翫茵腓冴鐚 -file.c の中で,一部のコンパイラでエラーになる部分の修正. -起動時オプションに +行番号 を追加. -< 下津さん shim@nw.bs1.fc.nec.co.jp THANKS! +file.c 筝э筝潟潟ゃс若篆罩o +莎桁激с潟 +茵 菴遵鐚 +< 筝羇ャ shim@nw.bs1.fc.nec.co.jp THANKS! 1999.5.14 -Cygwin で日本語を使う場合には,常に最下行を空ける -ようにした. +Cygwin фユ茯篏帥翫鐚絽吾筝茵腥冴 +鐚 1999.5.13 -<nobr>..</nobr>の挙動を勘違いしていたようなので,修正. -このタグの中では,追いこみをしつつ改行をしないように -した. +<nobr>..</nobr>э篆罩o +帥違筝с鐚菴純帥ゃゆ壕 +鐚 1999.5.12 -J,Kで1行スクロールする際に,カーソル位置を保存するように -した.< 下津さん shim@nw.bs1.fc.nec.co.jp THANKS! +J,K1茵鴻若鐚若純篏臀篆絖 +鐚< 筝羇ャ shim@nw.bs1.fc.nec.co.jp THANKS! 1999.5.11 -text/plain の場合にも,読みこみ状況を最下行に表示するよう -にした.C-c での中断にも対処. +text/plain 翫鐚茯帥睡倶筝茵茵腓冴 +鐚C-c с筝絲上鐚 1999.5.7 -<div>,<center>など,justificationをいじるタグを使う場合 -には,現在のjustificationをスタックに退避し,終了タグに -よって環境を復帰するようにした. +<div>,<center>鐚justification帥違篏帥翫 +鐚憜justification鴻帥帥鐚腟篋帥違 +c医緇絽違鐚 -gc を 4.14 にバージョンアップ. +gc 4.14 若吾с潟≪鐚 -Content-Length がサーバから送られてきた場合は,画面最下行 -にprogress barを出すようにした. +Content-Length 泣若翫鐚脂∽筝茵 +progress bar冴鐚 -'=' で文書情報を出すときに,HTTPヘッダの情報も表示する -ようにした. +'=' ф御宴冴鐚HTTP宴茵腓冴 +鐚 1999.5.6 -</OL>, </UL>が続くときに空行が連続してしまうバグの修正. +</OL>, </UL>膓腥肴g障違篆罩o -<OL>,<UL>の外で<LI>が出てきたときに改行するようにした. -'u'コマンドで絶対パスを表示するようにした. -< てんこうさん tnh@aurora.dti.ne.jp THANKS! +<OL>,<UL>紊<LI>冴壕鐚 +'u'潟潟х偽絲障鴻茵腓冴鐚 +< tnh@aurora.dti.ne.jp THANKS! -転送途中で C-c で中断したとき,そこまで読んだ内容を表示する -ようにした. +荵∫筝 C-c т賢鐚障ц絎鴻茵腓冴 +鐚 -リンク先を直接保存する機能を改良.画像も保存できるようにする. -< 佐野さん yukihiko@yk.rim.or.jp THANKS! +潟贋・篆絖罘純壕鐚糸篆絖с鐚 +< 篏 yukihiko@yk.rim.or.jp THANKS! 1999.4.30 -config.h の一部を切り出して XXMakefile を作る作業をする -コマンドとして、CPPではなくawkを使うようにした。 +config.h 筝冴 XXMakefile 篏篏罐 +潟潟CPPсawk篏帥 -バッファにHTTPヘッダの情報を保存するようにした. +<HTTP宴篆絖鐚 -'=' の情報画面に Last Modified を追加. +'=' 援脂≪ Last Modified 菴遵鐚 -現在のドキュメントが ftp で,ユーザ名かパスワード指定で -アクセスしている場合は,Referer: に現在のURLを付けない -ようにした. +憜ャ<潟 ftp э若九鴻若絎 +≪祉鴻翫鐚Referer: 憜URL篁 +鐚 -空行の判定を改良.</OL>,</UL>,</DL>,</BLOCKQUOTE>の直後の -<P>を無効にした. +腥肴ゅ壕鐚</OL>,</UL>,</DL>,</BLOCKQUOTE>翫 +<P>≦鴻鐚 -コマンドに回数が指定できるようにした. -< 畑口さん patakuti@t3.rim.or.jp THANKS! +潟潟違絎с鐚 +< c patakuti@t3.rim.or.jp THANKS! -リンク先のドキュメントをファイルに保存する機能を追加. -< てんこうさん tnh@aurora.dti.ne.jp THANKS! +潟ャ<潟<ゃ篆絖罘純菴遵鐚 +< tnh@aurora.dti.ne.jp THANKS! 1999.4.28 -ftp のディレクトリリストがアルファベット順になるようにした. +ftp c鴻≪<鐚 -ftp://username@hostname/file 形式をサポート. -FTP のディレクトリリストをブックマークに登録できるようにし -FTP の画面でパスワードが表示されないようにした -ftp://username@hostname/file 形式の時は HTTP のパスワード認証と同様に -add_auth_cookie を用いてパスワードを保持するようにした -< 畑口さん patakuti@t3.rim.or.jp THANKS! +ftp://username@hostname/file 綵√泣若鐚 +FTP c鴻若脂蚊с +FTP 脂≪с鴻若茵腓冴 +ftp://username@hostname/file 綵√ HTTP 鴻若茯荐若罕 +add_auth_cookie 鴻若篆 +< c patakuti@t3.rim.or.jp THANKS! -ftpにアクセスするとき,getpwuid()でユーザ情報が取り出せないと -エラーになるバグを修正. +ftp≪祉鴻鐚getpwuid()с若倶宴冴 +若違篆罩o -<Hn>, <P>で align 属性が有効になるようにした.< 黒木玄さん +<Hn>, <P> align 絮с鴻鐚< 藥 kuroki@math.tohoku.ac.jp THANKS! -行頭に空白が入ることがあるバグの修正. < 岡部さん +茵腥榊純ャ違篆罩o < 絏♂ okabe@okaibm.hep.okayama-u.ac.jp THANKS! -画面のリサイズをするとコアダンプするバグの修正. +脂≪泣ゃ冴潟≪潟違篆罩o -ESC e で,画面の表示イメージを編集できるようにした. +ESC e э脂≪茵腓冴ゃ<若吾膩с鐚 1999.4.26 -ftp://user:password@host/file 形式に対応.< てんこうさん +ftp://user:password@host/file 綵√絲上鐚< tnh@aurora.dti.ne.jp THANKS! -"U" コマンドでURLを入力するとき,現在のURLをデフォルトにするよう -にした. +"U" 潟潟URLュ鐚憜URL +鐚 1999.4.23 -EUCのX0201カナに対応.< てんこうさん tnh@aurora.dti.ne.jp THANKS! +EUCX0201絲上鐚< tnh@aurora.dti.ne.jp THANKS! 1999.4.21 -term.c で、config.h を include する順序を変更。こうしないと、config.h -の中で使われている FILE* が未定義になる。 +term.c сconfig.h include 綺紊眼config.h +筝т戎 FILE* 絎臂 -ロードするURLに "" を使うとコアダンプするバグの修正。< _tom_さん +若URL "" 篏帥潟≪潟違篆罩c< _tom_ _tom_@sf.airnet.ne.jp THANKS! -rc.c の中の英語のメッセージのシンボル名に間違いがあった。 -< 砂川さん Keiki_Sunagawa@yokogawa.co.jp THANKS! +rc.c 筝沿<祉若吾激潟c +< 綏 Keiki_Sunagawa@yokogawa.co.jp THANKS! -ftp のパスワードを指定できるようにした。 +ftp 鴻若絎с 1999.4.18 -<tag attr=> のようなタグがあると、そこでタグが終了したとみなされない -バグの修正。 +<tag attr=> 帥違с帥違腟篋帥 +違篆罩c -最下行のいちばん右のカラムに文字を出力しないようにした。ある種のター -ミナルエミュレータで、画面全体がスクロールしてしまうのを防ぐ。 +筝茵<違劻絖阪腮帥 +ャ若帥с脂√篏鴻若障蚊 1999.4.9 -長いURLを入力すると,__ctype が破壊されて,表示が発狂するバグの修正. +激URLュ鐚__ctype 翫鐚茵腓冴榊違篆罩o 1999.4.6 -パスワードに ' ' が使えなかったバグの修正.< 匿名希望さん :-) THANKS! +鴻若 ' ' 篏帥c違篆罩o< 水絽 :-) THANKS! 1999.4.5 -パスワード付きページが見られるように改良. +鴻若篁若吾荀壕鐚 1999.4.4 -ローカルCGIに対応. +若CGI絲上鐚 1999.4.2 -ローカルのディレクトリリストが見られるように改良. +若c鴻荀壕鐚 1999.4.1 -map 名に漢字を使うとうまく imagemap のリンクが辿れなかったバグの修正. +map 羲√篏帥障 imagemap 潟莨帥c違篆罩o -&...; について,最後の ; を付けなかった場合に幅の計算が狂う問題の -修正. +&...; ゃ鐚緇 ; 篁c翫綛荐膊馹 +篆罩o --halfdump オプションを付ける.将来への布石.(undocumented) +-halfdump 激с潟篁鐚絨ャ吾絽鰹(undocumented) -"#label" の形の URL を parseURL2 で解析した場合に結果がおかしくなる -バグの修正. +"#label" 綵≪ URL parseURL2 цВ翫腟 +違篆罩o 1999.3.31 -ファイル名が漢字なバカURLに対処するため,followA と followI の中で -「URLが2バイトコードを含んでいたら,document_codeに変換してから送信」 -にしてみた.漢字使ってもいいからリンクではURL encodeしてくれえ. +<ゃ羲√URL絲上鐚followA followI 筝 +URL2ゃ潟若с鐚document_code紊篆< +帥鐚羲√篏帥c潟сURL encode鐚 -configure の中の 'pxvt' を 'rxvt' に訂正. +configure 筝 'pxvt' 'rxvt' 荐罩o -<base href="..."> があった場合に,それを自分のURLだと思っていた仕様 -を訂正.base URL を別に保持して,それがある場合にはそれを相対URLの -補完に使い,ない場合は自分のURLを使うことにした. +<base href="..."> c翫鐚URLc篁罕 +荐罩obase URL ャ篆鐚翫後URL +茖絎篏帥鐚翫URL篏帥鐚 1999.3.30 -openSocket() の中で,getprotobyname() が失敗したら,tcpのプロトコル -番号を 6 で決め打ちすることにした. +openSocket() 筝эgetprotobyname() 紊掩鐚tcp潟 +垩 6 ф浦<鐚 --dump_source オプションをつける. +-dump_source 激с潟ゃ鐚 -おまけに makeref スクリプトを添付. +障 makeref 鴻羞私鐚 -ISO-2022-JPの文書にJIS X0201カナが入っていて,その直後にJIS X0208 -が来る場合に文字化けしていたバグを修正. +ISO-2022-JP吾JIS X0201ャc鐚翫JIS X0208 +ャ翫絖違篆罩o 1999.3.29 -sigsetjmp() への対応が不完全だった.修正. +sigsetjmp() 吾絲上筝絎c鐚篆罩o -':' コマンドで URL とみなす文字種に ',' を追加. +':' 潟潟 URL 帥絖腮 ',' 菴遵鐚 -configure で,システムの GC library のバージョンを調べ,古かったら -それを使うかどうか問いあわせることにした. +configure э激鴻 GC library 若吾с潟茯帥刻ゃc +篏帥鐚 -sigsetjmp()/siglongjmp() が存在する場合にはそちらを使うことにした. +sigsetjmp()/siglongjmp() 絖翫<篏帥鐚 1999.3.24 -色のリセット問題の対応が不完全だったのを修正. +蚊祉馹絲上筝絎c篆罩o 1999.3.23 -<pre> の直後が改行だった場合,それを無視するよう修正. +<pre> 翫壕c翫鐚∴篆罩o -デフォルトの文字の色を端末のforeground color以外にしていた場合に, -bold の効果の終わりで色がリセットされてしまうバグの修正. +絖蚊腴foreground color篁ュ翫鐚 +bold 号腟ц蚊祉障違篆罩o -HTTPでファイルをダウンロードする場合に,ファイル名変更ができない -バグの修正. +HTTPс<ゃ潟若翫鐚<ゃ紊眼с +違篆罩o 1999.3.22 -POSTメソッドの応答の中にredirectが含まれていたときに,その -移動先へのアクセスが POSTになってしまうバグの修正. +POST<純綽膈筝redirect障鐚 +腱糸吾≪祉鴻 POSTc障違篆罩o -入れ子になった table の中で <nobr>を(もっと正確には,</nobr>を) -使うと表が崩れるバグの修正. +ャ絖c table 筝 <nobr>(c罩g∈鐚</nobr>) +篏帥茵經違篆罩o -オプション設定の表示を大幅変更.セクションを設けた. +激с活┃絎茵腓冴紊у紊器祉激с潟荐鐚 -自動的に状態行にリンク先のURLを表示するモードを追加. -< 柳田(Seiya Yanagita)さん THANKS! +倶茵潟URL茵腓冴≪若菴遵鐚 +< 括(Seiya Yanagita) THANKS! -POST メソッドで文字列をサーバに送るときに,行末が LF のみの場合は -CRLFを送るように変更.< 鈴木健一さん ksuzuki@miyagi-ct.ac.jp THANKS! +POST <純ф絖泣若鐚茵 LF 帥翫 +CRLF紊器< 贋ヤ ksuzuki@miyagi-ct.ac.jp THANKS! -gcライブラリを 4.14alpha にバージョンアップ. +gcゃ 4.14alpha 若吾с潟≪鐚 1999.3.20 -"M" で外部ブラウザを起動するようにした. +"M" у吟莎桁鐚 1999.3.19 -背景を黒にしていて,文字を白にしたとき,終了時に文字が黒く -なってしまうバグの修正. +藥鐚絖純鐚腟篋絖藥 +c障違篆罩o -ローカルファイルを相対パスで開いたときに,バッファに付くURL -が変だったバグの修正. +若<ゃ後障鴻ч鐚<篁URL +紊c違篆罩o 1999.3.18 -<img alt="..."> の中に &...; があった場合,parsetag の中で -デコードされてしまうので,HTMLlineproc2 に食わせる前に -もう一度エンコードしなければならなかった. +<img alt="..."> 筝 &...; c翫鐚parsetag 筝 +潟若障эHTMLlineproc2 蕋 +筝綺潟潟若違c鐚 --dump オプションで,-F (frame自動描画)が有効になるようにした. +-dump 激с潟э-F (frame)鴻鐚 -<ADDRESS>..</ADDRESS>の前後で改行するようにした. -SPACE キーでバッファを改頁すると,バッファの横方向の位置が -狂うバグの修正.< 池原さん ikehara@hepn5.c.u-tokyo.ac.jp THANKS! +<ADDRESS>..</ADDRESS>緇ф壕鐚 +SPACE 若с<拷鐚<罔劫篏臀 +違篆罩o< 羆 ikehara@hepn5.c.u-tokyo.ac.jp THANKS! -空のバッファに対してカーソル移動をしようとすると core dump -するバグの修正.< 佐野さん yukihiko@yk.rim.or.jp THANKS! +腥冴<絲障若純腱糸 core dump +違篆罩o< 篏 yukihiko@yk.rim.or.jp THANKS! -NO_PROXY に IPアドレス(の一部)を指定できるように改良. -接続先ホストが複数のIPアドレスを持っていた場合,最初のアドレス -への接続が失敗したら,次のアドレスに接続しに行くようにした. -< 水戸さん mit@nines.nec.co.jp THANKS! +NO_PROXY IP≪(筝)絎с壕鐚 +・膓鴻茲違IP≪鴻c翫鐚≪ +吾・膓紊掩鐚罨<≪鴻・膓茵鐚 +< 羂贋吾 mit@nines.nec.co.jp THANKS! 1999.3.17 -<table>が入れ子になっていて,内側の</table>の後が改行で -なかった場合,</table>に続く1文字が外側のtableのさらに -外に置かれてしまうバグの修正.文章で書くと,どういう症状 -なのかよくわからないな. +<table>ャ絖c鐚眼</table>緇壕 +c翫鐚</table>膓1絖紊眼table +紊臀障違篆罩o腴ф吾鐚 +鐚 -frame の中に <pre>..</pre>があると,その中が一行おきになって -しまうバグの修正. +frame 筝 <pre>..</pre>鐚筝筝茵c +障違篆罩o -loadGeneralFile() の中で,cbreak() モードのまま return して -しまうことがあるバグのfix. < 上村さん uemura@sra.co.jp THANKS! +loadGeneralFile() 筝эcbreak() ≪若障 return +障違fix. < 筝 uemura@sra.co.jp THANKS! -<caption>が閉じていないとメモリを無限に確保しまくるという -バグを一部fix. +<caption><≪♂腆坂障 +違筝fix鐚 1999.3.16 -&hoge; 系統のものがうまくいってなかったので,修正.ある程度は -まともになったが,対応していない &...; を使われると,まだ表が -崩れてしまう.また,; を抜いたものを使っても同じ.対応は難しい. +&hoge; 膤紫輝障ccэ篆罩o腮綺 +障c鐚絲上 &...; 篏帥鐚障茵 +經障鐚障鐚; 篏帥c鐚絲上c鐚 -枠なしの表で,COLSPAN が 2 以上のセルの幅の計算をまちがっていた. -修正. +茵эCOLSPAN 2 篁ヤ祉綛荐膊障<c鐚 +篆罩o 1999.3.15 -標準入出力がどちらもttyでなくて,-dump オプションを使うと -うまく動かないことがあるバグのfix. +罔羣ュ阪<ttyс鐚-dump 激с潟篏帥 +障違fix. -Accept-Language に対応.中途半端. +Accept-Language 絲上鐚筝腴鐚 1999.3.12 -<table border="2">というフザケたページがあった.atoi("2")が -なぜか負になって,table が発狂した.fix. +<table border="鐚">吟宴若吾c鐚atoi("鐚") +莢c鐚table 榊鐚fix. -1行スクロールで,最下行を消去してからスクロールするようにしてみた. -(かえってわずらわしいかも?) +1茵鴻若э筝茵羔サ鴻若帥鐚 +(c鐚) -文書に関する情報を表示する "=" コマンドを追加. +吾≪宴茵腓冴 "=" 潟潟菴遵鐚 -外部ビューアを起動するときに,system("cmd &")を使ってバックグラウンド -に回し,一時ファイルは最後にまとめて削除することにした. +紊ャ若≪莎桁鐚system("cmd &")篏帥c違潟 +鐚筝<ゃ緇障ゃ鐚 -loadGeneralFile, openURL で,is_link と is_cache を別々な引数にして -いたものを,32ビットのフラグに変更. +loadGeneralFile, openURL эis_link is_cache ャ綣違 +鐚32違紊器 -不要と思われる allocStr() を削除.副作用が予想される. +筝荀 allocStr() わ篏篋潟鐚 1999.3.11 -configure で,リンクする termcap 互換ライブラリを選べるようにした. -同時に,それらしいライブラリが本当に termcap 関連ルーチンを含むか -どうかテストすることにした. +configure э潟 termcap 篋ゃ吾鴻鐚 +鐚ゃ綵 termcap ∫c若潟 +鴻鐚 1999.3.10 -Str 型の変数 s について,s->ptr[s->length-1] を同等の Strlastchar(s) -に置きかえた.s->length==0の場合の対処. +Str 紊 s ゃ鐚s->ptr[s->length-1] 膈 Strlastchar(s) +臀鐚s->length==0翫絲上鐚 -<textarea>が折りかえされてしまうバグのfix. +<textarea>障違fix. -URLを開くときに,file 部分がないと現在のfileを付けてしまうバグのfix. +URL鐚file 憜file篁障違fix鐚 -POST method で form を送信するときに,データの最後にCRLFを付けない -ようにした. +POST method form 篆<鐚若帥緇CRLF篁 +鐚 1999.3.9 -resize に対応. +resize 絲上鐚 -setlinescols の中の define で,TIOCGWINSZ を TIOCWINSZ -と間違えていた.< 上村さん uemura@sra.co.jp THANKS! +setlinescols 筝 define эTIOCGWINSZ TIOCWINSZ +鐚< 筝 uemura@sra.co.jp THANKS! -Reload のときに Pragma: no-cache を指定するようにした. -< 佐々木さん sasaki@isoternet.org THANKS! +Reload Pragma: no-cache 絎鐚 +< 篏 sasaki@isoternet.org THANKS! -Cygwin 用に,一時ファイルに拡張子を付けるようにした. -また,画像などの一時ファイルを作るときに,fopen(file,"wb") -を使うようにした. -< 上田さん ueda@flab.fujitsu.co.jp THANKS! +Cygwin 鐚筝<ゃ≦宍絖篁鐚 +障鐚糸筝<ゃ篏鐚fopen(file,"wb") +篏帥鐚 +< 筝違 ueda@flab.fujitsu.co.jp THANKS! -isalpha(), isalnum() に2バイト文字の一部を食わせたときの挙動 -がおかしいために,表の形が崩れることがあるバグの修正. +isalpha(), isalnum() 2ゃ絖筝蕋 +鐚茵綵≪經違篆罩o -<style><!-- ... --></style> のように<style>タグの中がコメント -になっている場合に,文書全体がコメントとみなされてしまうことが -あるバグの修正. +<style><!-- ... --></style> <style>帥違筝潟<潟 +c翫鐚後篏潟<潟帥障 +違篆罩o -configure の修正が不完全だった. +configure 篆罩c筝絎c鐚 1999.3.8 -termcapライブラリについて,ncurses > curses > termcap の順に探す -ようにした.それに伴って,ncurses がリンクされたときに,terms.c -の curses 風の名前が ncurses と衝突するので,名前を変更した. +termcapゃゃ鐚ncurses > curses > termcap 「 +鐚篌眼c鐚ncurses 潟鐚terms.c + curses 蘂 ncurses 茵腦э紊眼鐚 -libftp を使うのをやめて,ftpアクセス関数を自前で用意した. +libftp 篏帥鐚ftp≪祉拷∽違х鐚 -<OL> の中の <LI> で表示する数字のカウンタを char から int に -変更.数字が3桁を越えても表示幅が狂わないようにした. -< 飯村さん takkun@mma.club.uec.ac.jp THANKS! +<OL> 筝 <LI> ц;腓冴医潟帥 char int +紊器医3罅莇茵腓阪鐚 +< 蕋 takkun@mma.club.uec.ac.jp THANKS! -colspan または rowspan が大きすぎたときに,abort することがある -バグの修正.< 坂根さん sakane@d4.bsd.nes.nec.co.jp THANKS! +colspan 障 rowspan 紊с鐚abort +違篆罩o< 鴻 sakane@d4.bsd.nes.nec.co.jp THANKS! -表の最初に <a href=".."><h1>...</h1></a>のような要素があると, -<h1>による空行が </a> で閉じなかったバグの修正. +茵 <a href=".."><h1>...</h1></a>荀膣鐚 +<h1>腥肴 </a> чc違篆罩o 1999.3.5 -起動した時に,バッファが全く読みこまれなかった場合,環境変数 -HTTP_HOME からページを読むようにした.ちょっと不満. +莎桁鐚<顄帥障c翫鐚医紊 +HTTP_HOME 若吾茯鐚<c筝羣鐚 -ISO-2022-jp で表示している場合に,終了時に US_ASCII を指示する -ようにした. +ISO-2022-jp ц;腓冴翫鐚腟篋 US_ASCII 腓冴 +鐚 -色を設定できるようにした. +蚊荐絎с鐚 -<li> の後の <P> を無効に.結構めんどう. +<li> 緇 <P> ≦鴻鐚腟罕鐚 -colspan が2以上の表について,各列の横幅の計算が変だったので修正. -しかしまだ変なところがある.原因不明. +colspan 2篁ヤ茵ゃ鐚罔綛荐膊紊cт信罩o +障紊鐚筝鐚 -/etc/mailcap も読むようにした. +/etc/mailcap 茯鐚 -terms.c の中の tgetstr()がうまく動かないことがあるバグの修正. -2重 fclose の fix. < うかいさん ukai@debian.or.jp THANKS! +terms.c 筝 tgetstr()障違篆罩o +2 fclose fix. < ukai@debian.or.jp THANKS! -<form> だけで属性がない場合に,form がうまく解釈されないバグの修正. +<form> ус翫鐚form 障頵i違篆罩o -<style>..</style>を無視するようにした. +<style>..</style>∴鐚 -1行スクロールが滑らかに動くように改良. +1茵鴻若羯壕鐚 1999.3.4 -存在しないファイルを指定して異常終了したときに reset_tty が実行され -ないことがあるバグのfix. < 上田さん ueda@iias.flab.fujitsu.co.jp THANKS! +絖<ゃ絎医幻腟篋 reset_tty 絎茵 +違fix. < 筝違 ueda@iias.flab.fujitsu.co.jp THANKS! -http://123.45.67.8/ の形式でうまく接続できないことがあるバグのfix. -< ryo さん ryo@misaki.oneechan.to THANKS! +http://123.45.67.8/ 綵√с障・膓с違fix. +< ryo ryo@misaki.oneechan.to THANKS! -表の要素の最初の文字がアルファベットであった時に,その文字の前に空白が -1個入って表が崩れることがあるバグのfix.HTMLlineproc1()で,RB_SPECIAL -フラグが立っている場合に文字を詰めたとき,obuf->prevchar を設定するの -を忘れていたためであった. +茵荀膣絖≪<сc鐚絖腥榊純 +1ャc茵經違fix鐚HTMLlineproc1()эRB_SPECIAL +違腴c翫絖荅違鐚obuf->prevchar 荐絎 +綽сc鐚 -イメージ表示で,一時ファイルを消去するタイミングを調整. +ゃ<若梧;腓冴э筝<ゃ羔サ帥ゃ潟違茯炊器 -<span> で改行するのは間違いだったらしいので,修正.そのかわりに -<form>..</form>で改行するようにした.< 池原さん ikehara@hepn5.c.u-tokyo.ac.jp +<span> ф壕cэ篆罩o +<form>..</form>ф壕鐚< 羆 ikehara@hepn5.c.u-tokyo.ac.jp THANKS! w3m -T text/html -dump < file.html > file.txt -でフォーマッタとして動くようにした. +с若帥鐚 1999.3.3 -入れ子になったtableの処理で,内側のtableの幅で外側のtableの -列幅を固定している部分を削除.大体良いようだが,本当にこれで良い -のかどうかよくわからない. +ャ絖ctableэ眼table綛у眼table +綛阪わ紊т鐚綵ц +鐚 -colspan が2以上の <td>で width を指定すると表の形が狂うバグのfix. +colspan 2篁ヤ <td> width 絎茵綵≪違fix. -ftp でのディレクトリリストのアンカーがうまく付いていなかったバグ -のfix. +ftp сc鴻≪潟若障鋌c +fix. -Boehm GC library を 4.13 にバージョンアップ. +Boehm GC library 4.13 若吾с潟≪鐚 1999.3.2 -Cygwin32対応.< まさひろさん masahiro@znet.or.jp THANKS! +Cygwin32絲上鐚< 障蚊 masahiro@znet.or.jp THANKS! -ISO-2022-JPの文書で,行末に US_ASCII か JIS X0201 を指示しないで -終わっている場合でも字化けが起こらないよう工夫. +ISO-2022-JP吾э茵 US_ASCII JIS X0201 腓冴 +腟c翫с絖莎激綏ュか鐚 -Editor, Mailer をオプションで変更可能にした. +Editor, Mailer 激с潟у翫純鐚 -q で終了するときに確認するかどうかをオプションで変更可能にした. +q х篋腆肴激с潟у翫純鐚 1999.3.1 -文章中にコメントがあると,それ以降のソース上の行が改行されずに -表示されるバグを修正. +腴筝潟<潟鐚篁ラ純若剛茵壕 +茵腓冴違篆罩o -I でイメージを表示する場合に,ビューアがbackground で動くようにした. +I сゃ<若吾茵腓冴翫鐚ャ若≪background у鐚 -q で終了するときに,終わっていいかどうか尋ねることにしてみた. -不評なら元に戻す予定. +q х篋鐚腟c絨帥鐚 +筝荅祉篋絎鐚 -proxy 経由の ftp 利用で,ファイル名生成にいたバグをある程度修正. +proxy 腟宴 ftp э<ゃ違腮綺篆罩o -<BASE HREF=".."> に対応. +<BASE HREF=".."> 絲上鐚 --dump, -cols オプションを追加. +-dump, -cols 激с潟菴遵鐚 <U>..</U>, <DEL>..</DEL>, <INS>..</INS>, <STRIKE>..</STRIKE>, <S>..</S> -の処理を追加. +菴遵鐚 -ローカルファイルからのリンクを辿るときに,Referer: を付けないように変更. +若<ゃ潟莨帥鐚Referer: 篁紊器 1999.2.26 -<div align=center/right> の中でcaptionの付いた表を使うと,中央/右寄せ -ができないバグの修正. +<div align=center/right> 筝caption篁茵篏帥鐚筝紊/勀 +с違篆罩o -<pre>..</pre>の中の空行を無視するバグがあった.修正. +<pre>..</pre>筝腥肴∴違c鐚篆罩o -"z" の挙動にバグがあった.修正. +"z" 違c鐚篆罩o -table の中で,<input> の長さの計算を間違っていた.修正. +table 筝э<input> 激荐膊c鐚篆罩o -config.param に設定値を書くときに,LDFLAGS が複数あるとエラーが -出ていたバグのfix. < 水戸さん mit@nines.nec.co.jp THANKS! +config.param 荐絎ゃ吾鐚LDFLAGS 茲違若 +冴違fix. < 羂贋吾 mit@nines.nec.co.jp THANKS! -表示漢字コードをJISにした場合の動作が良くなかったのを改善.同時に, -設定パネルでJISの種類を詳細に選べるようにした. -< 水戸さん mit@nines.nec.co.jp 上田さん ueda@iias.flab.fujitsu.co.jp +茵腓堺滋絖潟若JIS翫篏c劫鐚鐚 +荐絎JIS腮蕁荅括完吾鴻鐚 +< 羂贋吾 mit@nines.nec.co.jp 筝違 ueda@iias.flab.fujitsu.co.jp THANKS! -SIGIOT のハンドラの中で,SIGIOTのハンドラを元に戻してから abort() -するようにした.シグナルハンドラのOS依存性の解消が目的. -< 中川さん takayuki@ebina.hitachi.co.jp THANKS! +SIGIOT 潟筝эSIGIOT潟祉 abort() +鐚激違潟OS箴絖с茹f鐚 +< 筝綏 takayuki@ebina.hitachi.co.jp THANKS! -直接URLを入力しても,直前のページが Referer: としてサーバに送られて -しまっていたバグをfix. +贋・URLュ鐚翫若吾 Referer: 泣若 +障c違fix鐚 1999.2.25 -Makefile の中で CC=cc となっていた部分を config.h から取得して -動くようにした. +Makefile 筝 CC=cc c config.h 緇 +鐚 -GET で CGI を送るときに,文字列に : が含まれているとうまく行かない -バグのfix. < 馬目さん manome@itlb.te.noda.sut.ac.jp THANKS! +GET CGI 鐚絖 : 障障頫 +違fix. < 薤 manome@itlb.te.noda.sut.ac.jp THANKS! 1999.2.24 -"S" でバッファを保存するときの漢字コードが内部コード(EUC)になっていた -のを修正. +"S" с<篆絖羲√潟若潟若(EUC)c +篆罩o -"J","K" で1行スクロールするコマンドを実験的に追加. -< 古川さん furukawa@ces.kyutech.ac.jp THANKS! +"J","K" 1茵鴻若潟潟絎薑菴遵鐚 +< ゅ furukawa@ces.kyutech.ac.jp THANKS! -Str.c の Sprintf() で,va_arg(*,char) という指定がマズかったので修正. -< やまてさん yamate@ebina.hitachi.co.jp THANKS! +Str.c Sprintf() эva_arg(*,char) 絎冴cт信罩o +< 障 yamate@ebina.hitachi.co.jp THANKS! -ESC : で Message-ID をアンカーにする部分のバグfix. +ESC : Message-ID ≪潟若fix鐚 -news: のリンクがうまく辿れなかったバグのfix.< 坂根さん +news: 潟障颴帥c違fix鐚< 鴻 sakane@d4.bsd.nes.nec.co.jp THANKS! 1999.2.23 -Lynx 風キーマップファイルを作成.configureで選べるようにした. -< 橋本さん hasimoto@shimada.nuee.nagoya-u.ac.jp THANKS! +Lynx 蘂若<ゃ篏鐚configureч吾鴻鐚 +< 罘 hasimoto@shimada.nuee.nagoya-u.ac.jp THANKS! 1999.2.22 -表の中では alt の要素が折りかえされなかったバグ(正確には,alt の文字列長が -表の最小幅とされてしまうバグ)のfix. +茵筝с alt 荀膣c(罩g∈鐚alt 絖激 +茵絨鎶障)fix鐚 -2/22 版リリース. +2/22 若刻 -TAB/ESC TAB で,form にも飛ぶようにした.< 古川さん furukawa@ces.kyutech.ac.jp +TAB/ESC TAB эform 蕋吟鐚< ゅ furukawa@ces.kyutech.ac.jp THANKS! -ローカルファイルじゃないものを "E" で編集しようとすると,空のファイルを -編集したあげくリロードに失敗するというバグのfix. +若<ゃ "E" х隈鐚腥冴<ゃ +膩若紊掩違fix. -"g"/"G" を,先頭行/末尾行へのジャンプに変更.これまでの "g" は -"ESC g" にマップ. < 古川さん furukawa@ces.kyutech.ac.jp THANKS! +"g"/"G" 鐚茵/絨乗吾吾c潟紊器障с "g" +"ESC g" 鐚 < ゅ furukawa@ces.kyutech.ac.jp THANKS! -URL のパスに . を含む場合に正規化するようにした.< 田中さん +URL 鴻 . 翫罩h鐚< 遺賢 tanaka@sp.mmlab.toshiba.co.jp THANKS! -環境変数 HTTP_proxy からプロキシのURLを取ってきたときに,それを -parse するのを忘れていた.< 田中さん tanaka@sp.mmlab.toshiba.co.jp THANKS! +医紊 HTTP_proxy 激URLc鐚 +parse 綽鐚< 遺賢 tanaka@sp.mmlab.toshiba.co.jp THANKS! -カーソルがちょうど中央の行にあるときに "z" を使うとコアダンプするバグをfix. -< 橋本さん hasimoto@shimada.nuee.nagoya-u.ac.jp THANKS! +若純<筝紊茵 "z" 篏帥潟≪潟違fix. +< 罘 hasimoto@shimada.nuee.nagoya-u.ac.jp THANKS! 1999.2.19 -~/.w3m/config がないときに,~/.mailcap を読まないバグをfix. -~/.mailcap がないときに,searchExtViewer() の中でコアダンプするバグ -をfix. -nextA() を改良.後から登録したアンカーにも飛ぶ. -prevA() を追加. +~/.w3m/config 鐚~/.mailcap 茯障違fix鐚 +~/.mailcap 鐚searchExtViewer() 筝с潟≪潟 +fix. +nextA() 壕鐚緇脂蚊≪潟若蕋駈 +prevA() 菴遵鐚 1999.2.18 -<dl compact> に対応. +<dl compact> 絲上鐚 -入れ子になったtableの中でインデントの付く環境を使っていて,しかも -外側のtableに枠がない場合に表の表示が崩れるバグをfix. +ャ絖ctable筝сゃ潟潟篁医篏帥c鐚 +紊眼table翫茵茵腓冴經違fix. 1999.2.17 -HTTP_proxy を利用しているとき,ラベルの付いた URL がうまく取りだせない -バグのfix. +HTTP_proxy 鐚篁 URL 障 +違fix. -オプションを設定したときに,各種proxy の情報がすぐに反映されなかった. +激с潟荐絎鐚腮proxy 宴c鐚 1999.2.16 -<script>..</script>の内容を無視するコードで,<script><!-- ... --></script> -となっていると,</script>でスクリプトを閉じた後でもコメントが続いている -とみなされていた. +<script>..</script>絎鴻∴潟若э<script><!-- ... --></script> +c鐚</script>с鴻緇с潟<潟膓 +帥鐚 -箇条書き環境で,書かれた文字数と文字カウントがずれていた. +膊≧吾医э吾絖違絖潟鐚 1999.2.12 -caption 対応にともなって,<tr><td>をつけないで<table>の中に -物を配置するとコアダンプするバグが混入していた.fix. +caption 絲上c鐚<tr><td>ゃ<table>筝 +臀潟≪潟違羞桁ャ鐚fix鐚 -長年の懸案であった,画面更新ルーチンのバグ(画面の一部が更新されない) -の,少なくとも一部をfixした. +桁拘御сc鐚脂∽贋違若潟(脂≪筝贋違) +鐚絨筝fix鐚 -table.c, etc.c の中の isspace() を IS_SPACE() に変更. -isspace()の変な挙動(Solarisだけか?)のせいで一部の漢字がスペース -だと思われていた. +table.c, etc.c 筝 isspace() IS_SPACE() 紊器 +isspace()紊(Solaris鐚)т羲√鴻若 +鐚 -2/10版リリース. +2/10若刻 1999.2.11 -オプション設定パネルを新設."o"コマンド. +激с活┃絎域┃鐚"o"潟潟鐚 -一時ファイルを ~/.w3m に作ることにする.また,設定を -~/.w3m/config から読むことにする. +筝<ゃ ~/.w3m 篏鐚障鐚荐絎 +~/.w3m/config 茯鐚 -バッファを全部削除して終了するとコアダンプするバグ -の修正.< 佐々木さん sasaki@isoternet.org THANKS! +<ゃ腟篋潟≪潟 +篆罩o< 篏 sasaki@isoternet.org THANKS! 1999.2.9 -タグ属性が ' ' で囲まれていたときにも動くよう改善. -HTMLlineproc1, HTMLlineproc2 の中で独自にタグを解析 -していたものを,read_token()を使うよう統一する. -<caption>..</caption>に対応する. +帥医с ' ' у蚊障劫鐚 +HTMLlineproc1, HTMLlineproc2 筝х帥違茹f +鐚read_token()篏帥腟延鐚 +<caption>..</caption>絲上鐚 1999.2.8 -<SPAN>, </SPAN> で改行するようにする.Ringring の表示が -おかしかったため. -カラー表示用にコンパイルしても,白黒で表示できるスイッチ -をつける(-M). -起動時オプションの表示をわかりやすく変更. +<SPAN>, </SPAN> ф壕鐚Ringring 茵腓冴 +c鐚 +取;腓榊潟潟ゃ鐚初ц;腓冴с鴻ゃ +ゃ(-M)鐚 +莎桁激с潟茵腓冴鎀器 1999.2.6 -タグ内の文字列の扱いを厳密化.= に続く引用符だけを本当の -引用符の開始とみなす. -<script>..</script>の中を無視するようにする. +帥医絖宴ウ絲鐚= 膓鏁膃綵 +綣膃紮帥鐚 +<script>..</script>筝∴鐚 1999.2.5 -2/5版リリース. +2/5若刻 -<BASE TARGET="hoge">を解釈するようにする. +<BASE TARGET="hoge">茹i鐚 1999.2.3 -Boehm GC を 4.13alpha3 にup. -location: ヘッダでredirectする場合,redirect先の指定を -; で打ち切っていたのを止めた. -腐ったtable対応. -frame対応.だいたい動く. -tableの中で異常な改行が発生するバグのfix.原因は一言では -言えないほど面倒だった. +Boehm GC 4.13alpha3 up鐚 +location: redirect翫鐚redirect絎 +; ф≦c罩≪鐚 +ctable絲上鐚 +frame絲上鐚鐚 +table筝х医幻壕榊違fix鐚筝荐с +荐祉√c鐚 1999.2.2 -frame対応に着手. -<input type=image>の扱いが良くなかったので修正. -loadGeneralFile() の中で,ファイルポインタを2回 fclose() -していたバグの修正.< 松本さん shom@i.h.kyoto-u.ac.jp THANKS! +frame絲上鐚 +<input type=image>宴cт信罩o +loadGeneralFile() 筝э<ゃゃ潟帥2 fclose() +違篆罩o< 丈 shom@i.h.kyoto-u.ac.jp THANKS! 1999.2.1 -<td colspan=2 rowspan=2>の項目が左端以外にあった場合に表の -罫線がうまく書かれないバグの修正. +<td colspan=2 rowspan=2>綏腴篁ュc翫茵 +臀膩障吾違篆罩o 1999.1.29 -縦に長いtableに対応して,table が大きい場合は行方向に -自動的に伸びるように改良. +膰激table絲上鐚table 紊с翫茵劫 +篌吾潟壕鐚 1999.1.28 -file.c, conv.c の中で,固定長バッファを使っている部分を, -Str ライブラリを使うように変更. -動作確認: +file.c, conv.c 筝э阪激<篏帥c鐚 +Str ゃ篏帥紊器 +篏腆肴鐚 Solaris 2.5.1 SunOS 4.1.3 w/JLE HP-UX 9.x @@ -4249,25 +4249,25 @@ Str ライブラリを使うように変更. 1999.1.27 -<ISINDEX> に対応する. -<input type=text accept> に対応する. -<select multiple> に対応する. -<input type=radio>で,最初にどれもチェックされていない -場合に,最初の要素をチェックするように改良しようとして -挫折. -<td>で rowspan と colspan の両方が2以上だった場合に -うまくレンダリングしないバグをfix. -[TAB] でカーソル移動するときに,アンカー文字列の中央に -飛ぶように動作を変更. -Boehm GC 4.12 で動くことを確認. +<ISINDEX> 絲上鐚 +<input type=text accept> 絲上鐚 +<select multiple> 絲上鐚 +<input type=radio>эс +翫鐚荀膣с壕 +鐚 +<td> rowspan colspan 筝≧鴻2篁ヤc翫 +障潟潟違違fix. +[TAB] с若純腱糸鐚≪潟惹絖筝紊 +蕋吟篏紊器 +Boehm GC 4.12 у腆肴鐚 1999.1.26 -table で,rowspan が3以上でborder=1の場合に,表の中に -空行ができるバグをfix. +table эrowspan 3篁ヤborder=1翫鐚茵筝 +腥肴с違fix. 1999.1.22 beta-990122 -記録開始.αからβバージョンに格上げ. -これまでの config.h 編集方式をやめて,configure を書く. -添付のBoehm GC library を 4.10 から 4.11 に上げる. +荐臥紮鐚ホ宴硫若吾с潟寂鐚 +障с config.h 膩劫鐚configure 吾鐚 +羞私Boehm GC library 4.10 4.11 筝鐚 diff --git a/doc-jp/MANUAL.html b/doc-jp/MANUAL.html index 41d70f1..f7c4988 100644 --- a/doc-jp/MANUAL.html +++ b/doc-jp/MANUAL.html @@ -2,532 +2,525 @@ <head><title>w3m manual</title> </head> <body> -<h1>w3m マニュアル</h1> +<h1>w3m ャ≪</h1> <div align=right> -伊藤 彰則<br> +篌 綵医<br> aito@fw.ipsj.or.jp </div> -<h2>もくじ</h2> +<h2></h2> <menu> -<li><a href="#Introduction">はじめに</a> -<li><a href="#Options">起動オプション</a> -<li><a href="#Color">文書の表示内容</a> -<li><a href="#Key:orig">起動後の使いかた(オリジナル)</a> -<li><a href="#Key:lynx">起動後の使いかた(Lynx風)</a> -<li><a href="#Mouse">マウス操作</a> -<li><a href="#Key:custom">キーの定義</a> +<li><a href="#Introduction"></a> +<li><a href="#Options">莎桁激с</a> +<li><a href="#Color">吾茵腓阪絎</a> +<li><a href="#Key:orig">莎桁緇篏帥(吾)</a> +<li><a href="#Key:lynx">莎桁緇篏帥(Lynx蘂)</a> +<li><a href="#Mouse">号篏</a> +<li><a href="#Key:custom">若絎臂</a> <li><a href="#LocalCGI">Local CGI</a> </menu> <hr> <a name="Introduction"></a> -<h2>はじめに</h2> -w3m は,テキストベースのページャ/WWWブラウザです.これを使うと,kterm などのキャラクタ -端末上で,ローカルファイルを見たり,WWWの内容を見たりすることができます. +<h2></h2> +w3m 鐚鴻若鴻若吾/WWW吟с鐚篏帥鐚kterm c +腴筝э若<ゃ荀鐚WWW絎鴻荀с障鐚 <hr> <a name="Options"></a> -<h2>起動オプション</h2> +<h2>莎桁激с</h2> -起動時の引数は次の通りです. +莎桁綣違罨<с鐚 <p> <pre> w3m [options] [file|URL] </pre> <P> -引数にファイル名を指定すればそのファイルを表示し,URLを指定すればその内容を表示します. -何も指定しなければ,標準入力の内容を表示します.ただし,標準入力が tty である場合には, -何もせずに終了します. +綣違<ゃ絎違<ゃ茵腓冴鐚URL絎違絎鴻茵腓冴障鐚 +篏絎逸罔羣ュ絎鴻茵腓冴障鐚鐚罔羣ュ tty с翫鐚 +篏腟篋障鐚 <p> -オプションは次の通りです. +激с潟罨<с鐚 <dl> -<dt>+番号 -<dd>起動後,指定の行番号に移動する. -<dt>-t 幅 -<dd>タブの幅を指定する.デフォルトは 8 . +<dt>+ +<dd>莎桁緇鐚絎茵垩腱糸鐚 +<dt>-t 綛 +<dd>帥綛絎鐚 8 鐚 <dt>-r -<dd>text/plain の文書を表示する場合,重ね打ちによる強調文字を表示しない. -このオプションを付けない場合,``A^H_''はAのアンダーラインとして表示され, -``A^HA''はAのボールドとして表示される. -<dt>-l 行数 -<dd>標準入力の内容を表示するときに保存される最大行数を指定す -る.デフォルトは 10000. -<dt>-s -<dd>Shift_JIS コードで表示する. -<dt>-e -<dd>EUC コードで表示する. -<dt>-j -<dd>JIS(ISO-2022-JP) コードで表示する. -<dt>-O e|s|j|N|m|n -<dd>表示に用いる文字コードを指定する. -<dt>-I e|s -<dd>入力文書の文字コードを指定する. -<dt>-T タイプ -<dd>表示する文書のタイプを指定する.この指定がない場合,ファイル -名の拡張子によって自動判別される.判別できない場合は text/plain -とみなされる.<p> -例:<br> -標準入力から HTML ファイルを読んで表示する +<dd>text/plain 吾茵腓冴翫鐚<綣決炊絖茵腓冴鐚 +激с潟篁翫鐚``A^H_''A≪潟若ゃ潟茵腓冴鐚 +``A^HA''A若茵腓冴鐚 +<dt>-l 茵 +<dd>罔羣ュ絎鴻茵腓冴篆絖紊ц違絎 +鐚 10000鐚 +<dt>-O 絖潟若 +<dd>茵腓冴絖潟若絎鐚 +<dt>-I 絖潟若 +<dd>ュ吾絖潟若絎鐚 +<dt>-T 帥ゃ +<dd>茵腓冴吾帥ゃ絎鐚絎翫鐚<ゃ +≦宍絖cゅャ鐚ゅャс翫 text/plain +帥鐚<p> +箴鐚<br> +罔羣ュ HTML <ゃ茯ц;腓冴 <pre> cat hoge.html | w3m -T text/html </pre> <p> -HTMLファイルのソースを表示する +HTML<ゃ純若鴻茵腓冴 <pre> w3m -T text/plain hoge.html </pre> <dt>-m -<dd>Internet message モードで表示する.Internet messageモードの場合, -ヘッダの内容を見て,Content-Type: があればそれを参考にする.電子メールや -ネットニュースの記事を読むときに便利. +<dd>Internet message ≪若ц;腓冴鐚Internet message≪若翫鐚 +絎鴻荀鐚Content-Type: 違鐚糸<若 +ャ若鴻荐篋茯箴水鐚 <dt>-v -<dd>スタートアップページを表示する. +<dd>鴻帥若≪若吾茵腓冴鐚 <dt>-B -<dd>Bookmark を表示する. +<dd>Bookmark 茵腓冴鐚 <dt>-bookmark file -<dd>Bookmarkのファイルを指定する. +<dd>Bookmark<ゃ絎鐚 <dt>-M -<dd>カラー表示をしない. +<dd>取;腓冴鐚 <dt>-F -<dd>フレームを自動表示する. -<dt>-S -<dd>連続する空行を1行にまとめて表示する. +<dd>若茵腓冴鐚 +<dt>-s +<dd>g腥肴1茵障茵腓冴鐚 <dt>-X -<dd>w3m終了時に,以前の画面に戻らない. +<dd>w3m腟篋鐚篁ュ脂≪祉鐚 <dt>-W -<dd>折り返しサーチを使うかどうかを切りかえる. +<dd>菴泣若篏帥鐚 <dt>-o option=value -<dd>オプションを指定する. -オプションの名前や値は,~/.w3m/config で指定するものと同じ. +<dd>激с潟絎鐚 +激с潟ゃ鐚~/.w3m/config ф絎鐚 <dt>-no-proxy -<dd>プロキシを利用しない. +<dd>激鐚 <dt>-no-mouse -<dd>マウスを利用しない. +<dd>鴻鐚 <dt>-cookie -<dd>クッキーを処理する. +<dd>若鐚 <dt>-no-cookie -<dd>クッキーを処理しない. +<dd>若鐚 <dt>-num -<dd>行番号を表示する. +<dd>茵垩茵腓冴鐚 <dt>-dump -<dd>URLの内容を読みこみ,整形されたバッファの内容を標準出力に書き出す. -文書の幅は80桁と仮定される.この幅は,次の -cols オプションで変更可能. -<dt>-cols 幅 -<dd>-dump オプションを使う場合に,文書の幅を指定する. -<dt>-ppc ピクセル数 -<dd>文字の幅を指定する.デフォルトはウインドウの大きさから自動的に計算する. -<dt>-ppl ピクセル数 -<dd>文字の縦幅を指定する.デフォルトはウインドウの大きさから自動的に計算する. +<dd>URL絎鴻茯帥随翫就<絎鴻罔羣阪吾冴鐚 +吾綛80罅篁絎鐚綛鐚罨< -cols 激с潟у翫緒 +<dt>-cols 綛 +<dd>-dump 激с潟篏帥翫鐚吾綛絎鐚 +<dt>-ppc 祉 +<dd>絖綛絎鐚ゃ潟紊с荐膊鐚 +<dt>-ppl 祉 +<dd>絖膰綛絎鐚ゃ潟紊с荐膊鐚 <dt>-dump_source -<dd>URLの内容を読みこみ,整形せずに標準出力に書き出す. -漢字コード変換もされない. +<dd>URL絎鴻茯帥随翫就罔羣阪吾冴鐚 +羲√潟若紊鐚 <dt>-dump_head -<dd>URLにアクセスし,ヘッダ情報を出力する. +<dd>URL≪祉鴻鐚宴阪鐚 <dt>-dump_both -<dd>URLにアクセスし,ヘッダ情報とHTMLソースを出力する. +<dd>URL≪祉鴻鐚宴HTML純若鴻阪鐚 <dt>-dump_extra -<dd>URLにアクセスし,拡張情報とヘッダ情報とHTMLソースを出力する. +<dd>URL≪祉鴻鐚≦宍宴宴HTML純若鴻阪鐚 <dt>-post file -<dd>ファイルの内容をPOSTする. +<dd><ゃ絎鴻POST鐚 <dt>-header string -<dd>HTTP要求ヘッダを追加する. +<dd>HTTP荀羆菴遵鐚 <dt>-config file -<dd>configのファイルを指定する. +<dd>config<ゃ絎鐚 </dl> <hr> <a name="Color"></a> -<h2>文書の表示内容</h2> +<h2>吾茵腓阪絎</h2> -HTML文書を表示しているときには,次のような表示になります. +HTML吾茵腓冴鐚罨<茵腓冴障鐚 <div align="center"> <table border="1"> -<tr><th></th><th>カラー表示時</th><th>白黒表示時</th></tr> -<tr><td>リンク</td><td>青色</td><td>下線</td></tr> -<tr><td>インライン画像</td><td>緑色</td><td>反転表示</td></tr> -<tr><td>FORMの入力部分</td><td>赤色</td><td>反転表示</td></tr> +<tr><th></th><th>取;腓堺</th><th>初茵腓堺</th></tr> +<tr><td>潟</td><td></td><td>筝膩</td></tr> +<tr><td>ゃ潟ゃ括糸</td><td>膩</td><td>荵∵;腓</td></tr> +<tr><td>FORMュ</td><td>莎よ</td><td>荵∵;腓</td></tr> </table> </div> -カラー表示時の色は,オプション設定パネル "o" で変更することができます. +取;腓堺蚊鐚激с活┃絎 "o" у眼с障鐚 <hr> <a name="Key:orig"></a> -<h2>起動後の使いかた(オリジナル)</h2> +<h2>莎桁緇篏帥(吾)</h2> -起動した後は,1文字のコマンドをキーボードから入力することでw3mを操作します. -コマンドには次のようなものがあります.以下の記述では,C-x はコントロールx -を表します.また,SPC はスペースバー,RET はリターンキー,ESC はエスケープキーです. +莎桁緇鐚1絖潟潟若若ュw3m篏障鐚 +潟潟罨<障鐚篁ヤ荐菴違с鐚C-x 潟潟若x +茵障鐚障鐚SPC 鴻若鴻種RET 帥若潟種ESC 鴻宴若若с鐚 <P> -ここで書いてあるのは,オリジナル版のキー操作です.Lynx風のキー操作用に -コンパイルしてあるものについては,<a href="#Key:lynx">起動後の使い方(Lynx風)</a> -をごらんください. +ф吾鐚吾惹篏с鐚Lynx蘂惹篏 +潟潟ゃゃ鐚<a href="#Key:lynx">莎桁緇篏帥(Lynx蘂)</a> +鐚 -<H3>ページ/カーソル移動</H3> +<H3>若/若純腱糸</H3> <table> -<TR><TD>SPC,C-v<TD>次のページを表示します. -<TR><TD>b,ESC v<TD>前のページを表示します. -<TR><TD>l,C-f,右矢印キー<TD>カーソルを右に移動します. -<TR><TD>h,C-b,左矢印キー<TD>カーソルを左に移動します. -<TR><TD>j,C-n,下矢印キー<TD>カーソルを下に移動します. -<TR><TD>k,C-p,上矢印キー<TD>カーソルを上に移動します. -<TR><TD>J<TD>画面を1行上にスクロールします. -<TR><TD>K<TD>画面を1行下にスクロールします. -<TR><TD>^,C-a<TD>行頭に移動します. -<TR><TD>$,C-e<TD>行末に移動します. -<TR><TD>w<TD>次の単語に移動します. -<TR><TD>W<TD>前の単語に移動します. -<TR><TD>><TD>画面全体を右にずらします.(表示内容を左にずらす) -<TR><TD><<TD>画面全体を左にずらします.(表示内容を右にずらす) -<TR><TD>.<TD>画面全体を1文字右にずらします.(表示内容を左にずらす) -<TR><TD>,<TD>画面全体を1文字左にずらします.(表示内容を右にずらす) -<TR><TD>g,M-<<TD>文書のいちばん上の行に移動します. -<TR><TD>G,M-><TD>文書のいちばん下の行に移動します. -<TR><TD>ESC g<TD>画面下で行番号を入力し,そこで指定した行に移動します. -ここで $ を入力すると,最終行に移動します. -<TR><TD>Z<TD>カーソルのある位置を行の中央に移動します. -<TR><TD>z<TD>カーソルのある行を画面の中央に移動します. -<TR><TD>TAB<TD>次のリンクに移動します. -<TR><TD>C-u, ESC TAB<TD>前のリンクに移動します. -<TR><TD>[<TD>最初のリンクに移動します. -<TR><TD>]<TD>最後のリンクに移動します. +<TR><TD>SPC,C-v<TD>罨<若吾茵腓冴障鐚 +<TR><TD>b,ESC v<TD>若吾茵腓冴障鐚 +<TR><TD>l,C-f,勆√違<TD>若純劻腱糸障鐚 +<TR><TD>h,C-b,綏√違<TD>若純綏腱糸障鐚 +<TR><TD>j,C-n,筝√違<TD>若純筝腱糸障鐚 +<TR><TD>k,C-p,筝√違<TD>若純筝腱糸障鐚 +<TR><TD>J<TD>脂≪1茵筝鴻若障鐚 +<TR><TD>K<TD>脂≪1茵筝鴻若障鐚 +<TR><TD>^,C-a<TD>茵腱糸障鐚 +<TR><TD>$,C-e<TD>茵腱糸障鐚 +<TR><TD>w<TD>罨<茯腱糸障鐚 +<TR><TD>W<TD>茯腱糸障鐚 +<TR><TD>><TD>脂√篏劻障鐚(茵腓阪絎鴻綏) +<TR><TD><<TD>脂√篏綏障鐚(茵腓阪絎鴻劻) +<TR><TD>.<TD>脂√篏1絖劻障鐚(茵腓阪絎鴻綏) +<TR><TD>,<TD>脂√篏1絖綏障鐚(茵腓阪絎鴻劻) +<TR><TD>g,M-<<TD>吾<違筝茵腱糸障鐚 +<TR><TD>G,M-><TD>吾<違筝茵腱糸障鐚 +<TR><TD>ESC g<TD>脂≫ц垩ュ鐚ф絎茵腱糸障鐚 + $ ュ鐚腟茵腱糸障鐚 +<TR><TD>Z<TD>若純篏臀茵筝紊腱糸障鐚 +<TR><TD>z<TD>若純茵脂≪筝紊腱糸障鐚 +<TR><TD>TAB<TD>罨<潟腱糸障鐚 +<TR><TD>C-u, ESC TAB<TD>潟腱糸障鐚 +<TR><TD>[<TD>潟腱糸障鐚 +<TR><TD>]<TD>緇潟腱糸障鐚 </table> -<H3>ハイパーリンク操作</H3> +<H3>ゃ若潟篏</H3> <table> -<TR><TD WIDTH=100>RET<TD>現在カーソルがあるリンクが指す先の文書を読みこみます. -<TR><TD>a, ESC RET<TD>現在カーソルがあるリンクが指す先の文書をファイルに保存します. -<TR><TD>u<TD>現在カーソルがあるリンクが指す先のURLを表示します. -<TR><TD>i<TD>リンクに関連付けられた画像へのURLの表示します. -<TR><TD>I<TD>現在カーソルがあるリンクに対応する画像を表示します. -<TR><TD>ESC I<TD>現在カーソルがあるリンクが指す -画像をファイルに保存します. -<TR><TD>:<TD>URL風の文字列をリンクにします.この機能は,HTMLでない文書を -読んでいるときにも有効です. -<TR><TD>ESC :<TD>Message-ID風の文字列を,news: のリンクにします.この機能は,HTMLでない文書を -読んでいるときにも有効です. -<TR><TD>c<TD>現在の文書のURLを表示します. -<TR><TD>=<TD>現在の文書に関する情報を表示します. -<TR><TD>C-g<TD>ページ中での現在位置を表示します. -<TR><TD>C-h<TD>URL履歴を表示します. -<TR><TD>F<TD><FRAMESET>を含む文書を表示しているときに,<FRAME> -タグの指す複数の文書を1つの文書に変換して表示します. -<TR><TD>M<TD>現在見ているページを,外部ブラウザを使って表示します. -2M, 3M で2番目と3番目のブラウザを使います. -<TR><TD>ESC M<TD>現在のリンク先を,外部ブラウザを使って表示します. -2ESC M, 3ESC M で2番目と3番目のブラウザを使います. +<TR><TD WIDTH=100>RET<TD>憜若純潟吾茯帥帥障鐚 +<TR><TD>a, ESC RET<TD>憜若純潟吾<ゃ篆絖障鐚 +<TR><TD>u<TD>憜若純潟URL茵腓冴障鐚 +<TR><TD>i<TD>潟∫d糸吾URL茵腓冴障鐚 +<TR><TD>I<TD>憜若純潟絲上糸茵腓冴障鐚 +<TR><TD>ESC I<TD>憜若純潟 +糸<ゃ篆絖障鐚 +<TR><TD>:<TD>URL蘂絖潟障鐚罘純鐚HTMLс吾 +茯с鴻с鐚 +<TR><TD>ESC :<TD>Message-ID蘂絖鐚news: 潟障鐚罘純鐚HTMLс吾 +茯с鴻с鐚 +<TR><TD>c<TD>憜吾URL茵腓冴障鐚 +<TR><TD>=<TD>憜吾≪宴茵腓冴障鐚 +<TR><TD>C-g<TD>若娯賢с憜篏臀茵腓冴障鐚 +<TR><TD>C-h<TD>URL絮ユ眼茵腓冴障鐚 +<TR><TD>F<TD><FRAMESET>吾茵腓冴鐚<FRAME> +帥違茲違吾1ゃ吾紊茵腓冴障鐚 +<TR><TD>M<TD>憜荀若吾鐚紊吟篏帥c茵腓冴障鐚 +2M, 3M, ..., 9M 2鐚3鐚9吟篏帥障鐚 +<TR><TD>ESC M<TD>憜潟鐚紊吟篏帥c茵腓冴障鐚 +2ESC M, 3ESC M, ..., 9ESC M 2鐚3鐚9吟篏帥障鐚 </table> -<H3>ファイルとURL関係の操作</H3> +<H3><ゃURL≫篏</H3> <table> -<TR><TD WIDTH=100>U<TD>URLを指定して開きます. -<TR><TD>V<TD>ローカルファイルを指定して開きます. -<TR><TD>@<TD>コマンドを実行し,結果を全部読んでから表示します. -<TR><TD>#<TD>コマンドを実行し,結果を読みこみながら表示します. +<TR><TD WIDTH=100>U<TD>URL絎障鐚 +<TR><TD>V<TD>若<ゃ絎障鐚 +<TR><TD>@<TD>潟潟絎茵鐚腟茯с茵腓冴障鐚 +<TR><TD>#<TD>潟潟絎茵鐚腟茯帥帥茵腓冴障鐚 </table> -<H3>バッファ操作</H3> +<H3>≧篏</H3> <table> -<TR><TD WIDTH=100>B<TD>現在見ているバッファを削除し,一つ前のバッファを表示します. -<TR><TD>v<TD>HTMLのソースを表示します. -<TR><TD>s<TD>バッファ選択モードに入ります. -<TR><TD>E<TD>現在見ているバッファがローカルファイルの場合,そのファイルをエディタ -で編集します.エディタを終了した後,そのファイルを再度読み込みます. -<TR><TD>C-l<TD>画面を再描画します. -<TR><TD>R<TD>バッファを再度読み込みます. -<TR><TD>S<TD>バッファの表示内容をファイルに保存します. -<TR><TD>ESC s<TD>HTMLのソースをファイルに保存します.v でソースを表示して S で -保存するのとほぼ同じですが,ESC s で保存したファイルは漢字コードがオリジナルの -ままであるのに対して,v S で保存すると現在表示に使っている漢字コードに変換され -て保存されます. -<TR><TD>ESC e<TD>現在表示されているバッファを,表示されている形式のまま -エディタで編集します. +<TR><TD WIDTH=100>B<TD>憜荀<ゃ鐚筝ゅ<茵腓冴障鐚 +<TR><TD>v<TD>HTML純若鴻茵腓冴障鐚 +<TR><TD>s<TD>♂御≪若ャ障鐚 +<TR><TD>E<TD>憜荀<若<ゃ翫鐚<ゃc +х隈障鐚c帥腟篋緇鐚<ゃ綺茯粋昭帥障鐚 +<TR><TD>C-l<TD>脂≪祉障鐚 +<TR><TD>R<TD><綺茯粋昭帥障鐚 +<TR><TD>S<TD><茵腓阪絎鴻<ゃ篆絖障鐚 +<TR><TD>ESC s<TD>HTML純若鴻<ゃ篆絖障鐚v с純若鴻茵腓冴 S +篆絖祉弱с鐚ESC s т絖<ゃ羲√潟若吾 +障障с絲障鐚v S т絖憜茵腓冴篏帥c羲√潟若紊 +篆絖障鐚 +<TR><TD>ESC e<TD>憜茵腓冴<鐚茵腓冴綵√障 +c帥х隈障鐚 </table> -<H3>バッファ選択モード</H3> -"s" でバッファ選択モードに入ったときのキー操作です. +<H3>♂御≪若</H3> +"s" с♂御≪若ャc惹篏с鐚 <table> -<TR><TD WIDTH=100>k,C-p<TD>一つ上のバッファを選択します. -<TR><TD>j,C-n<TD>一つ下のバッファを選択します. -<TR><TD>D<TD>現在選択しているバッファを削除します. -<TR><TD>RET<TD>現在選択しているバッファを表示します. +<TR><TD WIDTH=100>k,C-p<TD>筝や<御障鐚 +<TR><TD>j,C-n<TD>筝や<御障鐚 +<TR><TD>D<TD>憜御<ゃ障鐚 +<TR><TD>RET<TD>憜御<茵腓冴障鐚 </table> -<H3>ブックマーク操作</H3> +<H3>若篏</H3> <table> -<TR><TD WIDTH=100>ESC b<TD>ブックマークを読み込みます. -<TR><TD>ESC a<TD>現在見ているページをブックマークに追加します. +<TR><TD WIDTH=100>ESC b<TD>若茯粋昭帥障鐚 +<TR><TD>ESC a<TD>憜荀若吾若菴遵障鐚 </table> -<H3>検索</H3> +<H3>罎膣</H3> <table> -<TR><TD WIDTH=100>/,C-s<TD>現在のカーソル位置からファイル末尾に向かって正規表現を検索します. -<TR><TD>?,C-r<TD>現在のカーソル位置からファイルの先頭に向かって正規表現を検索します. -<TR><TD>n<TD>次を検索します. -<TR><TD>N<TD>前を検索します. -<TR><TD>C-w<TD>折り返し検索モードを切り換えます. +<TR><TD WIDTH=100>/,C-s<TD>憜若純篏臀<ゃ絨障c罩h頫憗罎膣≪障鐚 +<TR><TD>?,C-r<TD>憜若純篏臀<ゃc罩h頫憗罎膣≪障鐚 +<TR><TD>n<TD>罨<罎膣≪障鐚 +<TR><TD>N<TD>罎膣≪障鐚 +<TR><TD>C-w<TD>菴罎膣≪≪若障鐚 </table> -<H3>マーク操作</H3> +<H3>若篏</H3> <table> -<TR><TD WIDTH=100>C-SPC<TD>マークを設定/解除します.マークは反転表示されます. -<TR><TD>ESC p<TD>一つ前のマークに移動します. -<TR><TD>ESC n<TD>一つ後のマークに移動します. -<TR><TD>"<TD>正規表現で指定された文字列を全てマークします. +<TR><TD WIDTH=100>C-SPC<TD>若荐絎鐚頵iゃ障鐚若荵∵;腓冴障鐚 +<TR><TD>ESC p<TD>筝ゅ若腱糸障鐚 +<TR><TD>ESC n<TD>筝ゅ若腱糸障鐚 +<TR><TD>"<TD>罩h頫憗ф絎絖若障鐚 </table> -<H3>その他</H3> +<H3>篁</H3> <table> -<TR><TD WIDTH=100>!<TD>シェルコマンドを実行します. -<TR><TD>H<TD>ヘルプファイルを表示します. -<TR><TD>o<TD>オプション設定パネルを表示します. -<TR><TD>C-k<TD>クッキー一覧を表示します. -<TR><TD>C-c<TD>文書の読み込みを中断します. -<TR><TD>C-z<TD>サスペンド -<TR><TD>q<TD>w3mを終了します.オプションの設定によって,終了するかどうか確認します. -<TR><TD>Q<TD>確認せずにw3mを終了します. +<TR><TD WIDTH=100>!<TD>激с潟潟絎茵障鐚 +<TR><TD>H<TD><ゃ茵腓冴障鐚 +<TR><TD>o<TD>激с活┃絎茵腓冴障鐚 +<TR><TD>C-k<TD>寂荀с茵腓冴障鐚 +<TR><TD>C-c<TD>吾茯粋昭帥筝障鐚 +<TR><TD>C-z<TD>泣鴻潟 +<TR><TD>q<TD>w3m腟篋障鐚激с潟荐絎c鐚腟篋腆肴障鐚 +<TR><TD>Q<TD>腆肴w3m腟篋障鐚 </table> -<H3>行編集</H3> -画面の最下行で文字列を入力する場合に有効なキー操作です. +<H3>茵膩</H3> +脂≪筝茵ф絖ュ翫鴻惹篏с鐚 <table> -<TR><TD WIDTH=100>C-f<TD>カーソルを右に移動します. -<TR><TD>C-b<TD>カーソルを左に移動します. -<TR><TD>C-h<TD>カーソルの直前の文字を削除します. -<TR><TD>C-d<TD>カーソル位置の文字を削除します. -<TR><TD>C-k<TD>カーソル位置から後を削除します. -<TR><TD>C-u<TD>カーソル位置から前を削除します. -<TR><TD>C-a<TD>文字列の先頭に移動します. -<TR><TD>C-e<TD>文字列の最後に移動します. -<TR><TD>C-p<TD>ヒストリから一つ前の文字列を取り出します. -<TR><TD>C-n<TD>ヒストリから次の文字列を取り出します. -<TR><TD>TAB,SPC<TD>ファイル名入力時に,ファイル名を補完します. -<TR><TD>RETURN<TD>入力を終了します. +<TR><TD WIDTH=100>C-f<TD>若純劻腱糸障鐚 +<TR><TD>C-b<TD>若純綏腱糸障鐚 +<TR><TD>C-h<TD>若純翫絖ゃ障鐚 +<TR><TD>C-d<TD>若純篏臀絖ゃ障鐚 +<TR><TD>C-k<TD>若純篏臀緇ゃ障鐚 +<TR><TD>C-u<TD>若純篏臀ゃ障鐚 +<TR><TD>C-a<TD>絖腱糸障鐚 +<TR><TD>C-e<TD>絖緇腱糸障鐚 +<TR><TD>C-p<TD>鴻筝ゅ絖冴障鐚 +<TR><TD>C-n<TD>鴻罨<絖冴障鐚 +<TR><TD>TAB,SPC<TD><ゃュ鐚<ゃ茖絎障鐚 +<TR><TD>RETURN<TD>ュ腟篋障鐚 </table> <hr> <a name="Key:lynx"></a> -<h2>起動後の使いかた(Lynx風)</h2> -Lynx風キーバインドでコンパイルした場合の使いかたです. -<H3>ページ/カーソル移動</H3> +<h2>莎桁緇篏帥(Lynx蘂)</h2> +Lynx蘂若ゃ潟с潟潟ゃ翫篏帥с鐚 +<H3>若/若純腱糸</H3> <table> -<TR><TD>SPC,C-v,+<TD>次のページを表示します. -<TR><TD>b,ESC v,-<TD>前のページを表示します. -<TR><TD>l<TD>カーソルを右に移動します. -<TR><TD>h<TD>カーソルを左に移動します. -<TR><TD>j<TD>カーソルを下に移動します. -<TR><TD>k<TD>カーソルを上に移動します. -<TR><TD>J<TD>画面を1行上にスクロールします. -<TR><TD>K<TD>画面を1行下にスクロールします. -<TR><TD>^<TD>行頭に移動します. -<TR><TD>$<TD>行末に移動します. -<TR><TD>><TD>画面全体を右にずらします.(表示内容を左にずらす) -<TR><TD><<TD>画面全体を左にずらします.(表示内容を右にずらす) -<TR><TD>C-a<TD>文書のいちばん上の行に移動します. -<TR><TD>C-e<TD>文書のいちばん下の行に移動します. -<TR><TD>G<TD>画面下で行番号を入力し,そこで指定した行に移動します. -ここで $ を入力すると,最終行に移動します. -<TR><TD>Z<TD>カーソルのある位置を行の中央に移動します. -<TR><TD>z<TD>カーソルのある行を画面の中央に移動します. -<TR><TD>TAB, C-n, 下矢印<TD>次のリンクに移動します. -<TR><TD>ESC TAB, C-p, 上矢印<TD>前のリンクに移動します. -<TR><TD>C-g<TD>ページ中での現在位置を表示します. +<TR><TD>SPC,C-v,+<TD>罨<若吾茵腓冴障鐚 +<TR><TD>b,ESC v,-<TD>若吾茵腓冴障鐚 +<TR><TD>l<TD>若純劻腱糸障鐚 +<TR><TD>h<TD>若純綏腱糸障鐚 +<TR><TD>j<TD>若純筝腱糸障鐚 +<TR><TD>k<TD>若純筝腱糸障鐚 +<TR><TD>J<TD>脂≪1茵筝鴻若障鐚 +<TR><TD>K<TD>脂≪1茵筝鴻若障鐚 +<TR><TD>^<TD>茵腱糸障鐚 +<TR><TD>$<TD>茵腱糸障鐚 +<TR><TD>><TD>脂√篏劻障鐚(茵腓阪絎鴻綏) +<TR><TD><<TD>脂√篏綏障鐚(茵腓阪絎鴻劻) +<TR><TD>C-a<TD>吾<違筝茵腱糸障鐚 +<TR><TD>C-e<TD>吾<違筝茵腱糸障鐚 +<TR><TD>G<TD>脂≫ц垩ュ鐚ф絎茵腱糸障鐚 + $ ュ鐚腟茵腱糸障鐚 +<TR><TD>Z<TD>若純篏臀茵筝紊腱糸障鐚 +<TR><TD>z<TD>若純茵脂≪筝紊腱糸障鐚 +<TR><TD>TAB, C-n, 筝√<TD>罨<潟腱糸障鐚 +<TR><TD>ESC TAB, C-p, 筝√<TD>潟腱糸障鐚 +<TR><TD>C-g<TD>若娯賢с憜篏臀茵腓冴障鐚 </table> -<H3>ハイパーリンク操作</H3> +<H3>ゃ若潟篏</H3> <table> -<TR><TD WIDTH=100>RET, C-f, 右矢印<TD>現在カーソルがあるリンクが指す先の文書を読みこみます. -<TR><TD>d, ESC RET<TD>現在カーソルがあるリンクが指す先の文書をファイルに保存します. -<TR><TD>u<TD>現在カーソルがあるリンクが指す先のURLを表示します. -<TR><TD>i<TD>現在カーソルがあるリンクを含む画像そのもののURLを表示します. -<TR><TD>I<TD>現在カーソルがあるリンクに対応する画像を表示します. -<TR><TD>ESC I<TD>現在カーソルがあるリンクが指す画像をファイルに保存します. -<TR><TD>:<TD>URL風の文字列をリンクにします.この機能は,HTMLでない文書を -読んでいるときにも有効です. -<TR><TD>ESC :<TD>Message-ID風の文字列を,news: のリンクにします.この機能は,HTMLでない文書を読んでいるときにも有効です. -<TR><TD>c<TD>現在の文書のURLを表示します. -<TR><TD>=<TD>現在の文書に関する情報を表示します. -<TR><TD>C-h<TD>URL履歴を表示します. -<TR><TD>F<TD><FRAMESET>を含む文書を表示しているときに,<FRAME> -タグの指す複数の文書を1つの文書に変換して表示します. -<TR><TD>M<TD>現在見ているページを,外部ブラウザを使って表示します. -2M, 3M で2番目と3番目のブラウザを使います. -<TR><TD>ESC M<TD>現在のリンク先を,外部ブラウザを使って表示します. -2ESC M, 3ESC M で2番目と3番目のブラウザを使います. +<TR><TD WIDTH=100>RET, C-f, 勆√<TD>憜若純潟吾茯帥帥障鐚 +<TR><TD>d, ESC RET<TD>憜若純潟吾<ゃ篆絖障鐚 +<TR><TD>u<TD>憜若純潟URL茵腓冴障鐚 +<TR><TD>i<TD>憜若純潟糸URL茵腓冴障鐚 +<TR><TD>I<TD>憜若純潟絲上糸茵腓冴障鐚 +<TR><TD>ESC I<TD>憜若純潟糸<ゃ篆絖障鐚 +<TR><TD>:<TD>URL蘂絖潟障鐚罘純鐚HTMLс吾 +茯с鴻с鐚 +<TR><TD>ESC :<TD>Message-ID蘂絖鐚news: 潟障鐚罘純鐚HTMLс吾茯с鴻с鐚 +<TR><TD>c<TD>憜吾URL茵腓冴障鐚 +<TR><TD>=<TD>憜吾≪宴茵腓冴障鐚 +<TR><TD>C-h<TD>URL絮ユ眼茵腓冴障鐚 +<TR><TD>F<TD><FRAMESET>吾茵腓冴鐚<FRAME> +帥違茲違吾1ゃ吾紊茵腓冴障鐚 +<TR><TD>M<TD>憜荀若吾鐚紊吟篏帥c茵腓冴障鐚 +2M, 3M, ..., 9M 2鐚3鐚9吟篏帥障鐚 +<TR><TD>ESC M<TD>憜潟鐚紊吟篏帥c茵腓冴障鐚 +2ESC M, 3ESC M, ..., 9ESC M 2鐚3鐚9吟篏帥障鐚 </table> -<H3>ファイルとURL関係の操作</H3> +<H3><ゃURL≫篏</H3> <table> -<TR><TD WIDTH=100>g, U<TD>URLを指定して開きます. -<TR><TD>V<TD>ローカルファイルを指定して開きます. -<TR><TD>@<TD>コマンドを実行し,結果を全部読んでから表示します. -<TR><TD>#<TD>コマンドを実行し,結果を読みこみながら表示します. +<TR><TD WIDTH=100>g, U<TD>URL絎障鐚 +<TR><TD>V<TD>若<ゃ絎障鐚 +<TR><TD>@<TD>潟潟絎茵鐚腟茯с茵腓冴障鐚 +<TR><TD>#<TD>潟潟絎茵鐚腟茯帥帥茵腓冴障鐚 </table> -<H3>バッファ操作</H3> +<H3>≧篏</H3> <table> -<TR><TD WIDTH=100>B, C-b, 左矢印<TD>現在見ているバッファを削除し,一つ前のバッファを表示します. -<TR><TD>\<TD>HTMLのソースを表示します. -<TR><TD>s<TD>バッファ選択モードに入ります. -<TR><TD>E<TD>現在見ているバッファがローカルファイルの場合,そのファイルをエディタで編集します.エディタを終了した後,そのファイルを再度読み込みます. -<TR><TD>C-l, C-w<TD>画面を再描画します. -<TR><TD>R, C-r<TD>バッファを再度読み込みます. -<TR><TD>S, p<TD>バッファの表示内容をファイルに保存します. -<TR><TD>ESC s<TD>HTMLのソースをファイルに保存します.v でソースを表示して S で -保存するのとほぼ同じですが,ESC s で保存したファイルは漢字コードがオリジナルの -ままであるのに対して,v S で保存すると現在表示に使っている漢字コードに変換され -て保存されます. -<TR><TD>ESC e<TD>現在表示されているバッファを,表示されている形式のまま -エディタで編集します. +<TR><TD WIDTH=100>B, C-b, 綏√<TD>憜荀<ゃ鐚筝ゅ<茵腓冴障鐚 +<TR><TD>\<TD>HTML純若鴻茵腓冴障鐚 +<TR><TD>s<TD>♂御≪若ャ障鐚 +<TR><TD>E<TD>憜荀<若<ゃ翫鐚<ゃc帥х隈障鐚c帥腟篋緇鐚<ゃ綺茯粋昭帥障鐚 +<TR><TD>C-l, C-w<TD>脂≪祉障鐚 +<TR><TD>R, C-r<TD><綺茯粋昭帥障鐚 +<TR><TD>S, p<TD><茵腓阪絎鴻<ゃ篆絖障鐚 +<TR><TD>ESC s<TD>HTML純若鴻<ゃ篆絖障鐚v с純若鴻茵腓冴 S +篆絖祉弱с鐚ESC s т絖<ゃ羲√潟若吾 +障障с絲障鐚v S т絖憜茵腓冴篏帥c羲√潟若紊 +篆絖障鐚 +<TR><TD>ESC e<TD>憜茵腓冴<鐚茵腓冴綵√障 +c帥х隈障鐚 </table> -<H3>バッファ選択モード</H3> -"s" でバッファ選択モードに入ったときのキー操作です. +<H3>♂御≪若</H3> +"s" с♂御≪若ャc惹篏с鐚 <table> -<TR><TD WIDTH=100>k,C-p<TD>一つ上のバッファを選択します. -<TR><TD>j,C-n<TD>一つ下のバッファを選択します. -<TR><TD>D<TD>現在選択しているバッファを削除します. -<TR><TD>RET<TD>現在選択しているバッファを表示します. +<TR><TD WIDTH=100>k,C-p<TD>筝や<御障鐚 +<TR><TD>j,C-n<TD>筝や<御障鐚 +<TR><TD>D<TD>憜御<ゃ障鐚 +<TR><TD>RET<TD>憜御<茵腓冴障鐚 </table> -<H3>ブックマーク操作</H3> +<H3>若篏</H3> <table> -<TR><TD WIDTH=100>v, ESC b<TD>ブックマークを読み込みます. -<TR><TD>a, ESC a<TD>現在見ているページをブックマークに追加します. +<TR><TD WIDTH=100>v, ESC b<TD>若茯粋昭帥障鐚 +<TR><TD>a, ESC a<TD>憜荀若吾若菴遵障鐚 </table> -<H3>検索</H3> +<H3>罎膣</H3> <table> -<TR><TD WIDTH=100>/,C-s<TD>現在のカーソル位置からファイル末尾に向かって正規表現を検索します. -<TR><TD>n<TD>次を検索します. -<TR><TD>w<TD>折り返し検索モードを切り換えます. +<TR><TD WIDTH=100>/,C-s<TD>憜若純篏臀<ゃ絨障c罩h頫憗罎膣≪障鐚 +<TR><TD>n<TD>罨<罎膣≪障鐚 +<TR><TD>w<TD>菴罎膣≪≪若障鐚 </table> -<H3>マーク操作</H3> +<H3>若篏</H3> <table> -<TR><TD WIDTH=100>C-SPC<TD>マークを設定/解除します.マークは反転表示されます. -<TR><TD>P<TD>一つ前のマークに移動します. -<TR><TD>N<TD>一つ後のマークに移動します. -<TR><TD>"<TD>正規表現で指定された文字列を全てマークします. +<TR><TD WIDTH=100>C-SPC<TD>若荐絎鐚頵iゃ障鐚若荵∵;腓冴障鐚 +<TR><TD>P<TD>筝ゅ若腱糸障鐚 +<TR><TD>N<TD>筝ゅ若腱糸障鐚 +<TR><TD>"<TD>罩h頫憗ф絎絖若障鐚 </table> -<H3>その他</H3> +<H3>篁</H3> <table> -<TR><TD WIDTH=100>!<TD>シェルコマンドを実行します. -<TR><TD>H, ?<TD>ヘルプファイルを表示します. -<TR><TD>o<TD>オプション設定パネルを表示します. -<TR><TD>C-k<TD>クッキー一覧を表示します. -<TR><TD>C-c<TD>文書の読み込みを中断します. -<TR><TD>C-z<TD>サスペンド -<TR><TD>q<TD>w3mを終了します.オプションの設定によって,終了するかどうか確認します. -<TR><TD>Q<TD>確認せずにw3mを終了します. +<TR><TD WIDTH=100>!<TD>激с潟潟絎茵障鐚 +<TR><TD>H, ?<TD><ゃ茵腓冴障鐚 +<TR><TD>o<TD>激с活┃絎茵腓冴障鐚 +<TR><TD>C-k<TD>寂荀с茵腓冴障鐚 +<TR><TD>C-c<TD>吾茯粋昭帥筝障鐚 +<TR><TD>C-z<TD>泣鴻潟 +<TR><TD>q<TD>w3m腟篋障鐚激с潟荐絎c鐚腟篋腆肴障鐚 +<TR><TD>Q<TD>腆肴w3m腟篋障鐚 </table> -<H3>行編集</H3> -画面の最下行で文字列を入力する場合に有効なキー操作です. +<H3>茵膩</H3> +脂≪筝茵ф絖ュ翫鴻惹篏с鐚 <table> -<TR><TD WIDTH=100>C-f<TD>カーソルを右に移動します. -<TR><TD>C-b<TD>カーソルを左に移動します. -<TR><TD>C-h<TD>カーソルの直前の文字を削除します. -<TR><TD>C-d<TD>カーソル位置の文字を削除します. -<TR><TD>C-k<TD>カーソル位置から後を削除します. -<TR><TD>C-u<TD>カーソル位置から前を削除します. -<TR><TD>C-a<TD>文字列の先頭に移動します. -<TR><TD>C-e<TD>文字列の最後に移動します. -<TR><TD>SPC<TD>ファイル名入力時に,ファイル名を補完します. -<TR><TD>RETURN<TD>入力を終了します. +<TR><TD WIDTH=100>C-f<TD>若純劻腱糸障鐚 +<TR><TD>C-b<TD>若純綏腱糸障鐚 +<TR><TD>C-h<TD>若純翫絖ゃ障鐚 +<TR><TD>C-d<TD>若純篏臀絖ゃ障鐚 +<TR><TD>C-k<TD>若純篏臀緇ゃ障鐚 +<TR><TD>C-u<TD>若純篏臀ゃ障鐚 +<TR><TD>C-a<TD>絖腱糸障鐚 +<TR><TD>C-e<TD>絖緇腱糸障鐚 +<TR><TD>SPC<TD><ゃュ鐚<ゃ茖絎障鐚 +<TR><TD>RETURN<TD>ュ腟篋障鐚 </table> <hr> <a name="Mouse"></a> -<h2>マウス操作</h2> -マウス機能をONにしてコンパイルしてあれば,マウスを使って -w3mを操作することができます.マウスが使えるのは,xterm/kterm/rxvt -を使っている場合(この場合には,環境変数TERMを xterm か kterm に -設定する必要があります),または GPM が動いている環境を使っている場合 -です. +<h2>号篏</h2> +号純ON潟潟ゃ逸鴻篏帥c +w3m篏с障鐚鴻篏帥鐚xterm/kterm/rxvt +篏帥c翫(翫鐚医紊TERM xterm kterm +荐絎綽荀障)鐚障 GPM 医篏帥c翫 +с鐚 <p> <table border=0> -<tr><td>左クリック -<td>カーソルをマウスカーソルの位置に移動します. -もしカーソルとマウスカーソルの位置が同じで,カーソルが -リンクの上にあったときは,そのリンクをたどります. -<tr><td>中クリック -<td>前のバッファに戻ります. -<tr><td>右クリック -<td>メニューを開きます.メニューの項目もマウスで選ぶことができます. -<tr><td>左ドラッグ -<td>ページをスクロールします.デフォルトの動作では, -マウスのドラッグに合わせて文書の方をスクロールします. -オプション設定パネルの設定で,この動作を逆にすること -ができます(マウスのドラッグに合わせて,ウィンドウの方を -スクロールする). +<tr><td>綏 +<td>若純鴻若純篏臀腱糸障鐚 +若純鴻若純篏臀э若純 +潟筝c鐚潟障鐚 +<tr><td>筝 +<td><祉障鐚 +<tr><td>劻 +<td><ャ若障鐚<ャ若鴻ч吾吟с障鐚 +<tr><td>綏 +<td>若吾鴻若障鐚篏с鐚 +鴻違吾鴻鴻若障鐚 +激с活┃絎荐絎э篏 +с障(鴻違鐚c潟鴻 +鴻若)鐚 </table> <p> <hr> <a name="Key:custom"></a> -<h2>キーの定義</h2> -~/.w3m/keymap を記述すると,キーの割りあてを変えることができます -(行編集のキー定義を除く).例えば, +<h2>若絎臂</h2> +~/.w3m/keymap 荐菴違鐚若蚊紊с障 +(茵膩弱臂ゃ)鐚箴逸 <pre> keymap C-o NEXT_PAGE </pre> -と記述すると,NEXT_PAGE機能(通常スペースと C-v)に割りあてられて -いるもの)を C-o に割りあてることができます. -利用可能な機能と,その名前については, -<a href="README.func">README.func</a>を参照してください. -例として,オリジナルとLynx風のキー定義ファイル +荐菴違鐚NEXT_PAGE罘(絽吾鴻若鴻 C-v)蚊 +) C-o 蚊с障鐚 +純罘純鐚ゃ鐚 +<a href="README.func">README.func</a>с鐚 +箴鐚吾Lynx蘂弱臂<ゃ (<a href="keymap.default">keymap.default</a> -と<a href="keymap.lynx">keymap.lynx</a>)が置いてあります. +<a href="keymap.lynx">keymap.lynx</a>)臀障鐚 <hr> <a name="LocalCGI"></a> <h2>Local CGI</h2> -w3mを使えば,HTTPサーバなしでCGIスクリプトを起動することができます. -このとき,w3mがサーバのふりをしてスクリプトを起動し,その出力を -読みこんで表示するわけです. -<a href="file:///$LIB/w3mbookmark?mode=panel&bmark=~/.w3m/bookmark.html&url=MANUAL.html&title=w3m+manual">ブックマークの登録</a>と -<a href="file:///$LIB/w3mhelperpanel?mode=panel">外部ビューアの編集</a> -は,local CGIのスクリプトとして実現されています. -local CGIを使えば,w3mを汎用のフォーム入力インタフェースとして -使うことができます. +w3m篏帥逸HTTP泣若CGI鴻莎桁с障鐚 +鐚w3m泣若泣鴻莎桁鐚阪 +茯帥ц;腓冴с鐚 +若脂蚊紊ャ若≪膩 +鐚local CGI鴻絎憗障鐚 +local CGI篏帥逸w3m羆若ュゃ潟帥с若鴻 +篏帥с障鐚 <P> -セキュリティ上の理由により,起動するCGIスクリプトは,次のどれかの -ディレクトリにある必要があります. +祉ャd宴鐚莎桁CGI鴻鐚罨< +c綽荀障鐚 <ul> -<li>w3mのヘルプファイルなどが置いてあるディレクトリ -(典型的には /usr/local/lib/w3m).このディレクトリは, -$LIB で参照することができます. -<li>/cgi-bin/ ディレクトリ.このディレクトリは,任意の場所に -割りあてることができます(オプション設定パネルの「/cgi-binで表される -ディレクトリ」の項目).ここには,: で区切って複数のディレクトリを -指定することができます(例えば /usr/local/cgi-bin:/home/aito/cgi-bin など). -/cgi-bin/ を使う場合は、 +<li>w3m<ゃ臀c +(後 /usr/local/lib/w3m)鐚c鐚 +$LIB усс障鐚 +<li>/cgi-bin/ c鐚c鐚篁紙贋 +蚊с障(激с活┃絎/cgi-binц; +c)鐚鐚: у阪c茲違c +絎с障(箴 /usr/local/cgi-bin:/home/aito/cgi-bin )鐚 +/cgi-bin/ 篏帥翫 <pre> w3m -o cgi_bin=/path/to/cgi-bin file:/cgi-bin/script.cgi </pre> -のように file:/cgi-binというURLを使う必要があります。 -この中にカレントディレクトリを入れることは,セキュリティ上の理由により -薦められません. + file:/cgi-binURL篏帥綽荀障 +筝潟cャ鐚祉ャd宴 +障鐚 </ul> <p> -Local CGIとして使われるスクリプトでは,w3mをコントロールするために, -特殊なヘッダ `w3m-control:' を使うことができます.このヘッダには, -w3mの任意の機能 (<a href="README.func">README.func</a>参照)を書く -ことができます.文書が表示された後,その機能が呼び出されます. -例えば, +Local CGI篏帥鴻с鐚w3m潟潟若鐚 +号 `w3m-control:' 篏帥с障鐚鐚 +w3m篁紙罘 (<a href="README.func">README.func</a>)吾 +с障鐚吾茵腓冴緇鐚罘純若喝冴障鐚 +箴逸 <pre> Content-Type: text/plain W3m-control: BACK </pre> -というヘッダを出力した場合,w3mは空のページを表示し,その直後に -そのバッファを削除します.これは,CGIを実行した後で,何もページを -表示したくない場合に有効です.また, +阪翫鐚w3m腥冴若吾茵腓冴鐚翫 +<ゃ障鐚鐚CGI絎茵緇э篏若吾 +茵腓冴翫鴻с鐚障鐚 <pre> Content-Type: text/plain @@ -535,28 +528,28 @@ W3m-control: DELETE_PREVBUF contents..... </pre> -は,新しいバッファで直前のバッファを置きかえます. +鐚違<х翫<臀障鐚 <p> -一つの w3m-control: ヘッダには,一つの機能だけを指定することができます. -ただし,HTTPレスポンスの中に複数の w3m-control: を入れることができ, -そこで指定された機能は順番に実行されます. -さらに,GOTO には引数を指定することができます. +筝ゃ w3m-control: 鐚筝ゃ罘純絎с障鐚 +鐚HTTP鴻潟鴻筝茲違 w3m-control: ャс鐚 +ф絎罘純絎茵障鐚 +鐚GOTO 綣違絎с障鐚 <pre> Content-Type: text/plain W3m-control: GOTO http://www.yahoo.com/ </pre> -この例は,Location: を使った次の例と同じように動作します. +箴鐚Location: 篏帥c罨<箴篏障鐚 <pre> Content-Type: text/plain Location: http://www.yahoo.com/ </pre> -ただし,w3m-control: ヘッダはw3mがスクリプトを直接呼びだした時だけに -有効です.同じスクリプトを HTTPサーバ経由で呼びだした場合, -w3m-control: ヘッダは無視されます. +鐚w3m-control: w3m鴻贋・若潟 +鴻с鐚鴻 HTTP泣若腟宴у若潟翫鐚 +w3m-control: ∴障鐚 </body> </html> diff --git a/doc-jp/README b/doc-jp/README index 074766f..62da344 100644 --- a/doc-jp/README +++ b/doc-jp/README @@ -3,31 +3,31 @@ Hironori SAKAMOTO Fumitoshi UKAI -1. はじめに +1. - w3m は,World Wide Web に対応したページャです.あくまでページャですが, -テキストベース WWW ブラウザとしても使うことができます. + w3m 鐚World Wide Web 絲上若吾cс鐚障с若吾cс鐚 +鴻若 WWW 吟篏帥с障鐚 - w3m は,fm というページャをベースとして作られました.fm についての詳細 -は,STORY.html をお読みください.w3m のページャとしての基本的な特徴は,fm -とほとんど同じです. + w3m 鐚fm 若吾c若鴻篏障鐚fm ゃ荅括完 +鐚STORY.html 茯帥鐚w3m 若吾c堺劫彰鐚fm +祉с鐚 - w3m 独自の特徴としては,次のようなものがあります. + w3m 劫彰鐚罨<障鐚 - ・WWW 対応なので,HTML の文書を読んでいる時には,その中のリンクを辿った - り,画像を見ることができる. - ・Internet message 表示のためのモードがある.この時,Content-Type: が - text/html の場合は,自動的に HTML の文書として表示する.また,自力で - MIME header のデコードをする. - ・見ている plain text 文書中に URL 表記があった場合,その部分からリンク - をたどることができる. + WWW 絲上эHTML 吾茯с鐚筝潟莨帥c + 鐚糸荀с鐚 + Internet message 茵腓冴≪若鐚鐚Content-Type: + text/html 翫鐚 HTML 吾茵腓冴鐚障鐚 + MIME header 潟若鐚 + 肢 plain text 娯賢 URL 茵荐c翫鐚潟 + с鐚 - 現在の問題点は以下のようなものです. + 憜馹鴻篁ヤс鐚 - ・オンラインマニュアルが貧弱.簡単な使い方については,MANUAL.html をお読み - ください. + 祉潟ゃ潟ャ≪莢у識鐚膂≦篏帥鴻ゃ鐚MANUAL.html 茯 + 鐚 - 現在動作が確認されている OS は以下の通りです. + 憜篏腆肴 OS 篁ヤс鐚 SunOS 4.1.x HP-UX 9.x, 10.x Solaris 2.5.x, 2.6, 8, 9 @@ -43,86 +43,79 @@ MacOS X Server MacOS X 10.1, 10.2, 10.3, 10.4 -2. インストール +2. ゃ潟鴻若 -インストールをするには,次のようにします. +ゃ潟鴻若鐚罨<障鐚 - - GC library (6.1より新しいもの?)をインストールしておきます。 - GC library は + - GC library (6.1違?)ゃ潟鴻若障 + GC library http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/ - から入手できます。 + ユс障 - GC library 6.1を使っている場合は gc.h を PREFIX/include に - インストールしておく必要があります。 + GC library 6.1篏帥c翫 gc.h PREFIX/include + ゃ潟鴻若鏆荀障 # cp gc-6.1/include/gc.h PREFIX/include - - configure を実行する. + - configure 絎茵鐚 % ./configure - - make を実行 + - make 絎茵 % make - - make install を実行 + - make install 絎茵 # make install -以上でインストールは終わりです. +篁ヤсゃ潟鴻若腟с鐚 -機種ごとの注意点: +罘腮羈刻 HP-UX - HP の C コンパイラ(gccでなく)でコンパイルする場合, - configure の + HP C 潟潟ゃ(gccс)с潟潟ゃ翫鐚 + configure Input your favorite C-compiler. (Default: cc) - に,cc -Aa -D_HPUX_SOURCE と答えてください.cc - だけだとコンパイルが通りません.gcc なら普通に - 通りますが,バージョン古めの場合は -g を付けな - いでください. + 鐚cc -Aa -D_HPUX_SOURCE 膈鐚cc + 潟潟ゃ障鐚gcc + 障鐚若吾с喝ゃ翫 -g 篁 + с鐚 OS/2 - emx を使うことで w3m をコンパイルすることができます. - まず最初に + emx 篏帥 w3m 潟潟ゃс障鐚 + 障 cd gc make -f EMX_MAKEFILE - を実行して GC ライブラリをコンパイルしておいてから,w3m - 本体をコンパイルします.なお,カラー表示が変になるらしい - ので,モノクロ用にコンパイルした方が良いでしょう. + 絎茵 GC ゃ潟潟ゃ鐚w3m + 篏潟潟ゃ障鐚鐚取;腓冴紊 + э≪潟潟ゃ鴻с鐚 Windows - Windows で w3m を動かすためには,Windows 上の UNIX互換環境 - である Cygwin(開発環境付き)が必要です. - 詳細は README.cygwin を参照してください. + Windows w3m 鐚Windows 筝 UNIX篋医 + с Cygwin(榊医篁)綽荀с鐚 + 荅括完 README.cygwin с鐚 -3. 著作権 +3. 篏罔 -w3m の著作権は,伊藤彰則に属しています. +w3m 篏罔鐚篌ゅ衆絮障鐚 (C) Copyright 1994-2002 by Akinori Ito (C) Copyright 2002-2011 by Akinori Ito, Hironori Sakamoto, Fumitoshi Ukai -4. 配布条件 +4. 絽>散 -このソフトウェアによって利用者または第三者が何らかの被害を受けた -場合,作者はその責任を一切負いません.この事を承諾する限りにおい -て,このソフトウェアは,誰でも作者に断りなく利用・改変・配布でき -ます. +純с≪c障膃筝篏茴絎潟 +翫鐚篏莢篁祉筝莢障鐚篋粋障 +鐚純с≪鐚茯違с篏紙劫脂絽с +障鐚 -5. 作者 +5. 篏 - 伊藤 彰則 - 東北大学大学院工学研究科 + 篌 綵医 + 怨紊у紊у√轡絖腥句 aito@fw.ipsj.or.jp -現在のメンテナ - 佐藤 大 - 東北大学病院 - satodai@w3m.jp - -ご意見,ご感想をMLまでお寄せください. - w3m-dev@sic.med.tohoku.ac.jp (日本語) - w3m-dev-en@sic.med.tohoku.ac.jp (英語) - http://w3m.sourceforge.net/ +This package is maintained for Debian <https://www.debian.org>, +forked from the original version <https://sourceforge.net/projects/w3m/>. diff --git a/doc-jp/README.SSL b/doc-jp/README.SSL index 4aedfde..5899bc8 100644 --- a/doc-jp/README.SSL +++ b/doc-jp/README.SSL @@ -1,75 +1,76 @@ -SSL サポートについて +SSL 泣若ゃ - (2000/11/07) 岡部克也 + (2000/11/07) 絏♂箙 okabek@guitar.ocn.ne.jp - (2001/12/27) 鵜飼文敏 + (2001/12/27) 薺蕋惹 ukai@debian.or.jp - ・ OpenSSL ライブラリを通じて, SSL をサポートしています. - あらかじめインストールしておいてください. + OpenSSL ゃ, SSL 泣若障. + ゃ潟鴻若. - ・ OpenSSL ライブラリがインストールされていれば configure スクリプト実行時に自 - 動的に検出されて利用可能となります. - もしうまく動かないときは, config.h をチェックしてみてください. SSL を利用す - るためには, config.h で, USE_SSL マクロが定義されている必要があります. - さらに, SSL 認証サポートを利用する場合は, USE_SSL_VERIFY マクロもチェックし - てみてください. - コンパイルでエラーが出る場合は, リンカフラグに `-lssl -lcrypto', コンパイラ - フラグに '-I(SSLeay/OpenSSL のヘッダがあるディレクトリ)' があるか確認してく - ださい. + OpenSSL ゃゃ潟鴻若 configure 鴻絎茵 + 罎冴純障. + 障, config.h с帥. SSL + , config.h , USE_SSL 絎臂綽荀障. + , SSL 茯荐若泣若翫, USE_SSL_VERIFY с + 帥. + 潟潟ゃс若冴翫, 潟違 `-lssl -lcrypto', 潟潟ゃ + 違 '-I(SSLeay/OpenSSL c)' 腆肴 + . - SSL サポートが有効になっているかどうかは, Option Setting Panel に「SSLの設 - 定」が含まれているかどうかで確認できます. + SSL 泣若鴻c, Option Setting Panel SSL荐 + 絎障х∈茯с障. - ・ SSL に関して以下の設定が可能になってます: + SSL ≪篁ヤ荐絎純c障: ssl_forbid_method - 使わないSSLメソッドのリスト(2: SSLv2, 3: SSLv3, t: TLSv1) - (デフォルトは<NULL>). + 篏帥SSL<純鴻(2: SSLv2, 3: SSLv3, t: TLSv1.0, + 5: TLSv1.1, 6: TLSv1.2, 7: TLSv1.3) + (2, 3). ssl_verify_server ON/OFF - SSLのサーバ認証を行う(デフォルトはOFF). - ssl_cert_file ファイル名 - SSLのクライアント用PEM形式証明書ファイル(デフォルトは<NULL>). - ssl_key_file ファイル名 - SSLのクライアント用PEM形式秘密鍵ファイル(デフォルトは<NULL>). - ssl_ca_path ディレクトリ名 - SSLの認証局のPEM形式証明書群のあるディレクトリへのパス - (デフォルトは<NULL>). - ssl_ca_file ファイル名 - SSLの認証局のPEM形式証明書群のファイル(デフォルトは<NULL>). - ただし「SSLEAY_VERSION_NUMBER >= 0x0800」な環境でないと無駄なコードが増 - えるだけなので, configure時にdisableしておいたほうがよいでしょう. + SSL泣若茯荐若茵(ON). + ssl_cert_file <ゃ + SSLゃ≪潟PEM綵√頥惹吾<ゃ(<NULL>). + ssl_key_file <ゃ + SSLゃ≪潟PEM綵√霡絲泣<ゃ(<NULL>). + ssl_ca_path c + SSL茯荐弱PEM綵√頥惹悟召c吾 + (<NULL>). + ssl_ca_file <ゃ + SSL茯荐弱PEM綵√頥惹悟召<ゃ(<NULL>). + SSLEAY_VERSION_NUMBER >= 0x0800医с♂潟若紜 + , configuredisable祉с. - また実際に認証を行う場合, ssl_ca_pathまたはssl_ca_fileで, サーバの鍵に - 署名している認証局の証明書を (ssl_verify_serverのON/OFFに関係無く) 指定 - しないとサーバ認証は成功しません。 + 障絎茯荐若茵翫, ssl_ca_path障ssl_ca_file, 泣若泣 + 臀峨茯荐弱荐惹吾 (ssl_verify_serverON/OFF≫<) 絎 + 泣若茯荐若障 - 通常使われている認証局の証明書は以下のところなどから入手できます。 + 絽娯戎茯荐弱荐惹吾篁ヤユс障 - * mozillaのソースに含まれている + * mozilla純若鴻障 mozilla/security/nss/lib/ckfw/builtins/certdata.txt - から添付の ruby script で *.pemファイルとしてとりだしたもの + 羞私 ruby script *.pem<ゃ % ruby certdata2pem.rb < certdata.txt - でカレントディレクトリに *.pemファイルをとりだし - opensslの c_rehash コマンドで hash symlink を作成します。 - このディレクトリを ssl_ca_path に設定することができます。 - もしくは、*.pem をまとめた一つのファイルを作成しておけば - それを ssl_ca_file に設定することができます。 + с潟c *.pem<ゃ + openssl c_rehash 潟潟 hash symlink 篏障 + c ssl_ca_path 荐絎с障 + *.pem 障筝ゃ<ゃ篏 + ssl_ca_file 荐絎с障 - * mod_sslのソースに含まれている pkg.sslcfg/ca-bundle.crt - これは PEMなので、このファイルのフルパス名を ssl_ca_file に - 設定することができます。 + * mod_ssl純若鴻障 pkg.sslcfg/ca-bundle.crt + PEMс<ゃ劫 ssl_ca_file + 荐絎с障 - ・ バージョン 0.9.5 以降の OpenSSL ライブラリは, 乱数を初期化するために幾つか - のシードを設定する必要があります. - デフォルトでは /dev/urandom があればそれを利用しますが, 無ければ w3m 内部 - で生成します. もし, EGD (Entropy Gathering Daemon) または PRNGD (Pseudo - Random Number Generator Daemon) が利用できる環境でこれを使いたい場合は, - USE_EGD マクロをチェックしてみてください. + 若吾с 0.9.5 篁ラ OpenSSL ゃ, 箙掩違綛障ゃ + 激若荐絎綽荀障. + с /dev/urandom 違障, < w3m + х障. , EGD (Entropy Gathering Daemon) 障 PRNGD (Pseudo + Random Number Generator Daemon) с医с篏帥翫, + USE_EGD с帥. - ・ URL + URL OpenSSL - http://www.openssl.org/ PRNGD - http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/prngd.html @@ -85,6 +86,9 @@ SSL サポートについて # # certdata2pem.rb +if RUBY_VERSION>="1.9" + Encoding.default_external="UTF-8" +end while line = $stdin.gets next if line =~ /^#/ next if line =~ /^\s*$/ diff --git a/doc-jp/README.cookie b/doc-jp/README.cookie index 8741a5f..7c32c7d 100644 --- a/doc-jp/README.cookie +++ b/doc-jp/README.cookie @@ -1,62 +1,62 @@ -クッキーサポートについて +若泣若ゃ - (2000/11/07) 岡部克也 + (2000/11/07) 絏♂箙 okabek@guitar.ocn.ne.jp - ・ version 0 (参照: http://www.netscape.com/newsref/std/cookie_spec.html) と, - version 1 (参照: http://www.ics.uci.edu/pub/ietf/http/rfc2109.txt, + version 0 (: http://www.netscape.com/newsref/std/cookie_spec.html) , + version 1 (: http://www.ics.uci.edu/pub/ietf/http/rfc2109.txt, http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-state-man-mec-12.txt) - のクッキーをサポートしています. + 若泣若障. - ・ クッキーのサポートは configure スクリプトの実行時に自動的に選択されます。 - もしうまく動かないときは, config.h をチェックしてみてください. クッキーを利 - 用するためには, config.h で USE_COOKIE マクロが定義されている必要がありま - す. - なお、もしクッキーをサポートしたくない場合は --disable-cookie オプションを - 付けて configure スクリプトを実行して下さい。 + 若泣若 configure 鴻絎茵御障 + 障, config.h с帥. 若 + , config.h USE_COOKIE 絎臂綽荀 + . + 若泣若翫 --disable-cookie 激с潟 + 篁 configure 鴻絎茵筝 - ・ Option Setting Panel (通常 `o' キーにバインドされている), または起動オプシ - ョン (-cookie, -no-cookie) で使用するか否かを選択できます. + Option Setting Panel (絽 `o' 若ゃ潟), 障莎桁 + с (-cookie, -no-cookie) т戎御с障. - ・ Option Setting Panel でクッキーを受け付けないようにする事もできます. - この場合, 以後のサーバから送られてくる全てのクッキーはリジェクトされますが, - 既に受け取っているクッキーについては継続して使用されます. + Option Setting Panel с若篁篋с障. + 翫, 篁ュ泣若若吾с障, + ≪c若ゃ膓膓篏睡障. - ・ C-k でクッキー一覧が表示できます. この画面で, クッキー毎に使用するか否かを - 選択できます. + C-k с寂荀с茵腓冴с障. 脂≪, 惹篏睡 + 御с障. - ・ 2000/10/24 の版から, Option Setting Panel でクッキーを受け付ける (または受 - け付けない) ドメイン (のリスト) を設定できるようになりました. 以下のフォー - マットで指定します: + 2000/10/24 , Option Setting Panel с若篁 (障 + 篁) <ゃ (鴻) 荐絎с障. 篁ヤ + ф絎障: domain-list = domains | "" domains = domain | domain + "," + domains - domain = "." + domain-name ; ドメイン名とマッチ - | host-domain-name ; HDN とマッチ - | ".local" ; . を含まない全ての HDN にマッチ - | "." ; 全ての HDN にマッチ + domain = "." + domain-name ; <ゃ喝 + | host-domain-name ; HDN + | ".local" ; . 障 HDN + | "." ; HDN (HDN: host domain name) - 例として, 特定のドメイン (.xxx.or.jp) のクッキーのみを受け付けたい場合は, + 箴, 劫<ゃ (.xxx.or.jp) 若帥篁翫, - ┌────────────────────────────────────┐ - │クッキーの設定 │ - │ │ - │クッキーを使用する (*)ON ( )OFF │ - │クッキーを受け付ける (*)ON ( )OFF │ - │問題のあるクッキーでも受け付ける [discard] │ - │クッキーを受け付けないドメイン [. ] │ - │クッキーを受け付けるドメイン [.xxx.or.jp ] │ - │ [OK] │ - └────────────────────────────────────┘ + + 若荐絎 + + 若篏睡 (*)ON ( )OFF + 若篁 (*)ON ( )OFF + 馹若с篁 [discard] + 若篁<ゃ [. ] + 若篁<ゃ [.xxx.or.jp ] + [OK] + - のように設定します. + 荐絎障. - ・ ドメインに含まれる "." の数が 2 よりも小さいときは不正なクッキーと - 見なされます (RFC 2109 4.3.2 参照) が - cookie_avoid_wrong_number_of_dots で指定されたドメインはこの制限を - 受けなくなります。Option Setting Panel の "[wrong number of dots] - を無視するドメイン" で設定できます。 + <ゃ潟障 "." 違 2 絨筝罩c若 + 荀障 (RFC 2109 4.3.2 ) + cookie_avoid_wrong_number_of_dots ф絎<ゃ潟狗 + 障Option Setting Panel "[wrong number of dots] + ∴<ゃ" ц┃絎с障 diff --git a/doc-jp/README.cygwin b/doc-jp/README.cygwin index 97e14c9..297c34b 100644 --- a/doc-jp/README.cygwin +++ b/doc-jp/README.cygwin @@ -1,88 +1,88 @@ -cygwin で w3m を使う - (2003/02/17) 渡邉勝之 +cygwin w3m 篏帥 + (2003/02/17) 羝♂箙 knabe@sannet.ne.jp -Windows で w3m を動かすためには,Windows 上の UNIX互換環境である Cygwin が -必要です. -Cygwin に関する情報は http://cygwin.com/ を参照してください. +Windows w3m 鐚Windows 筝 UNIX篋医с Cygwin +綽荀с鐚 +Cygwin ≪宴 http://cygwin.com/ с鐚 -* ビルド +* -w3m-0.2 以降から cygwin 向けの修正パッチが取り込まれたため,cygwin-1.1.4 -以降の環境であれば特に問題なくビルドできます.Net Release 前の B18, B19, -B20あたりでもビルドできるはずですが,確認はされていません. - (*) Cygwin B20.1 の環境では - LOCAL_LIBRARIES に -luser32 をつける必要があります。 +w3m-0.2 篁ラ cygwin 篆罩c莨若障鐚cygwin-1.1.4 +篁ラ医с亥鴻馹с障鐚Net Release B18, B19, +B20ссс鐚腆肴障鐚 + (*) Cygwin B20.1 医с + LOCAL_LIBRARIES -luser32 ゃ綽荀障 -なお,termcap ないし ncurses パッケージは最新のものを使ってください.特 -に termcap を使う場合,古いパッケージは /etc/termcap の cygwin のエント -リにバグがあり,表示がおかしくなります.この問題は termcap-20001020-1 で -修正されているため,これ以降のバージョンを使用してください. +鐚termcap ncurses 宴若吾違篏帥c鐚 + termcap 篏帥翫鐚ゃ宴若吾 /etc/termcap cygwin 潟 +違鐚茵腓冴障鐚馹 termcap-20001020-1 +篆罩c鐚篁ラ若吾с潟篏睡鐚 -ビルドする際には, 必ず ./configure してから make してください.以下で説 -明するマクロが定義されなくなるため,正常に動作しなくなります.また,正常 -にビルドできない,正常に動作しない場合には,バグ報告をする前に以下の点を -チェックしてください. +鐚 綽 ./configure make 鐚篁ヤц +絎臂鐚罩e幻篏障鐚障鐚罩e幻 +с鐚罩e幻篏翫鐚医怨篁ヤ鴻 +с鐚 - o make veryclean してから再度 ./configure && make してみる. - o gcc, binutils が正常にインストールされているかを確認する. - cygwin の setup.exe に問題があり,パッケージファイルのダウンロード - に失敗しても,エラーの報告をしないで正常終了してしまうことがあるよ - うです.その場合には再度 setup をやりなおしてください. + o make veryclean 綺 ./configure && make 帥鐚 + o gcc, binutils 罩e幻ゃ潟鴻若腆肴鐚 + cygwin setup.exe 馹鐚宴若吾<ゃ潟若 + 紊掩鐚若怨фe幻腟篋障 + с鐚翫綺 setup 鐚 -また Win95/98/ME では,環境変数 CYGWIN に 'ntsec' もしくは 'ntea' が含ま -れていると,シェルスクリプトに実行属性がつかなくなるため,configure に失 -敗するようです.w3m に限らず,他にも問題が発生するという報告があるため, -Win95/98/ME で Cygwin を使用する場合には,最初に cygwin1.dll をロードす -る際の環境変数 CYGWIN から ntsec, ntea の記述を取り除いてください. +障 Win95/98/ME с鐚医紊 CYGWIN 'ntsec' 'ntea' +鐚激с鴻絎茵絮сゃ鐚configure 紊 +с鐚w3m 鐚篁馹榊怨鐚 +Win95/98/ME Cygwin 篏睡翫鐚 cygwin1.dll 若 +医紊 CYGWIN ntsec, ntea 荐菴違ゃ鐚 -* マクロ +* -config.h には,Cygwin 環境向けに以下のマクロを定義してあります. +config.h 鐚Cygwin 医篁ヤ絎臂障鐚 o USE_BINMODE_STREAM - -dump, -dump_{head,source,both,extra} 時の stdout への出力をバイナリ - モードで行います.cygwin-1.3.11 以降では不要になっているはずですが, - 安全側に振っておくために残しています. - Cygwin, EMX 環境で共通です. + -dump, -dump_{head,source,both,extra} stdout 吾阪ゃ + ≪若ц障鐚cygwin-1.3.11 篁ラс筝荀cс鐚 + 絎眼c罧障鐚 + Cygwin, EMX 医у演с鐚 o SUPPORT_DOS_DRIVE_PREFIX - 'C:', 'C:/', 'file://C:/', 'file://C|/' などのドライブレターを含むパ - スを認識し,ファイル名として扱う機能を有効にします. - Cygwin, EMX 環境で共通です. + 'C:', 'C:/', 'file://C:/', 'file://C|/' ゃ帥若 + 鴻茯茘鐚<ゃ宴罘純鴻障鐚 + Cygwin, EMX 医у演с鐚 o SUPPORT_NETBIOS_SHARE - '//NETBIOSHOST/SHARE/PATH', 'file://NETBIOSHOST/SHARE/PATH' 形式の - NETBIOS 共有資源へのアクセスを ftp: スキーマではなく file: スキーマ - として扱う機能を有効にします. - Cygwin 環境に特有です. + '//NETBIOSHOST/SHARE/PATH', 'file://NETBIOSHOST/SHARE/PATH' 綵√ + NETBIOS 掩莖羣吾≪祉鴻 ftp: 鴻若с file: 鴻若 + 宴罘純鴻障鐚 + Cygwin 医号с鐚 o SUPPORT_WIN9X_CONSOLE_MBCS - Win9X 系の DOS プロンプトで,検索およびフォームへの一行エディタ入力 - 時に日本語 IME 経由の入力をサポートします. - ただし,Win9X 系の DOS プロンプトの実装および Cygwin の tty レイヤー - の問題により,ローカルコンソールで TERM=cygwin かつ環境変数 CYGWIN - に 'tty' が含まれない場合のみ IME からの入力を許可しています. - なお,NT 系ではこのマクロを無効にしても動作は変更されず,ローカルコ - ンソールであれば IME による日本語入力が可能です. - LANG=JA 指定時の Cygwin 環境に特有です. + Win9X 膤祉 DOS 潟э罎膣≪潟若吾筝茵c水ュ + ユ茯 IME 腟宴ュ泣若障鐚 + 鐚Win9X 膤祉 DOS 潟絎茖 Cygwin tty ゃゃ + 馹鐚若潟潟純若 TERM=cygwin ょ医紊 CYGWIN + 'tty' 障翫 IME ュ荐怨障鐚 + 鐚NT 膤祉с≦鴻篏紊眼鐚若 + 潟純若с IME ユ茯ュ純с鐚 + LANG=JA 絎 Cygwin 医号с鐚 -* Native Application との連携 +* Native Application f -Cygwin 環境でビルドした w3m から Win32 Native アプリケーションを起動する -場合,パスの記述形式の違いによって,ファイルが見つからないなどのエラーが -発生します. +Cygwin 医с w3m Win32 Native ≪宴若激с潟莎桁 +翫鐚鴻荐菴医就綣c鐚<ゃ荀ゃ若 +榊障鐚 -o ローカルCGI +o 若CGI -Cygwin 環境でビルドすると,$LIB (通常は /usr/local/lib/w3m/cgi-bin) 以下 -にインストールされるローカル CGI は cygwin の /usr/bin/perl を使うように -設定されます.これに対し,Native アプリケーションの ActivePerl などを使 -用する場合,以下のようなラッパースクリプトを用意し,$LIB 以下の各スクリ -プトを修正してください. +Cygwin 医с鐚$LIB (絽吾 /usr/local/lib/w3m/cgi-bin) 篁ヤ +ゃ潟鴻若若 CGI cygwin /usr/bin/perl 篏帥 +荐絎障鐚絲障鐚Native ≪宴若激с潟 ActivePerl 篏 +翫鐚篁ヤ若鴻鐚$LIB 篁ヤ鴻 +篆罩c鐚 ------ /usr/local/bin/winperl ------ #!/bin/sh @@ -98,18 +98,18 @@ case $1 in esac exec "$PERL" "$SCRIPT" $@ ------------------------------------ -※PERL= には Cygwin 環境の内部から見た Native Perl のパスを記述してくだ - さい.cygpath ユーティリティは cygwin パッケージに入っています. +PERL= Cygwin 医荀 Native Perl 鴻荐菴違 + 鐚cygpath 若cc cygwin 宴若吾ャc障鐚 -なお,ディレクトリリストだけであれば,オプション設定で「ディレクトリリス -トに外部コマンドを使う」を NO にすれば,ローカル CGI を使わずにディレク -トリのブラウズを行います. +鐚c鴻с逸激с活┃絎сc +紊潟潟篏帥 NO 逸若 CGI 篏帥c +冴茵障鐚 -o エディタ +o c -w3m はテキストエリアの内容編集などに外部エディタを使用しますが,外部エデ -ィタに Win32 Native アプリケーションを使う場合,以下のスクリプトを外部エ -ディタに指定してください. +w3m 鴻≪絎合隈紊c帥篏睡障鐚紊 +c帥 Win32 Native ≪宴若激с潟篏帥翫鐚篁ヤ鴻紊 +c帥絎鐚 ------ /usr/local/lib/w3m/winedit ------ #!/bin/sh @@ -117,61 +117,61 @@ EDITOR='/cygdrive/c/Program Files/sakura/sakura.exe' FILE=`cygpath -a -w $1` exec "$EDITOR" "$FILE" ---------------------------------------- -※EDITOR= には Cygwin 環境の内側から見た Native アプリケーションのパスを - 記述してください. +EDITOR= Cygwin 医眼荀 Native ≪宴若激с潟鴻 + 荐菴違鐚 -なお,NT 系で inetd をサービスとして動かしていて,localhost に telnet で -接続している場合には,「デスクトップとの対話をサービスに許可」を ON にし -ておかなければ window が表示されません. +鐚NT 膤祉 inetd 泣若鴻鐚localhost telnet +・膓翫鐚鴻絲乗宴泣若鴻荐怨 ON + window 茵腓冴障鐚 -* 既知のバグ +* ∝ャ -以下は,Cygwin 環境で w3m を動かした場合の問題点です. +篁ヤ鐚Cygwin 医 w3m 翫馹鴻с鐚 -o -dump, -dump-source 時に LF -> CR+LF の変換が行われることがある. +o -dump, -dump-source LF -> CR+LF 紊茵鐚 - コンパイル時にマクロ USE_BINMODE_STREAM が define されていない可能性が - あります. - きちんと configure したうえでコンパイルしなおすか,環境変数 CYGWIN に - binmode を設定してください. + 潟潟ゃ USE_BINMODE_STREAM define 醇с + 障鐚 + < configure с潟潟ゃ鐚医紊 CYGWIN + binmode 荐絎鐚 -o Win9X 系の DOS プロンプトで IME 経由の入力ができない. +o Win9X 膤祉 DOS 潟 IME 腟宴ュс鐚 - 環境変数 CYGWIN に 'tty' が含まれているときには,Cygwin の tty レイヤ - の問題を回避するために IME 経由の入力を禁止しています.環境変数 CYGWIN - から 'tty' を削除してください. + 医紊 CYGWIN 'tty' 障鐚Cygwin tty ゃ + 馹帥 IME 腟宴ュ胼罩≪障鐚医紊 CYGWIN + 'tty' ゃ鐚 -o Win9X 系の DOS プロンプトで IME が ON になっているとカーソルが効かない. +o Win9X 膤祉 DOS 潟 IME ON c若純鴻鐚 - Win9X の DOS プロンプトと Cygwin の tty レイヤーの実装の問題です. - 代わりに C-f, C-b, C-p, C-n を使ってください. + Win9X DOS 潟 Cygwin tty ゃゃ若絎茖馹с鐚 + 篁c C-f, C-b, C-p, C-n 篏帥c鐚 -o NT 系のコマンドプロンプトで画面制御がおかしくなる. +o NT 膤祉潟潟潟х脂√九勝鐚 - 「レイアウト」タブで画面バッファのサイズとウィンドウのサイズを違う値に - してバックスクロールができるように設定していると,画面制御がおかしくな - ることがあるようです. + ゃ≪帥х脂≪<泣ゃ冴c潟泣ゃ冴ゃ + 鴻若с荐絎鐚脂√九勝 + с鐚 -o DOS プロンプト,コマンドプロンプトでマウスが使えない. +o DOS 潟鐚潟潟潟с鴻篏帥鐚 - DOS プロンプト「編集オプション」/コマンドプロンプトの「オプション」で - 「簡易編集モード」が ON になっていると,マウスイベントが w3m に渡され - ません.OFF に設定してください. + DOS 潟膩激с潟/潟潟潟激с潟 + 膂≧膩≪若 ON c鐚鴻ゃ潟 w3m 羝< + 障鐚OFF 荐絎鐚 -o DOS プロンプト,コマンドプロンプトでマウスボタンに対する反応がおかしい. +o DOS 潟鐚潟潟潟с鴻帥潟絲障綽鐚 - cygwin-1.3.15 までの環境では,マウスの右と中央ボタンのエスケープシー - ケンスが入れ替わっていました.これは cygwin-1.3.16-1 で修正されていま - すが,w3m 側のバージョン判定が完全ではないため,使用する環境でビルド - するようにしてください. + cygwin-1.3.15 障с医с鐚鴻劻筝紊帥潟鴻宴若激 + 宴潟鴻ャ帥c障鐚 cygwin-1.3.16-1 т信罩c + 鐚w3m 眼若吾с喝ゅ絎с鐚篏睡医с + 鐚 -* その他 +* 篁 -Cygwin 環境では,DOS プロンプト/コマンドプロンプトを使うよりも,inetd を -あげて,ローカルに TeraTerm, PuTTY などの telnet クライアント経由でログ -インする,ないしは rxvt, cygterm を使用するほうが快適です. +Cygwin 医с鐚DOS 潟/潟潟潟篏帥鐚inetd +鐚若 TeraTerm, PuTTY telnet ゃ≪潟腟宴с +ゃ潟鐚 rxvt, cygterm 篏睡祉綽с鐚 o rxvt: rxvt on Cygwin diff --git a/doc-jp/README.dict b/doc-jp/README.dict index 9cba287..25c7d98 100644 --- a/doc-jp/README.dict +++ b/doc-jp/README.dict @@ -1,34 +1,34 @@ -w3m用英和辞典検索機能について +w3m怨莨御膣∽純ゃ -1. はじめに +1. -'webster' コマンドなどのように辞書を引くためのコマンドをお持ちの -場合には,w3m の中からそれを使うことができます.この機能は, -るびきちさん(rubikitch@ruby-lang.org)によるものをもとに -Tushar Samant (scribble at pobox.com)が修正をくわえました。 +'webster' 潟潟莨吾綣潟潟< +翫鐚w3m 筝篏帥с障鐚罘純鐚 +潟<(rubikitch@ruby-lang.org) +Tushar Samant (scribble at pobox.com)篆罩c障 -2. インストール +2. ゃ潟鴻若 -この機能を使うためには,コンパイルオプションを手で書きかえて -コンパイルしなおす必要があります.configure を実行して config.h -が生成された後,config.h を編集して +罘純篏帥鐚潟潟ゃ激с潟ф吾 +潟潟ゃ綽荀障鐚configure 絎茵 config.h +緇鐚config.h 膩 #undef USE_DICT -を + #define USE_DICT -に変更し,w3m をコンパイルしなおしてください. -w3m/0.3+cvs-1.373以降は、defaultでUSE_DICTがdefineされます。 +紊眼鐚w3m 潟潟ゃ鐚 +w3m/0.3+cvs-1.373篁ラdefaultUSE_DICTdefine障 -それから,文字列をうけとってその結果をかえすCGIプログラムを -インストールします。 +鐚絖c腟CGI違 +ゃ潟鴻若障 -つぎのような方法があります +ゃ号障 - * もし 'webster'というコマンドがあればいかのような内容の'w3mdict'という - スクリプトをつくります。 + * 'webster'潟潟違絎鴻'w3mdict' + 鴻ゃ障 #!/bin/sh @@ -36,12 +36,12 @@ w3m/0.3+cvs-1.373以降は、defaultでUSE_DICTがdefineされます。 echo webster $QUERY_STRING - これを lcoal CGIとしてインストールします (w3mマニュアルの local CGI - のセクションをみてください) そして w3mのオプションページで - 辞書設定を設定してください。 + lcoal CGIゃ潟鴻若障 (w3mャ≪ local CGI + 祉激с潟帥) w3m激с潟若吾 + 莨梧┃絎荐絎 - * もし文字列をGoogleで検索する機能がつかいたい場合、 - 以下のような local CGIスクリプトがつかえます。 + * 絖Googleф膣≪罘純ゃ翫 + 篁ヤ local CGI鴻ゃ障 #!/bin/sh @@ -54,15 +54,15 @@ w3m/0.3+cvs-1.373以降は、defaultでUSE_DICTがdefineされます。 _END_ - これのパスを辞書引きコマンドのURLとして設定してください。 + 鴻莨後潟潟URL荐絎 -3. 使いかた +3. 篏帥 -次の2つのコマンドが使えるようになります. +罨<2ゃ潟潟篏帥障鐚 -ESC w 単語を入力し,それを辞書で引いて表示します. +ESC w 茯ュ鐚莨吾у茵腓冴障鐚 -ESC W バッファ内の現在カーソルがある単語を辞書で引き,表示します. +ESC W ≦憜若純茯莨吾у鐚茵腓冴障鐚 -これらのキーを変更するには、~/.w3m/keymapのDICT_WORDおよびDICT_WORD_AT -の行を変更してください。 +若紊眼~/.w3m/keymapDICT_WORDDICT_WORD_AT +茵紊眼 diff --git a/doc-jp/README.func b/doc-jp/README.func index 542aaa9..092656e 100644 --- a/doc-jp/README.func +++ b/doc-jp/README.func @@ -1,145 +1,150 @@ -ABORT 確認せずにw3mを終了します -ACCESSKEY Accesskey メニューを立ち上げます -ALARM アラームを設定します -ADD_BOOKMARK 現在見ているページをブックマークに追加します -BACK 一つ前のバッファを表示します -BEGIN 文書のいちばん上の行に移動します -BOOKMARK ブックマークを読み込みます -CENTER_H カーソルのある位置を行の中央に移動します -CENTER_V カーソルのある行を画面の中央に移動します -CHARSET 現在表示されている文書の文字コードを変更します -CLOSE_TAB 現在のタブを閉じます -CLOSE_TAB_MOUSE マウスカーソルの位置のタブを閉じます(マウス操作用) -COMMAND w3mのコマンドを実行します -COOKIE クッキー一覧を表示します -DEFAULT_CHARSET デフォルトの文書の文字コードを変更します -DEFINE_KEY キー入力とコマンドの対応を定義します -DELETE_PREVBUF 前のバッファを消去します(主に local-CGI 用) -DICT_WORD 入力した単語を辞書コマンドで調べます -DICT_WORD_AT カーソル位置の単語を辞書コマンドで調べます -DISPLAY_IMAGE 画像の読込/表示を再開します -DOWN 画面を1行下にスクロールします -DOWNLOAD 文書のソースをファイルに保存します -DOWNLOAD_LIST ダウンロード状況の一覧を表示します -EDIT ソースファイルをエディタで編集します -EDIT_SCREEN バッファの表示内容をエディタで編集します -END 文書のいちばん下の行に移動します -EXEC_SHELL シェルコマンドを実行します -EXIT 確認せずにw3mを終了します -EXTERN 外部ブラウザを使って表示します -EXTERN_LINK 現在のリンク先を,外部ブラウザを使って表示します -FRAME <FRAME>タグの指す文書を1つの文書に変換して表示します -GOTO URLを指定して開きます -GOTO_LINE 画面下で行番号を入力し,そこで指定した行に移動します -GOTO_LINK リンクが指す先の文書を読みこみます -GOTO_RELATIVE 相対URLを指定して開きます -HELP ヘルプファイルを表示します -HISTORY URL履歴を表示します -INFO 現在の文書に関する情報を表示します -INIT_MAILCAP mailcap を再読み込みします(主に local-CGI 用) -INTERRUPT 文書の読み込みを中断します -ISEARCH ファイルの末尾にむかってインクリメンタルサーチします -ISEARCH_BACK ファイルの先頭にむかってインクリメンタルサーチします -LEFT 画面全体を1文字左にずらします -LINE_BEGIN 行頭に移動します -LINE_END 行末に移動します -LINE_INFO ページ中での現在位置を表示します -LINK_BEGIN 最初のリンクに移動します -LINK_END 最後のリンクに移動します -LINK_MENU Link 要素一覧のメニューを立ち上げます -LIST リンクと画像の一覧を表示します -LIST_MENU リンク先一覧のメニューを立ち上げ、リンク先の文書を読みこみます -LOAD ローカルファイルを指定して開きます -MAIN_MENU メニューを立ち上げます -MARK マークを設定/解除します -MARK_MID Message-ID風の文字列を,news:のリンクにします -MARK_URL URL風の文字列をリンクにします -MARK_WORD カーソルのある語をリンクにします -MENU メニューを立ち上げます -MENU_MOUSE マウスカーソルの位置でメニューを立ち上げます(マウス操作用) -MOUSE_TOGGLE マウスの有効/無効をトグルする -MOVE_DOWN カーソルを下に移動します(改ページ時には半ページスクロール) -MOVE_DOWN1 カーソルを下に移動します(改ページ時には1行スクロール) -MOVE_LEFT カーソルを左に移動します(左端の場合には半画面分シフト) -MOVE_LEFT1 カーソルを左に移動します(左端の場合には1文字分シフト) -MOVE_LIST_MENU リンク先一覧のメニューを立ち上げ、カーソルを移動します -MOVE_MOUSE カーソルをマウスカーソルの位置に移動します(マウス操作用) -MOVE_RIGHT カーソルを右に移動します(右端の場合には半画面分シフト) -MOVE_RIGHT1 カーソルを右に移動します(右端の場合には1文字分シフト) -MOVE_UP カーソルを上に移動します(改ページ時には半ページスクロール) -MOVE_UP1 カーソルを上に移動します(改ページ時には1行スクロール) -MSGS エラーメッセージの一覧の表示 -NEW_TAB 新しいタブを開きます -NEXT 次のバッファを表示します -NEXT_DOWN カーソルの下側にあるリンクに移動します -NEXT_LEFT カーソルの左側にあるリンクに移動します -NEXT_LEFT_UP カーソルの左側(無ければ前の行以前)にあるリンクに移動します -NEXT_LINK 次のリンクに移動します -NEXT_MARK 一つ後のマークに移動します -NEXT_PAGE 次のページを表示します -NEXT_RIGHT カーソルの右側にあるリンクに移動します -NEXT_RIGHT_DOWN カーソルの右側(無ければ次行以降)にあるリンクに移動します -NEXT_TAB 次のタブに移動します -NEXT_UP カーソルの上側にあるリンクに移動します -NEXT_VISITED 次の訪れたことのあるリンクに移動します -NEXT_WORD 次の単語に移動します -NOTHING 何もしません -NULL 何もしません -OPTIONS オプション設定パネルを表示します -PEEK 現在の文書のURLを表示します -PEEK_IMG 現在カーソルがあるリンクを含む画像そのもののURLを表示します -PEEK_LINK リンクが指す先のURLを表示します -PIPE_BUF バッファの内容をパイプに渡します -PIPE_SHELL コマンドを実行し,結果を読みこみながら表示します -PREV 前のバッファを表示します -PREV_LINK 前のリンクに移動します -PREV_MARK 一つ前のマークに移動します -PREV_PAGE 前のページを表示します -PREV_TAB 前のタブに移動します -PREV_VISITED 前の訪れたことのあるリンクに移動します -PREV_WORD 前の単語に移動します -PRINT バッファの表示内容をファイルに保存します -QUIT w3mを終了します -READ_SHELL コマンドを実行し,結果を全部読んでから表示します -REDO Undo を取り消します -REDRAW 再描画します -REG_MARK 正規表現で指定された文字列を全てマークします -REINIT 設定ファイルを再読込します。 -RELOAD バッファを再度読み込みます -RESHAPE 再レンダリングする -RIGHT 画面全体を1文字右にずらします -SAVE 文書のソースをファイルに保存します -SAVE_IMAGE リンクが指す画像をファイルに保存します -SAVE_LINK リンクが指す先の文書をファイルに保存します -SAVE_SCREEN バッファの表示内容をファイルに保存します -SEARCH ファイル末尾に向かって正規表現を検索します -SEARCH_BACK ファイルの先頭に向かって正規表現を検索します -SEARCH_FORE ファイル末尾に向かって正規表現を検索します -SEARCH_NEXT 次を検索します -SEARCH_PREV 前を検索します -SELECT バッファ選択モードに入ります -SELECT_MENU バッファ選択メニューを立ち上げます -SETENV 環境変数を設定します -SET_OPTION オプションを設定します -SHELL シェルコマンドを実行します -SHIFT_LEFT 画面全体を左にずらします -SHIFT_RIGHT 画面全体を右にずらします -SOURCE HTMLのソースを表示します -STOP_IMAGE 画像の読込/表示を停止します -SUBMIT フォームにサブミットします -SUSPEND サスペンド -TAB_GOTO URLを指定して新しいタブで開きます -TAB_GOTO_RELATIVE 相対URLを指定して新しいタブで開きます -TAB_LEFT 現在のタブを左に移動します -TAB_LINK リンクが指す先の文書を新しいタブで開きます -TAB_MENU タブ選択メニューを立ち上げます -TAB_MOUSE マウスカーソルの位置のタブに移動します(マウス操作用) -TAB_RIGHT 現在のタブを右に移動します -UNDO 最後のカーソル移動を取り消します -UP 画面を1行上にスクロールします -VERSION w3m のバージョンを表示します -VIEW HTMLのソースを表示します -VIEW_BOOKMARK ブックマークを読み込みます -VIEW_IMAGE リンクに対応する画像を表示します -WHEREIS ファイル末尾に向かって正規表現を検索します -WRAP_TOGGLE 折り返し検索モードを切り換えます +ABORT 腆肴w3m腟篋障 +ACCESSKEY Accesskey <ャ若腴>障 +ADD_BOOKMARK 憜荀若吾若菴遵障 +ALARM ≪若荐絎障 +BACK 筝ゅ<茵腓冴障 +BEGIN 吾<違筝茵腱糸障 +BOOKMARK 若茯粋昭帥障 +CENTER_H 若純篏臀茵筝紊腱糸障 +CENTER_V 若純茵脂≪筝紊腱糸障 +CHARSET 憜茵腓冴吾絖潟若紊眼障 +CLOSE_TAB 憜帥障 +CLOSE_TAB_MOUSE 鴻若純篏臀帥障(号篏) +COMMAND w3m潟潟絎茵障 +COOKIE 寂荀с茵腓冴障 +CURSOR_TOP 若純脂≪<違筝茵腱糸障 +CURSOR_MIDDLE 若純脂≪筝紊茵腱糸障 +CURSOR_BOTTOM 若純脂≪<違筝茵腱糸障 +DEFAULT_CHARSET 吾絖潟若紊眼障 +DEFINE_KEY 弱ュ潟潟絲上絎臂障 +DELETE_PREVBUF <羔サ障(筝祉 local-CGI ) +DICT_WORD ュ茯莨吾潟潟ц帥鴻障 +DICT_WORD_AT 若純篏臀茯莨吾潟潟ц帥鴻障 +DISPLAY_IMAGE 糸茯莨/茵腓冴障 +DOWN 脂≪1茵筝鴻若障 +DOWNLOAD 吾純若鴻<ゃ篆絖障 +DOWNLOAD_LIST 潟若倶筝荀с茵腓冴障 +EDIT 純若鴻<ゃc帥х隈障 +EDIT_SCREEN <茵腓阪絎鴻c帥х隈障 +END 吾<違筝茵腱糸障 +EXEC_SHELL 激с潟潟絎茵障 +EXIT 腆肴w3m腟篋障 +EXTERN 紊吟篏帥c茵腓冴障 +EXTERN_LINK 憜潟鐚紊吟篏帥c茵腓冴障 +FRAME <FRAME>帥違吾1ゃ吾紊茵腓冴障 +GOTO URL絎障 +GOTO_HOME 若若吾御祉障(医紊HTTP_HOME障WWW_HOMEф絎) +GOTO_LINE 脂≫ц垩ュ鐚ф絎茵腱糸障 +GOTO_LINK 潟吾茯帥帥障 +GOTO_RELATIVE 後URL絎障 +HELP <ゃ茵腓冴障 +HISTORY URL絮ユ眼茵腓冴障 +INFO 憜吾≪宴茵腓冴障 +INTERRUPT 吾茯粋昭帥筝障 +ISEARCH <ゃ絨障cゃ潟<潟帥泣若障 +ISEARCH_BACK <ゃcゃ潟<潟帥泣若障 +LEFT 脂√篏1絖綏障 +LINE_BEGIN 茵腱糸障 +LINE_END 茵腱糸障 +LINE_INFO 若娯賢с憜篏臀茵腓冴障 +LINK_BEGIN 潟腱糸障 +LINK_END 緇潟腱糸障 +LINK_MENU Link 荀膣筝荀с<ャ若腴>障 +LIST 潟糸筝荀с茵腓冴障 +LIST_MENU 潟筝荀с<ャ若腴>潟吾茯帥帥障 +LOAD 若<ゃ絎障 +MAIN_MENU <ャ若腴>障 +MARK 若荐絎鐚頵iゃ障 +MARK_MID Message-ID蘂絖鐚news:潟障 +MARK_URL URL蘂絖潟障 +MARK_WORD 若純茯潟障 +MENU <ャ若腴>障 +MENU_MOUSE 鴻若純篏臀с<ャ若腴>障(号篏) +MOUSE_TOGGLE 鴻/≦鴻違 +MOVE_DOWN 若純筝腱糸障(鴻若御若吾鴻若) +MOVE_DOWN1 若純筝腱糸障(鴻若御鐚茵鴻若) +MOVE_LEFT 若純綏腱糸障(綏腴翫脂√激) +MOVE_LEFT1 若純綏腱糸障(綏腴翫鐚絖激) +MOVE_LIST_MENU 潟筝荀с<ャ若腴>若純腱糸障 +MOVE_MOUSE 若純鴻若純篏臀腱糸障(号篏) +MOVE_RIGHT 若純劻腱糸障(勆翫脂√激) +MOVE_RIGHT1 若純劻腱糸障(勆翫鐚絖激) +MOVE_UP 若純筝腱糸障(鴻若御若吾鴻若) +MOVE_UP1 若純筝腱糸障(鴻若御鐚茵鴻若) +MSGS 若<祉若吾筝荀с茵腓 +NEW_TAB 違帥障 +NEXT 罨<<茵腓冴障 +NEXT_DOWN 若純筝眼潟腱糸障 +NEXT_HALF_PAGE 若娯鴻若障 +NEXT_LEFT 若純綏眼潟腱糸障 +NEXT_LEFT_UP 若純綏(<医茵篁ュ)潟腱糸障 +NEXT_LINK 罨<潟腱糸障 +NEXT_MARK 筝ゅ若腱糸障 +NEXT_PAGE 罨<若吾茵腓冴障 +NEXT_RIGHT 若純勀眼潟腱糸障 +NEXT_RIGHT_DOWN 若純勀(<井∴篁ラ)潟腱糸障 +NEXT_TAB 罨<帥腱糸障 +NEXT_UP 若純筝眼潟腱糸障 +NEXT_VISITED 罨<荐潟腱糸障 +NEXT_WORD 罨<茯腱糸障 +NOTHING 篏障 +NULL 篏障 +OPTIONS 激с活┃絎茵腓冴障 +PEEK 憜吾URL茵腓冴障 +PEEK_IMG 憜若純潟糸URL茵腓冴障 +PEEK_LINK 潟URL茵腓冴障 +PIPE_BUF <絎鴻ゃ羝<障 +PIPE_SHELL 潟潟絎茵鐚腟茯帥帥茵腓冴障 +PREV <茵腓冴障 +PREV_HALF_PAGE 若娯鴻若障 +PREV_LINK 潟腱糸障 +PREV_MARK 筝ゅ若腱糸障 +PREV_PAGE 若吾茵腓冴障 +PREV_TAB 帥腱糸障 +PREV_VISITED 荐潟腱糸障 +PREV_WORD 茯腱糸障 +PRINT <茵腓阪絎鴻<ゃ篆絖障 +QUIT w3m腟篋障 +READ_SHELL 潟潟絎茵鐚腟茯с茵腓冴障 +REDO Undo 羔障 +REDRAW 祉障 +REG_MARK 罩h頫憗ф絎絖若障 +REINIT 荐絎<ゃ茯莨若障 +RELOAD <綺茯粋昭帥障 +RESHAPE 潟潟違 +RIGHT 脂√篏1絖劻障 +SAVE 吾純若鴻<ゃ篆絖障 +SAVE_IMAGE 潟糸<ゃ篆絖障 +SAVE_LINK 潟吾<ゃ篆絖障 +SAVE_SCREEN <茵腓阪絎鴻<ゃ篆絖障 +SEARCH <ゃ絨障c罩h頫憗罎膣≪障 +SEARCH_BACK <ゃc罩h頫憗罎膣≪障 +SEARCH_FORE <ゃ絨障c罩h頫憗罎膣≪障 +SEARCH_NEXT 罨<罎膣≪障 +SEARCH_PREV 罎膣≪障 +SELECT ♂御≪若ャ障 +SELECT_MENU ♂御<ャ若腴>障 +SETENV 医紊違荐絎障 +SET_OPTION 激с潟荐絎障 +SHELL 激с潟潟絎茵障 +SHIFT_LEFT 脂√篏綏障 +SHIFT_RIGHT 脂√篏劻障 +SOURCE HTML純若鴻茵腓冴障 +STOP_IMAGE 糸茯莨/茵腓冴罩≪障 +SUBMIT 若泣障 +SUSPEND 泣鴻潟 +TAB_GOTO URL絎違帥ч障 +TAB_GOTO_RELATIVE 後URL絎違帥ч障 +TAB_LEFT 憜帥綏腱糸障 +TAB_LINK 潟吾違帥ч障 +TAB_MENU 帥御<ャ若腴>障 +TAB_MOUSE 鴻若純篏臀帥腱糸障(号篏) +TAB_RIGHT 憜帥劻腱糸障 +UNDO 緇若純腱糸羔障 +UP 脂≪1茵筝鴻若障 +VERSION w3m 若吾с潟茵腓冴障 +VIEW HTML純若鴻茵腓冴障 +VIEW_BOOKMARK 若茯粋昭帥障 +VIEW_IMAGE 潟絲上糸茵腓冴障 +WHEREIS <ゃ絨障c罩h頫憗罎膣≪障 +WRAP_TOGGLE 菴罎膣≪≪若障 diff --git a/doc-jp/README.img b/doc-jp/README.img index d090bae..79811d3 100644 --- a/doc-jp/README.img +++ b/doc-jp/README.img @@ -1,96 +1,96 @@ -w3m でインライン画像を表示 +w3m сゃ潟ゃ括糸茵腓 - (2002/02/04) 坂本浩則 + (2002/02/04) 羌 hsaka@mth.biglobe.ne.jp - (2002/10/16) 伊東宏之 + (2002/10/16) 篌怨鋈 ZXB01226@nifty.com -はじめに + - w3m でインライン画像を表示する拡張です。 + w3m сゃ潟ゃ括糸茵腓冴≦宍с -機能 +罘 - ・X11 上の端末(xterm,kterm,rxvt,...)、 Linux の framebuffer 上または - Windows 端末上に画像(GIF,PNG,JPEG 等)を表示します。 - ・img タグで指定されたインライン画像を表示できます。 - width,height 属性に応じて必要な領域を確保してレンダリングします。 - align 属性に対応しています。 - ・Content-type: image/* な画像ファイルを直接表示できます。 - ・map タグに対応しています。 - area タグの shape, coords 属性を認識し、メニュー表示から選択できます。 - ・img タグの ismap 属性に対応しています。 - 座標値を ?<x>,<y> として URL に追加して送ります。 - ・input タグの type=image 属性で指定されたインライン画像を表示できます。 - 座標値を <name>.x=<x>&<name>.y=<y> として送ります。 - ・非同期に画像を読み込みます。 - ・画像をキャッシュできます。 - ・GdkPixbuf を利用した場合 GIF animation を表示できます。 + X11 筝腴(xterm,kterm,rxvt,...) Linux framebuffer 筝障 + Windows 腴筝糸(GIF,PNG,JPEG 膈)茵腓冴障 + img 帥違ф絎ゃ潟ゃ括糸茵腓冴с障 + width,height 絮с綽綽荀腆坂潟潟違障 + align 絮с絲上障 + Content-type: image/* 糸<ゃ贋・茵腓冴с障 + map 帥違絲上障 + area 帥違 shape, coords 絮с茯茘<ャ取;腓冴御с障 + img 帥違 ismap 絮с絲上障 + 綺фゃ ?<x>,<y> URL 菴遵障 + input 帥違 type=image 絮сф絎ゃ潟ゃ括糸茵腓冴с障 + 綺фゃ <name>.x=<x>&<name>.y=<y> 障 + 脂糸茯粋昭帥障 + 紫糸c激ャс障 + GdkPixbuf 翫 GIF animation 茵腓冴с障 -キー操作 +惹篏 DISPLAY_IMAGE - 画像の読込/表示を再開します。 + 糸茯莨/茵腓冴障 STOP_IMAGE - そのバッファの画像の読込/表示を停止します。 + <糸茯莨/茵腓冴罩≪障 SET_OPTION display_image=toggle - 画像の読込/表示を切替えます。 + 糸茯莨/茵腓冴帥障 - デフォルトのキーマップはありませんので、~/.w3m/keymap に + 若障с~/.w3m/keymap keymap X DISPLAY_IMAGE keymap C-c STOP_IMAGE keymap t SET_OPTION display_image=toggle - の様に記述して使用してください。 + 罕荐菴違篏睡 -コマンドラインオプション +潟潟ゃ潟激с -ppc <pixel> - 一文字あたりの幅(pixel 値)を指定します。デフォルトは自動設定。 - 正しく設定されない場合は端末の font の大きさに必ず合わせてください。 + 筝絖綛(pixel )絎障荐絎 + 罩c頥絎翫腴 font 紊с綽 -ppl <pixel> - 一行あたりの幅(pixel 値)を指定します。デフォルトは自動設定。 - 正しく設定されない場合は端末の font の大きさに必ず合わせてください。 + 筝茵綛(pixel )絎障荐絎 + 罩c頥絎翫腴 font 紊с綽 -オプションパネル +激с潟 pixel_per_char - 一文字あたりの幅(pixel 値)を指定します。デフォルトは自動設定。 - 正しく設定されない場合は端末の font の大きさに必ず合わせてください。 + 筝絖綛(pixel )絎障荐絎 + 罩c頥絎翫腴 font 紊с綽 pixel_per_line - 一行あたりの幅(pixel 値)を指定します。デフォルトは自動設定。 - 正しく設定されない場合は端末の font の大きさに必ず合わせてください。 + 筝茵綛(pixel )絎障荐絎 + 罩c頥絎翫腴 font 紊с綽 display_image - インライン画像を表示します。デフォルトは ON。 + ゃ潟ゃ括糸茵腓冴障 ON auto_image - インライン画像を自動で読み込みます。デフォルトは ON。 - OFF の場合は、コマンド DISPLAY_IMAGE で読み込みを開始します。 + ゃ潟ゃ括糸ц粋昭帥障 ON + OFF 翫潟潟 DISPLAY_IMAGE ц粋昭帥紮障 max_load_image - 画像を読み込む時の最大プロセス数。デフォルトは 4。1〜8 まで設定可能。 + 糸茯粋昭紊с祉号違 418 障ц┃絎純 ext_image_viewer - コマンド VIEW_IMAGE('I')の場合や Content-type: image/* である - 画像ファイルを外部ビューワで表示します。デフォルトは ON。 - OFF の場合は、インライン画像として直接表示します。 + 潟潟 VIEW_IMAGE('I')翫 Content-type: image/* с + 糸<ゃ紊ャ若ц;腓冴障 ON + OFF 翫ゃ潟ゃ括糸贋・茵腓冴障 image_scale - 画像のスケールを指定します。デフォルトは 100(%)。 - 小さい font と共に使う場合には値を小さくすると有用。 + 糸鴻宴若絎障 100(%) + 絨 font 宴篏帥翫ゃ絨 imgdisplay - インライン画像を表示するためのコマンド。デフォルトは w3mimgdisplay。 - 下記の "w3mimgdisplay の設定" を参考にしてオプション設定してください。 + ゃ潟ゃ括糸茵腓冴潟潟 w3mimgdisplay + 筝荐 "w3mimgdisplay 荐絎" 激с活┃絎 -必要なもの +綽荀 - ・X11 使用時 - * GdkPixbuf (0.16 以上推奨) + X11 篏睡 + * GdkPixbuf (0.16 篁ヤィ絅) - または + 障 - * Imlib-1.9.8以上 (1.9.10 以上推奨) + * Imlib-1.9.8篁ヤ (1.9.10 篁ヤィ絅) ftp://ftp.gnome.org/pub/GNOME/sources/imlib/1.9/ - * libungif-4.1.0b1 以上 + * libungif-4.1.0b1 篁ヤ ftp://prtr-13.ucsc.edu/pub/libungif/ http://prtr-13.ucsc.edu/~badger/software/libungif/ - 以下は Imlib のインストールに必要 + 篁ヤ Imlib ゃ潟鴻若綽荀 * libjpeg ftp://ftp.uu.net/graphics/jpeg/ * libpng @@ -103,183 +103,183 @@ w3m でインライン画像を表示 * netpbm http://netpbm.sourceforge.net/ - ・Linux framebuffer 使用時 - * Linux の 15,16,24,32bpp PACKED-PIXELS TRUE-COLOR/DIRECT-COLOR, - 8bpp PACKED-PIXELS PSEUDO-COLOR framebuffer を利用できる環境 - * GdkPixbuf (0.16 以上推奨) または Imlib2 (1.0.6 以上推奨) + Linux framebuffer 篏睡 + * Linux 15,16,24,32bpp PACKED-PIXELS TRUE-COLOR/DIRECT-COLOR, + 8bpp PACKED-PIXELS PSEUDO-COLOR framebuffer с医 + * GdkPixbuf (0.16 篁ヤィ絅) 障 Imlib2 (1.0.6 篁ヤィ絅) -w3mimgdisplay の設定 +w3mimgdisplay 荐絎 - w3mimgdisplay は以下のオプションを受け付けますので端末に合わせて - オプション設定パネルで(または -o オプションで)設定してください。 + w3mimgdisplay 篁ヤ激с潟篁障х + 激с活┃絎(障 -o 激с潟)荐絎 -x <offset_x> - 端末上に画像を表示する X 方向の原点。X11 で利用する場合デフォルト - は 2 ですが、xterm や kterm ではスクロールバーの幅を計算して加え - ようとします。(正しく出来ないかもしれません。) - Eterm では 5 にすべきかもしれません。 - Linux framebuffer で利用する場合デフォルトは 0 です。 + 腴筝糸茵腓冴 X 劫鴻X11 у翫 + 2 сxterm kterm с鴻若若綛荐膊 + 障(罩c堺ャ障) + Eterm с 5 鴻障 + Linux framebuffer у翫 0 с -y <offset_y> - 端末上に画像を表示する Y 方向の原点。デフォルトは、X11 では 2、 - Linux framebuffer では 0。 - Eterm では 5 にすべきかもしれません。 + 腴筝糸茵腓冴 Y 劫鴻X11 с 2 + Linux framebuffer с 0 + Eterm с 5 鴻障 -bg <background> - 端末の背景色。デフォルトは、X11 では自動設定、Linux framebuffer - では #000000 (黒)。 - #RRGGBB で指定する場合は # をエスケープして設定してください。 + 腴蚊X11 с荐絎Linux framebuffer + с #000000 (藥) + #RRGGBB ф絎翫 # 鴻宴若荐絎 -anim <n> - アニメーションで表示する最大フレーム数を指定。0 の時は制限なし。 - 負の時は最後からのフレーム数と見なします。デフォルトは 100。 + ≪<若激с潟ц;腓冴紊с若違絎0 狗 + 莢緇若違荀障 100 -margin <n> - 画像をクリアする領域のマージンを指定します。スクロールしたとき画 - 面にゴミが残ってしまう場合に指定してみてください。 - デフォルトは 0。 + 糸≪若吾潟絎障鴻若 + ≪眼罧c障翫絎帥 + 0 - 例) + 箴) w3m -o 'imgdisplay=w3mimgdisplay -x 5 -bg "#cccccc"' -その他 - ・GIF animation は w3m からの再描画要求に応じてフレームを書き換える - だけなので勝手に動いてはくれません。絵を動かすためには 'h', 'l' 等 - の適当なキーを連打してください。 - ・framebuffer 描画関係には、下記 URI のコードを利用しました。 +篁 + GIF animation w3m 肢羆綽若吾 + у障腟泣 'h', 'l' 膈 + 綵若f + framebuffer 脂≫筝荐 URI 潟若障 http://www.sainet.or.jp/~yamasaki/download/fb-sample.tar.gz - ・Windows では標準コンソール、Cygwin rxvt、PuTTYで動作確認しています。 + Windows с罔羣潟潟純若Cygwin rxvtPuTTYу篏腆肴障 -更新記録 +贋域 2002/02/04 - * ドキュメント改訂 + * ャ<潟壕 2002/02/01 w3m-0.2.5+cvs-1.287 - * 本家の CVS へマージ。 + * 絎吟 CVS 吾若吾 2002/01/31 w3m-0.2.4-img-2.2 - * w3m-0.2.4+cvs-1.278 ベース。 + * w3m-0.2.4+cvs-1.278 若鴻 2002/01/29 w3m-0.2.4-img-2.1 - * w3m-0.2.4+cvs-1.268 ベース。 + * w3m-0.2.4+cvs-1.268 若鴻 2002/01/28 w3m-0.2.4-img-2.0 - * w3m-0.2.4+cvs-1.265 ベース。 - * pixel_per_char, pixel_per_line を自動設定するようにした。 - * 端末の背景色を自動設定するようにした。 - * 画像処理関係のソースを image.c に分離。 + * w3m-0.2.4+cvs-1.265 若鴻 + * pixel_per_char, pixel_per_line 荐絎 + * 腴蚊荐絎 + * 糸≫純若鴻 image.c ≪ 2002/01/08 w3m-0.2.4-img-1.18 - * w3m-0.2.4 ベース。 + * w3m-0.2.4 若鴻 2001/12/29 w3m-0.2.3.2-img-1.17 - * w3m-0.2.3.2+cvs-1.196 ベース。 + * w3m-0.2.3.2+cvs-1.196 若鴻 2001/12/25 w3m-0.2.3.2-img-1.16.1 - * [w3m-dev 02698] Thanks > かずひこ@kondara.org さん + * [w3m-dev 02698] Thanks > 蚊鐚kondara.org 2001/12/22 w3m-0.2.3.2-img-1.16 - * w3m-0.2.3.2 ベース。 + * w3m-0.2.3.2 若鴻 2001/12/20 w3m-0.2.3.1-img-1.15 - * w3m-0.2.3.1 ベース。 - * Content-Transfer-Encoding で送られて来た画像を表示可能にした。 + * w3m-0.2.3.1 若鴻 + * Content-Transfer-Encoding чャ糸茵腓阪純 2001/11/29 - * ChangLog 1.71 時点の CVS ソースに対してマージ開始 + * ChangLog 1.71 鴻 CVS 純若鴻絲障若檎紮 2001/11/17 w3m-0.2.2-img-1.14 - * w3m-0.2.2 ベース。 + * w3m-0.2.2 若鴻 2001/11/14 w3m-0.2.1-inu-1.6-img-1.13 - * w3m-0.2.1-inu-1.6 ベース。 + * w3m-0.2.1-inu-1.6 若鴻 2001/11/05 w3m-0.2.1-inu-1.5-img-1.12 - * w3m-0.2.1-inu-1.5 ベース。 - * <area><map> が使えなくなっていたバグの修正。 - * kterm 上で xwnmo を使った場合に対応。 + * w3m-0.2.1-inu-1.5 若鴻 + * <area><map> 篏帥c違篆罩c + * kterm 筝 xwnmo 篏帥c翫絲上 2001/10/03 w3m-0.2.1-inu-1.4-img-1.11 - * w3m-0.2.1-inu-1.4 ベース。 - * 標準入力から読み込む時に落ちるバグの修正。 - * configure の修正。Thanks > 深川さん。 + * w3m-0.2.1-inu-1.4 若鴻 + * 罔羣ュ茯粋昭純<違篆罩c + * configure 篆罩cThanks > 羞怨 2001/08/01 w3m-0.2.1-img-1.10 - * 画像の位置の微調整。 - * スケールのバグ修正。 + * 糸篏臀緇茯炊眼 + * 鴻宴若遺信罩c 2001/07/31 w3m-0.2.1-img-1.9 - * initImgdisplay() の修正。Thanks > David. + * initImgdisplay() 篆罩cThanks > David. 2001/07/29 w3m-0.2.1-img-1.8 - * configure の修正。Thanks > 坂根さん。 + * configure 篆罩cThanks > 鴻 2001/07/28 w3m-0.2.1-img-1.7 - * configure, XMakefile が patch に入って無かった。 - * 画像を表示しない場合の処理をオリジナルに近づけた。 - * [w3m-dev 02121] に対応。 + * configure, XMakefile patch ャc<c + * 糸茵腓冴翫吾菴ャ + * [w3m-dev 02121] 絲上 2001/07/27 w3m-0.2.1-img-1.6 - * README.img を doc-jp へ移動。doc/README.img を作成。 - * インライン画像対応部分を USE_IMAGE マクロで分離。 - * configure でインライン画像対応を選択できる様にした。 - * configure で Imlib をチェックする様にした。 + * README.img doc-jp 悟Щdoc/README.img 篏 + * ゃ潟ゃ括糸鎛上 USE_IMAGE у≪ + * configure сゃ潟ゃ括糸鎛上御с罕 + * configure Imlib с罕 2001/07/26 w3m-0.2.1-img-1.5 - * w3mimgdisplay は必要になるまで立ち上げない様にした。 - * w3mimgdisplay が落ちた時に、w3mimgdisplay を再立ち上げできる様にした。 - * <img align=middle の場合の計算間違いの修正。 - * [w3m-dev 02118] に対応。 - * funcname.tab が間違っていたので修正。 + * w3mimgdisplay 綽荀障х>罕 + * w3mimgdisplay 純<w3mimgdisplay 腴>с罕 + * <img align=middle 翫荐膊篆罩c + * [w3m-dev 02118] 絲上 + * funcname.tab cт信罩c 2001/07/25 w3m-0.2.1-img-1.4 - * w3mimgdisplay を環境変数 WINDOWID を見る様に改良。 - また、text window の推量部分も改良。 - * image タグを img タグと同じものとして追加。 - * [w3m-dev 02090], [w3m-dev 02097] に対応。 + * w3mimgdisplay 医紊 WINDOWID 荀罕壕 + 障text window ィ壕 + * image 帥違 img 帥違菴遵 + * [w3m-dev 02090], [w3m-dev 02097] 絲上 2001/07/14 w3m-0.2.1-img-1.3 - * ext_image_viewer が OFF の場合は画像を直接フレーム表示可能にした。 - * Option Panel が SEGV するバグの修正。 + * ext_image_viewer OFF 翫糸贋・若茵腓阪純 + * Option Panel SEGV 違篆罩c 2001/07/13 w3m-0.2.1-img-1.2 - * 画像のスケールを指定出来る様にした。 - * SIGUSR1 のブロックに関する修正。 + * 糸鴻宴若絎堺ャ罕 + * SIGUSR1 ≪篆罩c 2001/07/12 w3m-0.2.1-img-1.1 - * キー入力中以外は SIGUSR1, SIGWINCH をブロックする様にした。 - * バグ修正。 + * 弱ュ筝篁ュ SIGUSR1, SIGWINCH 罕 + * 遺信罩c 2001/07/11 w3m-0.2.1-img-1.0 - * MGL 版の画像読み込みを採用。 + * MGL 糸顄粋昭帥。 2001/07/10 w3m-0.2.1-img-0.5 - * 描画の高速化。w3mimgdisplay で不要な XSync() を止めた。 - 不要な drawImage() を止めた。 + * 祉蕭w3mimgdisplay т荀 XSync() 罩≪ + 筝荀 drawImage() 罩≪ 2001/07/08 w3m-0.2.1-img-0.4 - * w3mimgdisplay での Window の取得や offset_x のデフォルト値の改良。 - * <img align=middle の場合の計算間違いの修正。 - * <img align=left|center|right では <div>〜</div> を使う様にしてみた。 - * w3mimgdisplay では SIGINT を無視する様にした。 - * w3mimgsize もオプション設定できる様にした。 + * w3mimgdisplay с Window 緇 offset_x ゃ壕 + * <img align=middle 翫荐膊篆罩c + * <img align=left|center|right с <div></div> 篏帥罕帥 + * w3mimgdisplay с SIGINT ∴罕 + * w3mimgsize 激с活┃絎с罕 2001/07/07 w3m-0.2.1-img-0.3 - * kterm に限らず、X11 上の端末では画像を描画できる様にした。 + * kterm X11 筝腴с糸祉с罕 2001/07/06 w3m-0.2.1-img-0.2 - * README.img を作成。 - * kterm-6.2.0-img-0.2.patch を w3m-0.2.1-img-0.2.patch に含める様にした。 - * コードの整理、安全側への修正 + * README.img 篏 + * kterm-6.2.0-img-0.2.patch w3m-0.2.1-img-0.2.patch 罕 + * 潟若雁絎眼吾篆罩 2001/07/04 w3m-0.2.1-img-0.1 - * バージョン管理開始。 - * Imlib 対応版。 + * 若吾с括∞紮 + * Imlib 絲上 2001/06/30 - * XPM 版でほぼ実装完了。 + * XPM с祉弱茖絎篋 2001/06/19 - * MGL 版に刺激を受けて img への対応のテストを開始。 + * MGL 堺 img 吾絲上鴻紮 ----------------------------------- -坂本 浩則 <hsaka@mth.biglobe.ne.jp> + 羌 <hsaka@mth.biglobe.ne.jp> http://www2u.biglobe.ne.jp/~hsaka/ diff --git a/doc-jp/README.keymap b/doc-jp/README.keymap index cf656e1..bcab902 100644 --- a/doc-jp/README.keymap +++ b/doc-jp/README.keymap @@ -1,24 +1,24 @@ -w3m のキーバインドについて - (1999/06/30) 坂本 浩則 +w3m 若ゃ潟ゃ + (1999/06/30) 羌 hsaka@mth.biglobe.ne.jp - ~/.w3m/keymap にキーバインドを定義できます。 - 指定方法は、 + ~/.w3m/keymap 若ゃ潟絎臂с障 + 絎号 - keymap キー コマンド [引数] + keymap 潟潟 [綣] - です。 - 例は keymap.default や keymap.lynx を見てください。 - 設定できるコマンドは README.func を見てください。 + с + 箴 keymap.default keymap.lynx 荀 + 荐絎с潟潟 README.func 荀 - 複数文字からなるエスケープシーケンスは、 - Escape 文字 - Escape [ 文字, Escape O 文字 - Escape [ 数字 ~, EScape [ 数字 数字 ~ - のみ設定可能です。 + 茲井絖鴻宴若激若宴潟鴻 + Escape 絖 + Escape [ 絖, Escape O 絖 + Escape [ 医 ~, EScape [ 医 医 ~ + 粋┃絎純с - 特殊文字は、 + 号絖 Ctrl : C-, ^ Escape : ESC-, M-, \e, ^[ @@ -35,8 +35,8 @@ w3m のキーバインドについて Left : LEFT, ^[[D ^ : \^ - として表すことができます。 - また、端末によっては、 + 茵с障 + 障腴c Insert : ^[[2~ PageUp : ^[[5~ @@ -53,6 +53,6 @@ w3m のキーバインドについて F10 : ^[[21~ Help : ^[[28~ - なども使用可能かもしれません。 - (各キーのコードは Ctrl-V + キー で確認できます。) + 篏睡純障 + (若潟若 Ctrl-V + х∈茯с障) diff --git a/doc-jp/README.m17n b/doc-jp/README.m17n index 97dac9f..7799d5c 100644 --- a/doc-jp/README.m17n +++ b/doc-jp/README.m17n @@ -1,80 +1,80 @@ -国際化/マルチリンガル化 w3m +初/潟 w3m 2003/03/08 - 坂本 浩則 + 羌 -はじめに + - w3m を国際化/マルチリンガル化しました。w3m-0.4.1 に対する拡張版を - 以下に置いてあります。 + w3m 初/潟障w3m-0.4.1 絲障≦宍 + 篁ヤ臀障 http://www2u.biglobe.ne.jp/~hsaka/w3m/index-ja.html#m17n patch/w3m-0.4.1-m17n-20030308.tar.gz patch/README.m17n-ja - まだ開発版であり、(私が日本語しか解さないため)十分なテストはできて - いませんが興味ある方はお試しください。 + 障榊с(腱ユ茯茹c)鴻с + 障潟鴻荅 - 現在のところ以下の機能があります。 + 憜篁ヤ罘純障 -扱える文字コード +宴絖潟若 - ・日本語 + 紙ユ茯 EUC-JP - US_ASCII, JIS X 0208, JIS X 0201, JIS X 0212 (EUC-JISX0213) (JIS X 0213) ISO-2022-JP - US_ASCII, JIS X 0208, JIS X 0201, JIS X 0212, etc. ISO-2022-JP-2 - US_ASCII, JIS X 0208, JIS X 0201, JIS X 0212, GB 2312, KS X 1001, ISO 8859-1, ISO 8859-7, etc. ISO-2022-JP-3 - US_ASCII, JIS X 0208, JIS X 0201, JIS X 0213, etc - Shift_JIS(CP932) - US_ASCII, JIS X 0208, JIS X 0201, CP932 の拡張文字 + Shift_JIS(CP932) - US_ASCII, JIS X 0208, JIS X 0201, CP932 ≦宍絖 Shift_JISX0213 - US_ASCII, JIS X 0208, JIS X 0201, JIS X 0213 - ・中国語(簡体字) + 私賢処(膂>絖) EUC-CN(GB2312) - US_ASCII, GB 2312 ISO-2022-CN - US_ASCII, GB 2312, CNS-11643-1,..7, etc. GBK(CP936) - US_ASCII, GB 2312, GBK GB18030 - US_ASCII, GB 2312, GBK, GB18030, Unicode HZ-GB-2312 - US_ASCII, GB 2312 - ・中国語(台湾、繁体字) + 私賢処(佀江膵篏絖) EUC-TW - US_ASCII, CNS 11643-1,..16 ISO-2022-CN - US_ASCII, CNS-11643-1,..7, GB 2312, etc. Big5(CP950) - Big5 HKSCS - Big5, HKSCS - ・韓国語 + 脂処 EUC-KR - US_ASCII, KS X 1001 Wansung ISO-2022-KR - US_ASCII, KS X 1001 Wansung, etc. Johab - US_ASCII, KS X 1001 Johab UHC(CP949) - US_ASCII, KS X 1001 Wansung, UHC - ・ベトナム語 + 祉茯 TCVN-5712 VN-1, VISCII 1.1, VPS, CP1258 - ・タイ語 + 祉帥よ TIS-620 (ISO-8859-11), CP874 - ・その他 - US_ASCII, ISO-8859-1 〜 10, 13 〜 15, + 祉篁 + US_ASCII, ISO-8859-1 10, 13 15, KOI8-R, KOI8-U, NeXT, CP437, CP737, CP775, CP850, CP852, CP855, CP856, CP857, CP860, CP861, CP862, CP863, CP864, CP865, CP866, CP869, CP1006, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257 - ・Unicode (UCS-4) + Unicode (UCS-4) UTF-8, UTF-7 - 注意) - * JIS X 0201 のローマ字部分と GB 1988(中国語ASCII) は US_ASCII として - 扱います。これは、ISO-2022(7bit) で表されていると HTML のタグ部分が - 扱えなくなるからです。その他の US_ASCII の variant はそのままです。 - * JIS C 6226(旧JIS) は JIS X 0208 として扱います。 - * HZ-GB-2312 の '~\n' は対応していません。 + 羈) + * JIS X 0201 若絖 GB 1988(筝処ASCII) US_ASCII + 宴障ISO-2022(7bit) ц; HTML 帥育 + 宴с篁 US_ASCII variant 障障с + * JIS C 6226(JIS) JIS X 0208 宴障 + * HZ-GB-2312 '~\n' 絲上障 -表示 +茵腓 - 多言語表示させるためには現在のところ以下の方法があります。 + 紊荐茯茵腓冴憜篁ヤ号障 (1) kterm + ISO-2022-JP/CN/KR - * kterm は kterm-6.2.0 に対して、 + * kterm kterm-6.2.0 絲障 http://www.st.rim.or.jp/~hanataka/kterm-6.2.0.ext02.patch.gz - の patch をあてると、JIS X 0213, CNS 11643 等が使用可能になります。 + patch JIS X 0213, CNS 11643 膈篏睡純障 - * kterm に対して -fl オプションまたは ~/.Xdefaults 等で fontList を - 設定します + * kterm 絲障 -fl 激с潟障 ~/.Xdefaults 膈 fontList + 荐絎障 -fl "*--16-*-jisx0213.2000-*,\ *--16-*-jisx0212.1990-0,\ @@ -83,67 +83,67 @@ *--16-*-cns11643.1992-*,\ *--16-*-iso8859-*" - JIS 以外のフォントは X11 (XFree86) や Mule の配布物に幾つかありますし、 - Linux や FreeBSD の package からも使えます。 - JIS X 0213 のフォントは、 + JIS 篁ュ潟 X11 (XFree86) Mule 絽綛障ゃ障 + Linux FreeBSD package 篏帥障 + JIS X 0213 潟 http://www.mars.sphere.ne.jp/imamura/jisx0213.html - にあるものが使えます。 + 篏帥障 - * w3m-m17n のオプション設定で表示コードを ISO-2022-JP (もしくは - ISO-2022-JP-2, KR, CN) にし、後述の strict_iso2022 - (厳密な ISO-2022-JP/KR/CN を使う) を OFF にします。 + * w3m-m17n 激с活┃絎ц;腓冴潟若 ISO-2022-JP ( + ISO-2022-JP-2, KR, CN) 緇菴違 strict_iso2022 + (ウ絲 ISO-2022-JP/KR/CN 篏帥) OFF 障 (2) xterm + UTF-8 - * xterm は XFree86 の最新版を使います。xterm-140 以降を推奨します。 + * xterm XFree86 亥篏帥障xterm-140 篁ラィ絅障 http://www.clark.net/pub/dickey/xterm/xterm.html - * Unicode のフォントは + * Unicode 潟 http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html http://openlab.ring.gr.jp/efont/ - などにあります。 + 障 - * xterm を -u8 -wc オプション付きで使用します。 - フォントは、 + * xterm -u8 -wc 激с割т戎障 + 潟 -fn "*-medium-*--13-*-iso10646-1" \ -fb "*-bold-*--13-*-iso10646-1" \ -fw "*-medium-*-ja-13-*-iso10646-1" - の様に指定します。 + 罕絎障 - * w3m-m17n のオプション設定で表示コードを UTF-8 にします。 - 後述の pre_conv (文書の読み込み時に文字コードを変換する) を - ON にしておく方が良いです。そうしておかない場合、 - ISO 2022 系の多バイト文字集合(JIS)の一部を表示する場合、 - レンダリングが崩れる可能性があります。 + * w3m-m17n 激с活┃絎ц;腓冴潟若 UTF-8 障 + 緇菴違 pre_conv (吾茯粋昭炊絖潟若紊) + ON 鴻с翫 + ISO 2022 膤祉紊ゃ絖(JIS)筝茵腓冴翫 + 潟潟違經醇с障 (3) mlterm + ISO-2022-JP/KR/CN or UTF-8 * Homepage http://mlterm.sourceforge.net/ - * エンコーディングを ISO-2022-JP/KR/CN または UTF-8 にします。 + * 潟潟若c潟違 ISO-2022-JP/KR/CN 障 UTF-8 障 - 本当の多言語表示をさせるのは以上の方法だけですが、 - EUC-JP の場合、中国語や ISO-8859-* を疑似的に表示させることもできます。 + 綵紊荐茯茵腓冴篁ヤ号с + EUC-JP 翫筝処 ISO-8859-* 篌主茵腓冴с障 - * kterm や日本語対応端末のフォントを JIS X 0213 にします。 - # しなくてもいいのですが、かなり表現能力が落ちます。 + * kterm ユ茯絲上腴潟 JIS X 0213 障 + # с茵憠遵純<障 - * w3m-m17n のオプション設定で表示コードを EUC-JP にします。 - 後述の pre_conv, use_gb12345_map, use_jisx0213 を ON にします。 - EUC-JP の SS3 (JIS X 0212) を解する端末の場合は、 - use_jisx0212 も ON にします。 + * w3m-m17n 激с活┃絎ц;腓冴潟若 EUC-JP 障 + 緇菴違 pre_conv, use_gb12345_map, use_jisx0213 ON 障 + EUC-JP SS3 (JIS X 0212) 茹c腴翫 + use_jisx0212 ON 障 - また、w3m-m17n は表示コードを切替えることも可能です。 - 端末がフォントを切替えられるならば文書の言語に従って表示コードと - フォントを切替えて使用することも可能です。 + 障w3m-m17n 茵腓冴潟若帥純с + 腴潟帥井吾荐茯緇c茵腓冴潟若 + 潟帥篏睡純с -コマンドラインオプション +潟潟ゃ潟激с - -I <優先文書コード> - -O <表示/出力コード> + -I <吾潟若> + -O <茵腓/阪潟若> - 基本的に MIME での charset としますが、以下の略号も受け付けます。 + 堺 MIME с charset 障篁ヤュ垩篁障 j(p): ISO-2022-JP j(p)2: ISO-2022-JP-2 @@ -176,502 +176,502 @@ u(tf8): UTF-8 u(tf)7: UTF-7 -オプションパネル +激с潟 display_charset - 表示用文字コード + 茵腓榊絖潟若 document_charset - 文書の標準の文字コード + 吾罔羣絖潟若 auto_detect - 文書の読み込み時に文字コードの自動判定を行う(デフォルト ON) + 吾茯粋昭炊絖潟若ゅ茵( ON) system_charset - システムの文字コード。設定ファイルやファイル名に使用する。 + 激鴻絖潟若荐絎<ゃ<ゃ篏睡 follow_locale - Locale(環境変数 LANG) に従って、システムの文字コードを設定する。 - (デフォルト ON) + Locale(医紊 LANG) 緇c激鴻絖潟若荐絎 + ( ON) ext_halfdump - 表示用文字コードで halfdump の出力を行う + 茵腓榊絖潟若 halfdump 阪茵 search_conv - 検索文字列を文書の文字コードに変換する(デフォルト ON) + 罎膣∽絖吾絖潟若紊( ON) use_wide - 複数カラムの文字を使う(デフォルト ON) + 茲違絖篏帥( ON) use_combining - 結合文字を使う(デフォルト ON) + 腟絖篏帥( ON) use_language_tag - Unicode の言語タグを使う(デフォルト ON) + Unicode 荐茯帥違篏帥( ON) ucs_conv - Unicode を介したコード変換(デフォルト ON) + Unicode 篁潟若紊( ON) pre_conv - 文書の読み込み時に文字コードを変換する(デフォルト OFF) + 吾茯粋昭炊絖潟若紊( OFF) fix_width - 文字幅の変わる変換をしない(デフォルト ON) - OFF にするとレンダリングが崩れる可能性がある。 + 絖綛紊紊( ON) + OFF 潟潟違經醇с use_gb12345_map - GB 12345 の Unicode マップを GB 2312 用に使う(デフォルト OFF) - ON にすると EUC-CN, HZ を EUC-JP や EUC-TW で出力する場合に有用。 + GB 12345 Unicode GB 2312 篏帥( OFF) + ON EUC-CN, HZ EUC-JP EUC-TW у阪翫 use_jisx0201 - ISO-2022-JP で JIS X 0201 Roman を使う(デフォルト OFF) + ISO-2022-JP JIS X 0201 Roman 篏帥( OFF) use_jisc6226 - ISO-2022-JP で JIS C 6226:1978 (旧JIS) を使う(デフォルト OFF) + ISO-2022-JP JIS C 6226:1978 (JIS) 篏帥( OFF) use_jisx0201k - JIS X 0201 Katakana を使う(デフォルト OFF) - OFF にすると通常は JIS X 0208 に変換される。 + JIS X 0201 Katakana 篏帥( OFF) + OFF 絽吾 JIS X 0208 紊 use_jisx0212 - JIS X 0212:1990 (補助漢字) を使う(デフォルト OFF) + JIS X 0212:1990 (茖羲√) 篏帥( OFF) use_jisx0213 - JIS X 0213:2000 (2000JIS) を使う(デフォルト OFF) - ON の場合、EUC-JP は EUC-JISX0213 相当。 - OFF の場合、Shift_JISX0213 は純粋な Shift_JIS になる。 + JIS X 0213:2000 (2000JIS) 篏帥( OFF) + ON 翫EUC-JP EUC-JISX0213 後 + OFF 翫Shift_JISX0213 膣膕 Shift_JIS strict_iso2022 - 厳密な ISO-2022-JP/KR/CN を使う(デフォルト ON) - OFF にすると ISO 2022 系の文字集合は全て表示/出力する。 + ウ絲 ISO-2022-JP/KR/CN 篏帥( ON) + OFF ISO 2022 膤祉絖茵腓/阪 east_asian_width - ある種のUnicode文字を全角にする(デフォルト OFF) - ON にすると East Asian Ambiguous 文字を全角とみなす。 + 腮Unicode絖茹( OFF) + ON East Asian Ambiguous 絖茹帥 gb18030_as_ucs - GB18030 の 4バイト文字を Unicode として扱う(デフォルト OFF) + GB18030 4ゃ絖 Unicode 宴( OFF) simple_preserve_space - 単純な空白の保存。 - ON にすると日本語などでも文字間の空白が削除されない。 + 膣腥榊純篆絖 + ON ユ茯с絖腥榊純ゃ alt_entity - エンティティを ASCII の代替表現で表す(デフォルト ON) - OFF にすると ISO 8859-1 として扱う。 + 潟cc ASCII 篁f粋;憗ц;( ON) + OFF ISO 8859-1 宴 graphic_char - テーブルやメニューの枠に DEC 特殊文字文字を使う(デフォルト OFF) - OFF の場合 CJK の文字コード、UTF-8 では罫線を使う。 + 若<ャ若 DEC 号絖絖篏帥( OFF) + OFF 翫 CJK 絖潟若UTF-8 с臀膩篏帥 -コード変換 +潟若紊 - ・各コード間で特別の変換を用意しているものは、 + 糸潟若х劫ャ紊 * EUC-JP <-> ISO-2022-JP <-> Shift-JIS * EUC-CN <-> ISO-2022-CN <-> HZ-GB-2312 * EUC-TW <-> ISO-2022-CN - * EUC-KR <-> ISO-2022-KR <-> Johab (記号、Hanja のみ) - のみです。それ以外は Unicode を介した変換となります。 + * EUC-KR <-> ISO-2022-KR <-> Johab (荐垩Hanja ) + 帥с篁ュ Unicode 篁紊障 -文書のコードの切替え +吾潟若帥 - '=' で文書の情報を表示させると文書のコードを選択できる様になっています。 + '=' ф吾宴茵腓冴吾潟若御с罕c障 - また、keymap として + 障keymap keymap C CHARSET keymap M-c DEFAULT_CHARSET - の様に設定しておくと、C で現在の文書のコードを、M-c で標準の文書の - コードを変更できます。 + 罕荐絎C х憜吾潟若M-c ф羣吾 + 潟若紊眼с障 -一行エディタ +筝茵c - 8bit 文字の場合は、表示コードが 8bit コードの場合はそのコードで、 - 表示コードが 7bit コード(ISO-2022) の場合は、対応する EUC で - 扱います。HZ での入力は対応していません。 + 8bit 絖翫茵腓冴潟若 8bit 潟若翫潟若с + 茵腓冴潟若 7bit 潟若(ISO-2022) 翫絲上 EUC + 宴障HZ сュ絲上障 - ISO-2022(7bit) で入力する場合は、ISO-2022-JP 型 (G0 のみ使う) - しか使えません。 - 理由は、G1 〜 G3 を使うために必要な SI(\017, ^O), SO(\016, ^N) - SS3(ESC O, ^[O) が他に割り当てられているためです。 + ISO-2022(7bit) уュ翫ISO-2022-JP (G0 推戎) + 篏帥障 + 宴G1 G3 篏帥綽荀 SI(\017, ^O), SO(\016, ^N) + SS3(ESC O, ^[O) 篁蚊綵с -正規表現 +罩h頫 - 対応しています。[あ-ん] なども使用可能です。 + 絲上障[-] 篏睡純с -URL やファイルの文字コード +URL <ゃ絖潟若 - 文書内の URL は文書の文字コード、local ファイルの文字コードは SystemCharset - であつかわれます。ただし、通常 % でエンコードして扱われます。 - アクセス時は HTTP, GOPHER の場合はエンコードしたまま、その他の場合は、 - 自力で %?? をデコードして(SystemCharset に戻してから)アクセスします。 + 後 URL 吾絖潟若local <ゃ絖潟若 SystemCharset + сゃ障絽 % с潟潟若宴障 + ≪祉号 HTTP, GOPHER 翫潟潟若障障篁翫 + %?? 潟若(SystemCharset 祉)≪祉鴻障 - * コマンドライン引数では、デフォルトでは - scheme: がある場合ば URL (#label や ?query, % でのクォートを解釈) - scheme: がない場合は全てファイル名 (#label も解釈しない) - としています。 - オプション argv_is_url=1 で全て URL 扱いにすることもできます。 - * LOAD('V') では全てファイル名として解釈します。 - * GOTO('U') はコマンドラインと全く同じ扱いにしています。 - current の URL も NULL にしています。 + * 潟潟ゃ喝違сс + scheme: 翫 URL (#label ?query, % с若茹i) + scheme: 翫<ゃ (#label 茹i) + 障 + 激с argv_is_url=1 у URL 宴с障 + * LOAD('V') с<ゃ茹i障 + * GOTO('U') 潟潟ゃ潟宴障 + current URL NULL 障 -既知のバグ(というか問題のある仕様) +∝ャ(馹篁罕) - * 日本語 L10N はしてますが、I18N(NLS) 関連は未対応です。 - * 結合文字が文字列の先頭にきた場合、レンダリングが崩れる(かもしれない)。 - * JIS X 0213 は、まだ使用例が少ないため入力時に関しては、JIS X 0208 や - JIS X 0212 のエスケープシーケンスが使われていても読み込む様にしている。 - また、JIS X 0213 で包摂基準の変わった文字でも JIS X 0208 とみなす。 - * ISO 2022 での C0, C1 集合への指示は無視されます。 - C0 は常に ACSII のコントロール文字、C1 は未定義文字となります。 - * JIS X 0208:1990 の ESC & @ は無視されます。 + * ユ茯 L10N 障I18N(NLS) ∫c絲上с + * 腟絖絖翫潟潟違經() + * JIS X 0213 障篏睡箴絨ュ≪JIS X 0208 + JIS X 0212 鴻宴若激若宴潟鴻篏帥茯粋昭罕 + 障JIS X 0213 у堺紊c絖с JIS X 0208 帥 + * ISO 2022 с C0, C1 吾腓冴∴障 + C0 絽吾 ACSII 潟潟若絖C1 絎臂絖障 + * JIS X 0208:1990 ESC & @ ∴障 ----------------------------------- TODO - * NLS 対応 - # NLS ライブラリ(gettext, catgets) を使うか、自前で処理するか? - # 落ち着いてからでも良いと思う。 - * #undef USE_M17N, #define LANG EN, #undef USE_UNICODE のチェック - # 時々やらないとまずいかな。やっぱり。 + * NLS 絲上 + # NLS ゃ(gettext, catgets) 篏帥у鐚 + # 純∞с + * #undef USE_M17N, #define LANG EN, #undef USE_UNICODE с + # 障c宴 ----------------------------------- -更新記録 +贋域 2003/03/08 w3m-0.4.1-m17n-20030308 - * w3m-0.4.1 ベース + * w3m-0.4.1 若 2003/02/24 w3m-0.4-m17n-20030224 - * w3m-0.4 ベース + * w3m-0.4 若 2003/02/11 w3m-0.4rc1-m17n-20030211 - * w3m-0.4rc1 ベース + * w3m-0.4rc1 若 2003/02/07 w3m-0.3.2.2-m17n-20030207 - * w3m-0.3.2.2+cvs-1.742 ベース + * w3m-0.3.2.2+cvs-1.742 若 2003/02/01 w3m-0.3.2.2-m17n-20030201 - * w3m-0.3.2.2+cvs-1.734 ベース + * w3m-0.3.2.2+cvs-1.734 若 2003/01/31 w3m-0.3.2.2-m17n-20030131 - * w3m-0.3.2.2+cvs-1.732 ベース + * w3m-0.3.2.2+cvs-1.732 若 2003/01/23 w3m-0.3.2.2-m17n-20030123 - * w3m-0.3.2.2+cvs-1.705 ベース + * w3m-0.3.2.2+cvs-1.705 若 2003/01/22 w3m-0.3.2.2-m17n-20030122 - * w3m-0.3.2.2+cvs-1.699 ベース + * w3m-0.3.2.2+cvs-1.699 若 2003/01/01 w3m-0.3.2.2-m17n-20030101 - * w3m-0.3.2.2+cvs-1.655 ベース + * w3m-0.3.2.2+cvs-1.655 若 2002/12/22 w3m-0.3.2.2-m17n-20021222 - * w3m-0.3.2.2+cvs-1.640 ベース + * w3m-0.3.2.2+cvs-1.640 若 2002/12/19 w3m-0.3.2.2-m17n-20021219 - * w3m-0.3.2.2+cvs-1.635 ベース + * w3m-0.3.2.2+cvs-1.635 若 2002/12/07 w3m-0.3.2.2-m17n-20021207 - * w3m-0.3.2.2+cvs-1.599 ベース - * int != long な環境での問題を修正 + * w3m-0.3.2.2+cvs-1.599 若 + * int != long 医с馹篆罩 2002/11/27 w3m-0.3.2.1-m17n-20021127 - * w3m-0.3.2.1+cvs-1.562 ベース + * w3m-0.3.2.1+cvs-1.562 若 2002/11/20 w3m-0.3.2-m17n-20021120 - * w3m-0.3.2+cvs-1.538 ベース + * w3m-0.3.2+cvs-1.538 若 2002/11/18 - * 文字コードの自動判別に UTF-7 を追加。 + * 絖潟若ゅャ UTF-7 菴遵 2002/11/16 w3m-0.3.2-m17n-20021116 - * w3m-0.3.2+cvs-1.526 ベース + * w3m-0.3.2+cvs-1.526 若 2002/11/13 w3m-0.3.2-m17n-20021113 - * w3m-0.3.2+cvs-1.506 ベース + * w3m-0.3.2+cvs-1.506 若 2002/11/12 w3m-0.3.2-m17n-20021112 - * w3m-0.3.2+cvs-1.498 ベース + * w3m-0.3.2+cvs-1.498 若 2002/11/09 w3m-0.3.2-m17n-20021109 - * w3m-0.3.2+cvs-1.490 ベース + * w3m-0.3.2+cvs-1.490 若 2002/11/07 w3m-0.3.2-m17n-20021107 - * w3m-0.3.2 ベース - * [w3m-dev 03371] は適用 + * w3m-0.3.2 若 + * [w3m-dev 03371] 2002/10/22 w3m-0.3.1-m17n-20021022 - * w3m-0.3.1+cvs-1.444 ベース + * w3m-0.3.1+cvs-1.444 若 2002/07/17 w3m-0.3.1-m17n-20020717 - * w3m-0.3.1 ベース + * w3m-0.3.1 若 2002/05/29 w3m-0.3-m17n-20020529 - * w3m-0.3+cvs-1.379 ベース + * w3m-0.3+cvs-1.379 若 2002/03/16 w3m-0.3-m17n-20020316 - * w3m-0.3+cvs-1.353 ベース + * w3m-0.3+cvs-1.353 若 2002/03/11 w3m-0.3-m17n-20020311 - * w3m-0.3+cvs-1.342 ベース - * バグ修正 + * w3m-0.3+cvs-1.342 若 + * 遺信罩 2002/02/16 w3m-0.2.5-m17n-20020216 - * w3m-0.2.5+cvs-1.319 ベース - * use_wide オプションを追加 + * w3m-0.2.5+cvs-1.319 若 + * use_wide 激с潟菴遵 2002/02/05 w3m-0.2.5-m17n-20020205 - * w3m-0.2.5+cvs-1.302 ベース + * w3m-0.2.5+cvs-1.302 若 2002/02/02 w3m-0.2.5-m17n-20020202 - * w3m-0.2.5+cvs-1.291 ベース + * w3m-0.2.5+cvs-1.291 若 2002/01/31 w3m-0.2.4-m17n-20020131 - * w3m-0.2.4+cvs-1.278 ベース + * w3m-0.2.4+cvs-1.278 若 2002/01/29 w3m-0.2.4-m17n-20020129 - * w3m-0.2.4+cvs-1.268 ベース - * バグ修正 + * w3m-0.2.4+cvs-1.268 若 + * 遺信罩 2002/01/28 w3m-0.2.4-m17n-20020128 - * w3m-0.2.4+cvs-1.265 ベース + * w3m-0.2.4+cvs-1.265 若 2002/01/08 w3m-0.2.4-m17n-20020108 - * w3m-0.2.4 ベース + * w3m-0.2.4 若 2002/01/07 - * 一部の wc_conv,wc_Str_conv を wc_conv_strict,wc_Str_conv_strict で - 置き換え。 + * 筝 wc_conv,wc_Str_conv wc_conv_strict,wc_Str_conv_strict + 臀 2001/12/31 - * HKSCS の Unicode 変換表を追加 - * Big5 の Unicode 変換表を修正 - * Big5 と CNS11643 の変換を廃止(Unicode ベースへ) - * HKSCS の扱いを修正 + * HKSCS Unicode 紊茵菴遵 + * Big5 Unicode 紊茵篆罩 + * Big5 CNS11643 紊綮罩(Unicode 若鴻) + * HKSCS 宴篆罩 2001/12/30 w3m-0.2.3.2-m17n-20011230 - * w3m-0.2.3.2+cvs-1.196 ベース + * w3m-0.2.3.2+cvs-1.196 若 2001/12/22 w3m-0.2.3.2-m17n-20011222 - * w3m-0.2.3.2 ベース - * [w3m-dev-en 00660] INET6 のときコンパイルできない - * [w3m-dev-en 00663] WC_N_??? の2重定義の修正 + * w3m-0.2.3.2 若 + * [w3m-dev-en 00660] INET6 潟潟ゃс + * [w3m-dev-en 00663] WC_N_??? 鐚絎臂篆罩 2001/12/21 w3m-0.2.3.1-m17n-20011221 - * w3m-0.2.3.1 ベース + * w3m-0.2.3.1 若 2001/12/19 - * HKSCS を追加。Unicode の変換表は未だ。 - * KOI8-U を追加。 + * HKSCS 菴遵Unicode 紊茵 + * KOI8-U 菴遵 2001/12/18 w3m-0.2.2-m17n+cvs-1.137 - * ISO 8859-16 の Unciode 変換表を追加 - * JIS X 0208(0213) の 0x7425,0x7426 を JIS X 0213 扱いに - * バグ修正 + * ISO 8859-16 Unciode 紊茵菴遵 + * JIS X 0208(0213) 0x7425,0x7426 JIS X 0213 宴 + * 遺信罩 2001/12/17 w3m-0.2.2-m17n+cvs-1.131 2001/12/15 w3m-0.2.2-m17n+cvs-1.124 - * sourceforge.net の CVS をベース - * UTF-7 に対応。 - * -o ext_halfdump を追加。 - * =?iso-8859-1?q? の様な小文字での MIME の指定に対応。 - * ISO 2022 の ESC % を読み飛ばす様にした。 - * ks_c_5601-1987 (ksc) を EUC-KR と認識する様にした。 - * locale が zh_TW, zh_HK の時のデフォルトの文字コードを Big5 へ。 - * 結合文字の直前で改行されることがあるバグの修正。 - * resize すると文字化けすることがある問題の修正。 - * UTF-8 判定部のバグ修正。 + * sourceforge.net CVS 若 + * UTF-7 絲上 + * -o ext_halfdump 菴遵 + * =?iso-8859-1?q? 罕絨絖с MIME 絎絲上 + * ISO 2022 ESC % 茯翠違罕 + * ks_c_5601-1987 (ksc) EUC-KR 茯茘罕 + * locale zh_TW, zh_HK 絖潟若 Big5 吾 + * 腟絖翫ф壕違篆罩c + * resize 絖馹篆罩c + * UTF-8 ゅ遺信罩c 2001/04/12 w3m-(0.2.1)-m17n-0.19 - * JISX0212, JISX0213 の"チルダ"の Unicode への変換を FULLWIDTH TILDE - に修正。 - * MICRO SIGN を JISX0208 の"ギリシャ小文字ミュー"へ変換する様にした。 + * JISX0212, JISX0213 "" Unicode 吾紊 FULLWIDTH TILDE + 篆罩c + * MICRO SIGN JISX0208 "激e絖ャ"後罕 * [w3m-dev 01892], [w3m-dev 01894], [w3m-dev 01898], [w3m-dev 01902] - に対応。 + 絲上 2001/03/31 - * <_SYMBOL> の実装の修正。 - * -dump の時でも pre_conv のデフォルトは OFF。 + * <_SYMBOL> 絎茖篆罩c + * -dump с pre_conv OFF 2001/03/29 - * TCVN 5712 の結合文字に対応。 - * [w3m-dev 01873], [w3m-dev-en 00411] に対応。 + * TCVN 5712 腟絖絲上 + * [w3m-dev 01873], [w3m-dev-en 00411] 絲上 2001/03/28 - * configure で suffix 無しを指定可能にした。(thanks to naddy!) - * #define USE_SSL で #undef USE_SSL_VERIFY の場合に rc.c がコンパイル - できないバグの修正。(thanks to naddy!) - * [w3m-dev 01859] に対応。 - * Shift-JIS で 0xA0 がエラーとならないバグ修正。 - * <_SYMBOL> の実装の変更。[w3m-dev 01852] に対応。 + * configure suffix <絎純(thanks to naddy!) + * #define USE_SSL #undef USE_SSL_VERIFY 翫 rc.c 潟潟ゃ + с違篆罩c(thanks to naddy!) + * [w3m-dev 01859] 絲上 + * Shift-JIS 0xA0 若遺信罩c + * <_SYMBOL> 絎茖紊眼[w3m-dev 01852] 絲上 2001/03/24 w3m-(0.2.1)-m17n-0.18 - * w3m-0.2.1 ベース - * [w3m-dev 01703], [w3m-dev 01814], [w3m-dev 01823] に対応。 - * ISO-2022-JP-3 を ISO-2022-JP と分離。ISO-2022-JP では絶対に - JIS X 0212 や JIS X 0213 を送らない様にした。 - * 自動判別の改良。 + * w3m-0.2.1 若 + * [w3m-dev 01703], [w3m-dev 01814], [w3m-dev 01823] 絲上 + * ISO-2022-JP-3 ISO-2022-JP ≪ISO-2022-JP с腟九障 + JIS X 0212 JIS X 0213 罕 + * ゅャ壕 2001/03/23 - * w3m-0.2.0 ベース + * w3m-0.2.0 若 2001/02/21 - * CHARSET, DEFAULT_CHARSET 関数を追加。 - * frame の時の文字コード判定を改良。 + * CHARSET, DEFAULT_CHARSET ∽違菴遵 + * frame 絖潟若ゅ壕 2001/03/20 - * FULL WIDTH variant (ASCII 以外)からの変換を行う様にした。 + * FULL WIDTH variant (ASCII 篁ュ)紊茵罕 2001/03/18 w3m-(0.1.11-pre-hsaka24)-m17n-0.17 - * [w3m-dev 01779] w3m-0.1.11-pre-hsaka24 への対応。 - * JIS X 0213 を JIS X 0212 より優先するようにした。 + * [w3m-dev 01779] w3m-0.1.11-pre-hsaka24 吾絲上 + * JIS X 0213 JIS X 0212 2001/03/14 w3m-(0.1.11-pre-kokb23)-m17n-0.16 - * JIS X 0213 と Unicode Extention B との変換を追加。 - * JIS X 0213 と Unicode 変換の修正。 - * UHC をハングルと判定するように修正。 - * pre_conv = ON の場合は、search_conv を無視する。 + * JIS X 0213 Unicode Extention B 紊菴遵 + * JIS X 0213 Unicode 紊篆罩c + * UHC 潟違ゅ篆罩c + * pre_conv = ON 翫search_conv ∴ 2001/03/09 w3m-(0.1.11-pre-kokb23)-m17n-0.15 - * wc_wchar_t を改良(主に Unicode 用)。 - * Unicode の扱いの幾つかのバグ修正。 - * GBK, GB18030 で出力する場合は use_gb12345_map は無効にした。 - * -dump の時は常に pre_conv = ON。 - * -dump や -halfdump の時は余計な処理はしない様にした。 - * system の文字コードを環境変数 LC_CTYPE -> LANG -> LC_ALL の順で設定 - する様にした。 + * wc_wchar_t 壕(筝祉 Unicode ) + * Unicode 宴綛障ゃ遺信罩c + * GBK, GB18030 у阪翫 use_gb12345_map ≦鴻 + * -dump 絽吾 pre_conv = ON + * -dump -halfdump 篏荐罕 + * system 絖潟若医紊 LC_CTYPE -> LANG -> LC_ALL ц┃絎 + 罕 * [w3m-dev 01724], [w3m-dev 01726], [w3m-dev 01752], [w3m-dev 01753], - [w3m-dev 01754] に対応。 + [w3m-dev 01754] 絲上 2001/03/06 w3m-(0.1.11-pre-kokb23)-m17n-0.14 - * Language tag (UTR#7) に対応してみた。 - * GB18030, Johab と Unicode 変換部のバグ修正。 - * Unicode の full width の結合文字(ひらがなの濁音など)を precompose できて - いなかったバグの修正。(w3m-m17n-0.10 で直したはずが直っていなかった) + * Language tag (UTR#7) 絲上帥 + * GB18030, Johab Unicode 紊遺信罩c + * Unicode full width 腟絖(蚊羶潟) precompose с + c違篆罩c(w3m-m17n-0.10 х眼眼cc) 2001/03/04 w3m-(0.1.11-pre-kokb23)-m17n-0.13 - * GBK(CP936), GB18030, UHC(CP949) に対応。 - * GB2312, GB12345 の Unicode のマッピングテーブルを CP936, GB18030 と - 互換にした。(コード: 0xA1A4, 0xA1AA) - * Unicode の 0xFFFE, 0xFFFF をそのまま通す様にした。(GB18030 との互換性) - * Unicode の NBSP が 0x80 になっていたバグ修正。 + * GBK(CP936), GB18030, UHC(CP949) 絲上 + * GB2312, GB12345 Unicode 潟違若 CP936, GB18030 + 篋(潟若: 0xA1A4, 0xA1AA) + * Unicode 0xFFFE, 0xFFFF 障冗罕(GB18030 篋) + * Unicode NBSP 0x80 c遺信罩c 2001/03/03 w3m-(0.1.11-pre-kokb23)-m17n-0.12 - * CP932 に対応。Shift_JIS は CP932 を意味するものとし、Shift_JISX0213 は - 明示しないかぎり判別しない。 - * JIS X 0213 対応にかなりバグがあったので修正。ただし厳密に JIS X 0213 に - 従ってはいない。 - * JIS X 0208 → Unicode のマッピングテーブルを CP932 のものに置き換え。 - "\", "〜", "‖", "−", "¢", "£", "¬" - Unicode → JIS X 0208 は両方。0x00A5 (YEN SIGN) も "¥" へ変換。 - * Unicode への変換時のエラー処理のバグの修正。 - * CP1258 での出力時ののバグ修正。 - * 標準入力からのデータを vwSrc で HTML 表示する時の一時ファイルの - * configure の typo 修正。(下津さん thanks!) - * HTML 中の属性値の URL の最初と最後の空白文字は削除するようにした。 - (下津さん thanks!) + * CP932 絲上Shift_JIS CP932 潟Shift_JISX0213 + 腓冴ゅャ + * JIS X 0213 絲上違cт信罩cウ絲 JIS X 0213 + 緇c + * JIS X 0208 Unicode 潟違若 CP932 臀 + "鐚", "鐔", "", "鐚", "鐃", "鐃", "鐃" + Unicode JIS X 0208 筝≧鴻0x00A5 (YEN SIGN) "鐃" 後 + * Unicode 吾紊弱違篆罩c + * CP1258 с阪遺信罩c + * 罔羣ュ若帥 vwSrc HTML 茵腓冴筝<ゃ + * configure typo 篆罩c(筝羇ャ thanks!) + * HTML 筝絮уゃ URL 緇腥榊醇絖ゃ + (筝羇ャ thanks!) 2001/02/15 w3m-(0.1.11-pre-kokb23)-m17n-0.11 - * Strdelete のバグが非常にまずいので、とりあえず公開。 + * Strdelete 違絽吾障с 2001/01/29 - * Refresh で相対パスの場合に動作していなかったのを修正。 - # そもそも goURL() を使うのがまずいんじゃ... + * Refresh х後障鴻翫篏c篆罩c + # goURL() 篏帥障... 2001/01/23 - * Strdelete の処理を元に戻した。(坂根さん thanks!) + * Strdelete 祉(鴻 thanks!) 2001/01/19 w3m-(0.1.11-pre-kokb23)-m17n-0.10 - * Unicode の full width の結合文字(ひらがなの濁音など)を precompose できて - いなかったバグの修正。 - * [w3m-dev 01650], [w3m-dev 01651], [w3m-dev 01560] に対応。 + * Unicode full width 腟絖(蚊羶潟) precompose с + c違篆罩c + * [w3m-dev 01650], [w3m-dev 01651], [w3m-dev 01560] 絲上 2001/01/17 w3m-(0.1.11-pre-kokb23)-m17n-0.9 * [w3m-dev 01617], [w3m-dev 01621], [w3m-dev 01624], [w3m-dev 01625], - [w3m-dev 01635], [w3m-dev 01643], [w3m-dev 01647] に対応。 + [w3m-dev 01635], [w3m-dev 01643], [w3m-dev 01647] 絲上 -2001/01/16 w3m-(0.1.11-pre-kokb23)-m17n-0.8 (置き換え) - * typo 修正(坂根さん thanks!) +2001/01/16 w3m-(0.1.11-pre-kokb23)-m17n-0.8 (臀) + * typo 篆罩(鴻 thanks!) 2001/01/14 w3m-(0.1.11-pre-kokb23)-m17n-0.8 - * JIS X 0213-2 にバグがあるがとりあえず公開する。 + * JIS X 0213-2 違 2000/12/29 - * [w3m-dev 01594] に対応。(やまてさん thanks!) - * [w3m-dev 01602] に対応。 + * [w3m-dev 01594] 絲上(障 thanks!) + * [w3m-dev 01602] 絲上 2000/12/27 - * UCS-2/4 の扱いを改良。Unicode 以外の 31個の 16bit文字セット、 - 7個の 32bit文字セットが使用可能。 - # 使う事あるのか? → GB18030 で使うことになりそう - PCSW(Shift_JIS,Big5,等) の扱いについても改良を考案中。 - * checkType() で s->length > size の場合の処理にバグがあったものを修正。 - # 全然、直って無かった。(やまてさん thanks!) - * Big5 の Level1 と Level2 を分ける位置が間違っていた。 - # 一年近く昔からのバグ。なぜ気づかなかったのだろう。 + * UCS-2/4 宴壕Unicode 篁ュ 31 16bit絖祉 + 7 32bit絖祉篏睡純 + # 篏帥篋鐚 GB18030 т戎 + PCSW(Shift_JIS,Big5,膈) 宴ゃ壕罅筝 + * checkType() s->length > size 翫違c篆罩c + # 吟眼c<c(障 thanks!) + * Big5 Level1 Level2 篏臀c + # 筝綛頑違羂ャc 2000/12/25 w3m-(0.1.11-pre-kokb23)-m17n-0.7 - * UCS-2/4 の扱いを他の 16/32bit コードが使える様に改良するため、 - とりあえず、w3m-m17n-0.7 としてまとめる。 - * [w3m-dev 01564] に対応。(やまてさん thanks!) + * UCS-2/4 宴篁 16/32bit 潟若篏帥罕壕 + w3m-m17n-0.7 障 + * [w3m-dev 01564] 絲上(障 thanks!) 2000/12/24 - * Johab に対応。自前の Unicode 変換テーブルを持ちたくなかったため、 - 特殊な変換になってしまい汎用性に欠けるようになってしまった。 - * wtf_gr_ces が KS X 1001 だった場合にハングルが "わかち書き" されない - バグの修正。 - * UCS の中でハングルと判定するコードポイントを増やした。 - * file 名中に '+' を含む file にアクセスできなくなっていたバグの修正。 + * Johab 絲上 Unicode 紊若<c + 号紊c障羆с罨c障c + * wtf_gr_ces KS X 1001 c翫潟違 "≧吾" + 違篆罩c + * UCS 筝с潟違ゅ潟若ゃ潟紜 + * file 筝 '+' file ≪祉鴻сc違篆罩c 2000/12/23 - * checkType() で s->length > size の場合の処理にバグがあったものを修正。 - * UTF-8 の解析で現れるべきではないシーケンス(サロゲート等)のチェックを - 行う様にした。 - * WC_CCS_SET と WC_CCS_TYPE を混同していたバグの修正(良く動いてたなぁ) - * Big5 の表現をそのままのコード(WC_CCS_BIG5)と CS94 型のコード - (WC_CCS_BIG5_1, WC_CCS_BIG5_2)の両方を使える様にした。 + * checkType() s->length > size 翫違c篆罩c + * UTF-8 茹fх憗鴻с激若宴潟(泣蚊若膈)с + 茵罕 + * WC_CCS_SET WC_CCS_TYPE 羞桁違篆罩() + * Big5 茵憗障障潟若(WC_CCS_BIG5) CS94 潟若 + (WC_CCS_BIG5_1, WC_CCS_BIG5_2)筝≧鴻篏帥罕 2000/12/22 - * [w3m-dev 01555], [w3m-dev 01556] に対応。 + * [w3m-dev 01555], [w3m-dev 01556] 絲上 2000/12/21 w3m-(0.1.11-pre-kokb23)-m17n-0.6 - * ISO 2022 の SS2, SS3 に関する修正が適用されていなかったので再修正。 - * [w3m-dev 01531], [w3m-dev 01534] に対応。 - * textarea を編集した後、読み込むときに auto detect を ON にした。 - DisplayCharset が 7bit コード(特に ISO-2022-JP)の場合に対応。 - * form 中での PC_UNKNOWN の処理を追加。 - * form 中での PC_CTRL の幅が 2 になっていたものを修正。 - * form 中での結合文字(width=0)に対処。 - * DEL の wtf_width_map が 2 になっていたバグの修正。 - * table 中に <hr> があるとレンダリングが崩れるバグの修正。(やまてさん thanks!) - * pager モードから HTML view する場合は buf->document_charset で - saveBuffer する様にした。 - * entity の扱いの整理。 - * DocumentCharset が UTF-8 の場合の auto detect で ISO-8859-1 を判別する - ことを止めた。ISO-2022 のみ判別する。 - * wc_ces と wc_ccs の typo を修正 - * sourcefile を load する場合は常に file_to_url() する様にした。 + * ISO 2022 SS2, SS3 ≪篆罩ccу篆罩c + * [w3m-dev 01531], [w3m-dev 01534] 絲上 + * textarea 膩緇茯粋昭 auto detect ON + DisplayCharset 7bit 潟若(鴻 ISO-2022-JP)翫絲上 + * form 筝с PC_UNKNOWN 菴遵 + * form 筝с PC_CTRL 綛 2 c篆罩c + * form 筝с腟絖(width=0)絲上 + * DEL wtf_width_map 2 c違篆罩c + * table 筝 <hr> 潟潟違經違篆罩c(障 thanks!) + * pager ≪若 HTML view 翫 buf->document_charset + saveBuffer 罕 + * entity 宴雁 + * DocumentCharset UTF-8 翫 auto detect ISO-8859-1 ゅャ + 罩≪ISO-2022 水ゅャ + * wc_ces wc_ccs typo 篆罩 + * sourcefile load 翫絽吾 file_to_url() 罕 2000/12/20 w3m-(0.1.11-pre-kokb23)-m17n-0.5 - * entity の扱いの改良。conv_entity を直接呼ぶコードに対応。 - * ANSI color escape sequence 対応。 + * entity 宴壕conv_entity 贋・若吟潟若絲上 + * ANSI color escape sequence 絲上 2000/12/19 - * ページャモードで \b の解析時のバグ修正。(坂根さん thanks!) - * <ol><li> の後の空白文字が削除されないバグ修正。 - * Str.c 内の strncpy を bcopy へ。 - * 型のチェック(特に unsigned char と char)。(坂根さん thanks!) - * マクロの引数を () で囲んでいなかったものの修正。 - * libwc/Makefile で ranlib をそのまま使っていたのをマクロに。 + * 若吾c≪若 \b 茹f遺信罩c(鴻 thanks!) + * <ol><li> 緇腥榊醇絖ゃ遺信罩c + * Str.c strncpy bcopy 吾 + * с(鴻 unsigned char char)(鴻 thanks!) + * 綣違 () у蚊сc篆罩c + * libwc/Makefile ranlib 障鞘戎c 2000/12/18 - * -I オプションが指定されている場合、コマンドラインのファイルまたは - URL の読み込みに関してはヘッダや <META> の Content-Type での - charset の指定を適用しない様に変更。 - * <META> での charset の指定がクリアされていないバグの修正。 + * -I 激с潟絎翫潟潟ゃ潟<ゃ障 + URL 茯粋昭帥≪ <META> Content-Type с + charset 絎罕紊眼 + * <META> с charset 絎≪違篆罩c 2000/12/17 w3m-(0.1.11-pre-kokb23)-m17n-0.4 - * [w3m-dev 01515], [w3m-dev 01516] に対応。 - * INTSPACE の処理に関するコード整理。 - * テーブルの枠などの symbol に関するバグ修正。 - * 表示する時、ごく稀にゴミがでる問題の修正。 + * [w3m-dev 01515], [w3m-dev 01516] 絲上 + * INTSPACE ≪潟若雁 + * 若 symbol ≪遺信罩c + * 茵腓冴霢眼с馹篆罩c 2000/12/16 w3m-(0.1.11-pre-kokb23)-m17n-0.3 - * w3m-0.1.11-pre-kokb23 対応。 + * w3m-0.1.11-pre-kokb23 絲上 2000/12/16 w3m-(0.1.11-pre-kokb22)-m17n-0.2 - * テーブルの枠が検索でおかしなマッチをする問題を修正。 - 合わせて <UL> の記号等も同じ処理に改良。 - * #ifdef __EMX__ の場合に CodePage から DisplayCharset 等を設定する様 - にしてみた。(動作は未確認) + * 若罎膣≪с馹篆罩c + <UL> 荐埇壕 + * #ifdef __EMX__ 翫 CodePage DisplayCharset 膈荐絎罕 + 帥(篏腆肴) 2000/12/15 - * ISO 2022 の SS2, SS3 に関する修正。 - * SHOW_PARAMS に関する修正。 - * loadHTMLString で作成したバッファにも文字コードを適宜設定。 + * ISO 2022 SS2, SS3 ≪篆罩c + * SHOW_PARAMS ≪篆罩c + * loadHTMLString т<絖潟若絎荐絎 2000/12/15 w3m-(0.1.11-pre-kokb22)-m17n-0.1 - * 最初の alpha リリース - * configure に対応。 + * alpha 若 + * configure 絲上 ----------------------------------- -坂本 浩則 <hsaka@mth.biglobe.ne.jp> + 羌 <hsaka@mth.biglobe.ne.jp> http://www2u.biglobe.ne.jp/~hsaka/ diff --git a/doc-jp/README.mailcap b/doc-jp/README.mailcap index 7cec03e..212bed4 100644 --- a/doc-jp/README.mailcap +++ b/doc-jp/README.mailcap @@ -1,47 +1,47 @@ -mailcap サポートについて +mailcap 泣若ゃ - (2000/11/07) 岡部克也 + (2000/11/07) 絏♂箙 okabek@guitar.ocn.ne.jp - ・ 2000/10/6 の版から, mailcap のフィールド test, nametemplate, needsterminal, - copiousoutput, edit (参照: RFC 1524) を見るようになりました. - また 2000/10/26 の版からは, mailcap と mime.types ファイルの場所が Option - Setting Panel で変更できるようになりました. + 2000/10/6 , mailcap c若 test, nametemplate, needsterminal, + copiousoutput, edit (: RFC 1524) 荀障. + 障 2000/10/26 , mailcap mime.types <ゃ贋 Option + Setting Panel у眼с障. - ・ mailcap 中の %s は外部コマンドに渡すパス名, %t は content-type で置換されま - す. + mailcap 筝 %s 紊潟潟羝<劫, %t content-type х舟 + . - ・ もし mailcap エントリに test=command フィールドが存在する場合 command の実 - 行結果が真であるときのみ, 外部コマンドが実行されます. 例えば + mailcap 潟 test=command c若絖翫 command 絎 + 茵腟с, 紊潟潟絎茵障. 箴 image/gif; xv '%s'; test=test "$DISPLAY" - のように書けば, DISPLAY 環境変数がセットされているときのみ xv が実行されま - す. + 吾, DISPLAY 医紊違祉 xv 絎茵 + . - ・ もし mailcap エントリに copiousoutput フィールドが存在する場合, 外部コマン - ドの標準出力はバッファに読み込まれます. - 例: + mailcap 潟 copiousoutput c若絖翫, 紊潟 + 罔羣阪<茯粋昭障障. + 箴: application/x-troff-man;/usr/bin/nroff -mandoc;copiousoutput - LESSOPEN コマンドでできる事は, 大部分これで置き換える事ができます. そのため - LESSOPEN の利用はオプション扱いになりました. + LESSOPEN 潟潟сс篋, 紊чх舟篋с障. + LESSOPEN 激с恰宴障. - w3m の拡張フィールドとして, x-htmloutput があります. copiousoutput と同様に - コマンドの実行結果がバッファに読み込まれますが, HTML としてレンダリングする - 所が異なります. この機能を使う場合は, w3m 用の mailcap ファイルを別に用意す - るか, 他のブラウザ用に x-htmloutput を含まないエントリを前に置いておくと良 - いかもしれません. - (2001/08/01) 坂本 - htmloutput → x-htmloutput + w3m ≦宍c若, x-htmloutput 障. copiousoutput 罕 + 潟潟絎茵腟<茯粋昭障障, HTML 潟潟違 + 違障. 罘純篏帥翫, w3m mailcap <ゃャ + , 篁句 x-htmloutput 障潟臀 + 障. + (2001/08/01) + htmloutput x-htmloutput - ・ nametemplate= は外部コマンドに渡すファイル名の拡張子を指定します. - テンポラリファイルを作るとき, 通常元の URL の拡張子がファイル名に付けられま - すが, nametemplate= フィールドによって変更する事ができます. - 例: + nametemplate= 紊潟潟羝<<ゃ≦宍絖絎障. + 潟<ゃ篏, 絽後 URL ≦宍絖<ゃ篁 + , nametemplate= c若c紊眼篋с障. + 箴: application/x-dvi;xdvi '%s';test=test -n "$DISPLAY";nametemplate=%s.dvi - ・ needsterminal, edit については RFC 1524 を見てください. + needsterminal, edit ゃ RFC 1524 荀. diff --git a/doc-jp/README.menu b/doc-jp/README.menu index 0cb8424..0b75e93 100644 --- a/doc-jp/README.menu +++ b/doc-jp/README.menu @@ -1,106 +1,106 @@ -w3m のメニューについて - (2002/11/27) 坂本 浩則 +w3m <ャ若ゃ + (2002/11/27) 羌 hsaka@mth.biglobe.ne.jp -[1] キー操作 - - ・一般的なもの - - HELP, INS キー : メニューの立ち上げ - HELP, INS キー, C-c, : メニューの消去 - RET(C-m, C-j), SPC, →キー : 選択 - BS(C-h), DEL(C-?), ←キー : 戻る - C-n, j, ↓キー : 下の項目へ - C-p, k, ↑キー : 上の項目へ - J : 項目を上にスクロール - K : 項目を下にスクロール - C-a : 先頭の項目へ - C-e : 最後の項目へ - C-f, C-v : 次ページの項目へ - C-b, M-v : 前ページの項目へ - C-s, / : 項目を下に向かって検索 - C-r, ? : 項目を上に向かって検索 - n : 次の項目を検索 - N : 前の項目を検索 - C-z : サスペンド - - # INS は通常 ^[[2~ ですが ^[[L(コンソール), ^[[E(PocketBSD) にも - バインドしてあります。 +[1] 惹篏 + + 私 + + HELP, INS : <ャ若腴> + HELP, INS , C-c, : <ャ若羔サ + RET(C-m, C-j), SPC, : 御 + BS(C-h), DEL(C-?), : 祉 + C-n, j, : 筝 + C-p, k, : 筝 + J : 筝鴻若 + K : 筝鴻若 + C-a : + C-e : 緇 + C-f, C-v : 罨<若吾 + C-b, M-v : 若吾 + C-s, / : 筝c罎膣 + C-r, ? : 筝c罎膣 + n : 罨<罎膣 + N : 罎膣 + C-z : 泣鴻潟 + + # INS 絽 ^[[2~ с ^[[L(潟潟純若), ^[[E(PocketBSD) + ゃ潟障 MenuKeymap, MenuEscKeymap, MenuEscBKeymap, MenuEscDKeymap (menu.c) - で定義 + у臂 - ・個別のメニュー用 + 糸ャ<ャ主 - MenuItem 構造体 (menu.h) の char *keys に設定(複数可能) - 上記のキー操作に上書きされます。 + MenuItem 罕篏 (menu.h) char *keys 荐絎(茲医) + 筝荐惹篏筝吾障 -[2] マウス +[2] - ボタン3 : メニューの立ち上げ + 帥鰹 : <ャ若腴> - 立ち上げ後 + 腴>緇 - ボタン1/3 (項目) : 選択 - ″ (枠,MENU_NOP) : 何もしない - ″ (枠外) : 戻る(メニューの消去) - ″ ( : ) : 次ページまたは前ページの項目へ - (長いメニューの場合) - ″ (ドラッグ) : スクロール + 帥鰹/鐚 () : 御 + (,MENU_NOP) : 篏 + (紊) : 祉(<ャ若羔サ) + ( : ) : 罨<若吾障若吾 + (激<ャ若翫) + () : 鴻若 -[3] メニューのカスタマイズ +[3] <ャ若鴻帥ゃ - ~/.w3m/menu にメニューを定義できます。 - メニューは、 + ~/.w3m/menu <ャ若絎臂с障 + <ャ若 menu MENU_ID - 項目 + : end - として設定します。各項目には、 + 荐絎障 - func LABEL FUNCTION KEYS [DATA] コマンド実行 - popup LABEL MENU_ID KEYS サブメニュー立ち上げ - nop LABEL 何もしない(セパレータやタイトル) + func LABEL FUNCTION KEYS [DATA] 潟潟絎茵 + popup LABEL MENU_ID KEYS 泣<ャ主> + nop LABEL 篏(祉若帥帥ゃ) - を設定可能です。 - 例は menu.default や menu.submenu を見てください。 - 設定できるコマンド(FUNCTION)は README.func を見てください。 - MENU_ID として "Main" はメインメニューに、"Select" はバッファ選択 - メニューに、"SelectTab" はタブ選択メニューに予約されています。 - KEYS はバインドするキーで複数指定可能です。 - DATA が設定されていればコマンド(FUNCTION)の引数として使われます。 + 荐絎純с + 箴 menu.default menu.submenu 荀 + 荐絎с潟潟(FUNCTION) README.func 荀 + MENU_ID "Main" <ゃ潟<ャ若"Select" ♂御 + <ャ若"SelectTab" 帥御<ャ若篋膣障 + KEYS ゃ潟若ц井絎純с + DATA 荐絎違潟潟(FUNCTION)綣違篏帥障 -[4] 開発について +[4] 冴ゃ - メニュールーチンの例は mainMenu(), optionMenu() を見れば分かると思います。 - このルーチンと以下の MenuItem 構造体を定義すれば、ほとんどのメニューは、 - 設定できると思います。 + <ャ若若潟箴 mainMenu(), optionMenu() 荀医障 + 若潟篁ヤ MenuItem 罕篏絎臂違祉<ャ若 + 荐絎с障 - MenuItem 構造体 (menu.h) + MenuItem 罕篏 (menu.h) struct { - int type; /* タイプ */ - char *label; /* ラベル */ - int *variable; /* VALUE_MENU の場合に設定する変数 */ - int value; /* VALUE_MENU の場合に設定する値 */ - void (*func)(); /* 選択された時に実行する関数 */ - struct _Menu *popup; /* サブメニュー */ - char *keys; /* バインドするキー(複数可能) */ + int type; /* 帥ゃ */ + char *label; /* */ + int *variable; /* VALUE_MENU 翫荐絎紊 */ + int value; /* VALUE_MENU 翫荐絎 */ + void (*func)(); /* 御絎茵∽ */ + struct _Menu *popup; /* 泣<ャ */ + char *keys; /* ゃ潟(茲医) */ } MenuItem; - タイプ type は以下のものが使用できます。 + 帥ゃ type 篁ヤ篏睡с障 - MENU_NOP (1) : なにもしない。選択もできない。 - (タイトルやセパレータ用) - MENU_FUNC (2) : 関数を実行 - MENU_VALUE (4) : 変数(*variable)に値(value)を設定 - MENU_POPUP (8) : サブメニューを立ち上げる + MENU_NOP (1) : 御с + (帥ゃ祉若睡) + MENU_FUNC (2) : ∽違絎茵 + MENU_VALUE (4) : 紊(*variable)(value)荐絎 + MENU_POPUP (8) : 泣<ャ若腴> - MENU_FUNC と MENU_VALUE は (MENU_FUNC | MENU_VALUE) と - 設定することで両方の動作をします。(変数設定が先です) + MENU_FUNC MENU_VALUE (MENU_FUNC | MENU_VALUE) + 荐絎т検鴻篏障(紊域┃絎с) - 設定例は、MainMenuItem (menu.c) や new_option_menu() を見てください。 + 荐絎箴MainMenuItem (menu.c) new_option_menu() 荀 diff --git a/doc-jp/README.migemo b/doc-jp/README.migemo index 439644d..5e16388 100644 --- a/doc-jp/README.migemo +++ b/doc-jp/README.migemo @@ -1,39 +1,39 @@ -w3m で Migemo (ローマ字検索)を行う +w3m Migemo (若絖罎膣)茵 - (2002/02/23) 日台健一 + (2002/02/23) ュ伾ヤ hidai@nmn.jp - ・ Migemo を用いることでローマ字のインクリメンタル検索を行うことができます. - あらかじめ Migemo がインストールされている必要があります. + Migemo с若絖ゃ潟<潟帥罎膣≪茵с障. + Migemo ゃ潟鴻若綽荀障. http://migemo.namazu.org/ - ・ configure スクリプト実行時に --with-migemo オプションを付けることで利用可 - 能となります. + configure 鴻絎茵 --with-migemo 激с潟篁у + 純障. - ・ オプションパネルにて以下の設定をします. 辞書のパスは適切に書き換えて下さい. + 激с潟篁ヤ荐絎障. 莨吾鴻吾筝. - Migemo を使用する ... ON - Migemo コマンド ..... migemo -t egrep /usr/local/share/migemo/migemo-dict + Migemo 篏睡 ... ON + Migemo 潟潟 ..... migemo -t egrep /usr/local/share/migemo/migemo-dict - ・ 正しく設定されていれば、通常の検索においてローマ字検索ができるはずです. - ローマ字検索が行われていないようであれば、次の項目を確認して下さい. + 罩c頥絎違絽吾罎膣≪若絖罎膣≪сс. + 若絖罎膣≪茵с違罨<腆肴筝. - ・ うまく動かないときは、以下のように migemo コマンドの動作確認をして下さい. - 入力したローマ字に対して、それを展開した正規表現が出力されれば成功です. - (コマンドは、オプションパネルの「Migemo コマンド」に設定したもの) + 障篁ヤ migemo 潟潟篏腆肴筝. + ュ若絖絲障絮罩h頫憗阪井с. + (潟潟激с潟Migemo 潟潟荐絎) % migemo -t egrep /usr/local/share/migemo/migemo-dict migemo - migemo|migemo|みげも|ミゲモ + migemo|鐔鐔鐔鐔鐔鐔|帥|蚊 romaji - romaji|romaji|ろまじ|ロ(ーマ字|マジ) + romaji|鐔鐔鐔鐔鐔鐔|障|(若絖|) - ・ デフォルトでは、/ ? が通常の検索、C-s C-r がインクリメンタル検索にバインド - されています. / ? でインクリメンタル検索を行うには、~/.w3m/keymap に以下の - 設定をします. + с/ ? 絽吾罎膣≪C-s C-r ゃ潟<潟帥罎膣≪ゃ潟 + 障. / ? сゃ潟<潟帥罎膣≪茵~/.w3m/keymap 篁ヤ + 荐絎障. keymap / ISEARCH keymap ? ISEARCH_BACK - ・ Migemo に付属の migemo-server を使用する必要はありません. w3m は migemo コ - マンドを直接実行 (popen(3)) します. + Migemo 篁絮 migemo-server 篏睡綽荀障. w3m migemo + 潟贋・絎茵 (popen(3)) 障. diff --git a/doc-jp/README.mouse b/doc-jp/README.mouse index 31fd11e..3a0bf49 100644 --- a/doc-jp/README.mouse +++ b/doc-jp/README.mouse @@ -1,28 +1,28 @@ -~/.w3m/mouse の形式は、 +~/.w3m/mouse 綵√ -menu メニューの文字列(デフォルトなし) -lastline 最下行の文字列(デフォルト『≪↑↓』) -button 番号 位置 関数 [引数] +menu <ャ若絖() +lastline 筝茵絖() +button 篏臀 ∽ [綣] -番号: 1…左ボタン - 2…中ボタン - 3…右ボタン +: 1綏帥 + 2筝帥 + 3劻帥 -位置: menu <x1> <x2> … メニュー上でクリック - lastline <x1> <x2> … 最下行でクリック - default … 他の設定が無い時のデフォルト - anchor … アンカー上でクリック - active … アクティブなアンカー上でクリック - tab … タブ上でクリック +篏臀: menu <x1> <x2> <ャ寂с + lastline <x1> <x2> 筝茵с + default 篁荐絎< + anchor ≪潟寂с + active ≪c≪潟寂с + tab 帥筝с -<x1> : 左端のカラム位置 -<x2> : 右端のカラム位 +<x1> : 綏腴篏臀 +<x2> : 勆篏 -です。 -互換性のために <位置> での menu は省略可能です。 +с +篋с <篏臀> с menu ュ純с -デフォルトの設定(func.c 内)は、 +荐絎(func.c ) button 1 default MOVE_MOUSE button 2 default BACK @@ -33,34 +33,34 @@ button 1 active GOTO_LINK button 1 tab TAB_MOUSE button 2 tab CLOSE_TAB_MOUSE -lastline "≪↑↓" +lastline "" button 1 lastline 0 1 BACK button 1 lastline 2 3 PREV_PAGE button 1 lastline 4 5 NEXT_PAGE -と同等です。(これまでと同じはず) +膈с(障с) -・例えば、 +私違 button 1 anchor COMMAND "MOVE_MOUSE; GOTO_LINK" - と設定するとアクティブでないアンカー上でも左クリックしただけで、 - リンク先に飛びます。(GUI ブラウザと同じ様な動作) + 荐絎≪cс≪潟寂с綏с + 潟蕋潟障(GUI 吟罕篏) -・~/.w3m/menu で +~/.w3m/menu menu Active - func "リンクを表示 (a)" GOTO_LINK "a" - func "新しいタブで表示 (t)" TAB_LINK "t" - func "リンクを保存 (d)" SAVE_LINK "d" - func "外部ブラウザで表示 (m)" EXTERN_LINK "m" + func "潟茵腓 (a)" GOTO_LINK "a" + func "違帥ц;腓 (t)" TAB_LINK "t" + func "潟篆絖 (d)" SAVE_LINK "d" + func "紊吟ц;腓 (m)" EXTERN_LINK "m" end - の様に設定しておいて、~/.w3m/mouse で + 罕荐絎~/.w3m/mouse button 3 anchor MENU_MOUSE Active - と設定すると、アンカー上で右クリックしするとアンカー用の - メニューが開きます。 + 荐絎≪潟寂у劻≪潟主 + <ャ若障 -こんな感じで使ってみてください。 +т戎c帥 diff --git a/doc-jp/README.passwd b/doc-jp/README.passwd index efefdb3..9d2bd43 100644 --- a/doc-jp/README.passwd +++ b/doc-jp/README.passwd @@ -1,22 +1,22 @@ -HTTP $BG'>Z$N$"$k%Z!<%8$dG'>Z$N$"$k(B proxy $B$KBP$7$F!"(B -$B%f!<%6L>$H%Q%9%o!<%I$r@_Dj$7$F$*$/$3$H$,=PMh$^$9!#(B +HTTP 茯荐若若吾茯荐若 proxy 絲障 +若九鴻若荐絎堺ャ障 -passwd_file $B$G;XDj$7$?%U%!%$%k$K<!$N$h$&$K=q$$$F$*$1$P$=$l$r8+$^$9!#(B +passwd_file ф絎<ゃ罨<吾違荀障 -machine $B%[%9%HL>(B -port $B%]!<%HHV9f(B -path $B%m!<%+%k%Q!<%H(B -realm realm$B$NJ8;zNs(B -login $B%f!<%6L>(B -passwd $B%Q%9%o!<%I(B +machine 鴻 +port 若 +path 若若 +realm realm絖 +login 若九 +passwd 鴻若 proxy -machine$B$G$O$8$^$C$F<!$N(Bmachine$B$^$G!#(B -netrc$B$.$_$G$9$,4JC1$K$9$k$?$a$K0l9T$E$D!#(B -port, path, realm $B$O>JN,2DG=(B +machineс障c罨<machine障с +netrc帥с膂≦筝茵ャゃ +port, path, realm ュ -proxy $B$H=q$$$?>l9g$O(B proxy $B$N%Q%9%o!<%I$H$_$J$7$^$9!#(B +proxy 吾翫 proxy 鴻若帥障 -passwd_file $B$,B>$N%f!<%6!<$+$iFI$a$k>l9g7Y9p$,=P$^$9$,!"(BOS $B$N@)8B$J$I$G(B -$B%U%!%$%k$N%Q!<%_%C%7%g%s$rJQ$($i$l$J$$>l9g$O$3$N7Y9p$r(B -disable_secret_security_check $B$N@_Dj$GL58z$K$G$-$^$9!#(B +passwd_file 篁若吟若茯翫茘冴障OS 狗 +<ゃ若激с潟紊翫茘 +disable_secret_security_check 荐絎х≦鴻с障 diff --git a/doc-jp/README.pre_form b/doc-jp/README.pre_form index eef127f..fe86f69 100644 --- a/doc-jp/README.pre_form +++ b/doc-jp/README.pre_form @@ -1,10 +1,10 @@ -pre_form: $BFCDj$N%5%$%H$r3+$$$?;~$K!"(Bform $B$rM=$a@_Dj$9$k5!G=$G$9!#(B +pre_form: 劫泣ゃform 篋荐絎罘純с -$BNI$/;H$&7G<(HD$H$+$G$OJXMx$H;W$$$^$9$,!"0BA4@-$,5>@7$K$J$k$+$b(B -$B$7$l$^$;$s!#FC$K(B submit $B$O5$$r$D$1$F;H$C$F2<$5$$!#(B +鋎帥イ腓堺帥с箴水障絎с蚊 +障鴻 submit 羂ゃ篏帥c筝 -$B%G%U%)%k%H$N@_Dj%U%!%$%k$O(B ~/.w3m/pre_form $B$G$9!#(B -$B@_Dj%U%)!<%^%C%H$O!"(B +荐絎<ゃ ~/.w3m/pre_form с +荐絎若 url <url>|/<re-url>/ form [<name>] <action> @@ -21,15 +21,15 @@ textarea <name> : /textarea -$B$G$9!#(B -<action> $B$,@_Dj$7$F$"$k;~$O!"0lCW$9$k(B action $BB0@-$r;}$D(B form $B$N$_(B -$B@_Dj$7$^$9!#(B -text, file, password, select, textarea $B$O0lCW$9$k(B name $BB0@-$r;}$D(B -input, select $B$^$?$O(B textarea $BMWAG$N(B value $BB0@-$r@_Dj$7$^$9!#(B -checkbox, radio $B$O(B name $BB0@-$H(B value $BB0@-$,0lCW$9$k(B input $BMWAG$r(B -check $B$7$^$9!#(B -<checked> $B$,(B 0$B!"(Bno $B$^$?$O(B off $B$N>l9g$O(B checkbox $B$N(B check $B$r30$7$^$9!#(B -submit, image $B$N>l9g!"(B<name> $B$,@_Dj$7$F$"$k;~$O!"0lCW$9$k(B name $BB0@-(B -($B$H(B value $BB0@-(B)$B$r;}$D(B input $BMWAG$r(B submit $B$7$^$9!#(B<name> $B$r@_Dj$7$F(B -$B$$$J$$>l9g$O!":G8e$N(B input type=submit $BMWAG$r(B submit $B$7$^$9!#(B -<name> $B$d(B <value> $B$O!"%7%'%k$NMM$K(B \,'$B!A(B',"$B!A(B" $B$G%/%)!<%H2DG=$G$9!#(B +с +<action> 荐絎筝眼 action 絮с form +荐絎障 +text, file, password, select, textarea 筝眼 name 絮с +input, select 障 textarea 荀膣 value 絮с荐絎障 +checkbox, radio name 絮с value 絮с筝眼 input 荀膣 +check 障 +<checked> 0no 障 off 翫 checkbox check 紊障 +submit, image 翫<name> 荐絎筝眼 name 絮 +( value 絮) input 荀膣 submit 障<name> 荐絎 +翫緇 input type=submit 荀膣 submit 障 +<name> <value> 激с罕 \,'',"" с若純с diff --git a/doc-jp/README.siteconf b/doc-jp/README.siteconf new file mode 100644 index 0000000..d638a9a --- /dev/null +++ b/doc-jp/README.siteconf @@ -0,0 +1,73 @@ +siteconf: 泣ゃャ鴻帥ゃ + +siteconf URL 帥若潟膣篁荐絎障 +siteconf 篏帥泣ゃ罸絖潟若絎 "decode_url" +阪劫 Google ゃ帥菴ц純 +ゃ激若筝с障 + +с siteconf ~/.w3m/siteconf 茯粋昭障障 + +===== 罕 ===== + +url <url>|/<re-url>/|m@<re-url>@i [exact] +substitute_url "<destination-url>" +url_charset <charset> +no_referer_from on|off +no_referer_to on|off +user_agent "string" + +緇鴻吾障 + +===== 箴 ===== + +url m!^https?://([a-z]+\.)?twitter\.com/! +substitute_url "https://nitter.net/" + +twitter.com 篁f帥泣ゃ荵∫障 + +url "http://your.bookmark.net/" +no_referer_from on + +your.bookmark.net 綣泣c潟莨帥 HTTP referer +障 + +url "http://www.google.com/url?" exact +substitute_url "file:///cgi-bin/your-redirector.cgi?" + +Google ゃ帥 local CGI 荵∫障 + +url /^http:\/\/[a-z]*\.wikipedia\.org\// +url_charset utf-8 + + "decode_url" 激с潟潟 Wikipedia 吾 +潟 UTF-8 潟若茵腓冴障 + +url m@^https?://(.*\.)google\.com/@ +user_agent "Lynx/2.8.8dev.3 libwww-FM/2.14 SSL-MM/1.4.1" + +Google Lynx с障(鴻九若吾 +菴障) + +url m!^https?://([a-z]+\.)?twitter\.com/! +user_agent "Googlebot/2.1" + +Twitter Googlebot с障(JavaScript≦鴻 +吟若吾菴障) + +===== 罩h頫憗ゃ ===== + +罨<罩h頫憗潟茵障 + +/http:\/\/www\.example\.com\// +m/http:\/\/www\.example\.com\// +m@http://www\.example\.com/@ +m!http://www\.example\.com/! + +緇 'i' 篆蕋上篁紊ф絖絨絖阪ャу茵障 +箴違 m@^http://www\.example\.com/abc/@i 篁ヤ筝眼障 + +http://www.example.com/abc/ +http://www.example.com/Abc/ +http://www.example.com/ABC/ + +鴻絽吾絨絖紊罸莠障 diff --git a/doc-jp/README.tab b/doc-jp/README.tab index 61f7c58..144b081 100644 --- a/doc-jp/README.tab +++ b/doc-jp/README.tab @@ -1,43 +1,43 @@ -w3m $B$r%?%V%V%i%&%62=(B +w3m 帥九 -$B%-!<A`:n$ODj5A$7$F$$$^$;$s$N$G!"0J2<$N4X?t$rE,Ev$J%-!<$K@_Dj$7$F(B -$B$*;H$$2<$5$$!#(B +惹篏絎臂障с篁ヤ∽違綵若荐絎 +篏帥筝 - NEW_TAB $B?7$7$$%?%V$r3+$$$F!"8=:_$N%Z!<%8$NJ#@=$r:n$j$^$9(B - TAB_LINK $B%j%s%/$,;X$9@h$NJ8=q$r?7$7$$%?%V$G3+$-$^$9(B - $B?t(B(N) + TAB_LINK $B$@$H!"(BN $BHVL\$N%?%V$G3+$-$^$9(B - TAB_GOTO URL$B$r;XDj$7$F?7$7$$%?%V$G3+$-$^$9(B - $B?t(B(N) + TAB_GOTO $B$@$H!"(BN $BHVL\$N%?%V$G3+$-$^$9(B + NEW_TAB 違帥憜若吾茲茖純篏障 + TAB_LINK 潟吾違帥ч障 + (N) + TAB_LINK N 帥ч障 + TAB_GOTO URL絎違帥ч障 + (N) + TAB_GOTO N 帥ч障 TAB_GOTO_RELATIVE - $BAjBP(BURL$B$r;XDj$7$F?7$7$$%?%V$G3+$-$^$9(B - $B?t(B(N) + TAB_GOTO_RELATIVE $B$@$H!"(BN $BHVL\$N%?%V$G3+$-$^$9(B - CLOSE_TAB $B8=:_$N%?%V$rJD$8$^$9(B - $B?t(B(N) + CLOSE_TAB $B$@$H!"(BN $BHVL\$N%?%V$rJD$8$^$9(B - NEXT_TAB $B<!$N%?%V$K0\F0$7$^$9(B - $B?t(B(N) + NEXT_TAB $B$@$H!"(BN $B$@$1<!$N%?%V$K0\F0$7$^$9(B - PREV_TAB $BA0$N%?%V$K0\F0$7$^$9(B - $B?t(B(N) + PREV_TAB $B$@$H!"(BN $B$@$1A0$N%?%V$K0\F0$7$^$9(B - TAB_RIGHT $B8=:_$N%?%V$r1&$K0\F0$7$^$9(B - $B?t(B(N) + TAB_RIGHT $B$@$H!"8=:_$N%?%V$r(B N $B$@$11&$K0\F0$7$^$9(B - TAB_LEFT $B8=:_$N%?%V$r:8$K0\F0$7$^$9(B - $B?t(B(N) + TAB_LEFT $B$@$H!"8=:_$N%?%V$r(B N $B$@$1:8$K0\F0$7$^$9(B - TAB_MENU $B%?%VA*Br%a%K%e!<$rN)$A>e$2$^$9(B - $B%?%VA*Br%a%K%e!<$NA`:n$O%P%C%U%!A*Br%a%K%e!<$HF1MM$G$9!#(B + 後URL絎違帥ч障 + (N) + TAB_GOTO_RELATIVE N 帥ч障 + CLOSE_TAB 憜帥障 + (N) + CLOSE_TAB N 帥障 + NEXT_TAB 罨<帥腱糸障 + (N) + NEXT_TAB N 罨<帥腱糸障 + PREV_TAB 帥腱糸障 + (N) + PREV_TAB N 帥腱糸障 + TAB_RIGHT 憜帥劻腱糸障 + (N) + TAB_RIGHT 憜帥 N 劻腱糸障 + TAB_LEFT 憜帥綏腱糸障 + (N) + TAB_LEFT 憜帥 N 綏腱糸障 + TAB_MENU 帥御<ャ若腴>障 + 帥御<ャ若篏♂御<ャ若罕с -$B$^$?!"%^%&%9$G$NA`:n$b=PMh$^$9!#(B +障鴻с篏堺ャ障 - $B:8%\%?%s(B $B!D(B $B%?%V>e$G%/%j%C%/$9$k$H!"$=$N%?%V$K0\F0$7$^$9(B - $B%?%V$+$iJL$N%?%V$^$G%I%i%C%0$9$k$H!"%?%V$r0\F0$7$^$9!#(B - $B%j%s%/$+$i%?%V$^$G%I%i%C%0$9$k$H!"$=$N%?%V$G%j%s%/$r3+$-$^$9(B - $B1&>e6y$N!V(Bx$B!W$r%/%j%C%/$9$k$H!"8=:_$N%?%V$rJD$8$^$9(B - $BCf%\%?%s(B $B!D(B $B%?%V>e$G%/%j%C%/$9$k$H!"%?%V$rJD$8$^$9(B - $B1&%\%?%s(B $B!D(B $BFC$K$J$7(B(= $B%a%K%e!<$r3+$/(B) + 綏帥 帥筝с帥腱糸障 + 帥ャ帥障с違帥腱糸障 + 潟帥障с違帥с潟障 + 劽x憜帥障 + 筝帥 帥筝с帥障 + 劻帥 鴻(= <ャ若) -$B%*%W%7%g%s$H$7$F!"(B +激с潟 - open_tab_blank $B!D(B target $B$,(B _blank $B$+(B _new $B$N>l9g$O?7$7$$%?%V$G3+$/(B - $B%G%U%)%k%H$O(B OFF - close_tab_back $B!D(B $BLa$k;~$K%P%C%U%!$,:G8e$J$i%?%V$rJD$8$k(B - $B%G%U%)%k%H$O(B OFF (= Can't back...) + open_tab_blank target _blank _new 翫違帥ч + OFF + close_tab_back 祉<緇帥 + OFF (= Can't go back...) -$B$rDI2C$7$F$$$^$9!#(B +菴遵障 diff --git a/doc-jp/STORY.html b/doc-jp/STORY.html index c261b47..7f78106 100644 --- a/doc-jp/STORY.html +++ b/doc-jp/STORY.html @@ -1,190 +1,193 @@ <html> <head> -<title>w3mの開発について</title> +<title>w3m冴ゃ</title> </head> <body> -<h1>w3mの開発について</h1> +<h1>w3m冴ゃ</h1> <div align=right> 1999/2/18<br> -1999/3/8改訂<br> -伊藤 彰則<br> +1999/3/8壕<br> +篌 綵医<br> aito@fw.ipsj.or.jp </div> -<h2>はじめに</h2> -w3mは,WWWに対応したページャ/ブラウザで,テキストベースで動く. -w3mに最も近いアプリケーションとして,有名なテキストベースブラウザ -<a href="http://www.lynx.browser.org/">Lynx</a>がある.しかし,w3mには -Lynxにないいくつかの特徴がある.例えば, +<h2></h2> +w3m鐚WWW絲上若吾/吟э鴻若鴻у鐚 +w3m菴≪宴若激с潟鐚鴻若鴻 +<a href="http://www.lynx.browser.org/">Lynx</a>鐚鐚w3m +Lynxゃ劫彰鐚箴逸 <UL> -<LI>tableがレンダリングできる. -<LI>frameがレンダリングできる(frameをtableに変換して表示するだけ). -<LI>標準入力を読んで表示することができる. -(最近のLynx では,こんな風にして標準入力から文書を読むことができる -そうです: +<LI>table潟潟違с鐚 +<LI>frame潟潟違с(frametable紊茵腓冴)鐚 +<LI>罔羣ュ茯ц;腓冴с鐚 +(菴Lynx с鐚蘂罔羣ュ吾茯с +с鐚 <pre> lynx /dev/fd/0 < file </pre> -うん,Linuxでは確かに動くようです.) -<LI>軽くて小さい.stripした後のw3mのバイナリサイズは,Sparcの場合で -260KByte弱である(version beta-990217現在). -ちなみにLynxのバイナリは 1.8MB以上ある. +鐚Linuxс腆冴с鐚) +<LI>荵純絨鐚strip緇w3mゃ泣ゃ冴鐚Sparc翫 +260KByte綣宴с(version beta-990217憜)鐚 +<帥Lynxゃ 1.8MB篁ヤ鐚 </UL> -などだ.もちろん,Lynx は優れたブラウザで,w3mにない多くの機能を -持っている.Lynxにあってw3mにない機能は,例えば +鐚<鐚Lynx 吟эw3m紊罘純 +c鐚Lynxcw3m罘純鐚箴 <UL> -<LI>Cookie対応. -<LI>豊富なオプション設定. -<LI>多国語対応. +<LI>Cookie絲上鐚 +<LI>莟絲激с活┃絎鐚 +<LI>紊処絲上鐚 </UL> -などなど.Lynx には豊富なドキュメントもあり,一方w3mにはほとんどまともな -ドキュメントがない.ドキュメントは今後の課題だ. +鐚Lynx 莟絲ャ<潟鐚筝w3m祉障 +ャ<潟鐚ャ<潟篁緇茯臥鐚 <P> -というわけで,w3mは既存のブラウザ(Netscapeはもちろん,Lynxも)を代替 -するものでは<strong>ない</strong>.それではw3mは何のためにあるのか? -それは,日常的に「ちょっと」 web を使うためだ.専用線で接続された環境で, -「ちょっとwebを見に行きたい」とき,Netscapeを立ちあげるのはイライラする. -Lynxも立ちあがるのにちょっと間がある. -その点,w3mは一瞬で立ちあがり,マシンにほとんど負担をかけない. -そこで情報を見て,もっと詳細に見たいときに,はじめて他のブラウザを使う -のだ.もっとも私の場合,ほとんどはw3mだけで十分なのだが. +эw3m√(Netscape<鐚Lynx)篁f +с<strong></strong>鐚сw3m篏鐚 +鐚ュ幻<c web 篏帥鐚絨膩ф・膓医э +<cweb荀茵鐚Netscape腴<ゃゃ鐚 +Lynx腴<<c鐚 +刻w3m筝х<鐚激潟祉莢鐚 +ф宴荀鐚c荅括完荀鐚篁吟篏帥 +鐚c腱翫鐚祉w3mу鐚 -<h2>w3mの誕生</h2> +<h2>w3m茯</h2> <P> -w3m の前身は,fm -というページャ(moreやlessの親戚)だった.fmが書かれたのは1991年以前 -(記録していなかったので正確な日付はわからない)で,当時まだWWWは -一般的ではなかった(存在しなかったかも).その当時「ブラウザ」といえば,lessなどの -ファイルを見るツールのことを指していた. +w3m 荳鐚fm +若吾(moreless荀)c鐚fm吾1991綛岩札 +(荐蚊cфg∈ヤ)э綵障WWW +筝сc(絖c)鐚綵吟逸less +<ゃ荀若鐚 <P> -fm は,当時私が書いていた -研究用のプログラムをデバッグするために書いたものだ.プログラムの状態 -をトレースするため,プログラムの内部状態を延々とファイルにダンプし, -それを見ながらデバッグをしていた.ある時点での内部状態を1行にプリント -していたため,そのファイルは1行が数百文字あった.それをmoreやlessで -見ると,行が折り返されるため,何が何だかわからなくなってしまうのだった. -そこで私は,行を折り返さないページャであるfmを書いた.物理的な1行は -画面の上でも1行で,画面からはみ出した部分を見るには,画面全体をずらす -という設計にした.当時私は80x24の画面を使っていたので,fm はデバッグ -にとても役立った. +fm 鐚綵腱吾 +腥句違違吾鐚違倶 +若鴻鐚違倶綮吟<ゃ潟鐚 +荀違鐚鴻с倶1茵潟 +鐚<ゃ1茵亥丈絖c鐚moreless +荀鐚茵菴鐚篏篏c障c鐚 +х鐚茵菴若吾cсfm吾鐚1茵 +脂≪筝с1茵э脂≪水冴荀鐚脂√篏 +荐荐鐚綵腱80x24脂≪篏帥cэfm +綵合c鐚 <P> -そのうち,私もWWWの存在を知って使いはじめた.当時使っていたブラウザは, -XMosaic と Chimera だった.特に Chimera は軽いので愛用していた. -興味があったので HTML と HTTP の勉強をしてみたが,案外簡単なので, -これなら自分でもブラウザが書けるのではないかと思った.当時のHTTPは -GOPHERプロトコルに毛が生えた程度で,非常に簡単なものだった.また, -HTML は 2.0 で,行の折り返しと箇条書きがほとんど全てだった. -そこで,fm にちょっと手を入れて,WWWブラウザを作ってみた.これがw3mだった. -ちなみに,w3m は WWW-wo-Miru (日本語だ)の略で,fm (File-wo-Miru)に -倣った.最初に w3m を書いたのは,1995年初頭だったと思う. +¥腱WWW絖ャc篏帥鐚綵篏帥c吟鐚 +XMosaic Chimera c鐚鴻 Chimera 荵純ф鐚 +潟c HTML HTTP 綣激帥鐚罅紊膂≦э +с吟吾сc鐚綵HTTP +GOPHER潟罸腮綺э絽吾膂≦c鐚障鐚 +HTML 2.0 э茵菴膊≧吾祉c鐚 +эfm <cャ鐚WWW吟篏c帥鐚w3mc鐚 +<帥鐚w3m WWW-wo-Miru (ユ茯)ャэfm (File-wo-Miru) +cc鐚 w3m 吾鐚1995綛翫c鐚 -<h2>w3mの没落と再生</h2> +<h2>w3m羃∴純</h2> <p> -それ以来,ずっと私は w3m を「ページャ」として使っていた.ファイルや -電子メール,マニュアルなどを読むときに,lessの代わりにしていたのだ. -w3mでwebを見ることも時々あったが,その後 w3m で正常に見られないページが -多くなった(その多くはtableを使っていた)こともあって,webブラウザと -してはほとんど使わなくなっていた.一度 table のレンダリングを検討 -したことがあったが,難しいので放ってあった. +篁ユワc腱 w3m 若吾c篏帥c鐚<ゃ +糸<若鐚ャ≪茯鐚less篁c鐚 +w3mweb荀c鐚緇 w3m фe幻荀若吾 +紊c(紊table篏帥c)c鐚web吟 +祉篏帥c鐚筝綺 table 潟潟違罎荐 +c鐚cф障cc鐚 <P> -もう一度 w3m に手を入れる気になったのは,1998年のことだ.動機は2つあった. -その当時,私は客員研究員としてボストン大学に滞在しており,多少時間に余裕があった -ことが一つ.もう一つは,研究日誌を HTML で書いていて,結果をどうしても表に -したくなったためだ.それまでは表を <pre>..</pre>で書いていたのだが, -plain textで表を作るのがわずらわしくて仕方なかった.とうとう我慢できなくなって -<table>タグを使ったが,そうすると今度は Netscape を使わないと日誌が -見られなくなってしまった.そこで,w3m で table の -レンダリングができるようにしようと試みた. +筝綺 w3m ャ羂c鐚1998綛眼鐚罘2ゃc鐚 +綵鐚腱絎√∞腥九<鴻喝ぇ絖羯鐚紊絨篏茖c +筝わ筝ゃ鐚腥倶ヨ HTML ф吾鐚腟茵 +c鐚障с茵 <pre>..</pre>ф吾鐚 +plain textц;篏篁鴻c鐚≪сc +<table>帥違篏帥c鐚篁綺 Netscape 篏帥ヨ +荀c障c鐚эw3m table +潟潟違с荅帥鐚 <P> -私としては,それほど複雑でない表を見ることができれば十分だった.ところが, -半端にtableに対応した結果,画面のレイアウトにtableを使っているページの -表示がぐちゃぐちゃになってしまった.結局,「表が見られて」「その他のページ -もそこそこに見られる」ようにするためには,tableの表示が完璧に近くなければ -ならないのだった.茨の道だ. +腱鐚祉茲с茵荀с医c鐚鐚 +腴table絲上腟鐚脂≪ゃ≪table篏帥c若吾 +茵腓冴<<c障c鐚腟絮鐚茵荀篁若 +荀鐚table茵腓冴絎с菴 +c鐚鐚 <P> -結局,結構時間がかかったが,何とか -実用になるものができたと思う.table の実装に気をよくして,次に form を実装 -した.これで,w3mはほぼ実用になるブラウザとして生まれ変わったのだ. +腟絮鐚腟罕c鐚篏 +絎с鐚table 絎茖羂鐚罨< form 絎茖 +鐚эw3m祉弱吟障紊c鐚 -<h2>w3mでのtableのレンダリングアルゴリズム</h2> +<h2>w3mсtable潟潟違≪眼冴</h2> -HTMLのtableのレンダリングは結構難しい.LaTeX の tabular のように, -「表の各列の幅を指定するか,さもなければ必要な最大の幅を取る」 -というのなら話は簡単なのだが,HTMLのtableは「画面に適当に収まるように」 -列の幅を設定して,表の内容を適当に折りかえさなければならない. -幅の決定をいいかげんにすると,非常に表が見づらくなってしまう. -また,tableは入れ子にできるので,それが話を一層ややこしくしている. -そこで,w3mでは次のようなアルゴリズムで幅を決定している. +HTMLtable潟潟違腟罕c鐚LaTeX tabular 鐚 +茵綛絎鐚医荀紊с綛 +荅宴膂≦鐚HTMLtable脂≪綵障 +綛荐絎鐚茵絎鴻綵違鐚 +綛羆阪鐚絽吾茵荀ャc障鐚 +障鐚tableャ絖сэ荅宴筝絮ゃ鐚 +эw3mс罨<≪眼冴у羆阪鐚 <OL> -<LI>まず,各列の内容の最大幅と最小幅を求める.最大幅というのは, -もしいくらでも広い幅が取れたとしたら,最大何桁になるかというもの -だ.一般的には,<BR>や<P>で区切られた段落の長さになる. -最小幅は,それより列の幅が狭いと内容が詰められないという限界の幅 -である.表の内容が日本語だけの場合には最小幅は常に2であり, -internationalization という単語が含まれていれば最小幅は20 -である.また,表の中に<pre>..</pre>があった場合, -その一行の長さの最大値が最小幅になる. -<LI>もし,WIDTH属性で列の幅が指定してあれば,列の幅をその値で固定 -する.ただし,その幅が最小幅よりも小さければ,列の幅を最小幅で固定する. -<LI>列の最大幅(または固定幅)を合計して,画面の幅よりも広いかどうかを調べる. -もし合計が画面に収まるなら,その値を各列の幅として使う. -<LI>もし合計が画面に収まらなければ,次のようにして幅を決定する. +<LI>障鐚絎鴻紊у絨鎶羆鐚紊у鐚 +с綺綛鐚紊т罅 +鐚筝鐚<BR><P>у阪罧笈純激鐚 +絨鎶鐚綛絎鴻荅違綛 +с鐚茵絎鴻ユ茯翫絨鎶絽吾2с鐚 +internationalization 茯障井絨鎶20 +с鐚障鐚茵筝<pre>..</pre>c翫鐚 +筝茵激紊уゃ絨鎶鐚 +<LI>鐚WIDTH絮су綛絎逸綛ゃу阪 +鐚鐚綛絨鎶絨逸綛絨鎶у阪鐚 +<LI>紊у(障阪綛)荐鐚脂≪綛綺茯帥鴻鐚 +荐脂≪障鐚ゃ綛篏帥鐚 +<LI>荐脂≪障逸罨<綛羆阪鐚 <OL> -<LI>画面の幅から,幅が固定された列の幅の合計を引く.これを W とする. -<LI>幅が固定されていない列に対して,各列の最大幅の対数に比例して W を配分する. -<LI>もし配分された幅が最小幅よりも小さければ,その列の幅を最小幅で固定し, -幅の配分をやり直す. +<LI>脂≪綛鐚綛阪綛荐綣鐚 W 鐚 +<LI>綛阪絲障鐚紊у絲丈違罸箴 W 鐚 +<LI>綛絨鎶絨逸綛絨鎶у阪鐚 +綛眼鐚 </OL> </OL> -幅の配分を最大幅の対数に比例させているが,これでいいのかどうか検討を要する. -ただし,最大幅そのものに比例させると悲惨なことになる.table を画面レイアウト -に使っていた場合,ある列に長い文章があると,その列が画面の幅のほとんどを使って -しまうからだ.対数じゃなくて n 乗根でもいいかもしれない. +綛紊у絲丈違罸箴鐚с罎荐荀鐚 +鐚紊у罸箴我鐚table 脂≪ゃ≪ +篏帥c翫鐚激腴鐚脂≪綛祉篏帥c +障鐚絲丈違 n 箙鴻с鐚 <P> -上記のアルゴリズムでは,画面の幅が既知であることが前提になっている.ところが, -これでは困る場合がある.どういう場合かというと,表が入れ子になっている場合だ. -外側の表の列幅がわからないと内側の表がレンダリングできないが,内側の表を -レンダリングしてみないと外側の表の幅が決定できないという矛盾に陥る.WIDTH属性 -が指定してあれば問題はないのだが,そうでない場合には,結局 -「内側の表の幅は,外側の表の幅の0.8倍」で決め打ちしてしまうことにした. -ほとんどの場合はこれで問題ないが,ある表の中に表を入れ子にして2つ並べると, -外側の表が必ず画面をはみだしてしまうようになった.もし厳密にこれを画面に収め -ようとすると,一旦レンダリングして全体の幅を調べたあと,幅を設定しなおして -もう一度レンダリングするという過程を収束するまで繰り返さなければならない. -Netscapeは,多分これをやっているのだろう. +筝荐≪眼冴с鐚脂≪綛∝ャсc鐚鐚 +с違翫鐚翫鐚茵ャ絖c翫鐚 +紊眼茵綛眼茵潟潟違с鐚眼茵 +潟潟違帥紊眼茵綛羆阪с障ャ鐚WIDTH絮 +絎医馹鐚с翫鐚腟絮 +眼茵綛鐚紊眼茵綛0.8ф浦<障鐚 +祉翫у馹鐚茵筝茵ャ絖2や研鴻鐚 +紊眼茵綽脂≪帥障c鐚ウ絲脂≪ +鐚筝潟潟違篏綛茯帥鴻鐚綛荐絎 +筝綺潟潟違腮障х弘菴違鐚 +Netscape鐚紊c鐚 -<h2>利用したライブラリ</h2> +<h2>ゃ</h2> -w3m は, +w3m 鐚 <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/">Boehm GC</a> -というライブラリを利用している.これは私が書いたものではないが, -コンパイル時の便宜を考えて配布パッケージに含めている. -なお,libwww は使っていない. +ゃ鐚腱吾с鐚 +潟潟ゃ箴水絽宴若吾鐚 <P> -Boehm GCは,Cから使えるガベージコレクタだ.table を実装したあたりにこれを -使いはじめたのだが,非常に快適だった.GCなしでは,w3mにtableやformを実装 -する根性が私にあったかどうか疑わしい.Boehm GCの利用については,「 +# Boehm GC w3m-0.4.2 篁ラ宴若吾障障 +<P> +鐚libwww 篏帥c鐚 +<P> +Boehm GC鐚C篏帥若吾潟帥鐚table 絎茖 +篏帥鐚絽吾綽c鐚GCс鐚w3mtableform絎茖 +号с腱c鐚Boehm GCゃ鐚 <a href="http://homepage2.nifty.com/aito/gc/gc.html"> -Boehm GCを使おう</a>」という文章を書いたので,それも見ていただけると良い -と思う. +Boehm GC篏帥</a>腴吾э荀 +鐚 <P> -beta-990304より前のバージョンでは, -<a href="http://home.cern.ch/~orel/libftp/libftp/libftp.html">LIBFTP</a>と -いうライブラリを使っていた. -libftp を使った理由は,FTPプロトコルが HTTP に比べて面倒だったためだ. -しかし,ライセンスの問題がありそうだということなので,同等の関数(のサブセット) -を自前で書いてしまった. +beta-990304若吾с潟с鐚 +<a href="http://home.cern.ch/~orel/libftp/libftp/libftp.html">LIBFTP</a> +ゃ篏帥c鐚 +libftp 篏帥c宴鐚FTP潟 HTTP 罸鴻√c鐚 +鐚ゃ祉潟鴻馹э膈∽(泣祉) +ф吾障c鐚 <P> -ちなみに,w3mはUNIXの正規表現ライブラリと curses ライブラリを使っていない. -どちらも自前の関数群だ.これらを自前で用意した理由は,fmを書いた当時, -日本語の通るまともでフリーな正規表現とcursesのライブラリがなかったためだ. -現在ではどちらも存在するし,他のライブラリを使った方が速そうなのだが, -面倒なので現在までこの実装を引きずっている. +<帥鐚w3mUNIX罩h頫憗ゃ curses ゃ篏帥c鐚 +<∽亥召鐚х宴鐚fm吾綵鐚 +ユ茯障с若罩h頫憗cursesゃc鐚 +憜с<絖鐚篁ゃ篏帥c鴻鐚 +√х憜障с絎茖綣c鐚 -<h2>今後の予定</h2> +<h2>篁緇篋絎</h2> -...ない.w3mは軽快さが売りなので,あまり機能を満載してしまうとw3m独自の -良さが失われるからだ.とはいっても,まだバグが多いので,それらのfixは -していきたいと思っている. +...鐚w3m荵遵辱紕蚊э障罘純羣莠障w3m +紊宴鐚c鐚障違紊эfix +c鐚 </body> </html> diff --git a/doc-jp/keymap.default b/doc-jp/keymap.default index 0ecf14f..174e4ed 100644 --- a/doc-jp/keymap.default +++ b/doc-jp/keymap.default @@ -11,6 +11,7 @@ # Left : LEFT, ^[[D keymap C-@ MARK +keymap C-_ GOTO_HOME keymap C-a LINE_BEGIN keymap C-b MOVE_LEFT keymap C-e LINE_END diff --git a/doc-jp/keymap.lynx b/doc-jp/keymap.lynx index 869c716..e4085c8 100644 --- a/doc-jp/keymap.lynx +++ b/doc-jp/keymap.lynx @@ -46,7 +46,7 @@ keymap - PREV_PAGE keymap . RIGHT keymap / SEARCH keymap : MARK_URL -keymap ; MARK_WORD +keymap ";" MARK_WORD keymap < SHIFT_LEFT keymap = INFO keymap > SHIFT_RIGHT diff --git a/doc-jp/menu.default b/doc-jp/menu.default index 67f0361..234c46d 100644 --- a/doc-jp/menu.default +++ b/doc-jp/menu.default @@ -7,29 +7,29 @@ # end # # MENU_ID -# Main: メインメニュー -# Select: バッファ選択メニュー +# Main: <ゃ潟<ャ +# Select: ♂御<ャ menu Main - func "戻る (b)" BACK "b" - popup "バッファ選択 (s)" Select "s" - popup "タブ選択 (t)" SelectTab "tT" - func "ソースを表示 (v)" VIEW "vV" - func "ソースを編集 (e)" EDIT "eE" - func "ソースを保存 (S)" SAVE "S" - func "再読み込み (r)" RELOAD "rR" - nop "────────" - func "リンクを表示 (a)" GOTO_LINK "a" - func "新タブで表示 (n)" TAB_LINK "nN" - func "リンクを保存 (A)" SAVE_LINK "A" - func "画像を表示 (i)" VIEW_IMAGE "i" - func "画像を保存 (I)" SAVE_IMAGE "I" - func "フレーム表示 (f)" FRAME "fF" - nop "────────" - func "ブックマーク (B)" BOOKMARK "B" - func "ヘルプ (h)" HELP "hH" - func "オプション (o)" OPTIONS "oO" - nop "────────" - func "終了 (q)" QUIT "qQ" + func "祉 (b)" BACK "b" + popup "♂御 (s)" Select "s" + popup "帥御 (t)" SelectTab "tT" + func "純若鴻茵腓 (v)" VIEW "vV" + func "純若鴻膩 (e)" EDIT "eE" + func "純若鴻篆絖 (S)" SAVE "S" + func "茯粋昭 (r)" RELOAD "rR" + nop "" + func "潟茵腓 (a)" GOTO_LINK "a" + func "違帥ц;腓 (n)" TAB_LINK "nN" + func "潟篆絖 (A)" SAVE_LINK "A" + func "糸茵腓 (i)" VIEW_IMAGE "i" + func "糸篆絖 (I)" SAVE_IMAGE "I" + func "若茵腓 (f)" FRAME "fF" + nop "" + func "若 (B)" BOOKMARK "B" + func " (h)" HELP "hH" + func "激с (o)" OPTIONS "oO" + nop "" + func "腟篋 (q)" QUIT "qQ" end diff --git a/doc-jp/menu.submenu b/doc-jp/menu.submenu index 062fac1..032ad8a 100644 --- a/doc-jp/menu.submenu +++ b/doc-jp/menu.submenu @@ -7,38 +7,38 @@ # end # # MENU_ID -# Main: メインメニュー -# Select: バッファ選択メニュー +# Main: <ゃ潟<ャ +# Select: ♂御<ャ menu Main - func "戻る (b)" BACK "b" - popup "バッファ操作>(f)" Buffer "fF" - popup "リンク操作 >(l)" Link "lL" - nop "────────" - popup "ブックマーク>(B)" Bookmark "B" - func "ヘルプ (h)" HELP "hH" - func "オプション (o)" OPTIONS "oO" - nop "────────" - func "終了 (q)" QUIT "qQ" + func "祉 (b)" BACK "b" + popup "≧篏>(f)" Buffer "fF" + popup "潟篏 >(l)" Link "lL" + nop "" + popup "若>(B)" Bookmark "B" + func " (h)" HELP "hH" + func "激с (o)" OPTIONS "oO" + nop "" + func "腟篋 (q)" QUIT "qQ" end menu Buffer - popup "バッファ選択 (s)" Select "s" - func "ソースを表示 (v)" VIEW "vV" - func "ソースを編集 (e)" EDIT "eE" - func "ソースを保存 (S)" SAVE "S" - func "再読み込み (r)" RELOAD "rR" + popup "♂御 (s)" Select "s" + func "純若鴻茵腓 (v)" VIEW "vV" + func "純若鴻膩 (e)" EDIT "eE" + func "純若鴻篆絖 (S)" SAVE "S" + func "茯粋昭 (r)" RELOAD "rR" end menu Link - func "リンクを表示 (a)" GOTO_LINK "a" - func "リンクを保存 (A)" SAVE_LINK "A" - func "画像を表示 (i)" VIEW_IMAGE "i" - func "画像を保存 (I)" SAVE_IMAGE "I" - func "フレーム表示 (f)" FRAME "fF" + func "潟茵腓 (a)" GOTO_LINK "a" + func "潟篆絖 (A)" SAVE_LINK "A" + func "糸茵腓 (i)" VIEW_IMAGE "i" + func "糸篆絖 (I)" SAVE_IMAGE "I" + func "若茵腓 (f)" FRAME "fF" end menu Bookmark - func "ブックマークを読み込む (b)" BOOKMARK "bB" - func "ブックマークに追加 (a)" ADD_BOOKMARK "aA" + func "若茯粋昭 (b)" BOOKMARK "bB" + func "若菴遵 (a)" ADD_BOOKMARK "aA" end diff --git a/doc-jp/w3m.1 b/doc-jp/w3m.1 index 89aacb6..08caf8e 100644 --- a/doc-jp/w3m.1 +++ b/doc-jp/w3m.1 @@ -1,5 +1,5 @@ .\" -.TH W3M 1 "Jun 6 2000" "UNIX" +.TH W3M 1 "2016-04-02" "w3m 0.5.3" .SH NAME .B w3m \- text base pager/WWW browser @@ -7,164 +7,155 @@ .B w3m [options] [file | URL] .SH DESCRIPTION -.SS はじめに +.SS .B w3m -は,テキストベースのページャ/WWWブラウザです.これを使うと, +鐚鴻若鴻若吾/WWW吟с鐚篏帥鐚 .I kterm\fR(1) -などのキャラクタ端末上で,ローカルファイルを見たり,WWWの内容を見たりすること -ができます. +c睡筝э若<ゃ荀鐚WWW絎鴻荀 +с障鐚 .PP -引数にファイル名を指定すればそのファイルを表示し,URLを指定すればその内容を表 -示します.何も指定しなければ,標準入力の内容を表示します.ただし,標準入力が +綣違<ゃ絎違<ゃ茵腓冴鐚URL絎違絎鴻茵 +腓冴障鐚篏絎逸罔羣ュ絎鴻茵腓冴障鐚鐚罔羣ュ .I tty\fR(4) -である場合には,何もせずに終了します. +с翫鐚篏腟篋障鐚 .PP -オプションは次の通りです. +激с潟罨<с鐚 .TP -.BI + 番号 -起動後,指定の行番号に移動する. +.BI + +莎桁緇鐚絎茵垩腱糸鐚 .TP -.BI \-t\ 幅 -タブの幅を指定する.デフォルトは 8. +.BI \-t\ 綛 +帥綛絎鐚 8鐚 .TP .B \-r -text/plainの文書を表示する場合,重ね打ちによる強調文字を表示しない. -このオプションを付けない場合, +text/plain吾茵腓冴翫鐚<綣決炊絖茵腓冴鐚 +激с潟篁翫鐚 ``A^H_'' -はAのアンダーラインとして表示され, +A≪潟若ゃ潟茵腓冴鐚 ``A^HA'' -はAのボールドとして表示される. +A若茵腓冴鐚 .TP -.BI \-l\ 行数 -標準入力の内容を表示するときに保存される最大行数を指定する. -デフォルトは10000. +.BI \-l\ 茵 +罔羣ュ絎鴻茵腓冴篆絖紊ц違絎鐚 +10000鐚 .TP -.B \-s -Shift_JISコードで表示する. -.TP -.B \-e -EUCコードで表示する. -.TP -.B \-j -JIS (ISO-2022-JP)コードで表示する. +.BI \-O\ 絖潟若 +茵腓冴篏帥絖潟若絎. .TP -.BI \-O\ e|s|j|N|m -表示に使う文字コードを指定する. +.BI \-I\ 絖潟若 +ュ吾絖潟若絎鐚 .TP -.BI \-I\ e|s -入力文書の文字コードを指定する. -.TP -.BI \-T\ タイプ -表示する文書のタイプを指定する.この指定がない場合,ファイル名の拡張子によって -自動判別される.判別できない場合はtext/plainとみなされる. +.BI \-T\ 帥ゃ +茵腓冴吾帥ゃ絎鐚絎翫鐚<ゃ≦宍絖c +ゅャ鐚ゅャс翫text/plain帥鐚 .PP .RS -.B 例: +.B 箴鐚 .TP cat hoge*.html | w3m -T text/html -標準入力からHTMLファイルを読んで表示する +罔羣ュHTML<ゃ茯ц;腓冴 .TP w3m -T text/plain hoge*.html -HTMLファイルのソースを表示する +HTML<ゃ純若鴻茵腓冴 .RE .TP .B \-m -Internet messageモードで表示する.Internet messageモードの場合, -ヘッダの内容を見て,Content-Type: があればそれを参考にする.電子メールや -ネットニュースの記事を読むときに便利. +Internet message≪若ц;腓冴鐚Internet message≪若翫鐚 +絎鴻荀鐚Content-Type: 違鐚糸<若 +ャ若鴻荐篋茯箴水鐚 .TP .B \-v -visual startupモード. -コマンドライン引数に URL やファイルを指定していなくても -初期画面が表示される. +visual startup≪若鐚 +潟潟ゃ喝違 URL <ゃ絎 +脂≪茵腓冴. .TP .B \-B -Bookmarkを表示する. +Bookmark茵腓冴鐚 .TP .BI \-bookmark\ file -Bookmark のファイルを指定する. +Bookmark <ゃ絎鐚 .TP .B \-M -カラー表示をしない. +取;腓冴鐚 .TP .B \-F -フレームを自動表示する. +若茵腓冴鐚 .TP -.B \-S -連続する空行を1行にまとめて表示する. +.B \-s +g腥肴1茵障茵腓冴鐚 .TP .B \-X .B w3m -終了時に,以前の画面に戻らない. +腟篋鐚篁ュ脂≪祉鐚 .TP .BI \-title =TERM -端末のタイトル文字列を設定する. +腴帥ゃ絖荐絎. .TP .B \-W -折り返しサーチを使うかどうかを切りかえる. +菴泣若篏帥鐚 .TP .BI \-o\ option=value -オプションを指定する. +激с潟絎鐚 .TP .B \-show-option -利用できるオプションを表示する. +с激с潟茵腓冴. .TP .B \-no\-proxy -プロキシを利用しない. +激鐚 .TP .B \-no\-mouse -マウスを利用しない. +鴻鐚 .TP .B \-cookie -クッキーを処理する. +若鐚 .TP .B \-no\-cookie -クッキーを処理しない. +若鐚 .TP .B \-num -行番号を表示する. +茵垩茵腓冴鐚 .TP .B \-dump -URLの内容を読みこみ,整形されたバッファの内容を標準出力に書き出す. -文書の幅は80桁と仮定される.この幅は,次の +URL絎鴻茯帥随翫就<絎鴻罔羣阪吾冴鐚 +吾綛80罅篁絎鐚綛鐚罨< .B \-cols -オプションで変更可能. +激с潟у翫緒 .TP -.BI \-cols\ 幅 +.BI \-cols\ 綛 .B \-dump -オプションを使う場合に,文書の幅を指定する. +激с潟篏帥翫鐚吾綛絎鐚 .TP -.BI \-ppc\ ピクセル数 -文字の幅を指定する.デフォルトは 8.0. +.BI \-ppc\ 祉 +絖綛絎鐚 8.0鐚 .TP .B \-dump_source -URLの内容を読みこみ,整形せずに標準出力に書き出す.漢字コード変換もされない. +URL絎鴻茯帥随翫就罔羣阪吾冴鐚羲√潟若紊鐚 .TP .B \-dump_head -URLにアクセスし,ヘッダ情報を出力する. +URL≪祉鴻鐚宴阪鐚 .TP .B \-dump_both -URLにアクセスし,ヘッダ情報とHTMLソースを出力する. +URL≪祉鴻鐚宴HTML純若鴻阪鐚 .TP .B \-dump_extra -URLにアクセスし,拡張情報とヘッダ情報とHTMLソースを出力する. +URL≪祉鴻鐚≦宍宴宴HTML純若鴻阪鐚 .TP .BI \-post\ file -ファイルの内容をPOSTする. +<ゃ絎鴻POST鐚 .TP .BI \-header\ string -HTTP要求ヘッダを追加する. +HTTP荀羆菴遵鐚 .TP .BI \-config\ file -configのファイルを指定する. +config<ゃ絎鐚 .TP .B -help -ヘルプを表示する. +茵腓冴. .TP .B -version -w3m versionを表示する. -.SS 文書の表示内容 -HTML文書を表示しているときには,次のような表示になります. +w3m version茵腓冴. +.SS 吾茵腓阪絎 +HTML吾茵腓冴鐚罨<茵腓冴障鐚 .in +8n .TS box tab(;); @@ -172,342 +163,342 @@ l|c|c l|c|c l|c|c l|c|c. -;カラー表示時;白黒表示時 +;取;腓堺;初茵腓堺 _ -リンク;青色;下線 -インライン画像;緑色;反転表示 -FORMの入力部分;赤色;反転表示 +潟;;筝膩 +ゃ潟ゃ括糸;膩;荵∵;腓 +FORMュ;莎よ;荵∵;腓 .TE .PP -カラー表示時の色は,オプション設定パネル +取;腓堺蚊鐚激с活┃絎 .B o -で変更することができます. -.SS 起動後の使いかた -起動した後は,1文字のコマンドをキーボードから入力することで +у眼с障鐚 +.SS 莎桁緇篏帥 +莎桁緇鐚1絖潟潟若若ュ .B w3m -を操作します. +篏障鐚 .PP -コマンドには次のようなものがあります.以下の記述では, +潟潟罨<障鐚篁ヤ荐菴違с鐚 .B C-x -はコントロールxを表します.また, +潟潟若x茵障鐚障鐚 .B SPC -はスペースバー, +鴻若鴻種 .B RET -はリターンキー, +帥若潟種 .B ESC -はエスケープキーです. +鴻宴若若с鐚 .PP -ここで書いてあるのは,オリジナル版のキー操作です. +ф吾鐚吾惹篏с鐚 .\" \fIlynx\fr(1) -.\" 風のキー操作用にコンパイルしてあるものについては, +.\" 蘂惹篏潟潟ゃゃ鐚 .\" \fIw3m_lynx(1) -.\" をごらんください. -.SS ページ/カーソル移動 +.\" 鐚 +.SS 若/若純腱糸 .TP 1i .B SPC, C-v -次のページを表示します. +罨<若吾茵腓冴障鐚 .TP .B b, "ESC v" -前のページを表示します. +若吾茵腓冴障鐚 .TP -.B l, C-f, 右矢印キー -カーソルを右に移動します. +.B l, C-f, 勆√違 +若純劻腱糸障鐚 .TP -.B h, C-b, 左矢印キー -カーソルを左に移動します. +.B h, C-b, 綏√違 +若純綏腱糸障鐚 .TP -.B j, C-n, 下矢印キー -カーソルを下に移動します. +.B j, C-n, 筝√違 +若純筝腱糸障鐚 .TP -.B k, C-p, 上矢印キー -カーソルを上に移動します. +.B k, C-p, 筝√違 +若純筝腱糸障鐚 .TP .B J -画面を1行上にスクロールします. +脂≪1茵筝鴻若障鐚 .TP .B K -画面を1行下にスクロールします. +脂≪1茵筝鴻若障鐚 .TP .B ^ -行頭に移動します. +茵腱糸障鐚 .TP .B $ -行末に移動します. +茵腱糸障鐚 .TP .B w -次の単語に移動します. +罨<茯腱糸障鐚 .TP .B W -前の単語に移動します. +茯腱糸障鐚 .TP .B > -画面全体を右にずらします.(表示内容を左にずらす) +脂√篏劻障鐚(茵腓阪絎鴻綏) .TP .B < -画面全体を左にずらします.(表示内容を右にずらす) +脂√篏綏障鐚(茵腓阪絎鴻劻) .TP .B ". " -画面全体を1文字右にずらします.(表示内容を左にずらす) +脂√篏1絖劻障鐚(茵腓阪絎鴻綏) .TP .B ", " -画面全体を1文字左にずらします.(表示内容を右にずらす) +脂√篏1絖綏障鐚(茵腓阪絎鴻劻) .TP .B g, M-< -文書のいちばん上の行に移動します. +吾<違筝茵腱糸障鐚 .TP .B G, M-> -文書のいちばん下の行に移動します. +吾<違筝茵腱糸障鐚 .TP .B "ESC g" -画面下で行番号を入力し,そこで指定した行に移動します. -ここで +脂≫ц垩ュ鐚ф絎茵腱糸障鐚 + .B $ -を入力すると,最終行に移動します. +ュ鐚腟茵腱糸障鐚 .TP .B Z -カーソルのある位置を行の中央に移動します. +若純篏臀茵筝紊腱糸障鐚 .TP .B z -カーソルのある行を画面の中央に移動します. +若純茵脂≪筝紊腱糸障鐚 .TP .B TAB -次のリンクに移動します. +罨<潟腱糸障鐚 .TP .B C-u, "ESC TAB" -前のリンクに移動します. +潟腱糸障鐚 .TP .B [ -最初のリンクに移動します. +潟腱糸障鐚 .TP .B ] -最後のリンクに移動します. -.SS ハイパーリンク操作 +緇潟腱糸障鐚 +.SS ゃ若潟篏 .TP .B RET -現在カーソルがあるリンクが指す先の文書を読みこみます. +憜若純潟吾茯帥帥障鐚 .TP .B a, "ESC RET" -現在カーソルがあるリンクが指す先の文書をファイルに保存します. +憜若純潟吾<ゃ篆絖障鐚 .TP .B u -現在カーソルがあるリンクが指す先のURLを表示します. +憜若純潟URL茵腓冴障鐚 .TP .B i -リンクに関連付けられた画像へのURLの表示します. +潟∫d糸吾URL茵腓冴障鐚 .TP .B I -現在カーソルがあるリンクに対応する画像を表示します. +憜若純潟絲上糸茵腓冴障鐚 .TP .B "ESC I" -現在カーソルがあるリンクが指す画像をファイルに保存します. +憜若純潟糸<ゃ篆絖障鐚 .TP .B ":" -URL風の文字列をリンクにします.この機能は,HTMLでない文書を -読んでいるときにも有効です. +URL蘂絖潟障鐚罘純鐚HTMLс吾 +茯с鴻с鐚 .TP .B "ESC :" -Message-ID風の文字列を,news: のリンクにします.この機能は,HTMLでない文書を -読んでいるときにも有効です. +Message-ID蘂絖鐚news: 潟障鐚罘純鐚HTMLс吾 +茯с鴻с鐚 .TP .B c -現在の文書のURLを表示します. +憜吾URL茵腓冴障鐚 .TP .B = -現在の文書に関する情報を表示します. +憜吾≪宴茵腓冴障鐚 .TP .B C-g -ページ中での現在位置を表示します. +若娯賢с憜篏臀茵腓冴障鐚 .TP .B C-h -URL履歴を表示します. +URL絮ユ眼茵腓冴障鐚 .TP .B F -<FRAMESET>を含む文書を表示しているときに,<FRAME>タグの指す複数の文書を1つの -文書に変換して表示します. +<FRAMESET>吾茵腓冴鐚<FRAME>帥違茲違吾1ゃ +吾紊茵腓冴障鐚 .TP .B M -現在見ているページを,外部ブラウザを使って表示します. -.B 2M, 3M -で2番目と3番目のブラウザを使います. +憜荀若吾鐚紊吟篏帥c茵腓冴障鐚 +.B 2M, 3M, ..., 9M +2鐚3鐚9吟篏帥障鐚 .TP .B "ESC M" -現在のリンク先を,外部ブラウザを使って表示します. -.B "2ESC M", "3ESC M" -で2番目と3番目のブラウザを使います. -.SS ファイルとURL関係の操作 +憜潟鐚紊吟篏帥c茵腓冴障鐚 +.B "2ESC M", "3ESC M", ..., "9ESC M" +2鐚3鐚9吟篏帥障鐚 +.SS <ゃURL≫篏 .TP .B U -URLを指定して開きます. +URL絎障鐚 .TP .B V -ローカルファイルを指定して開きます. +若<ゃ絎障鐚 .TP .B @ -コマンドを実行し,結果を全部読んでから表示します. +潟潟絎茵鐚腟茯с茵腓冴障鐚 .TP .B # -コマンドを実行し,結果を読みこみながら表示します. -.SS バッファ操作 +潟潟絎茵鐚腟茯帥帥茵腓冴障鐚 +.SS ≧篏 .TP .B B -現在見ているバッファを削除し,一つ前のバッファを表示します. +憜荀<ゃ鐚筝ゅ<茵腓冴障鐚 .TP .B v -HTMLのソースを表示します. +HTML純若鴻茵腓冴障鐚 .TP .B s -バッファ選択モードに入ります. +♂御≪若ャ障鐚 .TP .B E -現在見ているバッファがローカルファイルの場合,そのファイルをエディタで編集しま -す.エディタを終了した後,そのファイルを再度読み込みます. +憜荀<若<ゃ翫鐚<ゃc帥х隈 +鐚c帥腟篋緇鐚<ゃ綺茯粋昭帥障鐚 .TP .B C-l -画面を再描画します. +脂≪祉障鐚 .TP .B R -バッファを再度読み込みます. +<綺茯粋昭帥障鐚 .TP .B S -バッファの表示内容をファイルに保存します. +<茵腓阪絎鴻<ゃ篆絖障鐚 .TP .B "ESC s" -HTMLのソースをファイルに保存します. +HTML純若鴻<ゃ篆絖障鐚 .B v -でソースを表示して +с純若鴻茵腓冴 .B S -で保存するのとほぼ同じですが, +т絖祉弱с鐚 .B "ESC s" -で保存したファイルは漢字コードがオリジナルのままであるのに対して, +т絖<ゃ羲√潟若吾障障с絲障鐚 .B "v S" -で保存すると現在表示に使っている漢字コードに変換されて保存されます. +т絖憜茵腓冴篏帥c羲√潟若紊篆絖障鐚 .TP .B "ESC e" -現在表示されているバッファを,表示されている形式のままエディタで編集します. -.SS バッファ選択モード +憜茵腓冴<鐚茵腓冴綵√障障c帥х隈障鐚 +.SS ♂御≪若 .B s -でバッファ選択モードに入ったときのキー操作です. +с♂御≪若ャc惹篏с鐚 .TP .B k, C-p -一つ上のバッファを選択します. +筝や<御障鐚 .TP .B j, C-n -一つ下のバッファを選択します. +筝や<御障鐚 .TP .B D -現在選択しているバッファを削除します. +憜御<ゃ障鐚 .TP .B RET -現在選択しているバッファを表示します. -.SS ブックマーク操作 +憜御<茵腓冴障鐚 +.SS 若篏 .TP .B "ESC b" -ブックマークを読み込みます. +若茯粋昭帥障鐚 .TP .B "ESC a" -現在見ているページをブックマークに追加します. -.SS 検索 +憜荀若吾若菴遵障鐚 +.SS 罎膣 .TP .B /, C-s -現在のカーソル位置からファイル末尾に向かって正規表現を検索します. +憜若純篏臀<ゃ絨障c罩h頫憗罎膣≪障鐚 .TP .B ?, C-r -現在のカーソル位置からファイルの先頭に向かって正規表現を検索します. +憜若純篏臀<ゃc罩h頫憗罎膣≪障鐚 .TP .B n -次を検索します. +罨<罎膣≪障鐚 .TP .B N -前を検索します. +罎膣≪障鐚 .TP .B C-w -折り返し検索モードを切り換えます. -.SS マーク操作 +菴罎膣≪≪若障鐚 +.SS 若篏 .TP .B C-SPC -マークを設定/解除します.マークは反転表示されます. +若荐絎鐚頵iゃ障鐚若荵∵;腓冴障鐚 .TP .B "ESC p" -一つ前のマークに移動します. +筝ゅ若腱糸障鐚 .TP .B "ESC n" -一つ後のマークに移動します. +筝ゅ若腱糸障鐚 .TP .B "\"" -正規表現で指定された文字列を全てマークします. -.SS その他 +罩h頫憗ф絎絖若障鐚 +.SS 篁 .TP .B ! -シェルコマンドを実行します. +激с潟潟絎茵障鐚 .TP .B H -ヘルプファイルを表示します. +<ゃ茵腓冴障鐚 .TP .B o -オプション設定パネルを表示します. +激с活┃絎茵腓冴障鐚 .TP .B C-k -クッキー一覧を表示します. +寂荀с茵腓冴障鐚 .TP .B C-c -文書の読み込みを中断します. +吾茯粋昭帥筝障鐚 .TP .B C-z -サスペンドします. +泣鴻潟障鐚 .TP .B q .B w3m -を終了します.オプションの設定によって,終了するかどうか確認します. +腟篋障鐚激с潟荐絎c鐚腟篋腆肴障鐚 .TP .B Q -確認せずに +腆肴 .B w3m -を終了します. -.SS 行編集 -画面の最下行で文字列を入力する場合に有効なキー操作です. +腟篋障鐚 +.SS 茵膩 +脂≪筝茵ф絖ュ翫鴻惹篏с鐚 .TP .B C-f -カーソルを右に移動します. +若純劻腱糸障鐚 .TP .B C-b -カーソルを左に移動します. +若純綏腱糸障鐚 .TP .B C-h -カーソルの直前の文字を削除します. +若純翫絖ゃ障鐚 .TP .B C-d -カーソル位置の文字を削除します. +若純篏臀絖ゃ障鐚 .TP .B C-k -カーソル位置から後を削除します. +若純篏臀緇ゃ障鐚 .TP .B C-u -カーソル位置から前を削除します. +若純篏臀ゃ障鐚 .TP .B C-a -文字列の先頭に移動します. +絖腱糸障鐚 .TP .B C-e -文字列の最後に移動します. +絖緇腱糸障鐚 .TP .B C-p -ヒストリから一つ前の文字列を取り出します. +鴻筝ゅ絖冴障鐚 .TP .B C-n -ヒストリから次の文字列を取り出します. +鴻罨<絖冴障鐚 .TP .B TAB, SPC -ファイル名入力時に,ファイル名を補完します. +<ゃュ鐚<ゃ茖絎障鐚 .TP .B RET -入力を終了します. +ュ腟篋障鐚 .SH SEE ALSO .I kterm\fR(1), .\" .I lynx\fR(1), .\" .I w3m_lynx\fR(1), .I tty\fR(4) .SH AUTHOR -伊藤 彰則 +篌 綵医 .br aito@fw.ipsj.or.jp diff --git a/doc/CVS/Entries b/doc/CVS/Entries deleted file mode 100644 index 8cae998..0000000 --- a/doc/CVS/Entries +++ /dev/null @@ -1,21 +0,0 @@ -/HISTORY/1.2/Tue Jul 9 05:54:46 2002// -/README.cygwin/1.5/Sun Feb 23 16:00:16 2003// -/README.dict/1.4/Wed Apr 24 18:46:48 2002// -/README.func/1.21/Mon Sep 22 21:02:22 2003// -/README.mouse/1.1/Mon Nov 25 17:23:45 2002// -/README.pre_form/1.3/Mon May 12 16:24:53 2003// -/README.tab/1.1/Tue Nov 5 17:24:47 2002// -/STORY.html/1.3/Wed Nov 21 04:29:14 2001// -/keymap.lynx/1.4/Fri Dec 13 03:02:04 2002// -/menu.default/1.4/Fri Apr 7 15:05:49 2006// -/menu.submenu/1.3/Fri Apr 7 15:05:49 2006// -/keymap.default/1.8/Sat Jun 10 09:52:18 2006// -/FAQ.html/1.9/Tue Jan 4 09:22:24 2011// -/MANUAL.html/1.6/Tue Jan 4 09:22:24 2011// -/README.img/1.6/Tue Jan 4 09:22:24 2011// -/README.m17n/1.3/Tue Jan 4 09:22:24 2011// -/README.passwd/1.1/Tue Aug 3 10:02:16 2010// -/README.cookie/1.2/Sat Jan 15 01:57:39 2011// -/README/1.26/Sat Jan 15 02:17:25 2011// -/w3m.1/1.9/Sat Jan 15 06:37:24 2011// -D diff --git a/doc/CVS/Repository b/doc/CVS/Repository deleted file mode 100644 index 5431c7e..0000000 --- a/doc/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/doc diff --git a/doc/CVS/Root b/doc/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/doc/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/doc/FAQ.html b/doc/FAQ.html index ed2a704..ca82c67 100644 --- a/doc/FAQ.html +++ b/doc/FAQ.html @@ -1,291 +1,763 @@ -<HTML> -<HEAD> -<TITLE>W3M FAQ</TITLE> -</HEAD> -<BODY> -<p> -<center><h1>Frequently Asked Questions and Answers about w3m</h1></center> -<div align=right> -Akinori Ito<br> -aito@fw.ipsj.or.jp<br> -Corrected by Tom Berger <tom.be@gmx.net> -</div> -<p> -<b><center><font size=+1><u><a name="index">Index</a></u></font></center></b> -<p> -<br> -<ul> -<li><h2><a href="#general">General Questions, How to Get It, Required Environment</a></h2></li> -<ul> -<li><h3>How do I pronounce "w3m"?</h3> -<li><h3>Why is it called "w3m"?</h3> -<li><h3>On which platforms does w3m work?</h3> -<li><h3>Where can I get more information about w3m?</h3> -<li><h3>Is there a mailing list for w3m?</h3> -<li><h3>Are there any binary distributions?</h3> -</ul> -<br> -<li><a href="#install"><h2>Compile and Install</h2></a> -<br> -<li><a href="#command"><h2>Options, Commands, Usage</h2></a> -<ul> -<li><h3>w3m quits if started without parameters. What's wrong?</h3> -<li><h3>w3m starts with black characters on a black screen. How do I change this?</h3> -<li><h3>Does w3m support colours?</h3> -<li><h3>Does w3m support monochrome display?</h3> -<li><h3>How do I shift the display?</h3> -<li><h3>How do I move from anchor to anchor?</h3> -<li><h3>Netscape displays a word red, but w3m doesn't. Why?</h3> -<li><h3>How do I change the colour of anchor-/image-/form links?</h3> -<li><h3>w3m doesn't seem to use the variable EDITOR. Why? </h3> -<li><h3>How do I quit a search or URL text input?</h3> -</ul> -<br> -<li><a href="#www"><h2>Questions about WWW usage</h2></a> -<ul> -<li><h3>How do I fill in forms with w3m?</h3> -<li><h3>Seems like w3m is slower than Netscape or Lynx. Why?</h3> -<li><h3>Loading time doesn't decrease when loading a previously seen page</h3> -<li><h3>How do I download a linked file?</h3> -<li><h3>How do I specify a proxy server?</h3> -<li><h3>w3m freezes when I invoke an external browser.</h3> -<li><h3>How do I change the default image viewer?</h3> -<li><h3>How do I enter a URL?</h3> -<li><h3>w3m appends a URL to the former one despite of having cleared the line with Ctrl-u. What to do?</h3> -</ul> -<br> -<li><a href="#other"><h2>Misc</a></h2> -<ul> -<li><h3>What is w3m's configuration file?</h3> -<li><h3>What are these w3mxxxx files in my ~/.w3m directory for?</h3> -</ul> -<br> -<br> -<u><h2><a name="general">General Questions, How to Get It, Required Environment</a></h2></u> -<br> -<dl> -<dt><h3>How do I pronounce "w3m"?</h3> -<dd>It's "W-three-M". It doesn't rhyme with "pteranodon". -<p> -<dt><h3>Why is it called "w3m"?</h3> -<dd>It's an abbreviation of "WWW-wo-Miru", which is Japanese for -"See the WWW". So in English the name of this browser would be -something like "stw3". -<p> -<dt><h3>On which platforms does w3m work?</h3> -<dd>It runs on various versions of Unix, since version 990226 on OS/2 and since -version 990303 also on MS-Windows with Cygwin32. -<br> -Current versions have been confirmed to run on: -<ul> -<li>SunOS 4.1.x -<li>HP-UX 9.x, 10.x -<li>Solaris 2.5.x, 2.6, 8 -<li>Linux 2.0.30 -<li>FreeBSD 2.2.8, 3.1, 3.2, 4.6 -<li>NetBSD/macppc, m68k -<li>EWS4800 Rel.12.2 Rev.A -<li>Digital UNIX: v3.2D, v4.0D -<li>IRIX 5.3, IRIX 6.5 -<li>OS/2 with emx -<li>Windows 9x/NT with Cygwin32 b20.1 -<li>MS-DOS with DJGPP and WATT32 packet driver -<li>MacOS X Server -<li>MacOS X 10.1, 10.2 -</ul> -<dt><h3>Where can I get more information about w3m?</h3> -<dd>At the <a href="http://w3m.sourceforge.net/index.en.html">English w3m home page</a>. -<dt><h3>Is there a mailing list for w3m?</h3> -<dd>There is a mailing list for developpers (w3m-dev-en). Please see -<a href="http://w3m.sourceforge.net/index.en.html">w3m page</a> -for details. You may also mail your comments to <a href="mailto:aito@fw.ipsj.or.jp">the author</a>. -<dt><h3>Are there any binary distributions?</h3> -<dd>So far there are only binaries for the win/cygnus32 version. You can get -them from <a href="http://prdownloads.sourceforge.net/w3m/">here</a>. -Contact <a href="mailto:aito@fw.ipsj.or.jp">the author</a> if you want to contribute binaries for other platforms. -</dd> -</dl> -<br> -<div align=right> -<i>Up to <a href="#index">index</a></i> -</div> -<br> -<u><h2><a name="install">Compile and Install</a></h2></u> -No problem :-) -<u><h2><a name="command">Options, Commands, Usage</a></h2></u> -<br> -<dl> -<dt><h3>w3m quits if started without parameters. What's wrong?</h3> -<dd>w3m is a <b>pager</b>. Therefore it just quits when invoked without any -arguments. Possible arguments are: -<ol> -<li>A filename or an URL -<li>Pipe from standard input -<li>The -B option (Show bookmark file) -<li>The -v option (visual startup) -<li>From a specified HTTP_HOME or WWW_HOME variable -</ol> -<p> -<dt><h3>w3m starts with black characters on black background. How do I change -this?</h3> -<dd> -When compiled with colour support, w3m assumes a white background and therefore -displays black characters. -<br> -You may either change the background colour of your terminal (e.g. with the -bg -option in a xterm) or take these steps: -<ul> -<li>invoke w3m with 'w3m -M' (for monochrome), -<li>type 'o' for getting to the options screen -<li><b>Mark 'Display with colour' as ON</b> and choose an arbitrary colour. -Click on [OK]. -</ul> -<p> -<dt><h3>Does w3m support colours?</h3> -<dd>Yes. When you run './configure', answer the question -<p> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> + <head> + <style> + span.mono { + font-family:mono; + } + </style> + <meta http-equiv=content-type content="text/html;charset=US-ASCII"> + <title>W3M FAQ</title> + </head> + <body> + <h1 align="center"> + Frequently Asked Questions and Answers about w3m + </h1> + <p align="right"> + Akinori Ito <aito@fw.ipsj.or.jp><br> + Corrected by Tom Berger <tom.be@gmx.net> + </p> + <h2 id="index"> + <u> + Index + </u> + </h2> + <ul> + <li> + <a href="#general"> + <b> + General Questions, How to Get It, Required Environment + </b> + </a> + </li> + <ul> + <li> + <b> + How do I pronounce <q>w3m</q>? + </b> + </li> + <li> + <b> + Why is it called <q>w3m</q>? + </b> + </li> + <li> + <b> + On which platforms does w3m work? + </b> + </li> + <li> + <b> + Where can I get more information about w3m? + </b> + </li> + <li> + <b> + Is there a mailing list for w3m? + </b> + </li> + <li> + <b> + Are there any binary distributions? + </b> + </li> + </ul> + <li> + <a href="#install"> + <b> + Compile and Install + </b> + </a> + </li> + <li> + <a href="#command"> + <b> + Options, Commands, Usage + </b> + </a> + </li> + <ul> + <li> + <b> + w3m quits if started without parameters. What's wrong? + </b> + </li> + <li> + <b> + w3m starts with black characters on a black background. How do + I change this? + </b> + </li> + <li> + <b> + Does w3m support colors? + </b> + </li> + <li> + <b> + Does w3m support monochrome displays? + </b> + </li> + <li> + <b> + How do I shift the display? + </b> + </li> + <li> + <b> + How do I move between hyperlinks? + </b> + </li> + <li> + <b> + Graphical browsers display a word red, but w3m doesn't. Why? + </b> + </li> + <li> + <b> + How do I change the colors for hyperlinks, images and form fields? + </b> + </li> + <li> + <b> + w3m doesn't seem to use the variable EDITOR. Why? + </b> + </li> + <li> + <b> + How do I quit a search or URL text input? + </b> + </li> + </ul> + <li> + <a href="#www"> + <b> + Questions about WWW usage + </b> + </a> + </li> + <ul> + <li> + <b> + How do I fill in forms with w3m? + </b> + </li> + <li> + <b> + Seems like w3m is slower than some other browsers. Why? + </b> + </li> + <li> + <b> + Loading time doesn't decrease when loading a previously seen + page. + </b> + </li> + <li> + <b> + How do I download a linked file? + </b> + </li> + <li> + <b> + How do I specify a proxy server? + </b> + </li> +<!-- deleted, see mail dated Mon, 04 Apr 2016 20:50:27 +0900 (JST) +from Tatsuya Kinoshita <tats@debian.org> + <li> + <b> + w3m freezes when I invoke an external browser. + </b> + </li> +--> + <li> + <b> + How do I change the default image viewer? + </b> + </li> + <li> + <b> + How do I enter a URL? + </b> + </li> + <li> + <b> + w3m appends a URL to the former one even when I clear the line + with <span class="mono">CTRL-u</span>. What should I do? + </b> + </li> + </ul> + <li> + <a href="#other"> + <b> + Miscellaneous + </b> + </a> + </li> + <ul> + <li> + <b> + What is w3m's configuration file? + </b> + </li> + <li> + <b> + What are these w3mxxxx files in my ~/.w3m directory for? + </b> + </li> + </ul> + </ul> + <h2 id="general"> + <u> + General Questions, How to Get It, Required Environment + </u> + </h2> + <dl> + <dt> + <b> + How do I pronounce <q>w3m</q>? + </b> + </dt> + <dd> + <p> + It's <q>W-three-M</q>. It doesn't rhyme with <q>pteranodon</q>. + </p> + </dd> + <dt> + <b> + Why is it called <q>w3m</q>? + </b> + </dt> + <dd> + <p> + It's an abbreviation of <q>WWW-wo-Miru</q>, which is Japanese + for <q>See the WWW</q>. So in English the name of this browser + would be something like <q>stw3</q>. + </p> + </dd> + <dt> + <b> + On which platforms does w3m work? + </b> + </dt> + <dd> + <p> + It runs on various versions of Unix, since version 990226 on OS/2 + and since version 990303 also on MS-Windows with Cygwin32. + </p> + <p> + More recent versions have been confirmed to run on: + </p> + <ul> + <li> + SunOS 4.1.x + </li> + <li> + HP-UX 9.x, 10.x + </li> + <li> + Solaris 2.5.x, 2.6, 8 + </li> + <li> + Linux 2.0.1 to 3.17 + </li> + <li> + FreeBSD 2.2.8, 3.1, 3.2, 4.6 + </li> + <li> + NetBSD/macppc, m68k + </li> + <li> + EWS4800 Rel.12.2 Rev.A + </li> + <li> + Digital UNIX: v3.2D, v4.0D + </li> + <li> + IRIX 5.3, IRIX 6.5 + </li> + <li> + OS/2 with emx + </li> + <li> + Windows 9x/NT with Cygwin32 b20.1 + </li> + <li> + MS-DOS with DJGPP and WATT32 packet driver + </li> + <li> + MacOS X Server + </li> + <li> + MacOS X 10.1, 10.2 + </li> + </ul> + </dd> + <dt> + <b> + Where can I get more information about w3m? + </b> + </dt> + <dd> + <p> + At the + <a href="http://w3m.sourceforge.net/index.en.html">English w3m + home page</a>. + </p> + </dd> + <dt> + <b> + Is there a mailing list for w3m? + </b> + </dt> + <dd> + <p> + There is a mailing list for developers (w3m-dev-en). Please see + the <a href="http://w3m.sourceforge.net/index.en.html">w3m home + page</a> for details. You may also mail your comments to + <a href="mailto:aito@fw.ipsj.or.jp">the author</a>. + </p> + </dd> + <dt> + <b> + Are there any binary distributions? + </b> + </dt> + <dd> + <p> + So far there are only binaries for the win/cygnus32 version. +<!-- + You can get them from + <a href="http://prdownloads.sourceforge.net/w3m/">here</a>. +!--> + Contact <a href="mailto:aito@fw.ipsj.or.jp">the author</a> if you + want to contribute binaries for other platforms. + </p> + </dd> + </dl> + <p align="right"> + <i> + Up to <a href="#index">index</a> + </i> + </p> + <h2 id="install"> + <u> + Compile and Install + </u> + </h2> + <p> + No problem :-) + </p> + <h2 id="command"> + <u> + Options, Commands, Usage + </u> + </h2> + <dl> + <dt> + <b> + w3m quits if started without parameters. What's wrong? + </b> + </dt> + <dd> + <p> + w3m is a <b>pager</b>. Therefore it just quits when invoked + without any arguments. It keeps running + </p> + <ul> + <li> + with a filename or URL as argument + </li> + <li> + with data piped from standard input + </li> + <li> + when invoked with option -B to show the bookmark file + </li> + <li> + when invoked with option -v to welcome users with a built-in page + </li> + <li> + with specified HTTP_HOME or WWW_HOME variable + </li> + </ul> + </dd> + <dt> + <b> + w3m starts with black characters on a black background. How do I + change this? + </b> + </dt> + <dd> + <p> + When compiled with color support, w3m assumes a white background + and therefore displays black characters. + </p> + <p> + You may either change the background color of your terminal + (e.g. with the -bg option in a xterm) or take these steps + </p> + <ol> + <li> + invoke monochrome mode of w3m with <span class="mono">w3m -M</span> + </li> + <li> + type <q>o</q> to get to the options setting panel + </li> + <li> + mark <q>Display with color</q> as <q>YES</q> and choose an + arbitrary color + </li> + <li> + click on [OK]. + </li> + </ol> + </dd> + <dt> + <b> + Does w3m support colors? + </b> + </dt> + <dd> + <p> + Yes. When you run <q>./configure</q>, answer the question + </p> <pre> -Let's do some configurations. Choose config option among the list." + Let's do some configurations. Choose config option among the list. -1 - Baby model (no color, no menu, no mouse, no cookie, no SSL) -2 - Little model (color, menu, no mouse, no cookie, no SSL) -3 - Mouse model (color, menu, mouse, no cookie, no SSL) -4 - Cookie model (color, menu, mouse, cookie, no SSL) -5 - Monster model (with everything; you need openSSL library) -6 - Customize -Which? + 1 - Baby model (no color, no menu, no mouse, no cookie, no SSL) + 2 - Little model (color, menu, no mouse, no cookie, no SSL) + 3 - Mouse model (color, menu, mouse, no cookie, no SSL) + 4 - Cookie model (color, menu, mouse, cookie, no SSL) + 5 - Monster model (with everything; you need openSSL library) + 6 - Customize + Which? </pre> -<p> -with 2,3,4 or 5. -<p> -<dt><h3>Does w3m support monochrome display?</h3> -<dd>Yes. You may either -<ol> -<li>Answer the above mentioned 'configure' question with 1, or -<li>Invoke w3m with the -M option, or -<li>Type 'o' within w3m to enter the options screen and turn off colour display -mode. -</ol> -<dt><h3>How do I shift the display?</h3> -<dd>You can shift the display by moving the cursor to the edge of the screen. You -may also use the ">"/"<" or "."/"," keys. -<br> -Another idea would be adjusting the xterm with the -geometry option (e.g. -something like 'xterm -geometry 110x45 -bg white -name w3m -e w3m -B'). -<dt><h3>How do I move from anchor to anchor?</h3> -<dd>You can move to the next anchor using TAB. ESC TAB moves cursor to the previous anchor. -<p> -<dt><h3>Netscape displays a word red, but w3m doesn't. Why?</h3> -<dd>w3m doesn't support <FONT COLOR=".."> tags. It won't be impossible to implement this, but I think it would make the document more difficult to read. -<p> -<dt><h3>How do I change the colour of anchor-/image-/form links?</h3> -<dd>Type 'o' within w3m to get the 'options' screen. You can change these -settings there. -<dt> -<dt><h3>w3m doesn't seem to use the variable EDITOR. Why? </h3> -<dd><dd>Go to the 'options' screen using the "o" key. Any entry in the 'Editor' field will override the environment variable. -<br> -If you want to use the editor specified by EDITOR blank the field and push [OK]. -<p> -<dt><h3>How do I quit a search or URL text input?</h3> -<dd>Clear input text using Ctrl-u and hit RETURN. -</dd> -</dl> -<br> -<div align=right> -<i>Up to <a href="#index">index</a></i> -</div> -<br> -<u><h2><a name="www">Questions about WWW usage</a></h2></u> -<br> -<dl> -<dt><h3>How do I fill in forms with w3m?</h3> -<dd>Form input fields are displayed in red (or reverse). Move the cursor to -them and hit RETURN. Then, -<ul> -<li>if it is a text input field, put in your text on the bottom line, -<li>if it is a radiobutton or checkbox, that item is selected, -<li>if it is a textarea, an editor is spawned, -<li>if it is 'submit' or 'reset', well, just do it. -</ul> -<dt><h3>Seems like w3m is slower than Netscape or Lynx. Why?</h3> -<dd>w3m renders a HTML document in two passes. Therefore it displays the documentnot before having read the entire document. -<br> -Netscape or Lynx display the document before having read the whole page, -and therefore seem faster. -<p> -<dt><h3>Loading time doesn't decrease when loading a previously seen page</h3> -<dd>w3m doesn't have its own cache. Therefore, it reads the document -from the server each time it accesses it. If possible, use a cache server. -<p> -<dt><h3>How do I download a linked file?</h3> -<dd>Use 'a' (or 'd' with Lynx-like keybindings) or ESC RET. If you want to download an inline image, use ESC 'I'. -<p> -<dt><h3>How do I specify a proxy server?</h3> -<dd>Set the environment variable HTTP_PROXY or use the option setting panel -("o" key). For example, if you want to use port 8000 of proxy.hogege.com, specify -<p> -<pre> - http://proxy.hogege.com:8000/ -</pre> -<p> -<dt><h3>w3m freezes when I invoke an external browser.</h3> -<dd>Enter w3m's option screen using the 'o' key and specify -<p> -<pre> - netscape %s & -</pre> -<p> -(if you are using netscape). -<p> -<dt><h3>How do I change the default image viewer?</h3> -<dd>By default w3m uses xv to view images. If you want to change it into, let's say, 'display', add the following line to ~/.w3m/mailcap or /etc/mailcap. -<p> + <p> + with 2, 3, 4, or 5. + </p> + </dd> + <dt> + <b> + Does w3m support monochrome displays? + </b> + </dt> + <dd> + <p> + Yes. You may either + </p> + <ul> + <li> + Answer the above-mentioned <q>configure</q> question with 1, + or + </li> + <li> + Invoke w3m with the -M option, or + </li> + <li> + Type <q>o</q> within w3m to enter the options setting panel and turn + off color display mode. + </li> + </ul> + </dd> + <dt> + <b> + How do I shift the display? + </b> + </dt> + <dd> + <p> + You can shift the display by moving the cursor to the edge of + the screen. You may also use the following commands + </p> + <ul> + <li>SHIFT_LEFT and SHIFT_RIGHT, bound to the keys <span class="mono">></span> and <span class="mono"><</span></li> + <li>SHIFT_LEFT1 and SHIFT_RIGHT1, bound to the keys <span class="mono">.</span> and <span class="mono">,</span></li> + </ul> + <p> + Another idea would be adjusting the xterm with the -geometry + option e.g. something like + </p> + <pre> xterm -geometry 110x45 -bg white -name w3m -e w3m -B</pre> + </dd> + <dt> + <b> + How do I move between hyperlinks? + </b> + </dt> + <dd> + <p> + + You can move to the next hyperlink + using <span class="mono">TAB</span>. <span class="mono">ESC + TAB</span> moves the cursor to the previous hyperlink. (see + Section <a href="MANUAL.html#Functions" target="_blank"> + Functions and Key bindings</a> of w3m's manual) + + </p> + </dd> + <dt> + <b> + Graphical browsers display a word red, but w3m doesn't. Why? + </b> + </dt> + <dd> + <p> + w3m doesn't support the attribute COLOR="..." of HTML. It wouldn't + be impossible to implement this, but I think it would make + documents more difficult to read. + </p> + </dd> + <dt> + <b> + How do I change the colors for hyperlinks, images and form fields? + </b> + </dt> + <dd> + <p> + Type <q>o</q> within w3m to get the options panel. You + can change these settings there. + </p> + </dd> + <dt> + <b> + w3m doesn't seem to use the variable EDITOR. Why? + </b> + </dt> + <dd> + <p> + Go to the options setting panel using the <q>o</q> key. Any + entry in the <q>Editor</q> field overrides the environment + variable. + </p> + <p> + If you want to use the editor specified by EDITOR, blank the + field and save the settings using the button [OK]. + </p> + </dd> + <dt> + <b> + How do I quit a search or URL text input? + </b> + </dt> + <dd> + <p> + Clear input text using <span class="mono">CTRL-u</span> and hit <span class="mono">RETURN</span>. + </p> + </dd> + </dl> + <p align="right"> + <i> + Up to <a href="#index">index</a> + </i> + </p> + <h2 id="www"> + <u> + Questions about WWW usage + </u> + </h2> + <dl> + <dt> + <b> + How do I fill in forms with w3m? + </b> + </dt> + <dd> + <p> + Form input fields are displayed in red (or reverse). Move the + cursor to them. Then, if it is + </p> + <ul> + <li> + a text input field, hit <span class="mono">RETURN</span> + put in your text on the bottom line. Press + <span class="mono">RETURN</span> again + </li> + <li> + a radiobutton or checkbox, pressing + <span class="mono">RETURN</span> changes or toggles the selection + </li> + <li> + a textarea, pressing + <span class="mono">RETURN</span> spawns an editor + </li> + <li> + a <q>submit</q> or <q>reset</q> field, + the respective action is performed. + </li> + </ul> + </dd> + <dt> + <b> + Seems like w3m is slower than some other browsers. Why? + </b> + </dt> + <dd> + <p> + w3m renders a HTML document in two passes. Therefore it doesn't + start to display the document until it has finished reading it. + </p> + <p> + Most other browsers display the document before having read the + whole page, and therefore seem faster. + </p> + </dd> + <dt> + <b> + Loading time doesn't decrease when loading a previously seen + page. + </b> + </dt> + <dd> + <p> + w3m doesn't have its own cache. Therefore, it reads the document + from the server each time it accesses it. If possible, use a + cache server. + </p> + </dd> + <dt> + <b> + How do I download a linked file? + </b> + </dt> + <dd> + <p> + Use <q>a</q> (or <q>d</q> with Lynx-like keybindings) or + <span class="mono">ESC RET</span>. + If you want to download an inline image, use + <span class="mono">ESC I</span>. (see + Section <a href="MANUAL.html#Functions" target="_blank"> + Functions and Key bindings</a> of w3m's manual) + </p> + </dd> + <dt> + <b> + How do I specify a proxy server? + </b> + </dt> + <dd> + <p> + Set the environment variables HTTP_PROXY, HTTPS_PROXY, GOPHER_PROXY + and FTP_PROXY, or use the options setting panel (<q>o</q> key). For + example, if you want to use port 8000 of proxy.example.org, specify + </p> + <pre> http://proxy.example.org:8000/</pre> + </dd> +<!-- deleted, see mail dated Mon, 04 Apr 2016 20:50:27 +0900 (JST) +from Tatsuya Kinoshita <tats@debian.org> + <dt> + <b> + w3m freezes when I invoke an external browser. + </b> + </dt> + <dd> + <p> + Enter w3m's option screen using the <q>o</q> key and specify + </p> + <pre> firefox %s &</pre> + <p> + (if you are using Firefox). Note that %s is replaced with the URL + when invoking. + </p> + </dd> + --> + <dt> + <b> + How do I change the default image viewer? + </b> + </dt> + <dd> + <p> + By default w3m uses xv to view images. If you want to change it + into, let's say, <q>display</q>, add the following line to + ~/.w3m/mailcap or /etc/mailcap: + </p> <pre> -image/*; display %s + image/*; display %s </pre> -<p> -You can specify external viewers of other file types as well: -<p> + <p> + You can specify external viewers of other file types as well: + </p> <pre> -image/*; display %s -application/postscript; ghostview %s -application/x-dvi; xdvi %s + image/*; display %s + application/postscript; ghostview %s + application/x-dvi; xdvi %s </pre> -<dt><h3>How do I enter a URL?</h3> -<dd>Type SHIFT-U -<p> -<dt><h3>w3m appends a URL to the former one despite of having cleared the line -with Ctrl-u. What to do?</h3> -<dd>Enter the <i>complete</i> adress, e.g. http://www.slashdot.org. -</dd> -</dl> -<br> -<div align=right> -<i>Up to <a href="#index">index</a></i> -</div> -<br> -<u><h2><a name="other">Miscellaneous</a></h2></u> -<br> -<dl> -<dt><h3>What is w3m's configuration file?</h3> -<dd>It is ~/.w3m/config. -With this file, you can adjust w3m's behavior by changing values of options -that are described to be varied with the option setting panel. -Each line contains setting for one option, which is a pair of an option name -and its value with a space as a separator. -<p> -<dt><h3>What are these w3mxxxx files in my ~/.w3m directory for?</h3> -<dd>These are temporary files used by w3m when reading documents from a -WWW server. They are not cache files and are usually deleted when w3m is -terminated. If there remain any temp files, please remove them by yourself. -<p> -</dd> -</dl> -<br> -<div align=right> -<i>Up to <a href="#index">index</a></i> -</div> -<br> -</BODY> -</HTML> + </dd> + <dt> + <b> + How do I enter a URL? + </b> + </dt> + <dd> + <p> + Type <span class="mono">U</span> + </p> + </dd> + <dt> + <b> + w3m appends a URL to the former one even when I clear the line + with <span class="mono">CTRL-u</span>. What should I do? + </b> + </dt> + <dd> + <p> + Enter the <i>complete</i> address, e.g. http://www.slashdot.org. + </p> + </dd> + </dl> + <p align="right"> + <i> + Up to <a href="#index">index</a> + </i> + </p> + <h2 id="other"> + <u> + Miscellaneous + </u> + </h2> + <dl> + <dt> + <b> + What is w3m's configuration file? + </b> + </dt> + <dd> + <p> + It is ~/.w3m/config. + </p> + + <p> + With this file, each user can adjust w3m's behavior by changing + the values of options whose effects are described in the options + setting panel. Each line contains one option setting, consisting + of an option name and its value with a space as a separator. + </p> + + <p>Without a user-specific configuration file, w3m honours + the system wide configuration file /etc/w3m/config. + </p> + + </dd> + <dt> + <b> + What are these w3mxxxx files in my ~/.w3m directory for? + </b> + </dt> + <dd> + <p> + These are temporary files used by w3m when reading documents + from a WWW server. They are not cache files and are usually + deleted when w3m is terminated. If any temp files are left + behind, please remove them yourself. + </p> + </dd> + </dl> + <p align="right"> + <i> + Up to <a href="#index">index</a> + </i> + </p> + </body> +</html> diff --git a/doc/HISTORY b/doc/HISTORY index b8f5b94..7f7ae2b 100644 --- a/doc/HISTORY +++ b/doc/HISTORY @@ -588,7 +588,7 @@ From: Okabe Katsuya <okabek@guitar.ocn.ne.jp> * space characters in a buffer are mapped into 0x80-0x9f. * unprintable characters (0x80-0xa0) are displayed as \xxx. -From: Tsutomu Okada ($B2,ED(B $BJY(B) <okada@furuno.co.jp> +From: Tsutomu Okada <okada@furuno.co.jp> Subject: [w3m-dev 01354] minimize when #undef USE_GOPHER or USE_NNTP 2000/11/16 @@ -1422,7 +1422,7 @@ HTML4.0 ID attribute support. From: Okabe Katsuya <okabe@fphy.hep.okayama-u.ac.jp> table get weird when it contains <input type=hidden>. -$B=$@5!%(B +Fixed. 2000.2.12 From: Rogue Metal - Jake Moorman <roguemtl@stampede.org> @@ -1649,15 +1649,15 @@ From: patakuti If an <input type=button> tag has no `name' attribute, w3m adds it an inappropriate name attribute. -From: $B$d$^(B +From: Yama Now w3m can handle a frameset that has both ROWS and COLS. From: aito Now bookmarking is done by a separate command w3mbookmark. -C-s $B$G2hLLI=<($,;_$^$C$F$$$?%P%0$N=$@5!%(B +Bug fix that C-s hangs. -$BJ8;zF~NO;~$K(B C-g $B$GCf;_$G$-$k$h$&$K$7$?!%(B +Enable C-g to quit for keyboard input. From: hovav@cs.stanford.edu When downloading a file, an attempt to save it to a non-exist @@ -1699,7 +1699,7 @@ Menu behavior is changed. * Clicking outside the menu causes cancellation of sub-menu. * <, >, +, - abandoned -From: $B$*$+$@(B <okada@furuno.co.jp> +From: Okada <okada@furuno.co.jp> Now C-a/C-e are bound to 'jump to the first/last item in menu.' From: "OMAE, jun" <jun-o@osb.att.ne.jp> diff --git a/doc/MANUAL.html b/doc/MANUAL.html index aff0189..91a3485 100644 --- a/doc/MANUAL.html +++ b/doc/MANUAL.html @@ -1,535 +1,2437 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> -<head><title>w3m manual</title> -</head> -<body> -<h1>w3m MANUAL</h1> -<div align=right> -Akinori Ito<br> -aito@fw.ipsj.or.jp -</div> -<h2>Index</h2> -<menu> -<li><a href="#Introduction">Introduction</a> -<li><a href="#Options">Options</a> -<li><a href="#Color">Document color</a> -<li><a href="#Key:orig">Key binding</a> -<li><a href="#Key:lynx">Lynx-like key binding</a> -<li><a href="#Mouse">Mouse operation</a> -<li><a href="#Key:custom">Key customization</a> -<li><a href="#LocalCGI">Local CGI</a> -</menu> - -<hr> -<a name="Introduction"></a> -<h2>Introduction</h2> -w3m is a pager/text-based WWW browser. You can browse local documents and/or -documents on the WWW using a terminal emulator. - -<hr> -<a name="Options"></a> -<h2>Options</h2> - -Command line usage is -<p> + <head> + <title>w3m manual</title> + <style> + span.mono { + font-family:mono; + } + </style> + <meta http-equiv="content-type" content="text/html;charset=UTF-8"> + </head> + <body> + <!-- +insertions tagged with "mh 2016-03-29" and "mh 2016-06-11" come from the latest version of manual page w3m (1) + --> + + <h1>w3m MANUAL</h1> + <div align="right"> + Akinori Ito<br> + aito@fw.ipsj.or.jp + </div> + <h2>Index</h2> + <ul> + <li> + <a href="#Introduction"> + Introduction + </a> + </li> + <li> + <a href="#Options"> + Options + </a> + </li> + <li> + <a href="#Color"> + Document Colors + </a> + </li> + <li> + <a href="#Functions"> + Functions and Key bindings + </a> + </li> +<!-- mh 2016-06-13 obsolete + <li> + <a href="#Key:lynx"> + Lynx-like key bindings + </a> + </li> +--> + <li> + <a href="#Mouse"> + Mouse Operation + </a> + </li> +<!-- mh 2016-06-13 obsolete + <li> + <a href="#Key:custom"> + Key customization + </a> + </li> + --> + <li> + <a href="#LocalCGI"> + Local CGI scripts + </a> + </li> + </ul> + <hr> + <h2 id="Introduction"> + Introduction + </h2> + <p> + w3m is a pager/text-based WWW browser. You can browse local + documents and/or documents on the WWW using a terminal emulator. + </p> + <hr> + <h2 id="Options"> + Options + </h2> + <p> + Command line usage is + </p> +<!-- mh 2016-08-06 invocation adapted to w3m(1). w3m accepts several options and several targets --> <pre> - w3m [options] [file|URL] + w3m [option]... [file|URL]... </pre> -<P> -If you specify filenames/URLs on command line, these documents are displayed. -If you specify nothing, w3m reads a document from standard input and display it. -If no filename and/or URLs are specified and standard input is tty, w3m terminates -without displaying anything. + <p> + If you specify filenames/URLs on the command line, these documents + are displayed. If you specify nothing, w3m will read a document + from standard input and display it. If it doesn't find a document + there either then normally w3m will terminate. + </p> + <p> + Options include: + </p> + <dl> +<h3>General options</h3> + <dt> + -B + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + with no other target defined, use the bookmark page for startup + </p> + </dd> + <dt> + -M + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + monochrome display + </p> + </dd> + <dt> + -no-mouse + </dt> + <dd> + <p> + deactivate mouse support. + </p> + </dd> + <dt> + -num + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + display each line's number -<p> -Options are as follows: -<dl> -<dt>+<line number> -<dd>Move to the specified line. -<dt>-t width -<dd>Specify tab width. Default is 8. -<dt>-r -<dd>When displaying text/plain document, prohibit emphasis using backspace. -If you don't specify this option, -``A^H_'' is interpreted as underlined character and ``A^HA'' as a bold character. -<dt>-l number -<dd>Specify line number preserved internally when reading text/plain document -fron standard input. Default is 10000. -<dt>-s -<dd>Display documents with Shift_JIS code. -<dt>-e -<dd>Display documents with EUC_JP code. -<dt>-j -<dd>Display documents with ISO-2022-JP code. -<dt>-T type -<dd>Specify document type. Without this option, document type -is determined from extension of a file. If the determination -fails, the document is regarded as text/plain. -<p> -Example:<br> -Read HTML document from standard input and display it + </p> + </dd> +<!-- mh 2016-08-06 commented out. As implementation is not verified. + <dt> + -ppc <i>num</i> + </dt> + <dd> + <p> + width of <i>num</i> pixels per character. Range of 4.0 to 32.0, + default 8.0. Larger values will make tables + narrower. (Implementation not verified) + </p> + </dd> +--> + <dt> + -v + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + with no other target defined, welcome users with a built-in page + </p> + </dd> + <dt> + -W + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + toggle wrapping mode in searches + </p> + </dd> + <dt> + -X + </dt> + <dd> + <p> + upon exit, do not reinitialize the terminal. + </p> + </dd> + <dt> + +<i>num</i> + </dt> + <dd> + <p><!--mh 2016-06-11 --> + go to line <i>num</i>; only effective for numbers larger + than the number of lines in the terminal + </p> + </dd> +<h3>Browser options</h3> + <dt> + -cols <i>num</i> + </dt> + <dd> + <p> + <!-- mh 2016-06-11 --> + with stdout as destination; HTML is rendered to lines of <i>num</i> + characters + </p> + </dd> + <dt> + -cookie + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + use stored cookies and accept new ones + </p> + </dd> + <dt> + -no-cookie + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + neither use stored cookies nor accept new ones + + </p> + </dd> + <dt> + -F + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + render frames + </p> + </dd> + <dt> + -no-graph + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + do not use graphic characters for drawing HTML table and frame + borders + </p> + </dd> + <dt> + -header <i>string</i> + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + append <i>string</i> to the HTTP(S) request. Expected to match + the header syntax <span class="mono">"Variable: Value"</span> + </p> + </dd> + <dt> + -m + </dt> + <dd> + <p> + display document using <q>Internet message mode</q>. With this + option, w3m determines document type from header information. + This is useful when reading e-mail or Usenet news posts. +<!-- mh 2016-03-29 +Render the body of Usenet messages according to the header <q>Content-type</q> +--> + </p> + </dd> + <dt> + -no-proxy + </dt> + <dd> + <p> + <!-- mh 2016-06-11--> + do not use proxy + </p> + </dd> + <dt> + -post <i>file</i> + </dt> + <dd> + <p><!--funktionierend 2016-06-28T08:22>--> + use POST method to upload data defined in <i>file</i>. The + syntax to be used is <span class="mono">"var1=value1[&var2=value2]"</span> + </p> + </dd> +<h3>Text pager options</h3> + <dt> + -l <i>num</i> + </dt> + <dd> + <p> + <!-- mh2016-06-11--> + number of lines preserved internally when receiving plain text + from stdin (default 10,000) + </p> + </dd> + <dt> + -r + </dt> + <dd> + <p> + <!-- mh 2016-03-29 --> + use caret notation to display special escape characters (such as + ANSI escapes or nroff-style backspaces for bold and underlined + characters) instead of processing them + </p> + </dd> + <dt> + -s + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + squeeze multiple blank lines into one + </p> + </dd> + + <dt> + <!--mh 2016-03-29 --> -t <i>num</i> + </dt> + <dd> + <p> + <!--mh 2016-03-29--> set tab width to <i>num</i> columns. No effect on stdout + </p> + </dd> +<h3>Data type/encoding options</h3> + <dt> + -I <i>charset</i> + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + user defined character encoding of input data + </p> + </dd> + <dt> + -O <i>charset</i> + </dt> + <dd> + <p> + <!-- mh 2016-03-29 --> + user defined character encoding of output data + </p> + </dd> + <dt> + -T <i>type</i> + </dt> + <dd> + <p> + <!-- mh 2016-06-11--> + explicit characterization of input data by MIME type. Without + this option, document type is determined from the extension of a + file. If the determination fails, the document is regarded as + text/plain. For example: + </p> + <p> + Read HTML document from standard input and display it + </p> <pre> - cat hoge.html | w3m -T text/html + cat example.html | w3m -T text/html </pre> -<p> -Display HTML source + <p> + Display HTML source + </p> <pre> - w3m -T text/plain hoge.html + w3m -T text/plain example.html </pre> -<dt>-m -<dd>Display document with Internet message mode. -With this option, w3m determines document type from header information. -It is useful when reading E-mail or NetNews messages. -<dt>-v -<dd>visual startup mode. -<dt>-B -<dd>Show the bookmark. -<dt>-bookmark file -<dd>Specify bookmark file. -<dt>-M -<dd>Monochrome display mode. -<dt>-F -<dd>Automatically render frame. -<dt>-S -<dd>Squeeze blank lines. -<dt>-X -<dd>Upon exit, do not display preserved screen. -<dt>-W -<dd>Toggle wrap search mode. -<dt>-o option=value -<dd>Specify option. The option names and values are -same as that appears in ~/.w3m/config. -<dt>-cookie -<dd>Process cookies. -<dt>-no-cookie -<dd>Don't process cookies. -<dt>-num -<dd>Show linenumber. -<dt>-dump -<dd>Read document specified by URL and dump formatted text into standard -output. The width of the document become 80. This width can be overridden -with -cols option. -<dt>-cols width -<dd>Specify document width. Used with -dump option. -<dt>-ppc count -<dd> Specify the number of pixels per character (default 8.0). Larger - values will make tables narrower. -<dt>-dump_source -<dd>Read document specified by URL and dump the source. -<dt>-dump_head -<dd>Read document specified by URL and dump headers. -<dt>-dump_both -<dd>Read document specified by URL and dump headers and the source. -<dt>-dump_extra -<dd>Read document specified by URL and dump extra informations, headers and the source. -<dt>-post file -<dd>use POST method with file content. -<dt>-header string -<dd>insert string as a header. -<dt>-no-proxy -<dd>Don't use proxy server. -<dt>-no-graph -<dd>Use ASCII character to draw frames. -<dt>-no-mouse -<dd>Don't activate mouse. -<dt>-config file -<dd>specify config file. -</dl> - -<hr> -<a name="Color"></a> -<h2>Document color</h2> - -Links and images are displayed as follows. -<div align="center"> -<table border="1"> -<tr><th> </th><th>Color mode</th><th>Monochrome mode</th></tr> -<tr><td>links</td><td>blue</td><td>underline</td></tr> -<tr><td>inline images</td><td>green</td><td>reverse</td></tr> -<tr><td>form input</td><td>red</td><td>reverse</td></tr> -</table> -</div> -These colors can be customized using option setting command "o". - -<hr> -<a name="Key:orig"></a> -<h2>Key binding</h2> - -After invocation, you can operate w3m by one-character commands from -the keyboard. -<P> -Here's the original key-binding table. If you are using Lynx-like key -bindings, see <a href="#Key:lynx">the Lynx-like key binding</a>. - -<H3>Page/Cursor motion</H3> -<table> -<TR><TD WIDTH=100>SPC,C-v<TD>Forward page -<TR><TD>b,ESC v<TD>Backward page -<TR><TD>l,C-f<TD>Cursor right -<TR><TD>h,C-b<TD>Cursor left -<TR><TD>j,C-n<TD>Cursor down -<TR><TD>k,C-p<TD>Cursor up -<TR><TD>J<TD>Roll up one line -<TR><TD>K<TD>Roll down one line -<TR><TD>^,C-a<TD>Go to the beginning of line -<TR><TD>$,C-e<TD>Go to the end of line -<TR><TD>w<TD>Go to next word -<TR><TD>W<TD>Go to previous word -<TR><TD>><TD>Shift screen right -<TR><TD><<TD>Shift screen left -<TR><TD>.<TD>Shift screen one column right -<TR><TD>,<TD>Shift screen one column left -<TR><TD>g,M-<<TD>Go to the first line -<TR><TD>G,M-><TD>Go to the last line -<TR><TD>ESC g<TD>Go to specified line -<TR><TD>Z<TD>Move to the center line -<TR><TD>z<TD>Move to the center column -<TR><TD>TAB<TD>Move to next hyperlink -<TR><TD>C-u,ESC TAB<TD>Move to previous hyperlink -<TR><TD>[<TD>Move to the first hyperlink -<TR><TD>]<TD>Move to the last hyperlink -</table> - -<H3>Hyperlink operation</H3> -<table> -<TR><TD WIDTH=100>RET<TD>Follow hyperlink -<TR><TD>a, ESC RET<TD>Save link to file -<TR><TD>u<TD>Peek link URL -<TR><TD>i<TD>Peek image URL -<TR><TD>I<TD>View inline image -<TR><TD>ESC I<TD>Save inline image to file -<TR><TD>:<TD>Mark URL-like strings as anchors -<TR><TD>ESC :<TD>Mark Message-ID-like strings as news anchors -<TR><TD>c<TD>Peek current URL -<TR><TD>=<TD>Display information about current document -<TR><TD>C-g<TD>Show current line number -<TR><TD>C-h<TD>View history of URL -<TR><TD>F<TD>Render frame -<TR><TD>M<TD>Browse current document using external browser -(use 2M and 3M to invoke second and third browser) -<TR><TD>ESC M<TD>Browse link using external browser -(use 2ESC M and 3ESC M to invoke second and third browser) -</table> - -<H3>File/Stream operation</H3> -<table> -<TR><TD WIDTH=100>U<TD>Open URL -<TR><TD>V<TD>View new file -<TR><TD>@<TD>Execute shell command and load -<TR><TD>#<TD>Execute shell command and browse -</table> - -<H3>Buffer operation</H3> -<table> -<TR><TD WIDTH=100>B<TD>Back to the previous buffer -<TR><TD>v<TD>View HTML source -<TR><TD>s<TD>Select buffer -<TR><TD>E<TD>Edit buffer source -<TR><TD>C-l<TD>Redraw screen -<TR><TD>R<TD>Reload buffer -<TR><TD>S<TD>Save buffer -<TR><TD>ESC s<TD>Save source -<TR><TD>ESC e<TD>Edit buffer image -</table> - -<H3>Buffer selection mode</H3> -<table> -<TR><TD WIDTH=100>k, C-p<TD>Select previous buffer -<TR><TD>j, C-n<TD>Select next buffer -<TR><TD>D<TD>Delect current buffer -<TR><TD>RET<TD>Go to the selected buffer -</table> - -<H3>Bookmark operation</H3> -<table> -<TR><TD WIDTH=100>ESC b<TD>Load bookmark -<TR><TD>ESC a<TD>Add current to bookmark -</table> - -<H3>Search</H3> -<table> -<TR><TD WIDTH=100>/,C-s<TD>Search forward -<TR><TD>?,C-r<TD>Search backward -<TR><TD>n<TD>Search next -<TR><TD>N<TD>Search previous -<TR><TD>C-w<TD>Toggle wrap search mode -</table> - -<H3>Mark operation</H3> -<table> -<TR><TD WIDTH=100>C-SPC<TD>Set/unset mark -<TR><TD>ESC p<TD>Go to previous mark -<TR><TD>ESC n<TD>Go to next mark -<TR><TD>"<TD>Mark by regular expression -</table> - -<H3>Miscellany</H3> -<table> -<TR><TD WIDTH=100>!<TD>Execute shell command -<TR><TD>H<TD>Help (load this file) -<TR><TD>o<TD>Set option -<TR><TD>C-k<TD>Show cookie jar -<TR><TD>C-c<TD>Stop -<TR><TD>C-z<TD>Suspend -<TR><TD>q<TD>Quit (with confirmation, if you like) -<TR><TD>Q<TD>Quit without confirmation -</table> - -<H3>Line-edit mode</H3> -<table> -<TR><TD WIDTH=100>C-f<TD>Move cursor forward -<TR><TD>C-b<TD>Move cursor backward -<TR><TD>C-h<TD>Delete previous character -<TR><TD>C-d<TD>Delete current character -<TR><TD>C-k<TD>Kill everything after cursor -<TR><TD>C-u<TD>Kill everything before cursor -<TR><TD>C-a<TD>Move to the top of line -<TR><TD>C-e<TD>Move to the bottom of line -<TR><TD>C-p<TD>Fetch the previous string from the history list -<TR><TD>C-n<TD>Fetch the next string from the history list -<TR><TD>TAB,SPC<TD>Complete filename -<TR><TD>RETURN<TD>Accept -</table> - -<hr> -<a name="Key:lynx"></a> -<h2>Lynx-like key binding</h2> - -If you have chosen `Lynx-like key binding' at the compile time, -you can use the following key binding. - -<H3>Page/Cursor motion</H3> -<table> -<TR><TD WIDTH=100>SPC,C-v,+<TD>Forward page -<TR><TD>b,ESC v,-<TD>Previous page -<TR><TD>l<TD>Cursor right -<TR><TD>h<TD>Cursor left -<TR><TD>j<TD>Cursor down -<TR><TD>k<TD>Cursor up -<TR><TD>J<TD>Roll up one line -<TR><TD>K<TD>Roll down one line -<TR><TD>^<TD>Go to the beginning of line -<TR><TD>$<TD>Go to the end of line -<TR><TD>><TD>Shift screen right -<TR><TD><<TD>Shift screen left -<TR><TD>C-a<TD>Go to the first line -<TR><TD>C-e<TD>Go to the last line -<TR><TD>G<TD>Go to the specified line -<TR><TD>Z<TD>Move to the center line -<TR><TD>z<TD>Move to the center column -<TR><TD>TAB,C-n,Down arrow<TD>Move to next hyperlink -<TR><TD>ESC TAB,C-p,Up arrow<TD>Move to previous link -<TR><TD>C-g<TD>Show current page position -</table> - + </dd> +<h3>Options for data output, followed by immediate exit</h3> + <dt> + -dump + </dt> + <dd> + <p> + read document specified by URL and dump page rendered as text + into standard output. + <!-- mh 2016-03-29 --> + Is set implicitly when output is directed + to a file or pipe. A width of 80 columns is used unless option + -cols sets another value. + </p> + </dd> + <dt> + -dump_source + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + dump the page's source code into stdout + </p> + </dd> + <dt> + -dump_head + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + dump response of a HEAD request for a URL into stdout + </p> + </dd> + <dt> + -dump_both + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + dump HEAD, and source code for a URL into stdout -<H2>Hyperlink operation</H2> -<table> -<TR><TD WIDTH=100>RET, C-f, Right arrow<TD>Follow hyperlink -<TR><TD>d, ESC RET<TD>Save link to file -<TR><TD>u<TD>Peek link URL -<TR><TD>i<TD>Peek image URL -<TR><TD>I<TD>View inline image -<TR><TD>ESC I<TD>Save inline image to file -<TR><TD>:<TD>Mark URL-like strings as anchors -<TR><TD>ESC :<TD>Mark Message-ID-like strings as news anchors -<TR><TD>c<TD>Peek current URL -<TR><TD>=<TD>Display information about current document -<TR><TD>C-h<TD>View history of URL -<TR><TD>F<TD>Render frame -<TR><TD>M<TD>Browse current document using external browser -(use 2M and 3M to invoke second and third browser) -<TR><TD>ESC M<TD>Browse link using external browser -(use 2ESC M and 3ESC M to invoke second and third browser) -</table> + </p> + </dd> + <dt> + -dump_extra + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + dump HEAD, source code, and extra information for a URL into + stdout + </p> + </dd> -<H2>File/Stream operation</H2> -<table> -<TR><TD WIDTH=100>g,U<TD>Open URL -<TR><TD>V<TD>View new file -<TR><TD>@<TD>Execute shell command and load -<TR><TD>#<TD>Execute shell command and browse -</table> +<h3>Options for overriding default settings and resources</h3> + + <dt> + -bookmark <i>file</i> + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + use <i>file</i> instead of the default bookmark.html file + </p> + </dd> + <dt> + -config <i>file</i> + </dt> + <dd> + <p> + <!--mh 2016-06-11--> + use <i>file</i> instead of the default configuration file + </p> + </dd> + <dt> + -o <i>option</i>=<i>value</i> + </dt> + <dd> + <p> + <!-- mh 2016-03-29--> + modify one configuration item with an explicitly given value; without <i>option=value</i>, equivalent to <i>-show-option</i> + </p> + </dd> + </dl> + <hr> + <h2 id="Color"> + Document Colors + </h2> + <p> + Hyperlinks and images are displayed as follows. + </p> + <div align="center"> + <table border="1"> + <tr> + <th> + </th> + <th> + Color mode + </th> + <th> + Monochrome mode + </th> + </tr> + <tr> + <td> + Hyperlinks + </td> + <td> + blue + </td> + <td> + underline + </td> + </tr> + <tr> + <td> + Inline images + </td> + <td> + green + </td> + <td> + reverse + </td> + </tr> + <tr> + <td> + Form input + </td> + <td> + red + </td> + <td> + reverse + </td> + </tr> + </table> + </div> + <p> + These colors can be customized using the options setting command + <i>o</i>. + </p> + <hr> + <h2 id="Functions"> + Functions and Key bindings + </h2> + + <p> + After invocation, you can control w3m by typing in functions by name + or with keystroke combinations bound to a function. There are + default key bindings. +<!-- mh 2016-06-13 obsolete + If you prefer using Lynx-like + key bindings, make w3m start with the respective keymap file keymap.lynx. (see w3m (1)).--> + </p> +<!-- + <h2 id="Key:custom"> + Key customization + </h2> +--> + <p> + You can customize the key bindings (except those for menu + operations and line-editing) in a ~/.w3m/keymap file. For example, + </p> -<H2>Buffer operation</H2> -<table> -<TR><TD WIDTH=100>B, C-b, Left arrow<TD>Back to the previous buffer -<TR><TD>\<TD>View HTML source -<TR><TD>s, C-h<TD>Select buffer -<TR><TD>E<TD>Edit buffer source -<TR><TD>C-l, C-w<TD>Redraw screen -<TR><TD>R, C-r<TD>Reload buffer -<TR><TD>S, p<TD>Save buffer -<TR><TD>ESC s<TD>Save source -<TR><TD>ESC e<TD>Edit buffer image -</table> - -<H2>Buffer selection mode</H2> -<table> -<TR><TD WIDTH=100>k, C-p<TD>Select previous buffer -<TR><TD>j, C-n<TD>Select next buffer -<TR><TD>D<TD>Delect current buffer -<TR><TD>RET<TD>Go to the selected buffer -</table> - -<H2>Bookmark operation</H2> -<table> -<TR><TD WIDTH=100>v, ESC b<TD>Load bookmark -<TR><TD>a, ESC a<TD>Add current to bookmark -</table> - -<H2>Search</H2> -<table> -<TR><TD WIDTH=100>/, C-s<TD>Search forward -<TR><TD>n<TD>Search next -<TR><TD>w<TD>Toggle wrap search mode -</table> - -<H2>Mark operation</H2> -<table> -<TR><TD WIDTH=100>C-SPC<TD>Set/unset mark -<TR><TD>P<TD>Go to previous mark -<TR><TD>N<TD>Go to next mark -<TR><TD>"<TD>Mark by regular expression -</table> - -<H2>Miscellany</H2> -<table> -<TR><TD WIDTH=100>!<TD>Execute shell command -<TR><TD>H, ?<TD>Help (load this file) -<TR><TD>o<TD>Set option -<TR><TD>C-k<TD>Show cookie jar -<TR><TD>C-c<TD>Stop -<TR><TD>C-z<TD>Suspend -<TR><TD>q<TD>Quit (with confirmation, if you like) -<TR><TD>Q<TD>Quit without confirmation -</table> - -<H2>Line-edit mode</H2> -<table> -<TR><TD WIDTH=100>C-f<TD>Move cursor forward -<TR><TD>C-b<TD>Move cursor backward -<TR><TD>C-h<TD>Delete previous character -<TR><TD>C-d<TD>Delete current character -<TR><TD>C-k<TD>Kill everything after cursor -<TR><TD>C-u<TD>Kill everything before cursor -<TR><TD>C-a<TD>Move to the top of line -<TR><TD>C-e<TD>Move to the bottom of line -<TR><TD>C-p<TD>Fetch the previous string from the history list -<TR><TD>C-n<TD>Fetch the next string from the history list -<TR><TD>TAB,SPC<TD>Complete filename -<TR><TD>RETURN<TD>Accept -</table> - -<hr> -<a name="Mouse"></a> -<h2>Mouse operation</h2> -If w3m is compiled with mouse option and you are using -xterm/kterm/rxvt (in this case, you have to set the TERM -environment variable to `xterm' or `kterm'.) or GPM -environment, you can use mouse -for the navigation. -<p> -<table border=0> -<tr><td>left click -<td>Move the cursor to the place pointed by the mouse cursor. -If you click the cursor and it is on an anchor, follow the anchor. -<tr><td>middle click -<td>Back to the previous buffer. -<tr><td>right click -<td>Open pop-up menu. You can choose an item by clicking it. -<tr><td>left drag -<td>Scroll document. The default behavior is to grab the document -and drag it. You can reverse the behavior (grab the window and drag it) -with the option setting panel. -</table> -<p> +<pre> + keymap C-o NEXT_PAGE +</pre> + <p> + binds the command <span class="mono">NEXT_PAGE</span> (normally bound to SPC and C-v) + to control-o. See <a href="README.func">README.func</a> for a list + of available functions. Original and Lynx-like keymap definitions + are provided as examples: <a href="keymap.default">keymap.default</a> + and <a href="keymap.lynx">keymap.lynx</a>. + </p> -<hr> -<a name="Key:custom"></a> -<h2>Key customization</h2> -You can customize the key binding (except line-editing keymap) -by describing ~/.w3m/keymap. For example, -<pre> + <p> + Throughout, the <i>C-</i> and <i>M-</i> notations indicate the + modifiers <i>control</i> and <i>meta</i>. The <i>ALT</i>-key + replaces the latter whereas pressing the <i>ESC</i>-key toggles + between <i>meta</i>-modified and simple keystrokes. The minus + indicates pressing the keys simultaneously wheras a space + represents that one key is pressed after the other, i.e. <i>2 M</i> + simply means <i>2</i> followed by <i>M</i>. + </p> - keymap C-o NEXT_PAGE -</pre> -binds `NEXT_PAGE' function (normally bound to SPC and C-v) -to control-o. See <a href="README.func">README.func</a> for -list of available functions. Original and Lynx-like keymap -definitions are provided (<a href="keymap.default">keymap.default</a> -and <a href="keymap.lynx">keymap.lynx</a>) as examples. + <table border="1" width="100%"> + <colgroup> + <col width="20%"> + <col width="20%"> + <col width="20%"> + <col width="40%"> + </colgroup> + <tr> + <th rowspan="2"> + Function + </th> + <th colspan="2">Key binding + </th> + <th rowspan="2"> + Description + </th> + </tr> + <tr> + <th> + Default + </th> + <th> + Lynx-like + </th> + </tr> + <tr> + <td colspan="4"> + <h3>In-page navigation</h3> +</td> + </tr> + <tr> + <td> + NEXT_PAGE + </td> + <td> + SPC, C-v, +, PGDN + </td> + <td> + SPC, C-v, + + </td> + <td> + Scroll one page downwards + </td> + </tr> + <tr> + <td> + PREVIOUS_PAGE + </td> + <td> + b, M-v, -, PGUP + </td> + <td> + b, M-v, - + </td> + <td> + Scroll one page upwards + </td> + </tr> + <tr> + <td> + MOVE_RIGHT + </td> + <td> + l, C-f, RIGHT + </td> + <td> + l + </td> + <td> + Move cursor right (with a half-screen shift at the screen edge) + </td> + </tr> + <tr> + <td> + MOVE_LEFT + </td> + <td> + h, C-b, LEFT + </td> + <td> + h + </td> + <td> + Move cursor left (with a half-screen shift at the screen edge) + </td> + </tr> + <tr> + <td> + MOVE_DOWN + </td> + <td> + j, C-n, DOWN + </td> + <td> + j + </td> + <td> + Move cursor down (with a one-line scroll at the screen edge) + </td> + </tr> + <tr> + <td> + MOVE_UP + </td> + <td> + k, C-p, UP + </td> + <td> + k + </td> + <td> + Move cursor up (with a one-line scroll at the screen edge) + </td> + </tr> + <tr> + <td> + UP + </td> + <td> + J + </td> + <td> + J + </td> + <td> + Scroll the screen up one line + </td> + </tr> + <tr> + <td> + DOWN + </td> + <td> + K + </td> + <td> + K + </td> + <td> + Scroll the screen down one line + </td> + </tr> + <tr> + <td> + LINE_BEGIN + </td> + <td> + ^, C-a + </td> + <td> + ^ + </td> + <td> + Go to the beginning of the line + </td> + </tr> + <tr> + <td> + LINE_END + </td> + <td> + $, C-e + </td> + <td> + $ + </td> + <td> + Go to the end of the line + </td> + </tr> + <tr> + <td> + NEXT_WORD + </td> + <td> + w + </td> + <td> + w + </td> + <td> + Move to the next word + </td> + </tr> + <tr> + <td> + PREVIOUS_WORD + </td> + <td> + W + </td> + <td> + W + </td> + <td> + Move to the previous word + </td> + </tr> + <tr> + <td> + SHIFT_RIGHT + </td> + <td> + > + </td> + <td> + > + </td> + <td> + Shift screen right + </td> + </tr> + <tr> + <td> + SHIFT_LEFT + </td> + <td> + < + </td> + <td> + < + </td> + <td> + Shift screen left + </td> + </tr> + <tr> + <td> + RIGHT + </td> + <td> + . + </td> + <td> + . + </td> + <td> + Shift screen one column right + </td> + </tr> + <tr> + <td> + LEFT + </td> + <td> + , + </td> + <td> + , + </td> + <td> + Shift screen one column left + </td> + </tr> + <tr> + <td> + BEGIN + </td> + <td> + g, M-<, HOME + </td> + <td> + C-a, M-< + </td> + <td> + Go to the first line + </td> + </tr> + <tr> + <td> + END + </td> + <td> + G, M->, END + </td> + <td> + C-e, M-> + </td> + <td> + Go to the last line + </td> + </tr> + <tr> + <td> + GOTO_LINE + </td> + <td> + M-g + </td> + <td> + G + </td> + <td> + Go to the specified line + </td> + </tr> + <tr> + <td> + LINE_INFO + </td> + <td> + C-g + </td> + <td> + C-g + </td> + <td> + Display current position in document + </td> + </tr> + <tr> + <td> + CENTER_H + </td> + <td> + Z + </td> +<!--Correction by mh 2014-04-06 +Description for keybinding of z and Z had been mingled +--> + <td> + Z + </td> + <td> + Center screen right and left of the cursor column + </td> + </tr> + <tr> + <td> + CENTER_V + </td> + <td> + z + </td> + <td> + z + </td> + <td> + Center screen above and below the cursor line + </td> + </tr> + <tr> + <td> + NEXT_LINK + </td> + <td> + TAB + </td> + <td> + TAB, C-n, DOWN + </td> + <td> + Move to the next hyperlink + </td> + </tr> + <tr> + <td> + PREVIOUS_LINK + </td> + <td> + M-TAB, C-u + </td> + <td> + M-TAB, C-u, C-p, UP + </td> + <td> + Move to the previous hyperlink + </td> +<!-- Annotion mh 2016-04-06 +Keybinding description for C-g had been moved as it did not fit to "Hyperlink operation" and position in the default and lynx-like series differed + --> + </tr> + <tr> + <td> + LINK_BEGIN + </td> + <td> + [ + </td> + <td> + [ + </td> + <td> + Move to the first hyperlink + </td> + </tr> + <tr> + <td> + LINK_END + </td> + <td> + ] + </td> + <td> + ] + </td> + <td> + Move to the last hyperlink + </td> + </tr> +<tr> +<td>MOVE_LIST_MENU</td> +<td>M-m</td> +<td>M-m</td> +<td>Pop up menu to navigate between hyperlinks</td> +</tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Hyperlink Operations</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + GOTO_LINK + </td> + <td> + C-j, C-m, RET + </td> + <td width="100"> + C-f, C-j, C-m, RET, RIGHT + </td> + <td> + Follow current hyperlink in a new buffer + </td> + </tr> +<tr> +<td>LIST_MENU</td> +<td>M-l</td> +<td>M-l</td> +<td>Pop up hyperlink menu and select one to be followed</td> +</tr> + <tr> + <td> + SAVE_LINK + </td> + <td> + a, M-RET + </td> + <td> + d, M-RET + </td> + <td> + Save the hyperlink target + </td> + </tr> + <tr> + <td> + PEEK_LINK + </td> + <td> + u + </td> + <td> + u + </td> + <td> + Show target address + </td> + </tr> + <tr> + <td> + PEEK_IMG + </td> + <td> + i + </td> + <td> + i + </td> + <td> + Show image address + </td> + </tr> + <tr> + <td> + VIEW_IMAGE + </td> + <td> + I + </td> + <td> + I + </td> + <td> + Display image in viewer + </td> + </tr> + <tr> + <td> + SAVE_IMAGE + </td> + <td> + M-I + </td> + <td> + M-I + </td> + <td> + Save inline image + </td> + </tr> +<tr> +<td>MARK_WORD</td> +<td>;</td> +<td>;</td> +<td>Turn current word into hyperlink</td> +</tr> + <tr> + <td> + MARK_URL + </td> + <td> + : + </td> + <td> + : + </td> + <td> + Turn URL-like strings into hyperlinks + </td> + </tr> + <tr> + <td> + MARK_MID + </td> + <td> + M-: + </td> + <td> + M-: + </td> + <td> +<!-- changed due to mail dated Mon, 04 Apr 2016 00:47:09 +0900 (JST) +from Tatsuya Kinoshita --> + Turn Message-ID-like strings into hyperlinks + </td> + </tr> + <tr> + <td> + PEEK + </td> + <td> + c + </td> + <td> + c + </td> + <td> + Show current address + </td> + </tr> + <tr> + <td> + INFO + </td> + <td> + = + </td> + <td> + = + </td> + <td> + Display information about the current document + </td> + </tr> + <tr> + <td> + HISTORY + </td> + <td> + C-h + </td> + <td> + C-h + </td> + <td> + Show browsing history + </td> + </tr> + <tr> + <td> + EXTERN + </td> + <td> + M + </td> + <td> + M + </td> + <td> + Browse current document using external browser (prefix 2, 3, ..., + or 9 to invoke alternate configured browsers, e.g. 3 M) + </td> + </tr> + <tr> + <td> + EXTERN_LINK + </td> + <td> + M-M + </td> + <td> + M-M + </td> + <td> + Browse link using external browser (prefixed as above, e.g. + 3 M-M) + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Bookmark management</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + BOOKMARK + </td> + <td> + M-b + </td> + <td> + v, M-b + </td> + <td> + View bookmarks + </td> + </tr> + <tr> + <td> + ADD_BOOKMARK + </td> + <td> + M-a + </td> + <td> + a, M-a + </td> + <td> + Add current page to bookmarks + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>File/Stream Operations</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + GOTO + </td> + <td> + U + </td> + <td> + g, U + </td> + <td> + Open specified document in a new buffer + </td> + </tr> +<tr> +<td>GOTO_RELATIVE</td> +<td>M-u</td> +<td>M-u</td> +<td>Open relative address in a new buffer</td> +</tr> + <tr> + <td> + LOAD + </td> + <td> + V + </td> + <td> + V + </td> + <td> + Open local file in a new buffer + </td> + </tr> + <tr> + <td> + READ_SHELL + </td> + <td> + @ + </td> + <td> + @ + </td> + <td> + <!--Execute shell command and view output--> + <!--mh 2016-06-13 No difference to PIPE_SHELL could be discerned--> + Execute shell command and display output in a new buffer + </td> + </tr> + <tr> + <td> + PIPE_SHELL + </td> + <td> + # + </td> + <td> + # + </td> + <td> + <!--Execute shell command and browse output--> + <!--mh 2016-06-13 No difference to READ_SHELL could be discerned--> + Execute shell command and display output in a new buffer + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Content Operations</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + VIEW <!-- is an alias to SOURCE --> + </td> + <td> + v + </td> + <td> + \ + </td> + <td> + Toggle between source code and rendered view of the document + </td> + </tr> +<tr> +<td>LIST</td> +<td>L</td> +<td>L</td> +<td>List link elements, hyperlinks and images</td> +</tr> + <tr> + <td> + FRAME + </td> + <td> + F + </td> + <td> + F + </td> + <td> + Toggle rendering HTML frames + </td> + </tr> + <tr> + <td> + REDRAW + </td> + <td> + C-l + </td> + <td> + C-l, C-w + </td> + <td> + Draw the screen anew + </td> + </tr> + <tr> + <td> + RELOAD + </td> + <td> + R + </td> + <td> + R, C-r + </td> + <td> + Load current document anew + </td> + </tr> + <tr> + <td> + EDIT + </td> + <td> + E + </td> + <td> + E + </td> + <td> + Edit local source + </td> + </tr> + <tr> + <td> + EDIT_SCREEN + </td> + <td> + M-e + </td> + <td> + M-e + </td> + <td> + Edit rendered copy of document + </td> + </tr> +<tr> +<td>PIPE_BUF</td> +<td>|</td> +<td>|</td> +<td>Pipe current buffer through a shell command and display output</td> +</tr> + <tr> + <td> + DOWNLOAD <!-- is an alias to SAVE --> + </td> + <td> + M-s + </td> + <td> + M-s + </td> + <td> + Save document source + </td> + </tr> + <tr> + <td> + SAVE_SCREEN + </td> + <td> + S + </td> + <td> + S, p + </td> + <td> + Save rendered document + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Buffer/Tab Navigation</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + BACK + </td> + <td> + B + </td> + <td> + B, C-b, LEFT + </td> + <td> + Close current buffer and return to the one below in stack + </td> + </tr> + <tr> + <td> + GOTO_HOME + </td> + <td> + C-_ + </td> + <td> + </td> + <td> + Return to the homepage (specified HTTP_HOME or WWW_HOME variable) + </td> + </tr> + <tr> + <td> + SELECT_MENU + </td> + <td> + s + </td> + <td> + s, C-h + </td> + <td> + Pop up buffer-stack menu + </td> + </tr> + <tr> + <td> + TAB_MENU + </td> + <td> + M-t + </td> + <td> + M-t + </td> + <td> + Pop up tab selection menu + </td> + </tr> + <tr> + <td> + NEW_TAB + </td> + <td> + T + </td> + <td> + T + </td> + <td> + Open a new tab (with current document) + </td> + </tr> + <tr> + <td> + TAB_LINK + </td> + <td> + C-t + </td> + <td> + C-t + </td> + <td> + Follow current hyperlink in a new tab + </td> + </tr> + <tr> + <td> + NEXT_TAB + </td> + <td> + } + </td> + <td> + } + </td> + <td> + Switch to the next tab + </td> + </tr> + <tr> + <td> + PREV_TAB + </td> + <td> + { + </td> + <td> + { + </td> + <td> + Switch to the previous tab + </td> + </tr> + <tr> + <td> + CLOSE_TAB + </td> + <td> + C-q + </td> + <td> + C-q + </td> + <td> + Close the current tab + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Searches</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + SEARCH + </td> + <td> + / + </td> + <td> + /, C-s + </td> + <td> + Search forward + </td> + </tr> + <tr> + <td> + SEARCH_BACK + </td> + <td> + ? + </td> + <td> + </td> + <td> + Search backward + </td> + </tr> + <tr> + <td> + ISEARCH + </td> + <td> + C-s + </td> + <td> + </td> + <td> + Incremental search forward + </td> + </tr> + <tr> + <td> + ISEARCH_BACK + </td> + <td> + C-r + </td> + <td> + </td> + <td> + Incremental search backward + </td> + </tr> + <tr> + <td> + SEARCH_NEXT + </td> + <td> + n + </td> + <td> + n + </td> + <td> + Continue search forward + </td> + </tr> + <tr> + <td> + SEARCH_PREV + </td> + <td> + N + </td> + <td> + </td> + <td> + Continue search backward + </td> + </tr> + <tr> + <td> + WRAP_TOGGLE + </td> + <td> + C-w + </td> + <td> + w + </td> + <td> + Toggle wrapping mode in searches + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Mark Management</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + MARK + </td> + <td> + C-SPC + </td> + <td> + C-SPC + </td> + <td> + Set/unset mark + </td> + </tr> + <tr> + <td> + PREV_MARK + </td> + <td> + M-p + </td> + <td> + P + </td> + <td> + Go to the previous mark + </td> + </tr> + <tr> + <td> + NEXT_MARK + </td> + <td> + M-n + </td> + <td> + N + </td> + <td> + Go to the next mark + </td> + </tr> + <tr> + <td> + REG_MARK + </td> + <td> + " + </td> + <td> + " + </td> + <td> + Mark all occurrences of a pattern + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="4"> + <h3>Miscellaneous</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + COMMAND + </td> + <td> + M-c + </td> + <td> + M-c + </td> + <td> + Invoke one or more semicolon-separated w3m functions + </td> + </tr> +<!-- +TODO: Where does this key binding M-Fn come from. I do not find a Fn-key on my keyboard. I do not know how to type in the keystroke combinations listed in keymap.default which are +keymap M-[E MENU +keymap M-[L MENU +keymap M-[2~ MENU +keymap M-[28~ MENU +<tr> +<td>MENU</td> +<Td>M-Fn</Td> +<td></td> +<td>Pop up menu</td> +</tr> +--> + <tr> + <td> + HELP + </td> + <td> + H + </td> + <td> + H, ? + </td> + <td> + Show help panel + </td> + </tr> + <tr> + <td> + OPTIONS + </td> + <td> + o + </td> + <td> + o + </td> + <td> + Display options setting panel + </td> + </tr> +<tr> +<td>SET_OPTION</td> +<td>M-o</td> +<td>M-o</td> +<td>Set option</td> +</tr> +<tr> +<td>DEFINE_KEY</td> +<td>M-k</td> +<td>M-k</td> +<td>Define a binding between a key stroke combination and a command</td> +</tr> +<tr> +<td>MOUSE_TOGGLE</td> +<td>m</td> +<td>m</td> +<td>Toggle mouse support</td> +</tr> +<tr> +<td>DOWNLOAD_LIST</td> +<td>D</td> +<td>D</td> +<td>Display downloads panel</td> +</tr> + <tr> + <td> + COOKIE + </td> + <td> + C-k + </td> + <td> + C-k + </td> + <td> + Show cookie jar + </td> + </tr> +<!-- +mh 2016-06-12 Interrupt is an alias to SUSPEND, no need to mention it here + <tr> + <td> + INTERRUPT + </td> + <td> + C-c + </td> + <td> + C-c + </td> + <td> + Interrupt + </td> + </tr> +--> +<tr> +<td>UNDO</td> +<td>(</td> +<td>(</td> +<td>Cancel the last cursor movement</td> +</tr> +<tr> +<td>REDO</td> +<td>)</td> +<td>)</td> +<td>Cancel the last undo</td> +</tr> + <tr> + <td> + EXEC_SHELL <!-- is an alias of SHELL --> + </td> + <td> + ! + </td> + <td> + ! + </td> + <td> + Execute shell command + </td> + </tr> +<tr> +<td>DICT_WORD</td> +<td>M-w</td> +<td>M-w</td> +<td>Execute dictionary command (see <a href="README.dict">README.dict</a>)</td> +</tr> +<tr> +<td>DICT_WORD_AT</td> +<td>M-W</td> +<td>M-W</td> +<td>Execute dictionary command for word at cursor</td> +</tr> +<tr> +<td>VERSION</td> +<td>r</td> +<td>r</td> +<td>Display the version of w3m</td> +</tr> + <tr> + <td> + SUSPEND + </td> + <td> + C-z + </td> + <td> + C-z + </td> + <td> + Suspend w3m to background. (To be withdrawn with shell + command <span class="mono">fg</span>.) + </td> + </tr> + <tr> + <td> + QUIT + </td> + <td> + q + </td> + <td> + q + </td> + <td> + Quit with confirmation request + </td> + </tr> + <tr> + <td> + EXIT + </td> + <td> + Q + </td> + <td> + Q + </td> + <td> + Quit at once + </td> + </tr> + </table> -<hr> -<a name="LocalCGI"></a> -<h2>Local CGI</h2> -You can run CGI scripts using w3m, without any HTTP server. -It means that w3m behaves like an HTTP server and activates CGI script, -then w3m reads the output of the script and display it. The -<a href="file:///$LIB/w3mbookmark?mode=panel&bmark=~/.w3m/bookmark.html&url=MANUAL.html&title=w3m+manual">bookmark registration</a> -and <a href="file:///$LIB/w3mhelperpanel?mode=panel">helper-app editor</a> -are realized as local CGI scripts. -Using local CGI, w3m can be used as a general purpose form interface. -<P> -For security reason, CGI scripts invoked by w3m must be in one of -these directories. -<ul> -<li>The directory where w3m-related files are stored -(typically /usr/local/lib/w3m). This directory can be referred -as $LIB. -<li>/cgi-bin/ directory. You can map /cgi-bin/ to any directory you like -with option setting panel (``Directory corresponds to /cgi-bin'' field). -You can specify multiple paths separated by `:', like -/usr/local/cgi-bin:/home/aito/cgi-bin. To use /cgi-bin/ directory, -you must use file:/cgi-bin URL as follows: + <p> + There are the following operational modes with built-in key + bindings for relevant functions. These bindings are not subject to + the DEFINE_KEY function or entries in the file keymap. + </p> + + <table border="1" width="100%"> + <colgroup> + <col width="20%"> + <col width="40%"> + <col width="40%"> + </colgroup> + <tr> + <th> + Function<br>(internal name) + </th> + <th>Key binding + </th> + <th> + Description + </th> + </tr> + <tr> + <td colspan="3"> + <h3>Menu Selection Mode</h3> + </td> + </tr> + <tr> + <td> + BUF:NEXT</td> + <td> + j, C-n, DOWN + </td> + <td> + Next item + </td> + </tr> + <tr> + <td>BUF:PREV + </td> + <td> + k, C-p, UP + </td> + <td> + Previous item + </td> + </tr> + <tr> + <td> + BUF:DELETE</td> + <td> + D + </td> + <td> + Delete item + </td> + </tr> + <tr> + <td> + BUF:GO + </td> + <td> + SPC, RET, RIGHT + </td> + <td> + Select item + </td> + </tr> +<!-- </table>--> + <tr> + <td colspan="3"> + <h3>Popup Menu Mode</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> +MENU:SELECT + </td> + <td> + SPC, RET, RIGHT</td> + <td> + Select + </td> + </tr> + <tr> + <td> +MENU:CLOSE + </td> + <td>C-c + </td> + <td> + Close menu + </td> + </tr> + <tr> + <td> +MENU:CANCEL + </td> + <td> + LEFT, BKSPC, C-h</td> + <td> + One selection step backward + </td> + </tr> + <tr> + <td> +MENU:DOWN + </td> + <td>j, C-n, DOWN + </td> + <td> + Move to the next item + </td> + </tr> + <tr> + <td> +MENU:UP + </td> + <td> + k, C-p, UP</td> + <td> + Move to the previous item + </td> + </tr> + <tr> + <td> +MENU:LINE_UP + </td> + <td>K + </td> + <td> + Scroll up one item + </td> + </tr> + <tr> + <td> +MENU:LINE_DOWN + </td> + <td>J + </td> + <td> + Scroll down one item + </td> + </tr> + <tr> + <td> +MENU:TOP + </td> + <td>C-a + </td> + <td> + Move to the first item + </td> + </tr> + <tr> + <td> +MENU:LAST + </td> + <td>C-e + </td> + <td> + Move to the final item + </td> + </tr> + <tr> + <td> +MENU:NEXT + </td> + <td>C-v, C-f + </td> + <td>Go to the next page + </td> + </tr> + <tr> + <td> +MENU:PREV + </td> + <td>ESC v, C-b + </td> + <td> + Go to the previous page + </td> + </tr> + <tr> + <td> +MENU:SEARCH_FORE + </td> + <td>C-s, / + </td> + <td> + Search forward + </td> + </tr> + <tr> + <td> +MENU:SEARCH_BACK + </td> + <td> + C-r, ?</td> + <td> + Search backward + </td> + </tr> + <tr> + <td> +MENU:SEARCH_NEXT + </td> + <td> + n</td> + <td> + Search for the next match</td> + </tr> + <tr> + <td> +MENU:SEARCH_PREV + </td> + <td> + N</td> + <td> + Search for the previous match</td> + </tr> +<!--mh 2016-06-12 Pressing C-z in menu mode (with menu active) has the same effect as in normal operation of w3m: Browser gets in the background + <tr> + <td> +MENU:SUSPEND + </td> + <td> + C-z</td> + <td> + Suspend</td> + </tr> +--> +<!-- </table>--> + <tr> + <td colspan="3"> + <h3>Line-editing Mode</h3> + </td> + </tr> +<!-- <table>--> + <tr> + <td> + LINEEDIT:FORWARD + </td> + <td width="100"> + C-f, RIGHT + </td> + <td> + Move cursor forward + </td> + </tr> + <tr> + <td> +LINEEDIT:BACK + </td> + <td> + C-b, LEFT + </td> + <td> + Move cursor backward + </td> + </tr> + <tr> + <td> +LINEEDIT:BS + </td> + <td> + C-h, BKSPC + </td> + <td> + Delete previous character + </td> + </tr> + <tr> + <td> +LINEEDIT:DEL + </td> + <td> + C-d + </td> + <td> + Delete current character + </td> + </tr> + <tr> + <td> +LINEEDIT:KILL_AFTER + </td> + <td> + C-k + </td> + <td> + Delete everything after cursor + </td> + </tr> + <tr> + <td> +LINEEDIT:KILL_BEFORE + </td> + <td> + C-u + </td> + <td> + Delete everything before cursor + </td> + </tr> + <tr> + <td> +LINEEDIT:TOP + </td> + <td> + C-a + </td> + <td> + Move to the beginning of the line + </td> + </tr> + <tr> + <td> +LINEEDIT:BOTTOM + </td> + <td> + C-e + </td> + <td> + Move to the end of the line + </td> + </tr> + <tr> + <td> +LINEEDIT:PREV + </td> + <td> + C-p, UP + </td> + <td> + Fetch the previous string from the history list + </td> + </tr> + <tr> + <td> +LINEEDIT:NEXT + </td> + <td> + C-n, DOWN + </td> + <td> + Fetch the next string from the history list + </td> + </tr> + <tr> + <td> +LINEEDIT:COMPLETE + </td> + <td> + TAB, SPC + </td> + <td> + Try to complete filename + </td> + </tr> + <tr> + <td> +LINEEDIT:EDITOR + </td> + <td> + C-o + </td> + <td> + Edit with external editor + </td> + </tr> + <tr> + <td> +LINEEDIT:ACCEPT + </td> + <td> + RET + </td> + <td> + Accept input line + </td> + </tr> + </table> +<!-- mh 2016-06-12 As it suffices to use the provided keymap file for Lynx-like keybindings and this file is listed in section FILES of man w3m (1), the following hint for getting w3m with Lynx-like key bindings has been deleted. + <p> + If w3m was compiled with <q>Lynx-like key bindings</q>, you can use + the following key bindings. + </p> +--> +<!-- mh 2016-06-12 Remark is obsolete as the two sets key binding are presented along within tables + <hr> + <h2 id="Key:lynx"> + <p> + The Lynx-like configuration leaves keymappings unchanged in the + menu-selection and line-editing modes. + </p> + </h2> +--> + <hr> + <h2 id="Mouse"> + Mouse Operation + </h2> + <p> + If w3m is compiled with mouse support and you are invoking w3m + either from a console with GPM or from an X terminal emulator, you + can use the mouse for navigation (in the case of rxvt, you need to + set the TERM environment variable to <q>xterm</q> or <q>kterm</q>). + </p> + <p>An introduction to configure mouse actions is provided + with <a href="README.mouse">README.mouse</a>. + </p> + <table border="1"> + <colgroup> + <col width="20%"> + <col width="80%"> + </colgroup> + <tr> + <th>Operation + </th> + <th>Description + </th> + </tr> + <tr> + <td> + left click + </td> + <td> +<b>First:</b><br> +Moves the cursor to the place indicated by the mouse pointer.<br> +<b>Then:</b><br> +Follows a hyperlink the cursor is currently located and the mouse points to. + </td> + </tr> + <tr> + <td> + middle click + </td> + <td> + Back to the previous buffer. + </td> + </tr> + <tr> + <td> + right click + </td> + <td> + Open pop-up menu. You can choose an item by clicking it. + </td> + </tr> + <tr> + <td> + left drag + </td> + <td> + Scroll document. The default behavior is to grab the document + and drag it. You can reverse the behavior (grab the window and + drag it) with the options setting panel. + </td> + </tr> + </table> + <hr> + <h2 id="LocalCGI"> + Local CGI scripts + </h2> + <p> + You can run CGI scripts using w3m, without any HTTP server. + This means that w3m behaves like an HTTP server and runs the CGI + script, then reads the output of the script and displays it. For + example, the bookmark registration system and default directory + browser are realized as local CGI scripts. Moreover, such scripts + allow w3m to be used as a form interface to acquire all kinds of + data. + </p> + <p> + For security reason, CGI scripts invoked by w3m must be in one of + the following directories: + </p> + <ul> + <li> + The directory where w3m-related files are stored (typically + /usr/local/lib/w3m). This directory can be referenced as $LIB. + </li> + <li> + The /cgi-bin/ directory. You can map /cgi-bin/ to any directory you + like in the options setting panel (the <q>Directory corresponds to + /cgi-bin</q> field). You can specify multiple paths separated by + <q>:</q>, like /usr/local/cgi-bin:/home/aito/cgi-bin. It is not + recommended to include the current directory to this path. To use + a /cgi-bin/ directory, you must use a file:/cgi-bin URL as follows: + </li> <pre> w3m -o cgi_bin=/path/to/cgi-bin file:/cgi-bin/script.cgi </pre> -It is not recommended to include current directory to this path. -</ul> -<p> -The CGI script can use special header `w3m-control:' to control w3m. -This field can take any function (see <a href="README.func">README.func</a>), -and the specified function is invoked after the document is displayed. -For example, The CGI output + </ul> + <p> + The CGI script can use the special header + <span class="mono">w3m-control:</span> to + control w3m. This field can take any function (see + <a href="README.func">README.func</a>), and the specified function + is invoked after the document is displayed. For example, the CGI + output + </p> <pre> - Content-Type: text/plain W3m-control: BACK - </pre> -will display blank page and delete that buffer immediately. -This is useful when you don't want to display any page after -the script is invoked. The next example + <p> + will display a blank page and delete that buffer immediately. + This is useful when you don't want to display any page after + the script is invoked. The next example + </p> <pre> - Content-Type: text/plain W3m-control: DELETE_PREVBUF - contents..... </pre> -will override the current buffer. -<p> -One w3m-control: header have to contain only one function, but you can -include more than one w3m-control: lines in the HTTP header. -In addition, you can specify an argument to GOTO function: + <p> + will override the current buffer. + </p> + <p> + Each header <span class="mono">w3m-control:</span> can + contain only one function, but you can + include more than one <span class="mono">w3m-control:</span> + line in the HTTP header. + In addition, you can specify an argument to the GOTO function: + </p> <pre> - Content-Type: text/plain -W3m-control: GOTO http://www.yahoo.com/ - +W3m-control: GOTO http://www.example.org/ </pre> -This example works exactly the same way to the Location header: + <p> + This example works exactly the same way as the Location header: + </p> <pre> - Content-Type: text/plain -Location: http://www.yahoo.com/ - +Location: http://www.example.org/ </pre> -Note that this header has no effect when the CGI script is invoked -through HTTP server. - -</body> + <p> + Note that this header has no effect when the CGI script is invoked + through an HTTP server. + </p> + </body> </html> @@ -110,12 +110,5 @@ Initial author: Faculty of Engineering, Tohoku University aito@fw.ipsj.or.jp -Current Maintainer - Dai Sato - Tohoku University Hospital - satodai@w3m.jp - -Feel free to send your opinion to the w3m mailing-lists. - w3m-dev@sic.med.tohoku.ac.jp (Japanese) - w3m-dev-en@sic.med.tohoku.ac.jp (English) - http://w3m.sourceforge.net/ +This package is maintained for Debian <https://www.debian.org>, +forked from the original version <https://sourceforge.net/projects/w3m/>. diff --git a/doc/README.cookie b/doc/README.cookie index 56cca50..71523e0 100644 --- a/doc/README.cookie +++ b/doc/README.cookie @@ -9,21 +9,21 @@ cookie support of w3m http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-state-man-mec-12.txt) cookie. - * If you wont to disable cookie support, run configure script with + * If you want to disable cookie support, run the configure script with --disable-cookie option. - * You can choose to use cookie or not on the Option Setting Panel or + * You can choose to use cookies or not on the Option Setting Panel or -cookie and -no-cookie option. - * You can disable cookie on the Option Setting Panel. In this case - all cookies are rejected, however, cookies which accepted before - disable cookie are used. + * You can disable cookies on the Option Setting Panel. In this case + all new cookies are rejected, however, cookies which were accepted before + cookies were disabled are used. - * You can see list of accepted cookies with C-k. In this panel, you + * You can see the list of accepted cookies with C-k. In this panel, you can choose to use each cookie or not. - * You can specify domains accept or not accept cookies on the Option - Setting Panel. Domains are specified with following format. + * You can specify domains from which to accept or not accept cookies + on the Option Setting Panel. Domains are specified in the following format: domain-list = domains | "" @@ -37,7 +37,7 @@ cookie support of w3m (HDN: host domain name) - ・ If the number of "." in domain name is lesser than 2, it is + * If the number of "." in domain name is fewer than 2, it is assumed as invalid cookie (cf. RFC 2109 4.3.2), however, you can use cookie_avoid_wrong_number_of_dots to avoid this restriction. You can set this in "Domains to avoid [wrong number diff --git a/doc/README.dict b/doc/README.dict index bd82cdb..88f4b1a 100644 --- a/doc/README.dict +++ b/doc/README.dict @@ -2,14 +2,14 @@ Dictionary look-up hack for w3m 1. INTRODUCTION -If you have dictionary look-up command (like 'webster'), you can -look a word in a document using w3m. This dictionary-lookup code +If you have a dictionary look-up command (such as 'webster'), you can +look up words in a document using w3m. This dictionary-lookup code was contributed by `Rubikitch' (rubikitch@ruby-lang.org), and -further modifed by Tushar Samant (scribble at pobox.com). +further modified by Tushar Samant (scribble at pobox.com). 2. INSTALLATION -To make use of dictionary look-up, you currently must change a +To make use of the dictionary look-up, you currently must change a compile option by hand. After running configure, edit config.h and change @@ -19,7 +19,7 @@ to #define USE_DICT -and recompile w3me (i.e. type "make install"). +and recompile w3m (i.e. type "make install"). Note that w3m/0.3+cvs-1.373 or later, USE_DICT is defined by default. Then find or install a CGI program which takes a word as a query diff --git a/doc/README.func b/doc/README.func index 0b2c034..3bdec74 100644 --- a/doc/README.func +++ b/doc/README.func @@ -1,145 +1,150 @@ -ABORT Quit w3m without confirmation -ACCESSSKEY Popup acceskey menu -ADD_BOOKMARK Add current page to bookmark +ABORT Quit at once +ACCESSKEY Pop up accesskey menu +ADD_BOOKMARK Add current page to bookmarks ALARM Set alarm -BACK Back to previous buffer +BACK Close current buffer and return to the one below in stack BEGIN Go to the first line -BOOKMARK Read bookmark -CENTER_H Move to the center line -CENTER_V Move to the center column -CHARSET Change the current document charset -CLOSE_TAB Close current tab -CLOSE_TAB_MOUSE Close tab on mouse cursor (for mouse action) -COMMAND Execute w3m command(s) +BOOKMARK View bookmarks +CENTER_H Center on cursor column +CENTER_V Center on cursor line +CHARSET Change the character encoding for the current document +CLOSE_TAB Close tab +CLOSE_TAB_MOUSE Close tab at mouse pointer +COMMAND Invoke w3m function(s) COOKIE View cookie list -DEFAULT_CHARSET Change the default document charset -DEFINE_KEY Define a binding between a key stroke and a user command -DELETE_PREVBUF Delete previous buffer (mainly for local-CGI) +CURSOR_TOP Move cursor to the top line on the screen +CURSOR_MIDDLE Move cursor to the middle line on the screen +CURSOR_BOTTOM Move cursor to the bottom line on the screen +DEFAULT_CHARSET Change the default character encoding +DEFINE_KEY Define a binding between a key stroke combination and a command +DELETE_PREVBUF Delete previous buffer (mainly for local CGI-scripts) DICT_WORD Execute dictionary command (see README.dict) -DICT_WORD_AT Execute dictionary command for word at cursor +DICT_WORD_AT Execute dictionary command for word at cursor DISPLAY_IMAGE Restart loading and drawing of images -DOWN Scroll down one line -DOWNLOAD Save document source to file -DOWNLOAD_LIST Display download list panel -EDIT Edit current document -EDIT_SCREEN Edit currently rendered document +DOWN Scroll the screen down one line +DOWNLOAD Save document source +DOWNLOAD_LIST Display downloads panel +EDIT Edit local source +EDIT_SCREEN Edit rendered copy of document END Go to the last line -EXEC_SHELL Execute shell command -EXIT Quit w3m without confirmation -EXTERN Execute external browser -EXTERN_LINK View current link using external browser -FRAME Render frame -GOTO Go to URL -GOTO_LINE Go to specified line -GOTO_LINK Go to current link -GOTO_RELATIVE Go to relative URL -HELP View help -HISTORY View history of URL -INFO View info of current document -INTERRUPT Stop loading document -INIT_MAILCAP Reread mailcap (mainly for local-CGI) -ISEARCH Incremental search forward +EXEC_SHELL Execute shell command and display output +EXIT Quit at once +EXTERN Display using an external browser +EXTERN_LINK Display target using an external browser +FRAME Toggle rendering HTML frames +GOTO Open specified document in a new buffer +GOTO_HOME Return to the homepage (specified HTTP_HOME or WWW_HOME variable) +GOTO_LINE Go to the specified line +GOTO_LINK Follow current hyperlink in a new buffer +GOTO_RELATIVE Go to relative address +HELP Show help panel +HISTORY Show browsing history +INFO Display information about the current document +INTERRUPT Suspend w3m to background +ISEARCH Incremental search forward ISEARCH_BACK Incremental search backward -LEFT Shift screen one column -LINE_BEGIN Go to the beginning of line -LINE_END Go to the end of line -LINE_INFO Show current line number -LINK_BEGIN Go to the first link -LINK_END Go to the last link -LINK_MENU Popup link element menu -LIST Show all links and images -LIST_MENU Popup link list menu and go to selected link -LOAD Load local file -MAIN_MENU Popup menu +LEFT Shift screen one column left +LINE_BEGIN Go to the beginning of the line +LINE_END Go to the end of the line +LINE_INFO Display current position in document +LINK_BEGIN Move to the first hyperlink +LINK_END Move to the last hyperlink +LINK_MENU Pop up link element menu +LIST Show all URLs referenced +LIST_MENU Pop up menu for hyperlinks to browse to +LOAD Open local file in a new buffer +MAIN_MENU Pop up menu MARK Set/unset mark -MARK_MID Mark Message-ID-like strings as anchors -MARK_URL Mark URL-like strings as anchors -MARK_WORD Mark current word as anchor -MENU Popup menu -MENU_MOUSE Popup menu at mouse cursor (for mouse action) -MOUSE_TOGGLE Toggle activity of mouse -MOVE_DOWN Move cursor down (a half screen scroll at the end of screen) -MOVE_DOWN1 Move cursor down (1 line scroll at the end of screen) -MOVE_LEFT Move cursor left (a half screen shift at the left edge) -MOVE_LEFT1 Move cursor left (1 columns shift at the left edge) -MOVE_LIST_MENU Popup link list menu and move cursor to selected link -MOVE_MOUSE Move cursor to mouse cursor (for mouse action) -MOVE_RIGHT Move cursor right (a half screen shift at the right edge) -MOVE_RIGHT1 Move cursor right (1 columns shift at the right edge) -MOVE_UP Move cursor up (a half screen scroll at the top of screen) -MOVE_UP1 Move cursor up (1 line scrol at the top of screen) -MSGS Display error messages -NEW_TAB Open new tab -NEXT Move to next buffer -NEXT_DOWN Move to next downward link -NEXT_LEFT Move to next left link -NEXT_LEFT_UP Move to next left (or upward) link -NEXT_LINK Move to next link -NEXT_MARK Move to next word -NEXT_PAGE Move to next page -NEXT_RIGHT Move to next right link -NEXT_RIGHT_DOWN Move to next right (or downward) link -NEXT_TAB Move to next tab -NEXT_UP Move to next upward link -NEXT_VISITED Move to next visited link -NEXT_WORD Move to next word -NOTHING Do nothing +MARK_MID Turn Message-ID-like strings into hyperlinks +MARK_URL Turn URL-like strings into hyperlinks +MARK_WORD Turn current word into hyperlink +MENU Pop up menu +MENU_MOUSE Pop up menu at mouse pointer +MOUSE_TOGGLE Toggle mouse support +MOVE_DOWN Cursor down +MOVE_DOWN1 Cursor down. With edge touched, slide +MOVE_LEFT Cursor left +MOVE_LEFT1 Cursor left. With edge touched, slide +MOVE_LIST_MENU Pop up menu to navigate between hyperlinks +MOVE_MOUSE Move cursor to mouse pointer +MOVE_RIGHT Cursor right +MOVE_RIGHT1 Cursor right. With edge touched, slide +MOVE_UP Cursor up +MOVE_UP1 Cursor up. With edge touched, slide +MSGS Display error messages +NEW_TAB Open a new tab (with current document) +NEXT Switch to the next buffer +NEXT_DOWN Move downward to the next hyperlink +NEXT_HALF_PAGE Scroll down half a page +NEXT_LEFT Move left to the next hyperlink +NEXT_LEFT_UP Move left or upward to the next hyperlink +NEXT_LINK Move to the next hyperlink +NEXT_MARK Go to the next mark +NEXT_PAGE Scroll down one page +NEXT_RIGHT Move right to the next hyperlink +NEXT_RIGHT_DOWN Move right or downward to the next hyperlink +NEXT_TAB Switch to the next tab +NEXT_UP Move upward to the next hyperlink +NEXT_VISITED Move to the next visited hyperlink +NEXT_WORD Move to the next word +NOTHING Do nothing NULL Do nothing -OPTIONS Option setting panel -PEEK Peek current URL -PEEK_IMG Peek image URL -PEEK_LINK Peek link URL -PIPE_BUF Send rendered document to pipe -PIPE_SHELL Execute shell command and browse -PREV Move to previous buffer -PREV_LINK Move to previous link -PREV_MARK Move to previous mark -PREV_PAGE Move to previous page -PREV_TAB Move to previous tab -PREV_VISITED Move to previous visited link -PREV_WORD Move to previous word -PRINT Save buffer to file -QUIT Quit w3m -READ_SHELL Execute shell command and load +OPTIONS Display options setting panel +PEEK Show current address +PEEK_IMG Show image address +PEEK_LINK Show target address +PIPE_BUF Pipe current buffer through a shell command and display output +PIPE_SHELL Execute shell command and display output +PREV Switch to the previous buffer +PREV_HALF_PAGE Scroll up half a page +PREV_LINK Move to the previous hyperlink +PREV_MARK Go to the previous mark +PREV_PAGE Scroll up one page +PREV_TAB Switch to the previous tab +PREV_VISITED Move to the previous visited hyperlink +PREV_WORD Move to the previous word +PRINT Save rendered document +QUIT Quit with confirmation request +READ_SHELL Execute shell command and display output REDO Cancel the last undo -REDRAW Redraw screen -REG_MARK Set mark using regexp -REINIT Reload configuration files -RELOAD Reload buffer -RESHAPE Re-render buffer +REDRAW Draw the screen anew +REG_MARK Mark all occurences of a pattern +REINIT Reload configuration file +RELOAD Load current document anew +RESHAPE Re-render document RIGHT Shift screen one column right -SAVE Save document source to file -SAVE_IMAGE Save image to file -SAVE_LINK Save link to file -SAVE_SCREEN Save rendered document to file +SAVE Save document source +SAVE_IMAGE Save inline image +SAVE_LINK Save hyperlink target +SAVE_SCREEN Save rendered document SEARCH Search forward SEARCH_BACK Search backward SEARCH_FORE Search forward -SEARCH_NEXT Search next regexp -SEARCH_PREV Search previous regexp -SELECT Go to buffer selection panel -SELECT_MENU Popup buffer selection menu -SETENV Set environment variable -SET_OPTION Set option -SHELL Execute shell command +SEARCH_NEXT Continue search forward +SEARCH_PREV Continue search backward +SELECT Display buffer-stack panel +SELECT_MENU Pop up buffer-stack menu +SETENV Set environment variable +SET_OPTION Set option +SHELL Execute shell command and display output SHIFT_LEFT Shift screen left SHIFT_RIGHT Shift screen right -SOURCE View HTML source +SOURCE Toggle between HTML shown or processed STOP_IMAGE Stop loading and drawing of images SUBMIT Submit form -SUSPEND Stop loading document -TAB_GOTO Open URL on new tab -TAB_GOTO_RELATIVE Open relative URL on new tab -TAB_LEFT Move current tab left -TAB_LINK Open current link on new tab -TAB_MENU Popup tab selection menu -TAB_MOUSE Move to tab on mouse cursor (for mouse action) -TAB_RIGHT Move current tab right +SUSPEND Suspend w3m to background +TAB_GOTO Open specified document in a new tab +TAB_GOTO_RELATIVE Open relative address in a new tab +TAB_LEFT Move left along the tab bar +TAB_LINK Follow current hyperlink in a new tab +TAB_MENU Pop up tab selection menu +TAB_MOUSE Select tab by mouse action +TAB_RIGHT Move right along the tab bar UNDO Cancel the last cursor movement -UP Scroll up one line -VERSION Display version of w3m -VIEW View HTML source -VIEW_BOOKMARK View bookmark -VIEW_IMAGE View image -WHEREIS Search forward -WRAP_TOGGLE Toggle wrap search mode +UP Scroll the screen up one line +VERSION Display the version of w3m +VIEW Toggle between HTML shown or processed +VIEW_BOOKMARK View bookmarks +VIEW_IMAGE Display image in viewer +WHEREIS Search forward +WRAP_TOGGLE Toggle wrapping mode in searches diff --git a/doc/README.img b/doc/README.img index 0c10114..af6d9db 100644 --- a/doc/README.img +++ b/doc/README.img @@ -11,8 +11,8 @@ Introduction Support - * Display inline image (GIF,PNG,JPEG, etc.) on terminals - (xterm,rxvt, etc.) of X11, Linux framebuffer device or + * Display inline images (GIF, PNG, JPEG, etc.) on terminals + (xterm, rxvt, etc.) of X11, Linux framebuffer device or terminals of Windows. * Support inline image of <img> tag. Support of attributes "width", "height", and "align". @@ -41,7 +41,7 @@ Key functions Specify the following keymaps in ~/.w3m/keymap. keymap X DISPLAY_IMAGE keymap C-c STOP_IMAGE - keyamp t SET_OPTION display_image=toggle + keymap t SET_OPTION display_image=toggle Commandline options @@ -66,7 +66,7 @@ Option panel Automatic loading of inline image. The default is ON. If it is OFF, loading starts with a command DISPLAY_IMAGE. max_load_image - Maximum process for downloading of inline image. The default is 4. + Maximum # of processes for downloading inline images. The default is 4. 1 to 8 can be set. ext_image_viewer Use external image viewer, when a command VIEW_IMAGE or @@ -75,8 +75,8 @@ Option panel image_scale Scale of image (%). The default value is 100(%). imgdisplay - External command to display image". The default value is "w3mimgdisplay". - See "Setting w3mimgdisplay". + External command to display image. The default value is "w3mimgdisplay". + See "Setting w3mimgdisplay." Required programs @@ -124,8 +124,8 @@ Setting w3mimgdisplay The default value for Linux framebuffer device is #000000 (black). When the color is specified as #RRGGBB, escape '#'. -anim <n> - Maximum number of frames for animation. It means without limit - if the number is 0. Negative value count backward from the end + Maximum number of frames for animation. It will run everything + if the number is 0. Negative values count backward from the end of the frames. The default value is 100. -margin <n> Margin of an area to clear an image. The default value is 0. @@ -135,13 +135,13 @@ Setting w3mimgdisplay Notice If you want to see GIF animation, please hit a suitable key, such - as 'h', 'l', etc., repeatedly, because a frame is rewritten + as 'h', 'l', etc., repeatedly, because a new frame is only requested according to the re-drawing demand from w3m. Some code in w3mimg/fb/fb.c was originally written by Mr. Yamasaki. http://www.sainet.or.jp/~yamasaki/download/fb-sample.tar.gz - On Windows, we check the behaver on standard console, Cygwin rxvt + On Windows, we check the behavior on standard console, Cygwin rxvt and PuTTY. diff --git a/doc/README.m17n b/doc/README.m17n index c064d76..da5408b 100644 --- a/doc/README.m17n +++ b/doc/README.m17n @@ -49,7 +49,7 @@ Supported encoding schemes (character set) * Thai TIS-620 (ISO-8859-11), CP874 * Other - US_ASCII, ISO-8859-1 〜 10, 13 〜 15, + US_ASCII, ISO-8859-1 - 10, 13 - 15, KOI8-R, KOI8-U, NeXT, CP437, CP737, CP775, CP850, CP852, CP855, CP856, CP857, CP860, CP861, CP862, CP863, CP864, CP865, CP866, CP869, CP1006, CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257 diff --git a/doc/README.pre_form b/doc/README.pre_form index 972ef90..dad62f8 100644 --- a/doc/README.pre_form +++ b/doc/README.pre_form @@ -1,12 +1,12 @@ -pre_form: Feature to configure form parameters when opening specific site. +pre_form: Feature to pre-fill form parameters when opening a specific site. -It would be convinient for sites where you often visit, but it may introduce -some security issues. Be careful to use this feature, especially `submit' +It is convenient for sites that you visit often, but it may introduce +some security issues. Be careful when using this feature, especially `submit' params described below. Default configuration file for pre_form is ~/.w3m/pre_form. -Syntax as follows: +The syntax of entries in the configuration file is as follows: url <url>|/<re-url>/ form [<name>] <action> @@ -23,21 +23,21 @@ textarea <name> : /textarea -If <action> is set, form which has matched <action> attributes +If <action> is set, a form which has matched <action> attributes will be configured by this pre_form. -The line begining with text, file, passwd, select, textarea means that +A line beginning with text, file, passwd, select, textarea means that it will set value to <value> in input, select or textarea element which name attribute matches with <name>. -The line beginning with checkbox, radio means that it will check +A line beginning with checkbox, radio means that it will check input element which name and value attribute matches with <name> and <value> -respectively. If <checked> is 0, no, or off, disable check of the checkbox. +respectively. If <checked> is 0, no, or off, the checkbox will be unchecked. -The line beginning with submit or image means that it will submit input -element which name attribute matches with <name> (and value attribute -matches with <value>), or submit last <input type=submit> element if no -<name> specified. +A line beginning with submit or image means that it will submit input +element whose name attribute matches with <name> (and value attribute +matches with <value>), or submit on the last <input type=submit> element if no +<name> was specified. You quote \, ' (single-quote) or " (double quote) as you do in shell. diff --git a/doc/README.siteconf b/doc/README.siteconf new file mode 100644 index 0000000..8514edf --- /dev/null +++ b/doc/README.siteconf @@ -0,0 +1,73 @@ +The siteconf: Site-specific preferences + +The siteconf consists of URL patterns and preferences associated to them. +You can improve "decode_url" feature by giving charsets of URLs site by site, +or bypass Google's redirector for performance and your privacy. + +The siteconf is read from ~/.w3m/siteconf by default. + +===== The syntax ===== + +url <url>|/<re-url>/|m@<re-url>@i [exact] +substitute_url "<destination-url>" +url_charset <charset> +no_referer_from on|off +no_referer_to on|off +user_agent "string" + +The last match wins. + +===== Examples ===== + +url m!^https?://([a-z]+\.)?twitter\.com/! +substitute_url "https://nitter.net/" + +This forwards twitter.com to the alternative site. + +url "http://your.bookmark.net/" +no_referer_from on + +This prevents HTTP referers from being sent when you follow links +at the your.bookmark.net. + +url "http://www.google.com/url?" exact +substitute_url "file:///cgi-bin/your-redirector.cgi?" + +This forwards the Google's redirector to your local CGI. + +url /^http:\/\/[a-z]*\.wikipedia\.org\// +url_charset utf-8 + +When combinated with "decode_url" option turned on, links to +Wikipedia will be human-readable. + +url m@^https?://(.*\.)google\.com/@ +user_agent "Lynx/2.8.8dev.3 libwww-FM/2.14 SSL-MM/1.4.1" + +Tell Google we're actually Lynx. (So they send us a text-browser friendly +results page.) + +url m!^https?://([a-z]+\.)?twitter\.com/! +user_agent "Googlebot/2.1" + +Tell Twitter we're actually Googlebot. (So they send us a page without +rejection of a JavaScript disabled browser.) + +===== Regular expressions notes ===== + +Following expressions are all equivalent: + +/http:\/\/www\.example\.com\// +m/http:\/\/www\.example\.com\// +m@http://www\.example\.com/@ +m!http://www\.example\.com/! + +With a trailing 'i' modifier, you can specify a case-insensitive match. +For example, m@^http://www\.example\.com/abc/@i matches to: + +http://www.example.com/abc/ +http://www.example.com/Abc/ +http://www.example.com/ABC/ + +Hostnames, however, are always converted to lowercases before compared. + diff --git a/doc/README.sixel b/doc/README.sixel new file mode 100644 index 0000000..588afc4 --- /dev/null +++ b/doc/README.sixel @@ -0,0 +1,27 @@ +Sixel support of w3m + 2014/11/05 + K. Araki + +Introduction + + This is the extension for w3m to show inline images by sixel graphics. + +Requirements + + Install 'img2sixel' command provided by libsixel project. + (https://github.com/saitoha/libsixel) + +Build + + $ ./configure --enable-image ... + $ make + $ make install + +Usage + + $ w3m -sixel http://... + + You can specify options of 'img2sixel' command by "W3M_IMG2SIXEL" + environmental variable. + + $ W3M_IMG2SIXEL="img2sixel -d atkinson" w3m -sixel http://... diff --git a/doc/README.tab b/doc/README.tab index 8e98e1c..f237f70 100644 --- a/doc/README.tab +++ b/doc/README.tab @@ -39,7 +39,7 @@ Options: open_tab_blank ... open new tab if target is _blank or _new default: OFF close_tab_back ... close the tab when you back from last buffer in the tab - default: OFF (= Can't back...) + default: OFF (= Can't go back...) diff --git a/doc/STORY.html b/doc/STORY.html index 8e89f8c..4ac29ec 100644 --- a/doc/STORY.html +++ b/doc/STORY.html @@ -182,6 +182,10 @@ library. This library was written by H. Boehm and A. Demers. I could distribute w3m without this library because one can get the library separately, but I decided to contain it in the w3m distribution for the convenience of an installer. +<P> +# Boehm GC library is no longer included into w3m packages +# after w3m-0.4.2. +<P> W3m doesn't use libwww. <P> Boehm GC is a garbage collector for C and C++. I began to use this diff --git a/doc/keymap.default b/doc/keymap.default index 0ecf14f..174e4ed 100644 --- a/doc/keymap.default +++ b/doc/keymap.default @@ -11,6 +11,7 @@ # Left : LEFT, ^[[D keymap C-@ MARK +keymap C-_ GOTO_HOME keymap C-a LINE_BEGIN keymap C-b MOVE_LEFT keymap C-e LINE_END diff --git a/doc/keymap.lynx b/doc/keymap.lynx index 869c716..e4085c8 100644 --- a/doc/keymap.lynx +++ b/doc/keymap.lynx @@ -46,7 +46,7 @@ keymap - PREV_PAGE keymap . RIGHT keymap / SEARCH keymap : MARK_URL -keymap ; MARK_WORD +keymap ";" MARK_WORD keymap < SHIFT_LEFT keymap = INFO keymap > SHIFT_RIGHT diff --git a/doc/menu.submenu b/doc/menu.submenu index e55193d..e837f46 100644 --- a/doc/menu.submenu +++ b/doc/menu.submenu @@ -39,6 +39,6 @@ menu Link end menu Bookmark - func "Read bookmark (b)" BOOKMARK "bB" + func "View bookmarks (b)" BOOKMARK "bB" func "Add page to bookmark(a)" ADD_BOOKMARK "aA" end @@ -1,13 +1,10 @@ .nr N -1 .nr D 5 -.TH W3M 1 Local -.UC 4 +.TH W3M 1 "2016-08-06" "w3m 0.5.3" .SH NAME -w3m \- a text based Web browser and pager +w3m \- a text based web browser and pager .SH SYNOPSIS -.B w3m -[options] [URL or filename] -.PP +w3m [OPTION]... [ \fIfile\fP | \fIURL\fP ]... .SH DESCRIPTION .\" This defines appropriate quote strings for nroff and troff .ds lq \&" @@ -17,236 +14,304 @@ w3m \- a text based Web browser and pager .\" Just in case these number registers aren't set yet... .if \nN==0 .nr N 10 .if \nD==0 .nr D 5 -.I -w3m -is a World Wide Web (WWW) text based client. It has English and -Japanese help files and an option menu and can be configured to -use either language. It will display hypertext markup language -(HTML) documents containing links to files residing on the local -system, as well as files residing on remote systems. It can -display HTML tables and frames. -In addition, it can be used as a "pager" in much the same manner -as "more" or "less". -Current versions of -.I -w3m -run on -Unix (Solaris, SunOS, HP-UX, Linux, FreeBSD, and EWS4800) -and on -Microsoft Windows 9x/NT. -.PP + +\fIw3m\fP is a text based browser which can display local or remote +web pages as well as other documents. +It is able to process HTML +tables and frames but it ignores JavaScript and Cascading Style +Sheets. +\fIw3m\fP can also serve as a pager for text files named as +arguments or passed on standard input, and as a general purpose +directory browser. + +\fIw3m\fP organizes its content in buffers or tabs, allowing easy +navigation between them. +With the w3m-img extension installed, \fIw3m\fP can +display inline graphics in web pages. +And whenever \fIw3m\fP's HTML +rendering capabilities do not meet your needs, the target URL can be +handed over to a graphical browser with a single command. + +For help with runtime options, press \(lqH\(rq while running \fIw3m\fP. + +.SH ARGUMENTS + +When given one or more command line arguments, \fIw3m\fP will handle +targets according to content type. +For web, \fIw3m\fP gets this +information from HTTP headers; for relative or absolute file system +paths, it relies on filenames. + +With no argument, \fIw3m\fP expects data from standard input and +assumes \(lqtext/plain\(rq unless another MIME type is given by the user. + +If provided with no target and no fallback target (see for instance +option \fB\-v\fP below), \fIw3m\fP will exit with usage information. .SH OPTIONS -At start up, \fIw3m\fR will load any local -file or remote URL specified at the command -line. For help with runtime options, press \fB"H"\fR -while running \fIw3m\fR. -Command line options are: -.PP -.TP -.B -t tab -set tab width -.TP -.B -r -ignore backspace effect +Command line options are introduced with a single \(lq\-\(rq character and +may take an argument. +.SS General options .TP -.B -l line -# of preserved line (default 10000) +\fB\-B\fP +with no other target defined, use the bookmark page for startup .TP -.B -I charset -document charset +\fB\-M\fP +monochrome display .TP -.B -O charset -display/output charset +\fB\-no-mouse\fP +deactivate mouse support .TP -.B -B -load bookmark +\fB\-num\fP +display each line's number .TP -.B -bookmark file -specify bookmark file +\fB\-N\fP +distribute multiple command line arguments to tabs. +By default, a +stack of buffers is used .TP -.B -T type -specify content-type +\fB\-ppc \fInum\fR +width of \fInum\fR pixels per character. +Range of 4.0 to 32.0, default 8.0. +Larger values will make tables narrower. +(Implementation not verified) .TP -.B -m -internet message mode +\fB\-ppl \fInum\fR +height of \fInum\fR pixels per line. +Range of 4.0 to 64.0. +(Implementation not verified) .TP -.B -v -visual startup mode +\fB\-title\fP, \fB\-title=TERM\fP +use the buffer name as terminal title string. +With specified TERM, +this sets the title configuration style accordingly .TP -.B -M -monochrome display +\fB\-v\fP +with no other target defined, welcome users with a built-in page .TP -.B -N -open URL of command line on each new tab +\fB\-W\fP +toggle wrapping mode in searches .TP -.B -F -automatically render frame +\fB\-X\fP +do not initialize/deinitialize the terminal .TP -.B -dump -dump formatted page into stdout +\fB+\fInum\fR +go to line \fInum\fR; +only effective for \fInum\fR larger than the number of lines in the terminal +.SS Browser options .TP -.B -cols width -specify column width (used with -dump) +\fB\-cols \fInum\fR +with stdout as destination; HTML is rendered to lines of \fInum\fR characters .TP -.B -ppc count -specify the number of pixels per character (4.0...32.0). -Larger values will make tables narrower. [default 8.0] +\fB\-cookie\fP, \fB\-no-cookie\fP +use stored cookies and accept new ones, or do neither .TP -.B -ppl count -specify the number of pixels per line (4.0...64.0) +\fB\-F\fP +render frames .TP -.B -dump_source -dump page source into stdout +\fB\-graph\fP, \fB\-no-graph\fP +use or do not use graphic characters for drawing HTML table and frame borders .TP -.B -dump_head -dump response of HEAD request into stdout +\fB\-header \fIstring\fR +append \fIstring\fR to the HTTP(S) request. +Expected to match the header syntax \f(CWVariable: Value\fP .TP -.B -dump_both -dump HEAD and source into stdout +\fB\-m\fP +Render the body of Usenet messages according to the header \(lqContent-type\(rq .TP -.B -dump_extra -dump HEAD, source, and extra information into stdout +\fB\-no-proxy\fP +do not use proxy .TP -.B -post file -use POST method with file content +\fB\-post \fIfile\fR +use POST method to upload data defined in \fIfile\fR. +The syntax to be used +is \f(CWvar1=value1[&var2=value2]...\fP .TP -.B -header string -insert string as a header +\fB\-4\fP +IPv4 only. +Corresponds to dns_order=4 in configuration files .TP -.B +<num> -goto <num> line +\fB\-6\fP +IPv6 only. +Corresponds to dns_order=6 in configuration files +.SS Text pager options .TP -.B -num -show line number +\fB\-l \fInum\fR +number of lines preserved internally when receiving plain text from +stdin (default 10,000) .TP -.B -no-proxy -don't use proxy +\fB\-r\fP +use caret notation to display special escape characters (such +as ANSI escapes or nroff-style backspaces for bold and underlined +characters) instead of processing them .TP -.B -4 -IPv4 only (-o dns_order=4) +\fB\-s\fP +squeeze multiple blank lines into one .TP -.B -6 -IPv6 only (-o dns_order=6) +\fB\-t\fP \fInum\fP +set tab width to \fInum\fR columns. +No effect on stdout +.SS Data type/encoding options .TP -.B -no-mouse -don't use mouse +\fB\-I \fIcharset\fR +user defined character encoding of input data .TP -.B -cookie -use cookie. +\fB\-O \fIcharset\fR +user defined character encoding of output data .TP -.B -no-cookie -don't use cookie +\fB\-T \fItype\fR +explicit characterization of input data by MIME type +.SS Options for data output, followed by immediate exit .TP -.B -graph -use graphic character +\fB\-dump\fP +dump rendered page into stdout. +Set implicitly when output is directed +to a file or pipe .TP -.B -no-graph -don't use graphic character +\fB\-dump_source\fP +dump the page's source code into stdout .TP -.B -S -squeeze multiple blank lines +\fB\-dump_head\fP +dump response of a HEAD request for a URL into stdout .TP -.B -W -toggle wrap search mode +\fB\-dump_both\fP +dump HEAD, and source code for a URL into stdout .TP -.B -X -don't use termcap init/deinit +\fB\-dump_extra\fP +dump HEAD, source code, and extra information for a URL into stdout .TP -.B -title [=TERM] -set buffer name to terminal title string. -If TERM is specified, use the TERM style title configuration. +\fB\-help\fP +show a summary of compiled-in features and command line options .TP -.B -o opt=value -assign value to config option +\fB\-show-option\fP +show all available configuration options .TP -.B -show-option -show all available config option +\fB\-version\fP +show the version of \fIw3m\fP +.SS Options for overriding default settings and resources .TP -.B -config file -specify config file +\fB\-bookmark \fIfile\fR +use \fIfile\fR instead of the default bookmark.html file .TP -.B -help -show usage +\fB\-config \fIfile\fR +use \fIfile\fR instead of the default configuration file .TP -.B -version -show w3m version +\fB\-debug\fP +DO NOT USE .TP -.B -reqlog -write request logfile +\fB\-o \fIoption=value\fR +modify one configuration item with an explicitly given value; +without \fIoption=value\fR, equivalent to \fB\-show-option\fR .TP -.B -debug -DO NOT USE +\fB\-reqlog\fP +log headers of HTTP communication in file \f(CW~/.w3m/request.log\fP .SH EXAMPLES +.SS Pager-like usage +.TP +Combine snippets of HTML code and preview the page +.EX +$ cat header.html footer.html | w3m \-T text/html +.EE +.TP +Compare two files using tabs +.EX +$ w3m \-N config.old config +.EE +.SS Browser-like usage +.TP +Display web content in monochrome terminal +.EX +$ w3m \-M http://w3m.sourceforge.net +.EE +.TP +Display embedded graphics +.EX +$ w3m \-o auto_image=TRUE http://w3m.sourceforge.net +.EE +.TP +Display content from Usenet +.EX +$ w3m \-m nntp://news.aioe.org/comp.os.linux.networking +.EE +.TP +Upload data for a URL using the POST method +.EX +$ w3m \-post \- http://example.com/form.php <<<'a=0&b=1' +.EE +.SS Filter-like usage +.TP +Convert an HTML file to plain text with a defined line length +.EX +$ w3m \-cols 40 foo.html > foo.txt +.EE +.TP +Output the bookmarks page as text with an appended list of links +.EX +$ w3m \-B \-o display_link_number=1 > out.txt +.EE +.TP +Conversion of file format and character encoding +.EX +$ w3m \-T text/html \-I EUC-JP \-O UTF-8 < foo.html > foo.txt +.EE +.SS Start with no input +.TP +Welcome users with a built-in page +.EX +$ w3m \-v +.EE +.\".SH Errors +.SH ENVIRONMENT +\fIw3m\fP recognises the environment variable WWW_HOME as defining a +fallback target for use if it is invoked without one. +.SH FILES .TP -To use w3m as a pager: -.br -$ ls | w3m -.br -.TP -To use w3m to translate HTML files: -.br -$ cat foo.html | w3m -T text/html +\f(CW~/.w3m/bookmark.html\fP +default bookmark file .TP -or -.br -$ cat foo.html | w3m -dump -T text/html >foo.txt -.SH FILES +\f(CW~/.w3m/config\fP +user defined configuration file; overrides \f(CW/etc/w3m/config\fP .TP -.I ${HOME}/.w3m/config -configuration file +\f(CW~/.w3m/cookie\fP +cookie jar; written on exit, read on launch .TP -.I ${HOME}/.w3m/keymap -key binding configuration file -.\" .TP -.\" .I ${HOME}/.w3m/menu -.\" ??? +\f(CW~/.w3m/history\fP +browser history - visited files and URLs .TP -.I ${HOME}/.w3m/mouse -mouse configuration file +\f(CW~/.w3m/keymap\fP +user defined key bindings; overrides default key bindings .TP -.I ${HOME}/.w3m/cookie -cookie file +\f(CW~/.w3m/mailcap\fP +external viewer configuration file .TP -.I ${HOME}/.w3m/history -history file +\f(CW~/.w3m/menu\fP +user defined menu; overrides default menu .TP -.I ${HOME}/.w3m/passwd -passowrd and username file +\f(CW~/.w3m/mime.types\fP +MIME types file .TP -.I ${HOME}/.w3m/pre_form -form parameters file +\f(CW~/.w3m/mouse\fP +user defined mouse settings .TP -.I ${HOME}/.w3m/mailcap -external viewer configuration file +\f(CW~/.w3m/passwd\fP +password and username file .TP -.I ${HOME}/.w3m/mime.types -MIME types file +\f(CW~/.w3m/pre_form\fP +contains predefined values to fill recurrent HTML forms .\" .TP -.\" .I ${HOME}/.w3m/urimethodmap +.\" .I $~/.w3m/urimethodmap .\" ??? -.SH NOTES -This is the -.I -w3m -0.5.3 Release. -.PP -Please see the MANUAL.html file distributed with w3m for -more detailed documentation. - -Additional information about -.I -w3m -may be found on its Japanese language Web site located at: - http://w3m.sourceforge.net/index.ja.html -.br -or on its English version of the site at: - http://w3m.sourceforge.net/index.en.html +.SH SEE ALSO +README and example files are to be found in the doc directory of your +\fIw3m\fP installation. +Recent information about \fIw3m\fP may be found on +.UR http://w3m.sourceforge.net +the project's web pages at +.UE .SH ACKNOWLEDGMENTS -.I -w3m -has incorporated code from several sources. -Hans J. Boehm, Alan J. Demers, Xerox Corp. and Silicon Graphics -have the copyright of the GC library comes with w3m package. +\fIw3m\fP has incorporated code from several sources. Users have contributed patches and suggestions over time. .SH AUTHOR -Akinori ITO <aito@fw.ipsj.or.jp> +.MT aito@fw.ipsj.or.jp +Akinori ITO +.ME + @@ -44,6 +44,8 @@ conv_entity(unsigned int c) return " "; if (c == 0xa0) return NBSP; + if (c == 0xad) /* SOFT HYPHEN */ + return ""; if (c < 0x100) { /* Latin1 (ISO 8859-1) */ if (UseAltEntity) return alt_latin1[c - 0xa0]; @@ -56,11 +58,23 @@ conv_entity(unsigned int c) #ifdef USE_M17N #ifdef USE_UNICODE if (c <= WC_C_UCS4_END) { /* Unicode */ + char *chk; wc_uchar utf8[7]; wc_ucs_to_utf8(c, utf8); - return wc_conv((char *)utf8, WC_CES_UTF_8, InnerCharset)->ptr; + /* we eventually need to display it so check DisplayCharset */ + chk = wc_conv((char *)utf8, WC_CES_UTF_8, DisplayCharset ? DisplayCharset : WC_CES_US_ASCII)->ptr; + if (strcmp(chk, "?") != 0) + return wc_conv((char *)utf8, WC_CES_UTF_8, InnerCharset)->ptr; } #endif #endif + if (c == 0x201c || c == 0x201f || c == 0x201d || c == 0x2033) + return "\""; + if (c == 0x2018 || c == 0x201b || c == 0x2019 || c == 0x2032) + return "'"; + if (c >= 0x2010 && c < 0x2014) + return "-"; + if (c == 0x2014) + return "--"; return "?"; } diff --git a/entity.h b/entity.h deleted file mode 100644 index e338883..0000000 --- a/entity.h +++ /dev/null @@ -1,366 +0,0 @@ -/* $Id: entity.h,v 1.6 2011/01/04 11:03:20 htrb Exp $ */ -#include "hash.h" -static HashItem_si MyHashItem[] = { - /* 0 */ {"otimes", 0x2297, &MyHashItem[1]}, - /* 1 */ {"laquo", 0xAB, NULL}, - /* 2 */ {"cap", 0x2229, &MyHashItem[3]}, - /* 3 */ {"dArr", 0x21D3, &MyHashItem[4]}, - /* 4 */ {"euml", 0xEB, NULL}, - /* 5 */ {"sum", 0x2211, &MyHashItem[6]}, - /* 6 */ {"Ocirc", 0xD4, NULL}, - /* 7 */ {"dagger", 0x2020, &MyHashItem[8]}, - /* 8 */ {"Scaron", 0x0160, &MyHashItem[9]}, - /* 9 */ {"Omicron", 0x039F, &MyHashItem[10]}, - /* 10 */ {"brvbar", 0xA6, NULL}, - /* 11 */ {"Eta", 0x0397, &MyHashItem[12]}, - /* 12 */ {"iacute", 0xED, &MyHashItem[13]}, - /* 13 */ {"aelig", 0xE6, &MyHashItem[14]}, - /* 14 */ {"Ugrave", 0xD9, &MyHashItem[15]}, - /* 15 */ {"deg", 0xB0, NULL}, - /* 16 */ {"Yuml", 0x0178, &MyHashItem[17]}, - /* 17 */ {"sup", 0x2283, &MyHashItem[18]}, - /* 18 */ {"middot", 0xB7, NULL}, - /* 19 */ {"ge", 0x2265, &MyHashItem[20]}, - /* 20 */ {"alefsym", 0x2135, &MyHashItem[21]}, - /* 21 */ {"sigma", 0x03C3, &MyHashItem[22]}, - /* 22 */ {"aring", 0xE5, &MyHashItem[23]}, - /* 23 */ {"Icirc", 0xCE, NULL}, - /* 24 */ {"and", 0x2227, &MyHashItem[25]}, - /* 25 */ {"weierp", 0x2118, &MyHashItem[26]}, - /* 26 */ {"frac12", 0xBD, NULL}, - /* 27 */ {"radic", 0x221A, &MyHashItem[28]}, - /* 28 */ {"chi", 0x03C7, &MyHashItem[29]}, - /* 29 */ {"zeta", 0x03B6, &MyHashItem[30]}, - /* 30 */ {"Theta", 0x0398, &MyHashItem[31]}, - /* 31 */ {"Atilde", 0xC3, &MyHashItem[32]}, - /* 32 */ {"para", 0xB6, NULL}, - /* 33 */ {"frac14", 0xBC, &MyHashItem[34]}, - /* 34 */ {"cedil", 0xB8, &MyHashItem[35]}, - /* 35 */ {"quot", 0x22, NULL}, - /* 36 */ {"ang", 0x2220, &MyHashItem[37]}, - /* 37 */ {"ucirc", 0xFB, NULL}, - /* 38 */ {"supe", 0x2287, &MyHashItem[39]}, - /* 39 */ {"iota", 0x03B9, &MyHashItem[40]}, - /* 40 */ {"Ograve", 0xD2, NULL}, - /* 41 */ {"rArr", 0x21D2, &MyHashItem[42]}, - /* 42 */ {"Auml", 0xC4, &MyHashItem[43]}, - /* 43 */ {"frac34", 0xBE, &MyHashItem[44]}, - /* 44 */ {"nbsp", 0xA0, NULL}, - /* 45 */ {"euro", 0x20AC, &MyHashItem[46]}, - /* 46 */ {"ocirc", 0xF4, NULL}, - /* 47 */ {"equiv", 0x2261, &MyHashItem[48]}, - /* 48 */ {"upsilon", 0x03C5, &MyHashItem[49]}, - /* 49 */ {"sigmaf", 0x03C2, &MyHashItem[50]}, - /* 50 */ {"ETH", 0xD0, NULL}, - /* 51 */ {"le", 0x2264, &MyHashItem[52]}, - /* 52 */ {"beta", 0x03B2, &MyHashItem[53]}, - /* 53 */ {"yacute", 0xFD, &MyHashItem[54]}, - /* 54 */ {"egrave", 0xE8, NULL}, - /* 55 */ {"lowast", 0x2217, &MyHashItem[56]}, - /* 56 */ {"real", 0x211C, &MyHashItem[57]}, - /* 57 */ {"amp", 0x26, NULL}, - /* 58 */ {"icirc", 0xEE, &MyHashItem[59]}, - /* 59 */ {"micro", 0xB5, NULL}, - /* 60 */ {"isin", 0x2208, &MyHashItem[61]}, - /* 61 */ {"curren", 0xA4, NULL}, - /* 62 */ {"rdquo", 0x201D, &MyHashItem[63]}, - /* 63 */ {"sbquo", 0x201A, &MyHashItem[64]}, - /* 64 */ {"ne", 0x2260, &MyHashItem[65]}, - /* 65 */ {"theta", 0x03B8, &MyHashItem[66]}, - /* 66 */ {"Igrave", 0xCC, NULL}, - /* 67 */ {"gt", 0x3E, NULL}, - /* 68 */ {"hearts", 0x2665, &MyHashItem[69]}, - /* 69 */ {"rang", 0x232A, NULL}, - /* 70 */ {"rfloor", 0x230B, NULL}, - /* 71 */ {"ldquo", 0x201C, &MyHashItem[72]}, - /* 72 */ {"ni", 0x220B, &MyHashItem[73]}, - /* 73 */ {"Ntilde", 0xD1, &MyHashItem[74]}, - /* 74 */ {"Aacute", 0xC1, NULL}, - /* 75 */ {"crarr", 0x21B5, &MyHashItem[76]}, - /* 76 */ {"Ouml", 0xD6, &MyHashItem[77]}, - /* 77 */ {"GT", 0x3E, NULL}, - /* 78 */ {"clubs", 0x2663, NULL}, - /* 79 */ {"scaron", 0x0161, &MyHashItem[80]}, - /* 80 */ {"part", 0x2202, NULL}, - /* 81 */ {"tilde", 0x02DC, &MyHashItem[82]}, - /* 82 */ {"oelig", 0x0153, &MyHashItem[83]}, - /* 83 */ {"pi", 0x03C0, &MyHashItem[84]}, - /* 84 */ {"ugrave", 0xF9, NULL}, - /* 85 */ {"darr", 0x2193, &MyHashItem[86]}, - /* 86 */ {"uuml", 0xFC, &MyHashItem[87]}, - /* 87 */ {"QUOT", 0x22, NULL}, - /* 88 */ {"Prime", 0x2033, NULL}, - /* 89 */ {"zwj", 0x200D, &MyHashItem[90]}, - /* 90 */ {"lfloor", 0x230A, &MyHashItem[91]}, - /* 91 */ {"notin", 0x2209, &MyHashItem[92]}, - /* 92 */ {"cent", 0xA2, &MyHashItem[93]}, - /* 93 */ {"lt", 0x3C, NULL}, - /* 94 */ {"eta", 0x03B7, &MyHashItem[95]}, - /* 95 */ {"Phi", 0x03A6, &MyHashItem[96]}, - /* 96 */ {"atilde", 0xE3, NULL}, - /* 97 */ {"hArr", 0x21D4, &MyHashItem[98]}, - /* 98 */ {"iuml", 0xEF, &MyHashItem[99]}, - /* 99 */ {"NBSP", 0xA0, NULL}, - /* 100 */ {"mu", 0x03BC, NULL}, - /* 101 */ {"or", 0x2228, &MyHashItem[102]}, - /* 102 */ {"plusmn", 0xB1, &MyHashItem[103]}, - /* 103 */ {"LT", 0x3C, NULL}, - /* 104 */ {"nu", 0x03BD, &MyHashItem[105]}, - /* 105 */ {"ograve", 0xF2, &MyHashItem[106]}, - /* 106 */ {"AElig", 0xC6, NULL}, - /* 107 */ {"rceil", 0x2309, &MyHashItem[108]}, - /* 108 */ {"uArr", 0x21D1, &MyHashItem[109]}, - /* 109 */ {"sect", 0xA7, NULL}, - /* 110 */ {"circ", 0x02C6, NULL}, - /* 111 */ {"perp", 0x22A5, &MyHashItem[112]}, - /* 112 */ {"eth", 0xF0, NULL}, - /* 113 */ {"rsquo", 0x2019, &MyHashItem[114]}, - /* 114 */ {"nabla", 0x2207, NULL}, - /* 115 */ {"lceil", 0x2308, &MyHashItem[116]}, - /* 116 */ {"cup", 0x222A, &MyHashItem[117]}, - /* 117 */ {"exist", 0x2203, &MyHashItem[118]}, - /* 118 */ {"rarr", 0x2192, &MyHashItem[119]}, - /* 119 */ {"upsih", 0x03D2, NULL}, - /* 120 */ {"prime", 0x2032, &MyHashItem[121]}, - /* 121 */ {"Omega", 0x03A9, &MyHashItem[122]}, - /* 122 */ {"Ecirc", 0xCA, NULL}, - /* 123 */ {"Epsilon", 0x0395, NULL}, - /* 124 */ {"lsquo", 0x2018, &MyHashItem[125]}, - /* 125 */ {"xi", 0x03BE, &MyHashItem[126]}, - /* 126 */ {"Lambda", 0x039B, &MyHashItem[127]}, - /* 127 */ {"Kappa", 0x039A, &MyHashItem[128]}, - /* 128 */ {"divide", 0xF7, &MyHashItem[129]}, - /* 129 */ {"igrave", 0xEC, &MyHashItem[130]}, - /* 130 */ {"acute", 0xB4, NULL}, - /* 131 */ {"Euml", 0xCB, &MyHashItem[132]}, - /* 132 */ {"ordf", 0xAA, NULL}, - /* 133 */ {"image", 0x2111, &MyHashItem[134]}, - /* 134 */ {"Tau", 0x03A4, &MyHashItem[135]}, - /* 135 */ {"Rho", 0x03A1, NULL}, - /* 136 */ {"ntilde", 0xF1, &MyHashItem[137]}, - /* 137 */ {"aacute", 0xE1, &MyHashItem[138]}, - /* 138 */ {"times", 0xD7, NULL}, - /* 139 */ {"omicron", 0x03BF, NULL}, - /* 140 */ {"oplus", 0x2295, &MyHashItem[141]}, - /* 141 */ {"Zeta", 0x0396, &MyHashItem[142]}, - /* 142 */ {"Eacute", 0xC9, &MyHashItem[143]}, - /* 143 */ {"ordm", 0xBA, NULL}, - /* 144 */ {"Oslash", 0xD8, &MyHashItem[145]}, - /* 145 */ {"Ccedil", 0xC7, &MyHashItem[146]}, - /* 146 */ {"iquest", 0xBF, NULL}, - /* 147 */ {"omega", 0x03C9, &MyHashItem[148]}, - /* 148 */ {"Psi", 0x03A8, &MyHashItem[149]}, - /* 149 */ {"ecirc", 0xEA, NULL}, - /* 150 */ {"int", 0x222B, NULL}, - /* 151 */ {"trade", 0x2122, &MyHashItem[152]}, - /* 152 */ {"kappa", 0x03BA, &MyHashItem[153]}, - /* 153 */ {"Iota", 0x0399, &MyHashItem[154]}, - /* 154 */ {"Delta", 0x0394, &MyHashItem[155]}, - /* 155 */ {"Alpha", 0x0391, &MyHashItem[156]}, - /* 156 */ {"Otilde", 0xD5, NULL}, - /* 157 */ {"sdot", 0x22C5, NULL}, - /* 158 */ {"cong", 0x2245, NULL}, - /* 159 */ {"rsaquo", 0x203A, &MyHashItem[160]}, - /* 160 */ {"OElig", 0x0152, &MyHashItem[161]}, - /* 161 */ {"diams", 0x2666, &MyHashItem[162]}, - /* 162 */ {"phi", 0x03C6, &MyHashItem[163]}, - /* 163 */ {"Beta", 0x0392, &MyHashItem[164]}, - /* 164 */ {"szlig", 0xDF, &MyHashItem[165]}, - /* 165 */ {"sup1", 0xB9, &MyHashItem[166]}, - /* 166 */ {"reg", 0xAE, NULL}, - /* 167 */ {"harr", 0x2194, &MyHashItem[168]}, - /* 168 */ {"hellip", 0x2026, &MyHashItem[169]}, - /* 169 */ {"yuml", 0xFF, &MyHashItem[170]}, - /* 170 */ {"sup2", 0xB2, NULL}, - /* 171 */ {"Gamma", 0x0393, &MyHashItem[172]}, - /* 172 */ {"sup3", 0xB3, NULL}, - /* 173 */ {"forall", 0x2200, NULL}, - /* 174 */ {"bdquo", 0x201E, &MyHashItem[175]}, - /* 175 */ {"spades", 0x2660, &MyHashItem[176]}, - /* 176 */ {"Pi", 0x03A0, &MyHashItem[177]}, - /* 177 */ {"Uacute", 0xDA, &MyHashItem[178]}, - /* 178 */ {"Agrave", 0xC0, NULL}, - /* 179 */ {"permil", 0x2030, &MyHashItem[180]}, - /* 180 */ {"mdash", 0x2014, &MyHashItem[181]}, - /* 181 */ {"lArr", 0x21D0, &MyHashItem[182]}, - /* 182 */ {"uarr", 0x2191, NULL}, - /* 183 */ {"Upsilon", 0x03A5, &MyHashItem[184]}, - /* 184 */ {"pound", 0xA3, NULL}, - /* 185 */ {"lsaquo", 0x2039, &MyHashItem[186]}, - /* 186 */ {"lrm", 0x200E, &MyHashItem[187]}, - /* 187 */ {"lambda", 0x03BB, &MyHashItem[188]}, - /* 188 */ {"delta", 0x03B4, &MyHashItem[189]}, - /* 189 */ {"alpha", 0x03B1, NULL}, - /* 190 */ {"frasl", 0x2044, &MyHashItem[191]}, - /* 191 */ {"thorn", 0xFE, &MyHashItem[192]}, - /* 192 */ {"auml", 0xE4, NULL}, - /* 193 */ {"Mu", 0x039C, NULL}, - /* 194 */ {"nsub", 0x2284, &MyHashItem[195]}, - /* 195 */ {"macr", 0xAF, NULL}, - /* 196 */ {"minus", 0x2212, &MyHashItem[197]}, - /* 197 */ {"Nu", 0x039D, &MyHashItem[198]}, - /* 198 */ {"Oacute", 0xD3, NULL}, - /* 199 */ {"prod", 0x220F, &MyHashItem[200]}, - /* 200 */ {"Uuml", 0xDC, &MyHashItem[201]}, - /* 201 */ {"iexcl", 0xA1, NULL}, - /* 202 */ {"lang", 0x2329, &MyHashItem[203]}, - /* 203 */ {"tau", 0x03C4, &MyHashItem[204]}, - /* 204 */ {"rho", 0x03C1, &MyHashItem[205]}, - /* 205 */ {"gamma", 0x03B3, NULL}, - /* 206 */ {"loz", 0x25CA, &MyHashItem[207]}, - /* 207 */ {"bull", 0x2022, &MyHashItem[208]}, - /* 208 */ {"piv", 0x03D6, NULL}, - /* 209 */ {"eacute", 0xE9, NULL}, - /* 210 */ {"zwnj", 0x200C, &MyHashItem[211]}, - /* 211 */ {"oslash", 0xF8, &MyHashItem[212]}, - /* 212 */ {"ccedil", 0xE7, &MyHashItem[213]}, - /* 213 */ {"THORN", 0xDE, &MyHashItem[214]}, - /* 214 */ {"Iuml", 0xCF, &MyHashItem[215]}, - /* 215 */ {"not", 0xAC, NULL}, - /* 216 */ {"sim", 0x223C, &MyHashItem[217]}, - /* 217 */ {"thetasym", 0x03D1, &MyHashItem[218]}, - /* 218 */ {"Acirc", 0xC2, NULL}, - /* 219 */ {"Dagger", 0x2021, &MyHashItem[220]}, - /* 220 */ {"fnof", 0x0192, NULL}, - /* 221 */ {"rlm", 0x200F, &MyHashItem[222]}, - /* 222 */ {"oline", 0x203E, &MyHashItem[223]}, - /* 223 */ {"Chi", 0x03A7, &MyHashItem[224]}, - /* 224 */ {"Xi", 0x039E, &MyHashItem[225]}, - /* 225 */ {"otilde", 0xF5, &MyHashItem[226]}, - /* 226 */ {"Iacute", 0xCD, &MyHashItem[227]}, - /* 227 */ {"copy", 0xA9, NULL}, - /* 228 */ {"ndash", 0x2013, &MyHashItem[229]}, - /* 229 */ {"ouml", 0xF6, NULL}, - /* 230 */ {"psi", 0x03C8, NULL}, - /* 231 */ {"sube", 0x2286, NULL}, - /* 232 */ {"emsp", 0x2003, &MyHashItem[233]}, - /* 233 */ {"asymp", 0x2248, &MyHashItem[234]}, - /* 234 */ {"prop", 0x221D, NULL}, - /* 235 */ {"infin", 0x221E, NULL}, - /* 236 */ {"empty", 0x2205, &MyHashItem[237]}, - /* 237 */ {"uacute", 0xFA, &MyHashItem[238]}, - /* 238 */ {"agrave", 0xE0, &MyHashItem[239]}, - /* 239 */ {"shy", 0xAD, NULL}, - /* 240 */ {"ensp", 0x2002, NULL}, - /* 241 */ {"acirc", 0xE2, NULL}, - /* 242 */ {"sub", 0x2282, &MyHashItem[243]}, - /* 243 */ {"epsilon", 0x03B5, NULL}, - /* 244 */ {"Yacute", 0xDD, &MyHashItem[245]}, - /* 245 */ {"Egrave", 0xC8, NULL}, - /* 246 */ {"there4", 0x2234, &MyHashItem[247]}, - /* 247 */ {"larr", 0x2190, &MyHashItem[248]}, - /* 248 */ {"uml", 0xA8, &MyHashItem[249]}, - /* 249 */ {"AMP", 0x26, NULL}, - /* 250 */ {"Sigma", 0x03A3, &MyHashItem[251]}, - /* 251 */ {"Aring", 0xC5, NULL}, - /* 252 */ {"yen", 0xA5, NULL}, - /* 253 */ {"oacute", 0xF3, &MyHashItem[254]}, - /* 254 */ {"raquo", 0xBB, NULL}, - /* 255 */ {"thinsp", 0x2009, NULL}, - /* 256 */ {"Ucirc", 0xDB, NULL}, -}; - -static HashItem_si *MyHashItemTbl[] = { - NULL, - &MyHashItem[0], - &MyHashItem[2], - &MyHashItem[5], - &MyHashItem[7], - &MyHashItem[11], - &MyHashItem[16], - &MyHashItem[19], - &MyHashItem[24], - &MyHashItem[27], - &MyHashItem[33], - &MyHashItem[36], - NULL, - &MyHashItem[38], - &MyHashItem[41], - &MyHashItem[45], - &MyHashItem[47], - &MyHashItem[51], - &MyHashItem[55], - &MyHashItem[58], - &MyHashItem[60], - &MyHashItem[62], - &MyHashItem[67], - &MyHashItem[68], - &MyHashItem[70], - &MyHashItem[71], - &MyHashItem[75], - &MyHashItem[78], - &MyHashItem[79], - &MyHashItem[81], - &MyHashItem[85], - &MyHashItem[88], - &MyHashItem[89], - &MyHashItem[94], - &MyHashItem[97], - &MyHashItem[100], - &MyHashItem[101], - &MyHashItem[104], - &MyHashItem[107], - &MyHashItem[110], - &MyHashItem[111], - &MyHashItem[113], - &MyHashItem[115], - &MyHashItem[120], - &MyHashItem[123], - &MyHashItem[124], - &MyHashItem[131], - &MyHashItem[133], - NULL, - &MyHashItem[136], - NULL, - NULL, - &MyHashItem[139], - &MyHashItem[140], - &MyHashItem[144], - &MyHashItem[147], - &MyHashItem[150], - &MyHashItem[151], - &MyHashItem[157], - &MyHashItem[158], - NULL, - &MyHashItem[159], - &MyHashItem[167], - &MyHashItem[171], - &MyHashItem[173], - &MyHashItem[174], - &MyHashItem[179], - NULL, - &MyHashItem[183], - &MyHashItem[185], - &MyHashItem[190], - &MyHashItem[193], - &MyHashItem[194], - &MyHashItem[196], - &MyHashItem[199], - &MyHashItem[202], - &MyHashItem[206], - &MyHashItem[209], - &MyHashItem[210], - &MyHashItem[216], - &MyHashItem[219], - &MyHashItem[221], - &MyHashItem[228], - &MyHashItem[230], - NULL, - &MyHashItem[231], - &MyHashItem[232], - NULL, - &MyHashItem[235], - &MyHashItem[236], - &MyHashItem[240], - &MyHashItem[241], - &MyHashItem[242], - &MyHashItem[244], - &MyHashItem[246], - &MyHashItem[250], - &MyHashItem[252], - &MyHashItem[253], - &MyHashItem[255], - &MyHashItem[256], -}; - -Hash_si entity = { 100, MyHashItemTbl }; @@ -7,6 +7,8 @@ amp 0x26 AMP 0x26 quot 0x22 QUOT 0x22 +apos 0x27 +APOS 0x27 nbsp 0xA0 NBSP 0xA0 iexcl 0xA1 @@ -498,7 +498,7 @@ calcPosition(char *l, Lineprop *pr, int len, int pos, int bpos, int mode) static char *prevl = NULL; int i, j; - if (l == NULL || len == 0) + if (l == NULL || len == 0 || pos < 0) return bpos; if (l == prevl && mode == CP_AUTO) { if (pos <= len) @@ -634,24 +634,6 @@ strerror(int errno) } #endif /* not HAVE_STRERROR */ -#ifndef HAVE_SYS_ERRLIST -char **sys_errlist; - -prepare_sys_errlist() -{ - int i, n; - - i = 1; - while (strerror(i) != NULL) - i++; - n = i; - sys_errlist = New_N(char *, n); - sys_errlist[0] = ""; - for (i = 1; i < n; i++) - sys_errlist[i] = strerror(i); -} -#endif /* not HAVE_SYS_ERRLIST */ - int next_status(char c, int *status) { @@ -727,6 +709,11 @@ next_status(char c, int *status) case '>': *status = R_ST_NORMAL; break; + case 'D': + case 'd': + /* could be a !doctype */ + *status = R_ST_TAG; + break; default: *status = R_ST_IRRTAG; } @@ -1365,7 +1352,13 @@ setup_child(int child, int i, int f) if (!child) SETPGRP(); #endif /* __MINGW32_VERSION */ + /* + * I don't know why but close_tty() sometimes interrupts loadGeneralFile() in loadImage() + * and corrupt image data can be cached in ~/.w3m. + */ +#if 0 close_tty(); +#endif close_all_fds_except(i, f); QuietMessage = TRUE; fmInitialized = FALSE; @@ -1,4 +1,5 @@ -/* $Id: file.c,v 1.265 2010/12/15 10:50:24 htrb Exp $ */ +/* $Id: file.c,v 1.266 2012/05/22 09:45:56 inu Exp $ */ +/* vi: set sw=4 ts=8 ai sm noet : */ #include "fm.h" #include <sys/types.h> #include "myctype.h" @@ -26,6 +27,8 @@ #define min(a,b) ((a) > (b) ? (b) : (a)) #endif /* not min */ +#define MAX_INPUT_SIZE 80 /* TODO - max should be screen line length */ + static int frame_source = 0; static char *guess_filename(char *file); @@ -47,11 +50,11 @@ static JMP_BUF AbortLoading; static struct table *tables[MAX_TABLE]; static struct table_mode table_mode[MAX_TABLE]; -#ifdef USE_IMAGE +#if defined(USE_M17N) || defined(USE_IMAGE) static ParsedURL *cur_baseURL = NULL; -#ifdef USE_M17N -static char cur_document_charset; #endif +#ifdef USE_M17N +static wc_ces cur_document_charset = 0; #endif static Str cur_title; @@ -67,7 +70,7 @@ static int cur_status; #ifdef MENU_SELECT /* menu based <select> */ FormSelectOption *select_option; -static int max_select = MAX_SELECT; +int max_select = MAX_SELECT; static int n_select; static int cur_option_maxwidth; #endif /* MENU_SELECT */ @@ -79,7 +82,7 @@ static int cur_textarea_rows; static int cur_textarea_readonly; static int n_textarea; static int ignore_nl_textarea; -static int max_textarea = MAX_TEXTAREA; +int max_textarea = MAX_TEXTAREA; static int http_response_code; @@ -215,7 +218,6 @@ currentLn(Buffer *buf) static Buffer * loadSomething(URLFile *f, - char *path, Buffer *(*loadproc) (URLFile *, Buffer *), Buffer *defaultbuf) { Buffer *buf; @@ -223,17 +225,23 @@ loadSomething(URLFile *f, if ((buf = loadproc(f, defaultbuf)) == NULL) return NULL; - buf->filename = path; if (buf->buffername == NULL || buf->buffername[0] == '\0') { buf->buffername = checkHeader(buf, "Subject:"); - if (buf->buffername == NULL) - buf->buffername = conv_from_system(lastFileName(path)); + if (buf->buffername == NULL && buf->filename != NULL) + buf->buffername = conv_from_system(lastFileName(buf->filename)); } if (buf->currentURL.scheme == SCM_UNKNOWN) buf->currentURL.scheme = f->scheme; - buf->real_scheme = f->scheme; if (f->scheme == SCM_LOCAL && buf->sourcefile == NULL) - buf->sourcefile = path; + buf->sourcefile = buf->filename; + if (loadproc == loadHTMLBuffer +#ifdef USE_IMAGE + || loadproc == loadImageBuffer +#endif + ) + buf->type = "text/html"; + else + buf->type = "text/plain"; return buf; } @@ -484,28 +492,6 @@ convertLine0(URLFile *uf, Str line, int mode) return line; } -/* - * loadFile: load file to buffer - */ -Buffer * -loadFile(char *path) -{ - Buffer *buf; - URLFile uf; - init_stream(&uf, SCM_LOCAL, NULL); - examineFile(path, &uf); - if (uf.stream == NULL) - return NULL; - buf = newBuffer(INIT_BUFFER_WIDTH); - current_content_length = 0; -#ifdef USE_M17N - content_charset = 0; -#endif - buf = loadSomething(&uf, path, loadBuffer, buf); - UFclose(&uf); - return buf; -} - int matchattr(char *p, char *attr, int len, Str *value) { @@ -626,8 +612,10 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu) if(w3m_reqlog){ FILE *ff; ff = fopen(w3m_reqlog, "a"); - Strfputs(tmp, ff); - fclose(ff); + if(ff){ + Strfputs(tmp, ff); + fclose(ff); + } } if (src) Strfputs(tmp, src); @@ -694,6 +682,7 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu) #endif init_stream(&f, SCM_LOCAL, newStrStream(src)); loadHTMLstream(&f, newBuf, NULL, TRUE); + UFclose(&f); for (l = newBuf->lastLine; l && l->real_linenumber; l = l->prev) l->real_linenumber = 0; @@ -1244,6 +1233,7 @@ AuthDigestCred(struct http_auth *ha, Str uname, Str pw, ParsedURL *pu, unsigned char md5[MD5_DIGEST_LENGTH + 1]; Str uri = HTTPrequestURI(pu, hr); char nc[] = "00000001"; + FILE *fp; Str algorithm = qstr_unquote(get_auth_param(ha->param, "algorithm")); Str nonce = qstr_unquote(get_auth_param(ha->param, "nonce")); @@ -1326,10 +1316,11 @@ AuthDigestCred(struct http_auth *ha, Str uname, Str pw, ParsedURL *pu, /* A2 = Method ":" digest-uri-value ":" H(entity-body) */ if (request && request->body) { if (request->method == FORM_METHOD_POST && request->enctype == FORM_ENCTYPE_MULTIPART) { - FILE *fp = fopen(request->body, "r"); + fp = fopen(request->body, "r"); if (fp != NULL) { Str ebody; ebody = Strfgetall(fp); + fclose(fp); MD5(ebody->ptr, strlen(ebody->ptr), md5); } else { @@ -1697,13 +1688,15 @@ getLinkNumberStr(int correction) /* * loadGeneralFile: load file to buffer */ +#define DO_EXTERNAL ((Buffer *(*)(URLFile *, Buffer *))doExternal) Buffer * loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, int flag, FormList *volatile request) { URLFile f, *volatile of = NULL; ParsedURL pu; - Buffer *b = NULL, *(*volatile proc)() = loadBuffer; + Buffer *b = NULL; + Buffer *(*volatile proc)(URLFile *, Buffer *) = loadBuffer; char *volatile tpath; char *volatile t = "text/plain", *p, *volatile real_type = NULL; Buffer *volatile t_buf = NULL; @@ -1719,6 +1712,9 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, URLOption url_option; Str tmp; Str volatile page = NULL; +#ifdef USE_GOPHER + int gopher_download = FALSE; +#endif #ifdef USE_M17N wc_ces charset = WC_CES_US_ASCII; #endif @@ -1730,7 +1726,22 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, add_auth_cookie_flag = 0; checkRedirection(NULL); + load_doc: + { + const char *sc_redirect; + parseURL2(tpath, &pu, current); + sc_redirect = query_SCONF_SUBSTITUTE_URL(&pu); + if (sc_redirect && *sc_redirect && checkRedirection(&pu)) { + tpath = (char *)sc_redirect; + request = NULL; + add_auth_cookie_flag = 0; + current = New(ParsedURL); + *current = pu; + status = HTST_NORMAL; + goto load_doc; + } + } TRAP_OFF; url_option.referer = referer; url_option.flag = flag; @@ -1863,7 +1874,7 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, /* 302: Found */ /* 303: See Other */ /* 307: Temporary Redirect (HTTP/1.1) */ - tpath = url_quote_conv(p, DocumentCharset); + tpath = url_encode(p, NULL, 0); request = NULL; UFclose(&f); current = New(ParsedURL); @@ -1951,7 +1962,10 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, #endif /* USE_NNTP */ #ifdef USE_GOPHER else if (pu.scheme == SCM_GOPHER) { - switch (*pu.file) { + p = pu.file; + while(*p == '/') + ++p; + switch (*p) { case '0': t = "text/plain"; break; @@ -1961,6 +1975,16 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, t = "gopher:directory"; TRAP_OFF; goto page_loaded; + case '7': + if(pu.query != NULL) { + page = loadGopherDir(&f, &pu, &charset); + t = "gopher:directory"; + } else { + page = loadGopherSearch(&f, &pu, &charset); + t = "gopher:search"; + } + TRAP_OFF; + goto page_loaded; case 's': t = "audio/basic"; break; @@ -1970,6 +1994,16 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, case 'h': t = "text/html"; break; + case 'I': + t = guessContentType(pu.file); + if(strncasecmp(t, "image/", 6) != 0) { + t = "image/png"; + } + break; + case '5': + case '9': + gopher_download = TRUE; + break; } } #endif /* USE_GOPHER */ @@ -2022,7 +2056,7 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, if (f.is_cgi && (p = checkHeader(t_buf, "Location:")) != NULL && checkRedirection(&pu)) { /* document moved */ - tpath = url_quote_conv(remove_space(p), DocumentCharset); + tpath = url_encode(remove_space(p), NULL, 0); request = NULL; UFclose(&f); add_auth_cookie_flag = 0; @@ -2090,7 +2124,11 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, Strfputs(s, src); fclose(src); } +#ifdef USE_GOPHER + if (do_download || gopher_download) { +#else if (do_download) { +#endif char *file; if (!src) return NULL; @@ -2123,15 +2161,15 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, if (real_type == NULL) real_type = t; proc = loadBuffer; -#ifdef USE_IMAGE - cur_baseURL = New(ParsedURL); - copyParsedURL(cur_baseURL, &pu); -#endif current_content_length = 0; if ((p = checkHeader(t_buf, "Content-Length:")) != NULL) current_content_length = strtoclen(p); +#ifdef USE_GOPHER + if (do_download || gopher_download) { +#else if (do_download) { +#endif /* download only */ char *file; TRAP_OFF; @@ -2197,18 +2235,12 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, #endif else if (w3m_backend) ; else if (!(w3m_dump & ~DUMP_FRAME) || is_dump_text_type(t)) { - if (!do_download && doExternal(f, - pu.real_file ? pu.real_file : pu.file, - t, &b, t_buf)) { - if (b && b != NO_BUFFER) { - b->real_scheme = f.scheme; - b->real_type = real_type; - if (b->currentURL.host == NULL && b->currentURL.file == NULL) - copyParsedURL(&b->currentURL, &pu); - } - UFclose(&f); - TRAP_OFF; - return b; + if (!do_download && +#ifdef USE_GOPHER + !gopher_download && +#endif + searchExtViewer(t) != NULL) { + proc = DO_EXTERNAL; } else { TRAP_OFF; @@ -2232,36 +2264,30 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, else if (w3m_dump & DUMP_FRAME) return NULL; + if (t_buf == NULL) + t_buf = newBuffer(INIT_BUFFER_WIDTH); + copyParsedURL(&t_buf->currentURL, &pu); + t_buf->filename = pu.real_file ? pu.real_file : + pu.file ? conv_to_system(pu.file) : NULL; if (flag & RG_FRAME) { - if (t_buf == NULL) - t_buf = newBuffer(INIT_BUFFER_WIDTH); t_buf->bufferprop |= BP_FRAME; } #ifdef USE_SSL - if (t_buf) - t_buf->ssl_certificate = f.ssl_certificate; + t_buf->ssl_certificate = f.ssl_certificate; #endif frame_source = flag & RG_FRAME_SRC; - b = loadSomething(&f, pu.real_file ? pu.real_file : pu.file, proc, t_buf); + if (proc == DO_EXTERNAL) { + b = doExternal(f, t, t_buf); + } else { + b = loadSomething(&f, proc, t_buf); + } UFclose(&f); frame_source = 0; - if (b) { + if (b && b != NO_BUFFER) { b->real_scheme = f.scheme; b->real_type = real_type; - if (b->currentURL.host == NULL && b->currentURL.file == NULL) - copyParsedURL(&b->currentURL, &pu); - if (is_html_type(t)) - b->type = "text/html"; - else if (w3m_backend) { - Str s = Strnew_charp(t); - b->type = s->ptr; - } -#ifdef USE_IMAGE - else if (proc == loadImageBuffer) - b->type = "text/html"; -#endif - else - b->type = "text/plain"; + if (w3m_backend) + b->type = allocStr(t, -1); if (pu.label) { if (proc == loadHTMLBuffer) { Anchor *a; @@ -2287,10 +2313,11 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer, if (header_string) header_string = NULL; #ifdef USE_NNTP - if (f.scheme == SCM_NNTP || f.scheme == SCM_NEWS) + if (b && b != NO_BUFFER && (f.scheme == SCM_NNTP || f.scheme == SCM_NEWS)) reAnchorNewsheader(b); #endif - preFormUpdateBuffer(b); + if (b && b != NO_BUFFER) + preFormUpdateBuffer(b); TRAP_OFF; return b; } @@ -2325,8 +2352,12 @@ push_link(int cmd, int offset, int pos) struct link_stack *p; p = New(struct link_stack); p->cmd = cmd; - p->offset = offset; - p->pos = pos; + p->offset = (short)offset; + if (p->offset < 0) + p->offset = 0; + p->pos = (short)pos; + if (p->pos < 0) + p->pos = 0; p->next = link_stack; link_stack = p; } @@ -2469,6 +2500,7 @@ set_breakpoint(struct readbuffer *obuf, int tag_length) bcopy((void *)&obuf->anchor, (void *)&obuf->bp.anchor, sizeof(obuf->anchor)); obuf->bp.img_alt = obuf->img_alt; + obuf->bp.input_alt = obuf->input_alt; obuf->bp.in_bold = obuf->in_bold; obuf->bp.in_italic = obuf->in_italic; obuf->bp.in_under = obuf->in_under; @@ -2486,6 +2518,7 @@ back_to_breakpoint(struct readbuffer *obuf) bcopy((void *)&obuf->bp.anchor, (void *)&obuf->anchor, sizeof(obuf->anchor)); obuf->img_alt = obuf->bp.img_alt; + obuf->input_alt = obuf->bp.input_alt; obuf->in_bold = obuf->bp.in_bold; obuf->in_italic = obuf->bp.in_italic; obuf->in_under = obuf->bp.in_under; @@ -2729,7 +2762,7 @@ flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent, Str line = obuf->line, pass = NULL; char *hidden_anchor = NULL, *hidden_img = NULL, *hidden_bold = NULL, *hidden_under = NULL, *hidden_italic = NULL, *hidden_strike = NULL, - *hidden_ins = NULL, *hidden = NULL; + *hidden_ins = NULL, *hidden_input = NULL, *hidden = NULL; #ifdef DEBUG if (w3m_debug) { @@ -2761,6 +2794,12 @@ flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent, hidden = hidden_img; } } + if (obuf->input_alt.in) { + if ((hidden_input = has_hidden_link(obuf, HTML_INPUT_ALT)) != NULL) { + if (!hidden || hidden_input < hidden) + hidden = hidden_input; + } + } if (obuf->in_bold) { if ((hidden_bold = has_hidden_link(obuf, HTML_B)) != NULL) { if (!hidden || hidden_bold < hidden) @@ -2812,6 +2851,8 @@ flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent, Strcat_charp(line, "</a>"); if (obuf->img_alt && !hidden_img) Strcat_charp(line, "</img_alt>"); + if (obuf->input_alt.in && !hidden_input) + Strcat_charp(line, "</input_alt>"); if (obuf->in_bold && !hidden_bold) Strcat_charp(line, "</b>"); if (obuf->in_italic && !hidden_italic) @@ -3022,6 +3063,18 @@ flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent, Strcat_charp(tmp, "\">"); push_tag(obuf, tmp->ptr, HTML_IMG_ALT); } + if (!hidden_input && obuf->input_alt.in) { + Str tmp; + if (obuf->input_alt.hseq > 0) + obuf->input_alt.hseq = - obuf->input_alt.hseq; + tmp = Sprintf("<INPUT_ALT hseq=\"%d\" fid=\"%d\" name=\"%s\" type=\"%s\" value=\"%s\">", + obuf->input_alt.hseq, + obuf->input_alt.fid, + obuf->input_alt.name ? obuf->input_alt.name->ptr : "", + obuf->input_alt.type ? obuf->input_alt.type->ptr : "", + obuf->input_alt.value ? obuf->input_alt.value->ptr : ""); + push_tag(obuf, tmp->ptr, HTML_INPUT_ALT); + } if (!hidden_bold && obuf->in_bold) push_tag(obuf, "<B>", HTML_B); if (!hidden_italic && obuf->in_italic) @@ -3228,7 +3281,7 @@ process_img(struct parsed_tag *tag, int width) if (!parsedtag_get_value(tag, ATTR_SRC, &p)) return tmp; - p = remove_space(p); + p = url_encode(remove_space(p), cur_baseURL, cur_document_charset); q = NULL; parsedtag_get_value(tag, ATTR_ALT, &q); if (!pseudoInlines && (q == NULL || (*q == '\0' && ignore_null_img_alt))) @@ -3255,9 +3308,9 @@ process_img(struct parsed_tag *tag, int width) } #endif } + i = -1; #ifdef USE_IMAGE if (use_image) { - i = -1; if (parsedtag_get_value(tag, ATTR_HEIGHT, &i)) { if (i > 0) { i = (int)(i * image_scale / 100 + 0.5); @@ -3322,12 +3375,7 @@ process_img(struct parsed_tag *tag, int width) Image image; ParsedURL u; -#ifdef USE_M17N - parseURL2(wc_conv(p, InnerCharset, cur_document_charset)->ptr, &u, - cur_baseURL); -#else parseURL2(p, &u, cur_baseURL); -#endif image.url = parsedURL2Str(&u)->ptr; if (!uncompressed_file_type(u.file, &image.ext)) image.ext = filename_extension(u.file, TRUE); @@ -3346,8 +3394,14 @@ process_img(struct parsed_tag *tag, int width) if (i < 0) i = pixel_per_line; } - nw = (w > 3) ? (int)((w - 3) / pixel_per_char + 1) : 1; - ni = (i > 3) ? (int)((i - 3) / pixel_per_line + 1) : 1; + if (enable_inline_image) { + nw = (w > 1) ? ((w - 1) / pixel_per_char_i + 1) : 1 ; + ni = (i > 1) ? ((i - 1) / pixel_per_line_i + 1) : 1 ; + } + else { + nw = (w > 3) ? (int)((w - 3) / pixel_per_char + 1) : 1; + ni = (i > 3) ? (int)((i - 3) / pixel_per_line + 1) : 1; + } Strcat(tmp, Sprintf("<pre_int><img_alt hseq=\"%d\" src=\"", cur_iseq++)); pre_int = TRUE; @@ -3378,19 +3432,21 @@ process_img(struct parsed_tag *tag, int width) if (i0 >= 0) Strcat(tmp, Sprintf(" height=%d", i0)); switch (align) { + case ALIGN_MIDDLE: + if (!enable_inline_image) { + top = ni / 2; + bottom = top; + if (top * 2 == ni) + yoffset = (int)(((ni + 1) * pixel_per_line - i) / 2); + else + yoffset = (int)((ni * pixel_per_line - i) / 2); + break; + } case ALIGN_TOP: top = 0; bottom = ni - 1; yoffset = 0; break; - case ALIGN_MIDDLE: - top = ni / 2; - bottom = top; - if (top * 2 == ni) - yoffset = (int)(((ni + 1) * pixel_per_line - i) / 2); - else - yoffset = (int)((ni * pixel_per_line - i) / 2); - break; case ALIGN_BOTTOM: top = ni - 1; bottom = 0; @@ -3408,7 +3464,12 @@ process_img(struct parsed_tag *tag, int width) } break; } - xoffset = (int)((nw * pixel_per_char - w) / 2); + + if (enable_inline_image) + xoffset = 0; + else + xoffset = (int)((nw * pixel_per_char - w) / 2); + if (xoffset) Strcat(tmp, Sprintf(" xoffset=%d", xoffset)); if (yoffset) @@ -3435,7 +3496,7 @@ process_img(struct parsed_tag *tag, int width) if (use_image) { if (n > nw) { char *r; - for (r = q, n = 0; r; r += get_mclen(r), n += get_mcwidth(r)) { + for (r = q, n = 0; *r; r += get_mclen(r), n += get_mcwidth(r)) { if (n + get_mcwidth(r) > nw) break; } @@ -3548,7 +3609,7 @@ process_anchor(struct parsed_tag *tag, char *tagbuf) Str process_input(struct parsed_tag *tag) { - int i, w, v, x, y, z, iw, ih; + int i = 20, v, x, y, z, iw, ih, size = 20; char *q, *p, *r, *p2, *s; Str tmp = NULL; char *qq = ""; @@ -3567,9 +3628,9 @@ process_input(struct parsed_tag *tag) parsedtag_get_value(tag, ATTR_VALUE, &q); r = ""; parsedtag_get_value(tag, ATTR_NAME, &r); - w = 20; - parsedtag_get_value(tag, ATTR_SIZE, &w); - i = 20; + parsedtag_get_value(tag, ATTR_SIZE, &size); + if (size > MAX_INPUT_SIZE) + size = MAX_INPUT_SIZE; parsedtag_get_value(tag, ATTR_MAXLENGTH, &i); p2 = NULL; parsedtag_get_value(tag, ATTR_ALT, &p2); @@ -3623,9 +3684,10 @@ process_input(struct parsed_tag *tag) Strcat(tmp, getLinkNumberStr(0)); Strcat_char(tmp, '('); } - Strcat(tmp, Sprintf("<input_alt hseq=\"%d\" fid=\"%d\" type=%s " + Strcat(tmp, Sprintf("<input_alt hseq=\"%d\" fid=\"%d\" type=\"%s\" " "name=\"%s\" width=%d maxlength=%d value=\"%s\"", - cur_hseq++, cur_form_id, p, html_quote(r), w, i, qq)); + cur_hseq++, cur_form_id, html_quote(p), + html_quote(r), size, i, qq)); if (x) Strcat_charp(tmp, " checked"); if (y) @@ -3670,18 +3732,18 @@ process_input(struct parsed_tag *tag) case FORM_INPUT_PASSWORD: i = 0; if (q) { - for (; i < qlen && i < w; i++) + for (; i < qlen && i < size; i++) Strcat_char(tmp, '*'); } - for (; i < w; i++) + for (; i < size; i++) Strcat_char(tmp, ' '); break; case FORM_INPUT_TEXT: case FORM_INPUT_FILE: if (q) - Strcat(tmp, textfieldrep(Strnew_charp(q), w)); + Strcat(tmp, textfieldrep(Strnew_charp(q), size)); else { - for (i = 0; i < w; i++) + for (i = 0; i < size; i++) Strcat_char(tmp, ' '); } break; @@ -3732,6 +3794,75 @@ process_input(struct parsed_tag *tag) } Str +process_button(struct parsed_tag *tag) +{ + Str tmp = NULL; + char *p, *q, *r, *qq = ""; + int qlen, v; + + if (cur_form_id < 0) { + char *s = "<form_int method=internal action=none>"; + tmp = process_form(parse_tag(&s, TRUE)); + } + if (tmp == NULL) + tmp = Strnew(); + + p = "submit"; + parsedtag_get_value(tag, ATTR_TYPE, &p); + q = NULL; + parsedtag_get_value(tag, ATTR_VALUE, &q); + r = ""; + parsedtag_get_value(tag, ATTR_NAME, &r); + + v = formtype(p); + if (v == FORM_UNKNOWN) + return NULL; + + switch (v) { + case FORM_INPUT_SUBMIT: + case FORM_INPUT_BUTTON: + case FORM_INPUT_RESET: + break; + default: + p = "submit"; + v = FORM_INPUT_SUBMIT; + break; + } + + if (!q) { + switch (v) { + case FORM_INPUT_SUBMIT: + case FORM_INPUT_BUTTON: + q = "SUBMIT"; + break; + case FORM_INPUT_RESET: + q = "RESET"; + break; + } + } + if (q) { + qq = html_quote(q); + qlen = strlen(q); + } + + /* Strcat_charp(tmp, "<pre_int>"); */ + Strcat(tmp, Sprintf("<input_alt hseq=\"%d\" fid=\"%d\" type=\"%s\" " + "name=\"%s\" value=\"%s\">", + cur_hseq++, cur_form_id, html_quote(p), + html_quote(r), qq)); + return tmp; +} + +Str +process_n_button(void) +{ + Str tmp = Strnew(); + Strcat_charp(tmp, "</input_alt>"); + /* Strcat_charp(tmp, "</pre_int>"); */ + return tmp; +} + +Str process_select(struct parsed_tag *tag) { Str tmp = NULL; @@ -3926,7 +4057,7 @@ process_textarea(struct parsed_tag *tag, int width) cur_textarea_size = 20; if (parsedtag_get_value(tag, ATTR_COLS, &p)) { cur_textarea_size = atoi(p); - if (p[strlen(p) - 1] == '%') + if (strlen(p) > 0 && p[strlen(p) - 1] == '%') cur_textarea_size = width * cur_textarea_size / 100 - 2; if (cur_textarea_size <= 0) { cur_textarea_size = 20; @@ -4003,7 +4134,9 @@ feed_textarea(char *str) Strcat_charp(textarea_str[n_textarea], "\r\n"); str++; } - else if (*str != '\r') + else if (*str == '\r') + str++; + else Strcat_char(textarea_str[n_textarea], *(str++)); } } @@ -4084,6 +4217,7 @@ process_form_int(struct parsed_tag *tag, int fid) parsedtag_get_value(tag, ATTR_METHOD, &p); q = "!CURRENT_URL!"; parsedtag_get_value(tag, ATTR_ACTION, &q); + q = url_encode(remove_space(q), cur_baseURL, cur_document_charset); r = NULL; #ifdef USE_M17N if (parsedtag_get_value(tag, ATTR_ACCEPT_CHARSET, &r)) @@ -4113,7 +4247,7 @@ process_form_int(struct parsed_tag *tag, int fid) forms = New_N(FormList *, forms_size); form_stack = NewAtom_N(int, forms_size); } - else if (forms_size <= form_max) { + if (forms_size <= form_max) { forms_size += form_max; forms = New_Reuse(FormList *, forms, forms_size); form_stack = New_Reuse(int, form_stack, forms_size); @@ -4227,9 +4361,18 @@ process_idattr(struct readbuffer *obuf, int cmd, struct parsed_tag *tag) obuf->flag &= ~RB_P;\ } -#define CLOSE_A \ - CLOSE_P; \ - close_anchor(h_env, obuf); +#define HTML5_CLOSE_A do { \ + if (obuf->flag & RB_HTML5) { \ + close_anchor(h_env, obuf); \ + } \ + } while (0) + +#define CLOSE_A do { \ + CLOSE_P; \ + if (!(obuf->flag & RB_HTML5)) { \ + close_anchor(h_env, obuf); \ + } \ + } while (0) #define CLOSE_DT \ if (obuf->flag & RB_IN_DT) { \ @@ -4284,15 +4427,16 @@ getMetaRefreshParam(char *q, Str *refresh_uri) while (*q) { if (!strncasecmp(q, "url=", 4)) { q += 4; - if (*q == '\"') /* " */ + if (*q == '\"' || *q == '\'') /* " or ' */ q++; r = q; while (*r && !IS_SPACE(*r) && *r != ';') r++; s_tmp = Strnew_charp_n(q, r - q); - if (s_tmp->ptr[s_tmp->length - 1] == '\"') { /* " - */ + if (s_tmp->length > 0 && + (s_tmp->ptr[s_tmp->length - 1] == '\"' || /* " */ + s_tmp->ptr[s_tmp->length - 1] == '\'')) { /* ' */ s_tmp->length--; s_tmp->ptr[s_tmp->length] = '\0'; } @@ -4391,11 +4535,31 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) HTMLlineproc1("</b>", h_env); return 1; case HTML_Q: +#ifdef USE_M17N +#ifdef USE_UNICODE + if (DisplayCharset != WC_CES_US_ASCII) { + HTMLlineproc1((obuf->q_level & 1 ? "‘": "“"), h_env); + obuf->q_level += 1; + } + else +#endif +#endif HTMLlineproc1("`", h_env); return 1; case HTML_N_Q: +#ifdef USE_M17N +#ifdef USE_UNICODE + if (DisplayCharset != WC_CES_US_ASCII) { + obuf->q_level -= 1; + HTMLlineproc1((obuf->q_level & 1 ? "’": "”"), h_env); + } + else +#endif +#endif HTMLlineproc1("'", h_env); return 1; + case HTML_FIGURE: + case HTML_N_FIGURE: case HTML_P: case HTML_N_P: CLOSE_A; @@ -4410,6 +4574,8 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) obuf->flag |= RB_P; } return 1; + case HTML_FIGCAPTION: + case HTML_N_FIGCAPTION: case HTML_BR: flushline(h_env, obuf, envs[h_env->envc].indent, 1, h_env->limit); h_env->blank_lines = 0; @@ -4599,6 +4765,12 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) case HTML_DD: CLOSE_A; CLOSE_DT; + if (h_env->envc == 0 || + (h_env->envc_real < h_env->nenv && + envs[h_env->envc].env != HTML_DL && + envs[h_env->envc].env != HTML_DL_COMPACT)) { + PUSH_ENV(HTML_DL); + } if (envs[h_env->envc].env == HTML_DL_COMPACT) { if (obuf->pos > envs[h_env->envc].indent) flushline(h_env, obuf, envs[h_env->envc].indent, 0, @@ -4666,6 +4838,7 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) } flushline(h_env, obuf, envs[h_env->envc].indent, 0, h_env->limit); return 0; + case HTML_SECTION: case HTML_HR: close_anchor(h_env, obuf); tmp = process_hr(tag, h_env->limit, envs[h_env->envc].indent); @@ -4824,6 +4997,8 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) close_anchor(h_env, obuf); return 1; case HTML_IMG: + if (parsedtag_exists(tag, ATTR_USEMAP)) + HTML5_CLOSE_A; tmp = process_img(tag, h_env->limit); HTMLlineproc1(tmp->ptr, h_env); return 1; @@ -4833,13 +5008,13 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) #ifdef USE_IMAGE i = 0; if (parsedtag_get_value(tag, ATTR_TOP_MARGIN, &i)) { - if (i > obuf->top_margin) - obuf->top_margin = i; + if ((short)i > obuf->top_margin) + obuf->top_margin = (short)i; } i = 0; if (parsedtag_get_value(tag, ATTR_BOTTOM_MARGIN, &i)) { - if (i > obuf->bottom_margin) - obuf->bottom_margin = i; + if ((short)i > obuf->bottom_margin) + obuf->bottom_margin = (short)i; } #endif return 0; @@ -4853,15 +5028,43 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) case HTML_INPUT_ALT: i = 0; if (parsedtag_get_value(tag, ATTR_TOP_MARGIN, &i)) { - if (i > obuf->top_margin) - obuf->top_margin = i; + if ((short)i > obuf->top_margin) + obuf->top_margin = (short)i; } i = 0; if (parsedtag_get_value(tag, ATTR_BOTTOM_MARGIN, &i)) { - if (i > obuf->bottom_margin) - obuf->bottom_margin = i; + if ((short)i > obuf->bottom_margin) + obuf->bottom_margin = (short)i; + } + if (parsedtag_get_value(tag, ATTR_HSEQ, &hseq)) { + obuf->input_alt.hseq = hseq; + } + if (parsedtag_get_value(tag, ATTR_FID, &i)) { + obuf->input_alt.fid = i; + } + if (parsedtag_get_value(tag, ATTR_TYPE, &p)) { + obuf->input_alt.type = Strnew_charp(p); } + if (parsedtag_get_value(tag, ATTR_VALUE, &p)) { + obuf->input_alt.value = Strnew_charp(p); + } + if (parsedtag_get_value(tag, ATTR_NAME, &p)) { + obuf->input_alt.name = Strnew_charp(p); + } + obuf->input_alt.in = 1; return 0; + case HTML_N_INPUT_ALT: + if (obuf->input_alt.in) { + if (!close_effect0(obuf, HTML_INPUT_ALT)) + push_tag(obuf, "</input_alt>", HTML_N_INPUT_ALT); + obuf->input_alt.hseq = 0; + obuf->input_alt.fid = -1; + obuf->input_alt.in = 0; + obuf->input_alt.type = NULL; + obuf->input_alt.name = NULL; + obuf->input_alt.value = NULL; + } + return 1; case HTML_TABLE: close_anchor(h_env, obuf); obuf->table_level++; @@ -4884,6 +5087,8 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) else w = BORDER_THIN; } + if (DisplayBorders && w == BORDER_NONE) + w = BORDER_THIN; if (parsedtag_get_value(tag, ATTR_WIDTH, &i)) { if (obuf->table_level == 0) width = REAL_WIDTH(i, h_env->limit - envs[h_env->envc].indent); @@ -4892,9 +5097,24 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) } if (parsedtag_exists(tag, ATTR_HBORDER)) w = BORDER_NOWIN; +#define MAX_CELLSPACING 1000 +#define MAX_CELLPADDING 1000 +#define MAX_VSPACE 1000 parsedtag_get_value(tag, ATTR_CELLSPACING, &x); parsedtag_get_value(tag, ATTR_CELLPADDING, &y); parsedtag_get_value(tag, ATTR_VSPACE, &z); + if (x < 0) + x = 0; + if (y < 0) + y = 0; + if (z < 0) + z = 0; + if (x > MAX_CELLSPACING) + x = MAX_CELLSPACING; + if (y > MAX_CELLPADDING) + y = MAX_CELLPADDING; + if (z > MAX_VSPACE) + z = MAX_VSPACE; #ifdef ID_EXT parsedtag_get_value(tag, ATTR_ID, &id); #endif /* ID_EXT */ @@ -4970,6 +5190,17 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) case HTML_INPUT: close_anchor(h_env, obuf); tmp = process_input(tag); + if (tmp) + HTMLlineproc1(tmp->ptr, h_env); + return 1; + case HTML_BUTTON: + HTML5_CLOSE_A; + tmp = process_button(tag); + if (tmp) + HTMLlineproc1(tmp->ptr, h_env); + return 1; + case HTML_N_BUTTON: + tmp = process_n_button(); if (tmp) HTMLlineproc1(tmp->ptr, h_env); return 1; @@ -5019,11 +5250,23 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) NULL); HTMLlineproc1(tmp->ptr, h_env); return 1; + case HTML_DOCTYPE: + if (!parsedtag_exists(tag, ATTR_PUBLIC)) { + obuf->flag |= RB_HTML5; + } + return 1; case HTML_META: - p = q = NULL; + p = q = r = NULL; parsedtag_get_value(tag, ATTR_HTTP_EQUIV, &p); parsedtag_get_value(tag, ATTR_CONTENT, &q); #ifdef USE_M17N + parsedtag_get_value(tag, ATTR_CHARSET, &r); + if (r) { + /* <meta charset=""> */ + SKIP_BLANKS(r); + meta_charset = wc_guess_charset(r, 0); + } + else if (p && q && !strcasecmp(p, "Content-Type") && (q = strcasestr(q, "charset")) != NULL) { q += 7; @@ -5060,11 +5303,10 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) } return 1; case HTML_BASE: -#ifdef USE_IMAGE +#if defined(USE_M17N) || defined(USE_IMAGE) p = NULL; if (parsedtag_get_value(tag, ATTR_HREF, &p)) { - if (!cur_baseURL) - cur_baseURL = New(ParsedURL); + cur_baseURL = New(ParsedURL); parseURL(p, cur_baseURL, NULL); } #endif @@ -5211,6 +5453,7 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) } return 1; case HTML_EMBED: + HTML5_CLOSE_A; if (view_unseenobject) { if (parsedtag_get_value(tag, ATTR_SRC, &p)) { Str s; @@ -5322,6 +5565,13 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) #ifdef MENU_SELECT Anchor **a_select = NULL; #endif +#if defined(USE_M17N) || defined(USE_IMAGE) + ParsedURL *base = baseURL(buf); +#endif +#ifdef USE_M17N + wc_ces name_charset = url_to_charset(NULL, &buf->currentURL, + buf->document_charset); +#endif if (out_size == 0) { out_size = LINELEN; @@ -5516,16 +5766,17 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) hseq = 0; id = NULL; if (parsedtag_get_value(tag, ATTR_NAME, &id)) { - id = url_quote_conv(id, buf->document_charset); + id = url_quote_conv(id, name_charset); registerName(buf, id, currentLn(buf), pos); } if (parsedtag_get_value(tag, ATTR_HREF, &p)) - p = url_quote_conv(remove_space(p), - buf->document_charset); + p = url_encode(remove_space(p), base, + buf->document_charset); if (parsedtag_get_value(tag, ATTR_TARGET, &q)) q = url_quote_conv(q, buf->document_charset); if (parsedtag_get_value(tag, ATTR_REFERER, &r)) - r = url_quote_conv(r, buf->document_charset); + r = url_encode(r, base, + buf->document_charset); parsedtag_get_value(tag, ATTR_TITLE, &s); parsedtag_get_value(tag, ATTR_ACCESSKEY, &t); parsedtag_get_value(tag, ATTR_HSEQ, &hseq); @@ -5564,7 +5815,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) a_href->end.pos = pos; if (a_href->start.line == a_href->end.line && a_href->start.pos == a_href->end.pos) { - if (buf->hmarklist && + if (buf->hmarklist && a_href->hseq >= 0 && a_href->hseq < buf->hmarklist->nmark) buf->hmarklist->marks[a_href->hseq].invalid = 1; a_href->hseq = -1; @@ -5611,7 +5862,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) ParsedURL u; Image *image; - parseURL2(a_img->url, &u, cur_baseURL); + parseURL2(a_img->url, &u, base); a_img->image = image = New(Image); image->url = parsedURL2Str(&u)->ptr; if (!uncompressed_file_type(u.file, &image->ext)) @@ -5632,7 +5883,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) image->map = q; image->ismap = ismap; image->touch = 0; - image->cache = getImage(image, cur_baseURL, + image->cache = getImage(image, base, IMG_FLAG_SKIP); } else if (iseq < 0) { @@ -5671,7 +5922,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) parsedtag_get_value(tag, ATTR_FID, &form_id); parsedtag_get_value(tag, ATTR_TOP_MARGIN, &top); parsedtag_get_value(tag, ATTR_BOTTOM_MARGIN, &bottom); - if (form_id < 0 || form_id > form_max || forms == NULL) + if (form_id < 0 || form_id > form_max || + forms == NULL || forms[form_id] == NULL) break; /* outside of <form>..</form> */ form = forms[form_id]; if (hseq > 0) { @@ -5682,6 +5934,21 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) putHmarker(buf->hmarklist, currentLn(buf), hpos, hseq - 1); } + else if (hseq < 0) { + int h = -hseq - 1; + int hpos = pos; + if (*str == '[') + hpos++; + if (buf->hmarklist && + h < buf->hmarklist->nmark && + buf->hmarklist->marks[h].invalid) { + buf->hmarklist->marks[h].pos = hpos; + buf->hmarklist->marks[h].line = currentLn(buf); + buf->hmarklist->marks[h].invalid = 0; + hseq = -hseq; + } + } + if (!form->target) form->target = buf->baseTarget; if (a_textarea && @@ -5754,8 +6021,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) break; if (parsedtag_get_value(tag, ATTR_HREF, &p)) { MapArea *a; - p = url_quote_conv(remove_space(p), - buf->document_charset); + p = url_encode(remove_space(p), base, + buf->document_charset); t = NULL; parsedtag_get_value(tag, ATTR_TARGET, &t); q = ""; @@ -5804,11 +6071,14 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) break; case HTML_BASE: if (parsedtag_get_value(tag, ATTR_HREF, &p)) { - p = url_quote_conv(remove_space(p), - buf->document_charset); + p = url_encode(remove_space(p), NULL, + buf->document_charset); if (!buf->baseURL) buf->baseURL = New(ParsedURL); - parseURL(p, buf->baseURL, NULL); + parseURL2(p, buf->baseURL, &buf->currentURL); +#if defined(USE_M17N) || defined(USE_IMAGE) + base = buf->baseURL; +#endif } if (parsedtag_get_value(tag, ATTR_TARGET, &p)) buf->baseTarget = @@ -5823,8 +6093,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) int refresh_interval = getMetaRefreshParam(q, &tmp); #ifdef USE_ALARM if (tmp) { - p = url_quote_conv(remove_space(tmp->ptr), - buf->document_charset); + p = url_encode(remove_space(tmp->ptr), base, + buf->document_charset); buf->event = setAlarmEvent(buf->event, refresh_interval, AL_IMPLICIT_ONCE, @@ -5837,8 +6107,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) FUNCNAME_reload, NULL); #else if (tmp && refresh_interval == 0) { - p = url_quote_conv(remove_space(tmp->ptr), - buf->document_charset); + p = url_encode(remove_space(tmp->ptr), base, + buf->document_charset); pushEvent(FUNCNAME_gorURL, p); } #endif @@ -5857,14 +6127,14 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) case HTML_TEXTAREA_INT: if (parsedtag_get_value(tag, ATTR_TEXTAREANUMBER, &n_textarea) - && n_textarea < max_textarea) { + && n_textarea >= 0 && n_textarea < max_textarea) { textarea_str[n_textarea] = Strnew(); } else n_textarea = -1; break; case HTML_N_TEXTAREA_INT: - if (n_textarea >= 0) { + if (a_textarea && n_textarea >= 0) { FormItemList *item = (FormItemList *)a_textarea[n_textarea]->url; item->init_value = item->value = @@ -5874,7 +6144,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) #ifdef MENU_SELECT case HTML_SELECT_INT: if (parsedtag_get_value(tag, ATTR_SELECTNUMBER, &n_select) - && n_select < max_select) { + && n_select >= 0 && n_select < max_select) { select_option[n_select].first = NULL; select_option[n_select].last = NULL; } @@ -5882,7 +6152,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) n_select = -1; break; case HTML_N_SELECT_INT: - if (n_select >= 0) { + if (a_select && n_select >= 0) { FormItemList *item = (FormItemList *)a_select[n_select]->url; item->select_option = select_option[n_select].first; @@ -5922,7 +6192,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) #ifdef ID_EXT id = NULL; if (parsedtag_get_value(tag, ATTR_ID, &id)) { - id = url_quote_conv(id, buf->document_charset); + id = url_quote_conv(id, name_charset); registerName(buf, id, currentLn(buf), pos); } if (renderFrameSet && @@ -5957,7 +6227,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) fclose(debug); #endif for (form_id = 1; form_id <= form_max; form_id++) - forms[form_id]->next = forms[form_id - 1]; + if (forms[form_id]) + forms[form_id]->next = forms[form_id - 1]; buf->formlist = (form_max >= 0) ? forms[form_max] : NULL; if (n_textarea) addMultirowsForm(buf, buf->formitem); @@ -5975,7 +6246,8 @@ addLink(Buffer *buf, struct parsed_tag *tag) parsedtag_get_value(tag, ATTR_HREF, &href); if (href) - href = url_quote_conv(remove_space(href), buf->document_charset); + href = url_encode(remove_space(href), baseURL(buf), + buf->document_charset); parsedtag_get_value(tag, ATTR_TITLE, &title); parsedtag_get_value(tag, ATTR_TYPE, &ctype); parsedtag_get_value(tag, ATTR_REL, &rel); @@ -6147,10 +6419,10 @@ HTMLlineproc0(char *line, struct html_feed_environ *h_env, int internal) while (*line != '\0') { char *str, *p; int is_tag = FALSE; - int pre_mode = (obuf->table_level >= 0) ? tbl_mode->pre_mode : - obuf->flag; - int end_tag = (obuf->table_level >= 0) ? tbl_mode->end_tag : - obuf->end_tag; + int pre_mode = (obuf->table_level >= 0 && tbl_mode) ? + tbl_mode->pre_mode : obuf->flag; + int end_tag = (obuf->table_level >= 0 && tbl_mode) ? + tbl_mode->end_tag : obuf->end_tag; if (*line == '<' || obuf->status != R_ST_NORMAL) { /* @@ -6166,7 +6438,7 @@ HTMLlineproc0(char *line, struct html_feed_environ *h_env, int internal) } if (h_env->tagbuf->length == 0) continue; - str = h_env->tagbuf->ptr; + str = Strdup(h_env->tagbuf)->ptr; if (*str == '<') { if (str[1] && REALLY_THE_BEGINNING_OF_A_TAG(str)) is_tag = TRUE; @@ -6232,7 +6504,7 @@ HTMLlineproc0(char *line, struct html_feed_environ *h_env, int internal) } proc_normal: - if (obuf->table_level >= 0) { + if (obuf->table_level >= 0 && tbl && tbl_mode) { /* * within table: in <table>..</table>, all input tokens * are fed to the table renderer, and then the renderer @@ -6248,6 +6520,8 @@ HTMLlineproc0(char *line, struct html_feed_environ *h_env, int internal) if (obuf->table_level >= 0) { struct table *tbl0 = tables[obuf->table_level]; str = Sprintf("<table_alt tid=%d>", tbl0->ntable)->ptr; + if (tbl0->row < 0) + continue; pushTable(tbl0, tbl); tbl = tbl0; tbl_mode = &table_mode[obuf->table_level]; @@ -6265,6 +6539,7 @@ HTMLlineproc0(char *line, struct html_feed_environ *h_env, int internal) do_blankline(h_env, obuf, indent, 0, h_env->limit); } save_fonteffect(h_env, obuf); + initRenderTable(); renderTable(tbl, tbl_width, h_env); restore_fonteffect(h_env, obuf); obuf->flag &= ~RB_IGNORE_P; @@ -6422,7 +6697,8 @@ HTMLlineproc0(char *line, struct html_feed_environ *h_env, int internal) indent = h_env->envs[h_env->envc].indent; if (obuf->bp.pos - i > indent) { Str line; - append_tags(obuf); + append_tags(obuf); /* may reallocate the buffer */ + bp = obuf->line->ptr + obuf->bp.len; line = Strnew_charp(bp); Strshrink(obuf->line, obuf->line->length - obuf->bp.len); #ifdef FORMAT_NICE @@ -6747,8 +7023,15 @@ init_henv(struct html_feed_environ *h_env, struct readbuffer *obuf, obuf->status = R_ST_NORMAL; obuf->table_level = -1; obuf->nobr_level = 0; + obuf->q_level = 0; bzero((void *)&obuf->anchor, sizeof(obuf->anchor)); obuf->img_alt = 0; + obuf->input_alt.hseq = 0; + obuf->input_alt.fid = -1; + obuf->input_alt.in = 0; + obuf->input_alt.type = NULL; + obuf->input_alt.name = NULL; + obuf->input_alt.value = NULL; obuf->in_bold = 0; obuf->in_italic = 0; obuf->in_under = 0; @@ -6784,6 +7067,15 @@ completeHTMLstream(struct html_feed_environ *h_env, struct readbuffer *obuf) push_tag(obuf, "</img_alt>", HTML_N_IMG_ALT); obuf->img_alt = NULL; } + if (obuf->input_alt.in) { + push_tag(obuf, "</input_alt>", HTML_N_INPUT_ALT); + obuf->input_alt.hseq = 0; + obuf->input_alt.fid = -1; + obuf->input_alt.in = 0; + obuf->input_alt.type = NULL; + obuf->input_alt.name = NULL; + obuf->input_alt.value = NULL; + } if (obuf->in_bold) { push_tag(obuf, "</b>", HTML_N_B); obuf->in_bold = 0; @@ -6817,9 +7109,12 @@ completeHTMLstream(struct html_feed_environ *h_env, struct readbuffer *obuf) obuf->table_level = MAX_TABLE - 1; while (obuf->table_level >= 0) { + int tmp = obuf->table_level; table_mode[obuf->table_level].pre_mode &= ~(TBLM_SCRIPT | TBLM_STYLE | TBLM_PLAIN); HTMLlineproc1("</table>", h_env); + if (obuf->table_level >= tmp) + break; } } @@ -6841,6 +7136,8 @@ print_internal_information(struct html_feed_environ *henv) if (form_max >= 0) { FormList *fp; for (i = 0; i <= form_max; i++) { + if (forms[i] == NULL) + continue; fp = forms[i]; s = Sprintf("<form_int fid=\"%d\" action=\"%s\" method=\"%s\"", i, html_quote(fp->action->ptr), @@ -6956,8 +7253,6 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal) image_flag = IMG_FLAG_AUTO; else image_flag = IMG_FLAG_SKIP; - if (newBuf->currentURL.file) - cur_baseURL = baseURL(newBuf); #endif if (w3m_halfload) { @@ -6980,6 +7275,9 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal) htmlenv1.f = stdout; else htmlenv1.buf = newTextLineList(); +#if defined(USE_M17N) || defined(USE_IMAGE) + cur_baseURL = baseURL(newBuf); +#endif if (SETJMP(AbortLoading) != 0) { HTMLlineproc1("<br>Transfer Interrupted!<br>", &htmlenv1); @@ -7041,18 +7339,23 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal) } #endif lineBuf2 = convertLine(f, lineBuf2, HTML_MODE, &charset, doc_charset); -#if defined(USE_M17N) && defined(USE_IMAGE) +#ifdef USE_M17N cur_document_charset = charset; #endif HTMLlineproc0(lineBuf2->ptr, &htmlenv1, internal); } if (obuf.status != R_ST_NORMAL) { - obuf.status = R_ST_EOL; HTMLlineproc0("\n", &htmlenv1, internal); } obuf.status = R_ST_NORMAL; completeHTMLstream(&htmlenv1, &obuf); flushline(&htmlenv1, &obuf, 0, 2, htmlenv1.limit); +#if defined(USE_M17N) || defined(USE_IMAGE) + cur_baseURL = NULL; +#endif +#ifdef USE_M17N + cur_document_charset = 0; +#endif if (htmlenv1.title) newBuf->buffername = htmlenv1.title; if (w3m_halfdump) { @@ -7089,16 +7392,17 @@ loadHTMLString(Str page) MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; Buffer *newBuf; + init_stream(&f, SCM_LOCAL, newStrStream(page)); + newBuf = newBuffer(INIT_BUFFER_WIDTH); if (SETJMP(AbortLoading) != 0) { TRAP_OFF; discardBuffer(newBuf); + UFclose(&f); return NULL; } TRAP_ON; - init_stream(&f, SCM_LOCAL, newStrStream(page)); - #ifdef USE_M17N newBuf->document_charset = InnerCharset; #endif @@ -7108,6 +7412,7 @@ loadHTMLString(Str page) #endif TRAP_OFF; + UFclose(&f); newBuf->topLine = newBuf->firstLine; newBuf->lastLine = newBuf->currentLine; newBuf->currentLine = newBuf->firstLine; @@ -7123,12 +7428,18 @@ loadHTMLString(Str page) /* * loadGopherDir: get gopher directory */ +#ifdef USE_M17N Str loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset) +#else +Str +loadGopherDir0(URLFile *uf, ParsedURL *pu) +#endif { Str volatile tmp; - Str lbuf, name, file, host, port; + Str lbuf, name, file, host, port, type; char *volatile p, *volatile q; + int link, pre; MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; #ifdef USE_M17N wc_ces doc_charset = DocumentCharset; @@ -7148,6 +7459,7 @@ loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset) goto gopher_end; TRAP_ON; + pre = 0; while (1) { if (lbuf = StrUFgets(uf), lbuf->length == 0) break; @@ -7174,6 +7486,7 @@ loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset) for (q = p; *q && *q != '\t' && *q != '\r' && *q != '\n'; q++) ; port = Strnew_charp_n(p, q - p); + link = 1; switch (name->ptr[0]) { case '0': p = "[text file]"; @@ -7181,6 +7494,12 @@ loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset) case '1': p = "[directory]"; break; + case '5': + p = "[DOS binary]"; + break; + case '7': + p = "[search]"; + break; case 'm': p = "[message]"; break; @@ -7193,23 +7512,77 @@ loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset) case 'h': p = "[HTML]"; break; + case 'i': + link = 0; + break; + case 'I': + p = "[image]"; + break; + case '9': + p = "[binary]"; + break; default: p = "[unsupported]"; break; } - q = Strnew_m_charp("gopher://", host->ptr, ":", port->ptr, - "/", file->ptr, NULL)->ptr; - Strcat_m_charp(tmp, "<a href=\"", - html_quote(url_quote_conv(q, *charset)), - "\">", p, html_quote(name->ptr + 1), "</a>\n", NULL); + type = Strsubstr(name, 0, 1); + q = Strnew_m_charp("gopher://", host->ptr, ":", port->ptr, "/", type->ptr, file->ptr, NULL)->ptr; + if(link) { + if(pre) { + Strcat_charp(tmp, "</pre>"); + pre = 0; + } + Strcat_m_charp(tmp, "<a href=\"", + html_quote(url_encode(q, NULL, *charset)), + "\">", p, " ", html_quote(name->ptr + 1), "</a><br>\n", NULL); + } else { + if(!pre) { + Strcat_charp(tmp, "<pre>"); + pre = 1; + } + + Strcat_m_charp(tmp, html_quote(name->ptr + 1), "\n", NULL); + } } gopher_end: TRAP_OFF; + if(pre) + Strcat_charp(tmp, "</pre>"); Strcat_charp(tmp, "</table>\n</body>\n</html>\n"); return tmp; } + +#ifdef USE_M17N +Str +loadGopherSearch(URLFile *uf, ParsedURL *pu, wc_ces * charset) +#else +Str +loadGopherSearch0(URLFile *uf, ParsedURL *pu) +#endif +{ + Str tmp; + char *volatile p, *volatile q; + MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; +#ifdef USE_M17N + wc_ces doc_charset = DocumentCharset; +#endif + + tmp = parsedURL2Str(pu); + p = html_quote(tmp->ptr); + tmp = + convertLine(NULL, Strnew_charp(file_unquote(tmp->ptr)), RAW_MODE, + charset, doc_charset); + q = html_quote(tmp->ptr); + tmp = Strnew_m_charp("<html>\n<head>\n<base href=\"", p, "\">\n<title>", q, + "</title>\n</head>\n<body>\n<h1>Search ", q, + "</h1>\n<form role=\"search\">\n<div>\n" + "<input type=\"search\" name=\"\">" + "</div>\n</form>\n</body>", NULL); + + return tmp; +} #endif /* USE_GOPHER */ /* @@ -7236,7 +7609,6 @@ loadBuffer(URLFile *uf, Buffer *volatile newBuf) if (newBuf == NULL) newBuf = newBuffer(INIT_BUFFER_WIDTH); - lineBuf2 = Strnew(); if (SETJMP(AbortLoading) != 0) { goto _end; @@ -7324,6 +7696,7 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf) URLFile f; MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; struct stat st; + const ParsedURL *pu = newBuf ? &newBuf->currentURL : NULL; loadImage(newBuf, IMG_FLAG_STOP); image.url = uf->url; @@ -7331,20 +7704,18 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf) image.width = -1; image.height = -1; image.cache = NULL; - cache = getImage(&image, cur_baseURL, IMG_FLAG_AUTO); - if (!cur_baseURL->is_nocache && cache->loaded & IMG_FLAG_LOADED && + cache = getImage(&image, (ParsedURL *)pu, IMG_FLAG_AUTO); + if (!(pu && pu->is_nocache) && cache->loaded & IMG_FLAG_LOADED && !stat(cache->file, &st)) goto image_buffer; - TRAP_ON; if (IStype(uf->stream) != IST_ENCODED) uf->stream = newEncodedStream(uf->stream, uf->encoding); + TRAP_ON; if (save2tmp(*uf, cache->file) < 0) { - UFclose(uf); TRAP_OFF; return NULL; } - UFclose(uf); TRAP_OFF; cache->loaded = IMG_FLAG_LOADED; @@ -7360,10 +7731,13 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf) tmp = Sprintf("<img src=\"%s\"><br><br>", html_quote(image.url)); tmpf = tmpfname(TMPF_SRC, ".html"); src = fopen(tmpf->ptr, "w"); + if (src == NULL) + return NULL; newBuf->mailcap_source = tmpf->ptr; init_stream(&f, SCM_LOCAL, newStrStream(tmp)); loadHTMLstream(&f, newBuf, src, TRUE); + UFclose(&f); if (src) fclose(src); @@ -7404,7 +7778,7 @@ conv_symbol(Line *l) symbol = get_symbol(DisplayCharset, &w); #endif } - Strcat_charp(tmp, symbol[(int)c]); + Strcat_charp(tmp, symbol[(unsigned char)c % N_SYMBOL]); #ifdef USE_M17N p += len - 1; pr += len - 1; @@ -7573,8 +7947,11 @@ openGeneralPagerBuffer(InputStream stream) #ifdef USE_M17N content_charset = 0; #endif + t_buf = newBuffer(INIT_BUFFER_WIDTH); + copyParsedURL(&t_buf->currentURL, NULL); + t_buf->currentURL.scheme = SCM_LOCAL; + t_buf->currentURL.file = "-"; if (SearchHeader) { - t_buf = newBuffer(INIT_BUFFER_WIDTH); readHeader(&uf, t_buf, TRUE, NULL); t = checkContentType(t_buf); if (t == NULL) @@ -7602,14 +7979,13 @@ openGeneralPagerBuffer(InputStream stream) #ifdef USE_IMAGE else if (activeImage && displayImage && !useExtImageViewer && !(w3m_dump & ~DUMP_FRAME) && !strncasecmp(t, "image/", 6)) { - cur_baseURL = New(ParsedURL); - parseURL("-", cur_baseURL, NULL); buf = loadImageBuffer(&uf, t_buf); buf->type = "text/html"; } #endif else { - if (doExternal(uf, "-", t, &buf, t_buf)) { + if (searchExtViewer(t)) { + buf = doExternal(uf, t, t_buf); UFclose(&uf); if (buf == NULL || buf == NO_BUFFER) return buf; @@ -7622,8 +7998,6 @@ openGeneralPagerBuffer(InputStream stream) } } buf->real_type = t; - buf->currentURL.scheme = SCM_LOCAL; - buf->currentURL.file = "-"; return buf; } @@ -7759,6 +8133,8 @@ save2tmp(URLFile uf, char *tmpf) clen_t linelen = 0, trbyte = 0; MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; static JMP_BUF env_bak; + volatile int retval = 0; + char *volatile buf = NULL; ff = fopen(tmpf, "wb"); if (ff == NULL) { @@ -7795,30 +8171,29 @@ save2tmp(URLFile uf, char *tmpf) else #endif /* USE_NNTP */ { - Str buf = Strnew_size(SAVE_BUF_SIZE); - while (UFread(&uf, buf, SAVE_BUF_SIZE)) { - if (Strfputs(buf, ff) != buf->length) { - bcopy(env_bak, AbortLoading, sizeof(JMP_BUF)); - TRAP_OFF; - fclose(ff); - current_content_length = 0; - return -2; + int count; + + buf = NewWithoutGC_N(char, SAVE_BUF_SIZE); + while ((count = ISread_n(uf.stream, buf, SAVE_BUF_SIZE)) > 0) { + if (fwrite(buf, 1, count, ff) != count) { + retval = -2; + goto _end; } - linelen += buf->length; + linelen += count; showProgress(&linelen, &trbyte); } } _end: bcopy(env_bak, AbortLoading, sizeof(JMP_BUF)); TRAP_OFF; + xfree(buf); fclose(ff); current_content_length = 0; - return 0; + return retval; } -int -doExternal(URLFile uf, char *path, char *type, Buffer **bufp, - Buffer *defaultbuf) +Buffer * +doExternal(URLFile uf, char *type, Buffer *defaultbuf) { Str tmpf, command; struct mailcap *mcap; @@ -7827,7 +8202,7 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp, char *header, *src = NULL, *ext = uf.ext; if (!(mcap = searchExtViewer(type))) - return 0; + return NULL; if (mcap->nametemplate) { tmpf = unquote_mailcap(mcap->nametemplate, NULL, "", NULL, NULL); @@ -7860,15 +8235,13 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp, UFclose(&uf); myExec(command->ptr); } - *bufp = NO_BUFFER; - return 1; + return NO_BUFFER; } else #endif { if (save2tmp(uf, tmpf->ptr) < 0) { - *bufp = NULL; - return 1; + return NULL; } } if (mcap->flags & (MAILCAP_HTMLOUTPUT | MAILCAP_COPIOUSOUTPUT)) { @@ -7911,14 +8284,13 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp, buf = NO_BUFFER; } if (buf && buf != NO_BUFFER) { - buf->filename = path; - if (buf->buffername == NULL || buf->buffername[0] == '\0') - buf->buffername = conv_from_system(lastFileName(path)); + if ((buf->buffername == NULL || buf->buffername[0] == '\0') && + buf->filename) + buf->buffername = conv_from_system(lastFileName(buf->filename)); buf->edit = mcap->edit; buf->mailcap = mcap; } - *bufp = buf; - return 1; + return buf; } static int @@ -7928,7 +8300,8 @@ _MoveFile(char *path1, char *path2) FILE *f2; int is_pipe; clen_t linelen = 0, trbyte = 0; - Str buf; + char *buf = NULL; + int count; f1 = openIS(path1); if (f1 == NULL) @@ -7946,12 +8319,13 @@ _MoveFile(char *path1, char *path2) return -1; } current_content_length = 0; - buf = Strnew_size(SAVE_BUF_SIZE); - while (ISread(f1, buf, SAVE_BUF_SIZE)) { - Strfputs(buf, f2); - linelen += buf->length; + buf = NewWithoutGC_N(char, SAVE_BUF_SIZE); + while ((count = ISread_n(f1, buf, SAVE_BUF_SIZE)) > 0) { + fwrite(buf, 1, count, f2); + linelen += count; showProgress(&linelen, &trbyte); } + xfree(buf); ISclose(f1); if (is_pipe) pclose(f2); @@ -7991,7 +8365,7 @@ _doFileCopy(char *tmpf, char *defstr, int download) else { if (q) { p = unescape_spaces(Strnew_charp(q))->ptr; - p = conv_to_system(q); + p = conv_to_system(p); } p = expandPath(p); if (checkOverWrite(p) < 0) @@ -8310,21 +8684,23 @@ uncompress_stream(URLFile *uf, char **src) } if (pid2 == 0) { /* child2 */ - Str buf = Strnew_size(SAVE_BUF_SIZE); + char *buf = NewWithoutGC_N(char, SAVE_BUF_SIZE); + int count; FILE *f = NULL; setup_child(TRUE, 2, UFfileno(uf)); if (tmpf) f = fopen(tmpf, "wb"); - while (UFread(uf, buf, SAVE_BUF_SIZE)) { - if (Strfputs(buf, stdout) < 0) + while ((count = ISread_n(uf->stream, buf, SAVE_BUF_SIZE)) > 0) { + if (fwrite(buf, 1, count, stdout) != count) + break; + if (f && fwrite(buf, 1, count, f) != count) break; - if (f) - Strfputs(buf, f); } UFclose(uf); if (f) fclose(f); + xfree(buf); exit(0); } /* child1 */ @@ -8371,7 +8747,7 @@ lessopen_stream(char *path) } c = getc(fp); if (c == EOF) { - fclose(fp); + pclose(fp); return NULL; } ungetc(c, fp); @@ -76,6 +76,7 @@ typedef int wc_ces; /* XXX: not used */ #include "textlist.h" #include "funcname1.h" #include "terms.h" +#include "istream.h" #ifndef HAVE_BCOPY void bcopy(const void *, void *, int); @@ -264,6 +265,20 @@ extern int REV_LB[]; #define IMG_FLAG_ERROR 2 #define IMG_FLAG_DONT_REMOVE 4 +#define IS_EMPTY_PARSED_URL(pu) ((pu)->scheme == SCM_UNKNOWN && !(pu)->file) +#define SCONF_RESERVED 0 +#define SCONF_SUBSTITUTE_URL 1 +#define SCONF_URL_CHARSET 2 +#define SCONF_NO_REFERER_FROM 3 +#define SCONF_NO_REFERER_TO 4 +#define SCONF_USER_AGENT 5 +#define SCONF_N_FIELD 6 +#define query_SCONF_SUBSTITUTE_URL(pu) ((const char *)querySiteconf(pu, SCONF_SUBSTITUTE_URL)) +#define query_SCONF_USER_AGENT(pu) ((const char *)querySiteconf(pu, SCONF_USER_AGENT)) +#define query_SCONF_URL_CHARSET(pu) ((const wc_ces *)querySiteconf(pu, SCONF_URL_CHARSET)) +#define query_SCONF_NO_REFERER_FROM(pu) ((const int *)querySiteconf(pu, SCONF_NO_REFERER_FROM)) +#define query_SCONF_NO_REFERER_TO(pu) ((const int *)querySiteconf(pu, SCONF_NO_REFERER_TO)) + /* * Macros. */ @@ -276,8 +291,6 @@ extern int REV_LB[]; #define inputFilenameHist(p,d,h) inputLineHist(p,d,IN_FILENAME,h) #define inputChar(p) inputLine(p,"",IN_CHAR) -#define free(x) GC_free(x) /* let GC do it. */ - #ifdef __EMX__ #define HAVE_STRCASECMP #define strcasecmp stricmp @@ -362,6 +375,8 @@ typedef struct _imageCache { int index; short width; short height; + short a_width; + short a_height; } ImageCache; typedef struct _image { @@ -562,6 +577,13 @@ typedef struct _DownloadList { #define INIT_BUFFER_WIDTH ((_INIT_BUFFER_WIDTH > 0) ? _INIT_BUFFER_WIDTH : 0) #define FOLD_BUFFER_WIDTH (FoldLine ? (INIT_BUFFER_WIDTH + 1) : -1) +struct input_alt_attr { + int hseq; + int fid; + int in; + Str type, name, value; +}; + typedef struct { int pos; int len; @@ -569,6 +591,7 @@ typedef struct { long flag; Anchor anchor; Str img_alt; + struct input_alt_attr input_alt; char fontstat[FONTSTAT_SIZE]; short nobr_level; Lineprop prev_ctype; @@ -587,10 +610,12 @@ struct readbuffer { int flag_sp; int status; unsigned char end_tag; + unsigned char q_level; short table_level; short nobr_level; Anchor anchor; Str img_alt; + struct input_alt_attr input_alt; char fontstat[FONTSTAT_SIZE]; char fontstat_stack[FONT_STACK_SIZE][FONTSTAT_SIZE]; int fontstat_sp; @@ -637,6 +662,7 @@ struct readbuffer { #endif /* FORMAT_NICE */ #define RB_DEL 0x100000 #define RB_S 0x200000 +#define RB_HTML5 0x400000 #define RB_GET_ALIGN(obuf) ((obuf)->flag&RB_ALIGN) #define RB_SET_ALIGN(obuf,align) {(obuf)->flag &= ~RB_ALIGN; (obuf)->flag |= (align); } @@ -649,7 +675,7 @@ struct readbuffer { RB_SET_ALIGN(obuf,(obuf)->flag_stack[--(obuf)->flag_sp]); \ } -/* status flags */ +/* state of token scanning finite state machine */ #define R_ST_NORMAL 0 /* normal */ #define R_ST_TAG0 1 /* within tag, just after < */ #define R_ST_TAG 2 /* within tag */ @@ -802,7 +828,7 @@ global char PermitSaveToPipe init(FALSE); global char DecodeCTE init(FALSE); global char AutoUncompress init(FALSE); global char PreserveTimestamp init(TRUE); -global char ArgvIsURL init(FALSE); +global char ArgvIsURL init(TRUE); global char MetaRefresh init(FALSE); global char fmInitialized init(FALSE); @@ -874,6 +900,9 @@ global char *index_file init(NULL); global char *CurrentDir; global int CurrentPid; +#if defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) +global char *MyProgramName init("w3m"); +#endif /* defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) */ /* * global Buffer *Currentbuf; * global Buffer *Firstbuf; @@ -896,6 +925,7 @@ global char *CurrentKeyData; global char *CurrentCmdData; global char *w3m_reqlog; extern char *w3m_version; +extern int enable_inline_image; #define DUMP_BUFFER 0x01 #define DUMP_HEAD 0x02 @@ -909,6 +939,7 @@ global int w3m_dump init(0); global int w3m_halfload init(FALSE); global Str header_string init(NULL); global int override_content_type init(FALSE); +global int override_user_agent init(FALSE); #ifdef USE_COLOR global int useColor init(TRUE); @@ -930,6 +961,7 @@ global int confirm_on_quit init(TRUE); global int use_mark init(FALSE); #endif global int emacs_like_lineedit init(FALSE); +global int space_autocomplete init(FALSE); global int vi_prec_num init(FALSE); global int label_topline init(FALSE); global int nextpage_topline init(FALSE); @@ -968,10 +1000,17 @@ global int MailtoOptions init(MAILTO_OPTIONS_IGNORE); global char *ExtBrowser init(DEF_EXT_BROWSER); global char *ExtBrowser2 init(NULL); global char *ExtBrowser3 init(NULL); +global char *ExtBrowser4 init(NULL); +global char *ExtBrowser5 init(NULL); +global char *ExtBrowser6 init(NULL); +global char *ExtBrowser7 init(NULL); +global char *ExtBrowser8 init(NULL); +global char *ExtBrowser9 init(NULL); global int BackgroundExtViewer init(TRUE); global int disable_secret_security_check init(FALSE); global char *passwd_file init(PASSWD_FILE); global char *pre_form_file init(PRE_FORM_FILE); +global char *siteconf_file init(SITECONF_FILE); global char *ftppasswd init(NULL); global int ftppass_hostnamegen init(TRUE); global int do_download init(FALSE); @@ -991,7 +1030,7 @@ global char *BookmarkFile init(NULL); global int UseExternalDirBuffer init(TRUE); global char *DirBufferCommand init("file:///$LIB/dirlist" CGI_EXTENSION); #ifdef USE_DICT -global int UseDictCommand init(FALSE); +global int UseDictCommand init(TRUE); global char *DictCommand init("file:///$LIB/w3mdict" CGI_EXTENSION); #endif /* USE_DICT */ global int ignore_null_img_alt init(TRUE); @@ -1004,7 +1043,7 @@ global int FoldLine init(FALSE); #define DEFAULT_URL_EMPTY 0 #define DEFAULT_URL_CURRENT 1 #define DEFAULT_URL_LINK 2 -global int DefaultURLString init(DEFAULT_URL_EMPTY); +global int DefaultURLString init(DEFAULT_URL_CURRENT); global int MarkAllPages init(FALSE); #ifdef USE_MIGEMO @@ -1065,16 +1104,18 @@ global char SimplePreserveSpace init(FALSE); #define wc_Str_conv(x,charset0,charset1) (x) #define wc_Str_conv_strict(x,charset0,charset1) (x) #endif -global char UseAltEntity init(TRUE); +global char UseAltEntity init(FALSE); #define GRAPHIC_CHAR_ASCII 2 #define GRAPHIC_CHAR_DEC 1 #define GRAPHIC_CHAR_CHARSET 0 global char UseGraphicChar init(GRAPHIC_CHAR_CHARSET); +global char DisplayBorders init(FALSE); extern char *graph_symbol[]; extern char *graph2_symbol[]; extern int symbol_width; extern int symbol_width0; #define N_GRAPH_SYMBOL 32 +#define N_SYMBOL (N_GRAPH_SYMBOL + 14) #define SYMBOL_BASE 0x20 global int no_rc_dir init(FALSE); global char *rc_dir init(NULL); @@ -1113,9 +1154,9 @@ global MouseAction mouse_action; #ifdef USE_COOKIE global int default_use_cookie init(TRUE); -global int use_cookie init(FALSE); -global int show_cookie init(TRUE); -global int accept_cookie init(FALSE); +global int use_cookie init(TRUE); +global int show_cookie init(FALSE); +global int accept_cookie init(TRUE); #define ACCEPT_BAD_COOKIE_DISCARD 0 #define ACCEPT_BAD_COOKIE_ACCEPT 1 #define ACCEPT_BAD_COOKIE_ASK 2 @@ -1135,7 +1176,7 @@ global int view_unseenobject init(TRUE); #endif #if defined(USE_SSL) && defined(USE_SSL_VERIFY) -global int ssl_verify_server init(FALSE); +global int ssl_verify_server init(TRUE); global char *ssl_cert_file init(NULL); global char *ssl_key_file init(NULL); global char *ssl_ca_path init(NULL); @@ -1144,15 +1185,17 @@ global int ssl_path_modified init(FALSE); #endif /* defined(USE_SSL) && * defined(USE_SSL_VERIFY) */ #ifdef USE_SSL -global char *ssl_forbid_method init(NULL); +global char *ssl_forbid_method init("2, 3"); #endif global int is_redisplay init(FALSE); global int clear_buffer init(TRUE); global double pixel_per_char init(DEFAULT_PIXEL_PER_CHAR); +global int pixel_per_char_i init(DEFAULT_PIXEL_PER_CHAR); global int set_pixel_per_char init(FALSE); #ifdef USE_IMAGE global double pixel_per_line init(DEFAULT_PIXEL_PER_LINE); +global int pixel_per_line_i init(DEFAULT_PIXEL_PER_LINE); global int set_pixel_per_line init(FALSE); global double image_scale init(100); #endif @@ -10,8 +10,10 @@ #include "regex.h" extern Str *textarea_str; +extern int max_textarea; #ifdef MENU_SELECT extern FormSelectOption *select_option; +extern int max_select; #include "menu.h" #endif /* MENU_SELECT */ @@ -54,10 +56,9 @@ newFormList(char *action, char *method, char *charset, char *enctype, m = FORM_METHOD_INTERNAL; /* unknown method is regarded as 'get' */ - if (enctype != NULL && !strcasecmp(enctype, "multipart/form-data")) { + if (m != FORM_METHOD_GET && enctype != NULL && + !strcasecmp(enctype, "multipart/form-data")) { e = FORM_ENCTYPE_MULTIPART; - if (m == FORM_METHOD_GET) - m = FORM_METHOD_POST; } #ifdef USE_M17N @@ -122,10 +123,12 @@ formList_addInput(struct form_list *fl, struct parsed_tag *tag) parsedtag_get_value(tag, ATTR_SIZE, &item->size); parsedtag_get_value(tag, ATTR_MAXLENGTH, &item->maxlength); item->readonly = parsedtag_exists(tag, ATTR_READONLY); - if (parsedtag_get_value(tag, ATTR_TEXTAREANUMBER, &i)) + if (parsedtag_get_value(tag, ATTR_TEXTAREANUMBER, &i) + && i >= 0 && i < max_textarea) item->value = item->init_value = textarea_str[i]; #ifdef MENU_SELECT - if (parsedtag_get_value(tag, ATTR_SELECTNUMBER, &i)) + if (parsedtag_get_value(tag, ATTR_SELECTNUMBER, &i) + && i >= 0 && i < max_select) item->select_option = select_option[i].first; #endif /* MENU_SELECT */ if (parsedtag_get_value(tag, ATTR_ROWS, &p)) @@ -196,7 +199,7 @@ formtype(char *typestr) if (!strcasecmp(typestr, _formtypetbl[i])) return i; } - return FORM_UNKNOWN; + return FORM_INPUT_TEXT; } void @@ -316,7 +319,8 @@ form_update_line(Line *line, char **str, int spos, int epos, int width, pos += width - w; len = line->len + pos + spos - epos; - buf = New_N(char, len); + buf = New_N(char, len + 1); + buf[len] = '\0'; prop = New_N(Lineprop, len); bcopy((void *)line->lineBuf, (void *)buf, spos * sizeof(char)); bcopy((void *)line->propBuf, (void *)prop, spos * sizeof(Lineprop)); @@ -438,6 +442,9 @@ formUpdateBuffer(Anchor *a, Buffer *buf, FormItemList *form) switch (form->type) { case FORM_INPUT_CHECKBOX: case FORM_INPUT_RADIO: + if (buf->currentLine == NULL || + spos >= buf->currentLine->len || spos < 0) + break; if (form->checked) buf->currentLine->lineBuf[spos] = '*'; else @@ -455,8 +462,14 @@ formUpdateBuffer(Anchor *a, Buffer *buf, FormItemList *form) } else #endif /* MENU_SELECT */ + { + if (!form->value) + break; p = form->value->ptr; + } l = buf->currentLine; + if (!l) + break; if (form->type == FORM_TEXTAREA) { int n = a->y - buf->currentLine->linenumber; if (n > 0) @@ -469,6 +482,8 @@ formUpdateBuffer(Anchor *a, Buffer *buf, FormItemList *form) rows = form->rows ? form->rows : 1; col = COLPOS(l, a->start.pos); for (c_rows = 0; c_rows < rows; c_rows++, l = l->next) { + if (l == NULL) + break; if (rows > 1) { pos = columnPos(l, col); a = retrieveAnchor(buf->formitem, l->linenumber, pos); @@ -477,6 +492,9 @@ formUpdateBuffer(Anchor *a, Buffer *buf, FormItemList *form) spos = a->start.pos; epos = a->end.pos; } + if (a->start.line != a->end.line || spos > epos || epos >= l->len || + spos < 0 || epos < 0 || COLPOS(l, epos) < col) + break; pos = form_update_line(l, &p, spos, epos, COLPOS(l, epos) - col, rows > 1, form->type == FORM_INPUT_PASSWORD); @@ -787,7 +805,7 @@ struct pre_form { static struct pre_form *PreForm = NULL; static struct pre_form * -add_pre_form(struct pre_form *prev, char *url, char *name, char *action) +add_pre_form(struct pre_form *prev, char *url, Regex *re_url, char *name, char *action) { ParsedURL pu; struct pre_form *new; @@ -796,21 +814,13 @@ add_pre_form(struct pre_form *prev, char *url, char *name, char *action) new = prev->next = New(struct pre_form); else new = PreForm = New(struct pre_form); - if (url && *url == '/') { - int l = strlen(url); - if (l > 1 && url[l - 1] == '/') - new->url = allocStr(url + 1, l - 2); - else - new->url = url + 1; - new->re_url = newRegex(new->url, FALSE, NULL, NULL); - if (!new->re_url) - new->url = NULL; - } - else if (url) { + if (url && !re_url) { parseURL2(url, &pu, NULL); new->url = parsedURL2Str(&pu)->ptr; - new->re_url = NULL; } + else + new->url = url; + new->re_url = re_url; new->name = (name && *name) ? name : NULL; new->action = (action && *action) ? action : NULL; new->item = NULL; @@ -834,7 +844,7 @@ add_pre_form_item(struct pre_form *pf, struct pre_form_item *prev, int type, new->name = name; new->value = value; if (checked && *checked && (!strcmp(checked, "0") || - strcasecmp(checked, "off") + !strcasecmp(checked, "off") || !strcasecmp(checked, "no"))) new->checked = 0; else @@ -875,6 +885,7 @@ loadPreForm(void) return; while (1) { char *p, *s, *arg; + Regex *re_arg; line = Strfgets(fp); if (line->length == 0) @@ -890,18 +901,20 @@ loadPreForm(void) if (*p == '#' || *p == '\0') continue; /* comment or empty line */ s = getWord(&p); - arg = getWord(&p); if (!strcmp(s, "url")) { + arg = getRegexWord((const char **)&p, &re_arg); if (!arg || !*arg) continue; p = getQWord(&p); - pf = add_pre_form(pf, arg, NULL, p); + pf = add_pre_form(pf, arg, re_arg, NULL, p); pi = pf->item; continue; } if (!pf) continue; + + arg = getWord(&p); if (!strcmp(s, "form")) { if (!arg || !*arg) continue; @@ -913,7 +926,7 @@ loadPreForm(void) } if (pf->item) { struct pre_form *prev = pf; - pf = add_pre_form(prev, "", s, p); + pf = add_pre_form(prev, "", NULL, s, p); /* copy previous URL */ pf->url = prev->url; pf->re_url = prev->re_url; @@ -91,7 +91,8 @@ newFrame(struct parsed_tag *tag, Buffer *buf) body->baseURL = baseURL(buf); if (tag) { if (parsedtag_get_value(tag, ATTR_SRC, &p)) - body->url = url_quote_conv(remove_space(p), buf->document_charset); + body->url = url_encode(remove_space(p), body->baseURL, + buf->document_charset); if (parsedtag_get_value(tag, ATTR_NAME, &p) && *p != '_') body->name = url_quote_conv(p, buf->document_charset); } @@ -639,7 +640,7 @@ createFrameFile(struct frameset *f, FILE * f1, Buffer *current, int level, case HTML_BASE: /* "BASE" is prohibit tag */ if (parsedtag_get_value(tag, ATTR_HREF, &q)) { - q = url_quote_conv(remove_space(q), charset); + q = url_encode(remove_space(q), NULL, charset); parseURL(q, &base, NULL); } if (parsedtag_get_value(tag, ATTR_TARGET, &q)) { @@ -768,8 +769,8 @@ createFrameFile(struct frameset *f, FILE * f1, Buffer *current, int level, if (!tag->value[j]) break; tag->value[j] = - url_quote_conv(remove_space(tag->value[j]), - charset); + url_encode(remove_space(tag->value[j]), + &base, charset); tag->need_reconstruct = TRUE; parseURL2(tag->value[j], &url, &base); if (url.scheme == SCM_UNKNOWN || @@ -894,8 +895,10 @@ renderFrame(Buffer *Cbuf, int force_reload) /* * if (Cbuf->frameQ != NULL) fset = Cbuf->frameQ->frameset; else */ fset = Cbuf->frameset; - if (fset == NULL || createFrameFile(fset, f, Cbuf, 0, force_reload) < 0) + if (fset == NULL || createFrameFile(fset, f, Cbuf, 0, force_reload) < 0) { + fclose(f); return NULL; + } fclose(f); flag = RG_FRAME; if ((Cbuf->currentURL).is_nocache) @@ -123,6 +123,7 @@ static int ftp_login(FTP ftp) { int sock, status; + int sock_wf; sock = openSocket(ftp->host, "ftp", 21); if (sock < 0) @@ -139,7 +140,6 @@ ftp_login(FTP ftp) socklen_t socknamelen = sizeof(sockname); if (!getsockname(sock, (struct sockaddr *)&sockname, &socknamelen)) { - struct hostent *sockent; Str tmp = Strnew_charp(ftp->pass); #ifdef INET6 char hostbuf[NI_MAXHOST]; @@ -156,6 +156,7 @@ ftp_login(FTP ftp) Strcat_charp(tmp, "unknown"); #else + struct hostent *sockent; if ((sockent = gethostbyaddr((char *)&sockname.sin_addr, sizeof(sockname.sin_addr), sockname.sin_family))) @@ -169,7 +170,10 @@ ftp_login(FTP ftp) } } ftp->rf = newInputStream(sock); - ftp->wf = fdopen(dup(sock), "wb"); + if ((sock_wf = dup(sock)) >= 0 ) + ftp->wf = fdopen(sock_wf, "wb"); + else + goto open_err; if (!ftp->rf || !ftp->wf) goto open_err; IStype(ftp->rf) |= IST_UNCLOSE; @@ -8,6 +8,7 @@ #include "fm.h" #include "func.h" #include "myctype.h" +#include "regex.h" #include "funcname.c" #include "functable.c" @@ -434,6 +435,93 @@ getQWord(char **str) return tmp->ptr; } +/* This extracts /regex/i or m@regex@i from the given string. + * Then advances *str to the end of regex. + * If the input does not seems to be a regex, this falls back to getQWord(). + * + * Returns a word (no matter whether regex or not) in the give string. + * If regex_ret is non-NULL, compiles the regex and stores there. + * + * XXX: Actually this is unrelated to func.c. + */ +char * +getRegexWord(const char **str, Regex **regex_ret) +{ + char *word = NULL; + const char *p, *headp, *bodyp, *tailp; + char delimiter; + int esc; + int igncase = 0; + + p = *str; + SKIP_BLANKS(p); + headp = p; + + /* Get the opening delimiter */ + if (p[0] == 'm' && IS_PRINT(p[1]) && !IS_ALNUM(p[1]) && p[1] != '\\') { + delimiter = p[1]; + p += 2; + } + else if (p[0] == '/') { + delimiter = '/'; + p += 1; + } + else { + goto not_regex; + } + bodyp = p; + + /* Scan the end of the expression */ + for (esc = 0; *p; ++p) { + if (esc) { + esc = 0; + } else { + if (*p == delimiter) + break; + else if (*p == '\\') + esc = 1; + } + } + if (!*p && *headp == '/') + goto not_regex; + tailp = p; + + /* Check the modifiers */ + if (*p == delimiter) { + while (*++p && !IS_SPACE(*p)) { + switch (*p) { + case 'i': + igncase = 1; + break; + } + /* ignore unknown modifiers */ + } + } + + /* Save the expression */ + word = allocStr(headp, p - headp); + + /* Compile */ + if (regex_ret) { + if (*tailp == delimiter) + word[tailp - headp] = 0; + *regex_ret = newRegex(word + (bodyp - headp), igncase, NULL, NULL); + if (*tailp == delimiter) + word[tailp - headp] = delimiter; + } + goto last; + +not_regex: + p = headp; + word = getQWord((char **)&p); + if (regex_ret) + *regex_ret = NULL; + +last: + *str = p; + return word; +} + #ifdef USE_MOUSE static MouseAction default_mouse_action = { NULL, diff --git a/gc/CVS/Entries b/gc/CVS/Entries deleted file mode 100644 index 7eb3836..0000000 --- a/gc/CVS/Entries +++ /dev/null @@ -1,5 +0,0 @@ -D/Mac_files//// -D/cord//// -D/doc//// -D/include//// -D/tests//// diff --git a/gc/CVS/Repository b/gc/CVS/Repository deleted file mode 100644 index e390d2f..0000000 --- a/gc/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/gc diff --git a/gc/CVS/Root b/gc/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/gc/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/gc/Mac_files/CVS/Entries b/gc/Mac_files/CVS/Entries deleted file mode 100644 index 1784810..0000000 --- a/gc/Mac_files/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/gc/Mac_files/CVS/Repository b/gc/Mac_files/CVS/Repository deleted file mode 100644 index 3832d0b..0000000 --- a/gc/Mac_files/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/gc/Mac_files diff --git a/gc/Mac_files/CVS/Root b/gc/Mac_files/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/gc/Mac_files/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/gc/cord/CVS/Entries b/gc/cord/CVS/Entries deleted file mode 100644 index a7ce60a..0000000 --- a/gc/cord/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D/private//// diff --git a/gc/cord/CVS/Repository b/gc/cord/CVS/Repository deleted file mode 100644 index 656cb33..0000000 --- a/gc/cord/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/gc/cord diff --git a/gc/cord/CVS/Root b/gc/cord/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/gc/cord/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/gc/cord/private/CVS/Entries b/gc/cord/private/CVS/Entries deleted file mode 100644 index 1784810..0000000 --- a/gc/cord/private/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/gc/cord/private/CVS/Repository b/gc/cord/private/CVS/Repository deleted file mode 100644 index 8bf419d..0000000 --- a/gc/cord/private/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/gc/cord/private diff --git a/gc/cord/private/CVS/Root b/gc/cord/private/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/gc/cord/private/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/gc/doc/CVS/Entries b/gc/doc/CVS/Entries deleted file mode 100644 index 1784810..0000000 --- a/gc/doc/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/gc/doc/CVS/Repository b/gc/doc/CVS/Repository deleted file mode 100644 index 24977cc..0000000 --- a/gc/doc/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/gc/doc diff --git a/gc/doc/CVS/Root b/gc/doc/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/gc/doc/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/gc/include/CVS/Entries b/gc/include/CVS/Entries deleted file mode 100644 index a7ce60a..0000000 --- a/gc/include/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D/private//// diff --git a/gc/include/CVS/Repository b/gc/include/CVS/Repository deleted file mode 100644 index cbc551f..0000000 --- a/gc/include/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/gc/include diff --git a/gc/include/CVS/Root b/gc/include/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/gc/include/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/gc/include/private/CVS/Entries b/gc/include/private/CVS/Entries deleted file mode 100644 index 1784810..0000000 --- a/gc/include/private/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/gc/include/private/CVS/Repository b/gc/include/private/CVS/Repository deleted file mode 100644 index 55fc1f1..0000000 --- a/gc/include/private/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/gc/include/private diff --git a/gc/include/private/CVS/Root b/gc/include/private/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/gc/include/private/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/gc/tests/CVS/Entries b/gc/tests/CVS/Entries deleted file mode 100644 index 1784810..0000000 --- a/gc/tests/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/gc/tests/CVS/Repository b/gc/tests/CVS/Repository deleted file mode 100644 index aa9da7e..0000000 --- a/gc/tests/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/gc/tests diff --git a/gc/tests/CVS/Root b/gc/tests/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/gc/tests/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/gitlog2changelog b/gitlog2changelog new file mode 100755 index 0000000..f664b74 --- /dev/null +++ b/gitlog2changelog @@ -0,0 +1,111 @@ +#!/usr/bin/perl + +=head1 NAME + +gitlog2changelog - tiny tool to convert Git commit logs to GNU-style ChangeLog + +=head1 SYNOPSIS + +git log | gitlog2changelog > ChangeLog + +TZ=UTC git log --date=local --no-merges --numstat --pretty=fuller | gitlog2changelog > ChangeLog + +(Use TZ=UTC and --date=local to use UTC instead of the original time zone. + Use --no-merges to ignore merge commits. + Use --numstat to show changed files. + Use --pretty=fuller to show committer date instead of author date.) + +=head1 SEE ALSO + +GNU Coding Standards: + <http://www.gnu.org/prep/standards/html_node/index.html> + <http://www.gnu.org/prep/standards/html_node/Change-Logs.html> + +=head1 COPYRIGHT + +Copyright (c) 2013 Tatsuya Kinoshita + +Redistribution and use in source and binary forms, with or without +modification, are permitted without restriction, with NO WARRANTY. +You may regard this as a work that is placed in the public domain. + +=cut + +use strict; +use warnings; + +my $author = ""; my $date = ""; my $comment = ""; my @files = (); +my $pre_header = ""; + +sub print_entry { + my $header = "$date $author"; + $header =~ s/ </ </; + if ($header ne $pre_header) { + print "$header\n\n"; + $pre_header = $header; + } + print "\t* "; + + my $files_line_len = 10; + my $files_lines = ""; + foreach my $file (@files) { + my $len = length($file); + if ($files_line_len > 10 && ($files_line_len + $len > 78)) { + $files_lines =~ s/, $/:\n\t* /; + $files_line_len = 10; + } + $files_lines .= "$file, "; + $files_line_len += $len + 2; + } + + if ($files_lines) { + my $short_comment = ""; + if ($comment =~ /^([^\n]+)/) { + $short_comment = $1; + } + if ($short_comment =~ /:[ \t]|[^\(\[][:,\)\]][ \t]*$/ || + $files_line_len + length($short_comment) > 78) { + $files_lines =~ s/, $/:\n\t/; + } else { + $files_lines =~ s/, $/: /; + } + print "$files_lines"; + } + + $comment =~ s/\.?[ \t]*\n/.\n/; + $comment =~ s/\n([ \t]*\n)+/\n/g; + $comment =~ s/\n+$//; + $comment =~ s/\n/\n\t/g; + $comment =~ s/^\* //; + print "$comment\n\n"; + + $author = ""; $date = ""; $comment = ""; @files = (); +} + +while (<>) { + if (/^Author:[ \t]+([^\n]+)/) { + $author = $1; + } elsif (/^(Commit|)Date:[ \t]+(Sun|Mon|Tue|Wed|Thu|Fri|Sat) +(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) +(\d+) +\d+:\d+:\d+ +(\d+)/) { # Assume git log --date=default or --date=local + my $mm = $3; + my $dd = $4; + my $yyyy = $5; + $mm =~ s/Jan/01/; $mm =~ s/Feb/02/; $mm =~ s/Mar/03/; $mm =~ s/Apr/04/; + $mm =~ s/May/05/; $mm =~ s/Jun/06/; $mm =~ s/Jul/07/; $mm =~ s/Aug/08/; + $mm =~ s/Sep/09/; $mm =~ s/Oct/10/; $mm =~ s/Nov/11/; $mm =~ s/Dec/12/; + $dd =~ s/^(\d)$/0$1/; + $date = "$yyyy-$mm-$dd"; + } elsif (/^(Commit|)Date:[ \t]+(\d+-\d+-\d+)/) { # Assume git log --date=short or --date=iso + $date = $2; + } elsif (/^(Commit|)Date:[ \t]+(.+)$/) { + $date = $2; + } elsif (/^ (.*)$/) { + $comment .= "$1\n"; + } elsif (/^[-0-9]+\t[-0-9]+\t(.*)$/) { # Assume git log --numstat + push @files, $1; + } elsif (/^commit / && $author && $date) { + &print_entry; + } +} +if ($author && $date) { + &print_entry; +} @@ -17,7 +17,7 @@ historyBuffer(Hist *hist) for (item = hist->list->last; item; item = item->prev) { q = html_quote((char *)item->ptr); if (DecodeURL) - p = html_quote(url_unquote_conv((char *)item->ptr, 0)); + p = html_quote(url_decode2((char *)item->ptr, NULL)); else p = q; Strcat_charp(src, "<li><a href=\""); @@ -60,6 +60,7 @@ saveHistory(Hist *hist, size_t size) FILE *f; HistItem *item; char *tmpf; + int rename_ret; if (hist == NULL || hist->list == NULL) return; @@ -79,7 +80,11 @@ saveHistory(Hist *hist, size_t size) disp_err_message("Can't save history", FALSE); return; } - rename(tmpf, rcFile(HISTORY_FILE)); + rename_ret = rename(tmpf, rcFile(HISTORY_FILE)); + if (rename_ret != 0) { + disp_err_message("Can't save history", FALSE); + return; + } } #endif /* USE_HISTORY */ @@ -1,4 +1,4 @@ -/* $Id: html.c,v 1.32 2010/08/14 01:29:40 htrb Exp $ */ +/* $Id: html.c,v 1.33 2012/05/22 09:45:56 inu Exp $ */ #include "html.h" /* Define HTML Tag Infomation Table */ @@ -37,8 +37,10 @@ unsigned char ALST_TABLE[] = ATTR_CELLPADDING, ATTR_VSPACE, ATTR_CORE }; #define MAXA_TABLE MAXA_CORE + 6 -unsigned char ALST_META[] = { ATTR_HTTP_EQUIV, ATTR_CONTENT, ATTR_CORE }; -#define MAXA_META MAXA_CORE + 2 +unsigned char ALST_DOCTYPE[] = { ATTR_PUBLIC }; /* only (html and) public should be checked */ +#define MAXA_DOCTYPE 1 +unsigned char ALST_META[] = { ATTR_HTTP_EQUIV, ATTR_CONTENT, ATTR_CHARSET, ATTR_CORE }; +#define MAXA_META MAXA_CORE + 3 unsigned char ALST_FRAME[] = { ATTR_SRC, ATTR_NAME, ATTR_CORE }; #define MAXA_FRAME MAXA_CORE + 2 unsigned char ALST_FRAMESET[] = { ATTR_COLS, ATTR_ROWS, ATTR_CORE }; @@ -56,6 +58,9 @@ unsigned char ALST_INPUT[] = ATTR_CORE }; #define MAXA_INPUT MAXA_CORE + 12 +unsigned char ALST_BUTTON[] = + { ATTR_TYPE, ATTR_VALUE, ATTR_NAME, ATTR_CORE }; +#define MAXA_BUTTON MAXA_CORE + 3 unsigned char ALST_TEXTAREA[] = { ATTR_COLS, ATTR_ROWS, ATTR_NAME, ATTR_READONLY, ATTR_CORE }; #define MAXA_TEXTAREA MAXA_CORE + 4 @@ -218,15 +223,14 @@ TagInfo TagMAP[MAX_HTMLTAG] = { {"/option", NULL, 0, TFLG_END}, /* 94 HTML_N_OPTION */ {"head", ALST_NOP, MAXA_NOP, 0}, /* 95 HTML_HEAD */ {"/head", NULL, 0, TFLG_END}, /* 96 HTML_N_HEAD */ - {"doctype", ALST_NOP, MAXA_NOP, 0}, /* 97 HTML_DOCTYPE */ + {"doctype", ALST_DOCTYPE, MAXA_DOCTYPE, 0}, /* 97 HTML_DOCTYPE */ {"noframes", ALST_NOFRAMES, MAXA_NOFRAMES, 0}, /* 98 HTML_NOFRAMES */ {"/noframes", NULL, 0, TFLG_END}, /* 99 HTML_N_NOFRAMES */ {"sup", ALST_NOP, MAXA_NOP, 0}, /* 100 HTML_SUP */ - {"/sup", NULL, 0, 0}, /* 101 HTML_N_SUP */ - /* FIXME: Should /sup and /sub have TFLG_END ? */ + {"/sup", NULL, 0, TFLG_END}, /* 101 HTML_N_SUP */ {"sub", ALST_NOP, MAXA_NOP, 0}, /* 102 HTML_SUB */ - {"/sub", NULL, 0, 0}, /* 103 HTML_N_SUB */ + {"/sub", NULL, 0, TFLG_END}, /* 103 HTML_N_SUB */ {"link", ALST_LINK, MAXA_LINK, 0}, /* 104 HTML_LINK */ {"s", ALST_NOP, MAXA_NOP, 0}, /* 105 HTML_S */ {"/s", NULL, 0, TFLG_END}, /* 106 HTML_N_S */ @@ -247,30 +251,30 @@ TagInfo TagMAP[MAX_HTMLTAG] = { {"/bdo", NULL, 0, TFLG_END}, /* 121 HTML_N_BDO */ {"big", ALST_NOP, MAXA_NOP, 0}, /* 122 HTML_BIG */ {"/big", NULL, 0, TFLG_END}, /* 123 HTML_N_BIG */ - {"button", ALST_NOP, MAXA_NOP, 0}, /* 124 HTML_BUTTON */ - {"fieldset", ALST_NOP, MAXA_NOP, 0}, /* 125 HTML_FIELDSET */ - {"/fieldset", NULL, 0, TFLG_END}, /* 126 HTML_N_FIELDSET */ - {"iframe", ALST_NOP, MAXA_NOP, 0}, /* 127 HTML_IFRAME */ - {"label", ALST_NOP, MAXA_NOP, 0}, /* 128 HTML_LABEL */ - {"/label", NULL, 0, TFLG_END}, /* 129 HTML_N_LABEL */ - {"legend", ALST_NOP, MAXA_NOP, 0}, /* 130 HTML_LEGEND */ - {"/legend", NULL, 0, TFLG_END}, /* 131 HTML_N_LEGEND */ - {"noscript", ALST_NOP, MAXA_NOP, 0}, /* 132 HTML_NOSCRIPT */ - {"/noscript", NULL, 0, TFLG_END}, /* 133 HTML_N_NOSCRIPT */ - {"object", ALST_NOP, MAXA_NOP, 0}, /* 134 HTML_OBJECT */ - {"optgroup", ALST_NOP, MAXA_NOP, 0}, /* 135 HTML_OPTGROUP */ - {"/optgroup", NULL, 0, TFLG_END}, /* 136 HTML_N_OPTGROUP */ - {"param", ALST_NOP, MAXA_NOP, 0}, /* 137 HTML_PARAM */ - {"small", ALST_NOP, MAXA_NOP, 0}, /* 138 HTML_SMALL */ - {"/small", NULL, 0, TFLG_END}, /* 139 HTML_N_SMALL */ + {"button", ALST_BUTTON, MAXA_BUTTON, 0}, /* 124 HTML_BUTTON */ + {"/button", NULL, 0, TFLG_END}, /* 125 HTML_N_BUTTON */ + {"fieldset", ALST_NOP, MAXA_NOP, 0}, /* 126 HTML_FIELDSET */ + {"/fieldset", NULL, 0, TFLG_END}, /* 127 HTML_N_FIELDSET */ + {"iframe", ALST_NOP, MAXA_NOP, 0}, /* 128 HTML_IFRAME */ + {"label", ALST_NOP, MAXA_NOP, 0}, /* 129 HTML_LABEL */ + {"/label", NULL, 0, TFLG_END}, /* 130 HTML_N_LABEL */ + {"legend", ALST_NOP, MAXA_NOP, 0}, /* 131 HTML_LEGEND */ + {"/legend", NULL, 0, TFLG_END}, /* 132 HTML_N_LEGEND */ + {"noscript", ALST_NOP, MAXA_NOP, 0}, /* 133 HTML_NOSCRIPT */ + {"/noscript", NULL, 0, TFLG_END}, /* 134 HTML_N_NOSCRIPT */ + {"object", ALST_NOP, MAXA_NOP, 0}, /* 135 HTML_OBJECT */ + {"optgroup", ALST_NOP, MAXA_NOP, 0}, /* 136 HTML_OPTGROUP */ + {"/optgroup", NULL, 0, TFLG_END}, /* 137 HTML_N_OPTGROUP */ + {"param", ALST_NOP, MAXA_NOP, 0}, /* 138 HTML_PARAM */ + {"small", ALST_NOP, MAXA_NOP, 0}, /* 139 HTML_SMALL */ + {"/small", NULL, 0, TFLG_END}, /* 140 HTML_N_SMALL */ + {"figure", ALST_P, MAXA_P, 0}, /* 141 HTML_FIGURE */ + {"/figure", NULL, 0, TFLG_END}, /* 142 HTML_N_FIGURE */ + {"figcaption", ALST_P, MAXA_P, 0}, /* 143 HTML_FIGCAPTION */ + {"/figcaption", NULL, 0, TFLG_END}, /* 144 HTML_N_FIGCAPTION */ + {"section", ALST_NOP, MAXA_NOP, 0}, /* 145 HTML_SECTION */ + {"/section", NULL, 0, TFLG_END}, /* 146 HTML_N_SECTION */ - {NULL, NULL, 0, 0}, /* 140 Undefined */ - {NULL, NULL, 0, 0}, /* 141 Undefined */ - {NULL, NULL, 0, 0}, /* 142 Undefined */ - {NULL, NULL, 0, 0}, /* 143 Undefined */ - {NULL, NULL, 0, 0}, /* 144 Undefined */ - {NULL, NULL, 0, 0}, /* 145 Undefined */ - {NULL, NULL, 0, 0}, /* 146 Undefined */ {NULL, NULL, 0, 0}, /* 147 Undefined */ {NULL, NULL, 0, 0}, /* 148 Undefined */ {NULL, NULL, 0, 0}, /* 149 Undefined */ @@ -365,7 +369,7 @@ TagAttrInfo AttrMAP[MAX_TAGATTR] = { {"rev", VTYPE_STR, 0}, /* 48 ATTR_REV */ {"title", VTYPE_STR, 0}, /* 49 ATTR_TITLE */ {"accesskey", VTYPE_STR, 0}, /* 50 ATTR_ACCESSKEY */ - {NULL, VTYPE_NONE, 0}, /* 51 Undefined */ + {"public", VTYPE_NONE, 0}, /* 51 ATTR_PUBLIC */ {NULL, VTYPE_NONE, 0}, /* 52 Undefined */ {NULL, VTYPE_NONE, 0}, /* 53 Undefined */ {NULL, VTYPE_NONE, 0}, /* 54 Undefined */ @@ -1,20 +1,20 @@ /* $Id: html.h,v 1.31 2010/08/14 01:29:40 htrb Exp $ */ #ifndef _HTML_H #define _HTML_H +#include "config.h" #ifdef USE_SSL #include <openssl/bio.h> #include <openssl/x509.h> #include <openssl/ssl.h> #endif /* USE_SSL */ -#include "istream.h" +#include <time.h> #define StrUFgets(f) StrISgets((f)->stream) #define StrmyUFgets(f) StrmyISgets((f)->stream) #define UFgetc(f) ISgetc((f)->stream) #define UFundogetc(f) ISundogetc((f)->stream) -#define UFread(f,buf,len) ISread((f)->stream,buf,len) -#define UFclose(f) (void)(ISclose((f)->stream) == 0 && ((f)->stream = NULL)) +#define UFclose(f) if (ISclose((f)->stream) == 0) {(f)->stream = NULL ;} #define UFfileno(f) ISfileno((f)->stream) struct cmdtable { @@ -62,11 +62,12 @@ typedef struct _ParsedURL { int is_nocache; } ParsedURL; +union input_stream; typedef struct { unsigned char scheme; char is_cgi; char encoding; - InputStream stream; + union input_stream *stream; char *ext; int compression; int content_encoding; @@ -214,21 +215,28 @@ typedef struct { #define HTML_BIG 122 #define HTML_N_BIG 123 #define HTML_BUTTON 124 -#define HTML_FIELDSET 125 -#define HTML_N_FIELDSET 126 -#define HTML_IFRAME 127 -#define HTML_LABEL 128 -#define HTML_N_LABEL 129 -#define HTML_LEGEND 130 -#define HTML_N_LEGEND 131 -#define HTML_NOSCRIPT 132 -#define HTML_N_NOSCRIPT 133 -#define HTML_OBJECT 134 -#define HTML_OPTGROUP 135 -#define HTML_N_OPTGROUP 136 -#define HTML_PARAM 137 -#define HTML_SMALL 138 -#define HTML_N_SMALL 139 +#define HTML_N_BUTTON 125 +#define HTML_FIELDSET 126 +#define HTML_N_FIELDSET 127 +#define HTML_IFRAME 128 +#define HTML_LABEL 129 +#define HTML_N_LABEL 130 +#define HTML_LEGEND 131 +#define HTML_N_LEGEND 132 +#define HTML_NOSCRIPT 133 +#define HTML_N_NOSCRIPT 134 +#define HTML_OBJECT 135 +#define HTML_OPTGROUP 136 +#define HTML_N_OPTGROUP 137 +#define HTML_PARAM 138 +#define HTML_SMALL 139 +#define HTML_N_SMALL 140 +#define HTML_FIGURE 141 +#define HTML_N_FIGURE 142 +#define HTML_FIGCAPTION 143 +#define HTML_N_FIGCAPTION 144 +#define HTML_SECTION 145 +#define HTML_N_SECTION 146 /* pseudo tag */ #define HTML_SELECT_INT 160 @@ -312,6 +320,7 @@ typedef struct { #define ATTR_REV 48 #define ATTR_TITLE 49 #define ATTR_ACCESSKEY 50 +#define ATTR_PUBLIC 51 /* Internal attribute */ #define ATTR_XOFFSET 60 @@ -44,6 +44,8 @@ initImage() activeImage = TRUE; } +int get_pixel_per_cell(int *ppc, int *ppl); + int getCharSize() { @@ -52,6 +54,24 @@ getCharSize() int w = 0, h = 0; set_environ("W3M_TTY", ttyname_tty()); + + if (enable_inline_image) { + int ppc, ppl; + + if (get_pixel_per_cell(&ppc,&ppl)) { + pixel_per_char_i = ppc ; + pixel_per_line_i = ppl ; + pixel_per_char = (double)ppc; + pixel_per_line = (double)ppl; + } + else { + pixel_per_char_i = (int)pixel_per_char; + pixel_per_line_i = (int)pixel_per_line; + } + + return TRUE; + } + tmp = Strnew(); if (!strchr(Imgdisplay, '/')) Strcat_m_charp(tmp, w3m_auxbin_dir(), "/", NULL); @@ -90,17 +110,18 @@ termImage() static int openImgdisplay() { + char *cmd; + + if (!strchr(Imgdisplay, '/')) + cmd = Strnew_m_charp(w3m_auxbin_dir(), "/", Imgdisplay, NULL)->ptr; + else + cmd = Imgdisplay; Imgdisplay_pid = open_pipe_rw(&Imgdisplay_rf, &Imgdisplay_wf); if (Imgdisplay_pid < 0) goto err0; if (Imgdisplay_pid == 0) { /* child */ - char *cmd; setup_child(FALSE, 2, -1); - if (!strchr(Imgdisplay, '/')) - cmd = Strnew_m_charp(w3m_auxbin_dir(), "/", Imgdisplay, NULL)->ptr; - else - cmd = Imgdisplay; myExec(cmd); /* XXX: ifdef __EMX__, use start /f ? */ } @@ -155,6 +176,10 @@ addImage(ImageCache * cache, int x, int y, int sx, int sy, int w, int h) static void syncImage(void) { + if (enable_inline_image) { + return; + } + fputs("3;\n", Imgdisplay_wf); /* XSync() */ fputs("4;\n", Imgdisplay_wf); /* put '\n' */ while (fflush(Imgdisplay_wf) != 0) { @@ -170,12 +195,16 @@ syncImage(void) n_terminal_image = 0; } +void put_image_osc5379(char *url, int x, int y, int w, int h, int sx, int sy, int sw, int sh, int n_terminal_image); +void put_image_sixel(char *url, int x, int y, int w, int h, int sx, int sy, int sw, int sh, int n_terminal_image); + void drawImage() { static char buf[64]; int j, draw = FALSE; TerminalImage *i; + struct stat st ; if (!activeImage) return; @@ -183,6 +212,47 @@ drawImage() return; for (j = 0; j < n_terminal_image; j++) { i = &terminal_image[j]; + + if (enable_inline_image) { + #if 0 + fprintf(stderr,"file %s x %d y %d w %d h %d sx %d sy %d sw %d sh %d (ppc %d ppl %d)\n", + ((enable_inline_image == 2 || getenv("WINDOWID")) && + i->cache->touch) ? i->cache->file : i->cache->url, + i->x, i->y, + i->cache->width > 0 ? i->cache->width : 0, + i->cache->height > 0 ? i->cache->height : 0, + i->sx, i->sy, i->width, i->height, + pixel_per_char_i, pixel_per_line_i); + #endif + (enable_inline_image == 2 ? put_image_sixel : put_image_osc5379)( + ((enable_inline_image == 2 /* sixel */ || getenv("WINDOWID")) && + /* XXX I don't know why but sometimes i->cache->file doesn't exist. */ + i->cache->touch && stat(i->cache->file,&st) == 0) ? + /* local */ i->cache->file : /* remote */ i->cache->url, + i->x / pixel_per_char_i, + i->y / pixel_per_line_i, + #if 1 + i->cache->a_width > 0 ? + (i->cache->width + i->x % pixel_per_char_i + pixel_per_char_i - 1) / + pixel_per_char_i : + #endif + 0, + + #if 1 + i->cache->a_height > 0 ? + (i->cache->height + i->y % pixel_per_line_i + pixel_per_line_i - 1) / + pixel_per_line_i : + #endif + 0, + i->sx / pixel_per_char_i, + i->sy / pixel_per_line_i, + (i->width + i->sx % pixel_per_char_i + pixel_per_char_i - 1) / pixel_per_char_i, + (i->height + i->sy % pixel_per_line_i + pixel_per_line_i - 1) / pixel_per_line_i, + n_terminal_image); + + continue ; + } + if (!(i->cache->loaded & IMG_FLAG_LOADED && i->width > 0 && i->height > 0)) continue; @@ -206,9 +276,15 @@ drawImage() fputs("\n", Imgdisplay_wf); draw = TRUE; } - if (!draw) - return; - syncImage(); + + if (!enable_inline_image) { + if (!draw) + return; + syncImage(); + } + else + n_terminal_image = 0; + touch_cursor(); refresh(); } @@ -320,6 +396,8 @@ showImageProgress(Buffer *buf) } } if (n) { + if (enable_inline_image && n == l) + drawImage(); message(Sprintf("%d/%d images loaded", l, n)->ptr, buf->cursorX + buf->rootX, buf->cursorY + buf->rootY); refresh(); @@ -333,6 +411,9 @@ loadImage(Buffer *buf, int flag) struct stat st; int i, draw = FALSE; /* int wait_st; */ +#ifdef DONT_CALL_GC_AFTER_FORK + char *loadargs[7]; +#endif if (maxLoadImage > MAX_LOAD_IMAGE) maxLoadImage = MAX_LOAD_IMAGE; @@ -346,7 +427,7 @@ loadImage(Buffer *buf, int flag) } for (i = 0; i < n_load_image; i++) { cache = image_cache[i]; - if (!cache) + if (!cache || !cache->touch) continue; if (lstat(cache->touch, &st)) continue; @@ -377,7 +458,7 @@ loadImage(Buffer *buf, int flag) for (i = (buf != image_buffer) ? 0 : maxLoadImage; i < n_load_image; i++) { cache = image_cache[i]; - if (!cache) + if (!cache || !cache->touch) continue; if (cache->pid) { kill(cache->pid, SIGKILL); @@ -403,7 +484,8 @@ loadImage(Buffer *buf, int flag) } if (draw && image_buffer) { - drawImage(); + if (!enable_inline_image) + drawImage(); showImageProgress(image_buffer); } @@ -431,8 +513,29 @@ loadImage(Buffer *buf, int flag) break; } image_cache[i] = cache; + if (!cache->touch) { + continue; + } flush_tty(); +#ifdef DONT_CALL_GC_AFTER_FORK + loadargs[0] = MyProgramName; + loadargs[1] = "-$$getimage"; + loadargs[2] = conv_to_system(cache->url); + loadargs[3] = conv_to_system(parsedURL2Str(cache->current)->ptr); + loadargs[4] = cache->file; + loadargs[5] = cache->touch; + loadargs[6] = NULL; + if ((cache->pid = fork()) == 0) { + setup_child(FALSE, 0, -1); + execvp(MyProgramName, loadargs); + exit(1); + } + else if (cache->pid < 0) { + cache->pid = 0; + return; + } +#else /* !DONT_CALL_GC_AFTER_FORK */ if ((cache->pid = fork()) == 0) { Buffer *b; /* @@ -458,6 +561,7 @@ loadImage(Buffer *buf, int flag) cache->pid = 0; return; } +#endif /* !DONT_CALL_GC_AFTER_FORK */ } } @@ -492,12 +596,30 @@ getImage(Image * image, ParsedURL *current, int flag) cache->url = image->url; cache->current = current; cache->file = tmpfname(TMPF_DFL, image->ext)->ptr; - cache->touch = tmpfname(TMPF_DFL, NULL)->ptr; cache->pid = 0; cache->index = 0; cache->loaded = IMG_FLAG_UNLOADED; - cache->width = image->width; - cache->height = image->height; + if (enable_inline_image == 1) { + if (image->width > 0 && image->width % pixel_per_char_i > 0) + image->width += (pixel_per_char_i - image->width % pixel_per_char_i); + + if (image->height > 0 && image->height % pixel_per_line_i > 0) + image->height += (pixel_per_line_i - image->height % pixel_per_line_i); + if (image->height > 0 && image->width > 0) { + cache->loaded = IMG_FLAG_LOADED; + } + } + if (cache->loaded == IMG_FLAG_UNLOADED) { + cache->touch = tmpfname(TMPF_DFL, NULL)->ptr; + } + else { + cache->touch = NULL; + } + + cache->width = image->width ; + cache->height = image->height ; + cache->a_width = image->width; + cache->a_height = image->height; putHash_sv(image_hash, key->ptr, (void *)cache); } if (flag != IMG_FLAG_SKIP) { @@ -519,6 +641,78 @@ getImage(Image * image, ParsedURL *current, int flag) return cache; } +static int +parseImageHeader(char *path, u_int *width, u_int *height) +{ + FILE *fp; + u_char buf[8]; + + if (!(fp = fopen(path, "r"))) return FALSE; + + if (fread(buf, 1, 2, fp) != 2) goto error; + + if (memcmp(buf, "\xff\xd8", 2) == 0) { + /* JPEG */ + if (fseek(fp, 2, SEEK_CUR) < 0) goto error; /* 0xffe0 */ + while (fread(buf, 1, 2, fp) == 2) { + size_t len = ((buf[0] << 8) | buf[1]) - 2; + if (fseek(fp, len, SEEK_CUR) < 0) goto error; + if (fread(buf, 1, 2, fp) == 2 && + /* SOF0 or SOF2 */ + (memcmp(buf, "\xff\xc0", 2) == 0 || memcmp(buf, "\xff\xc2", 2) == 0)) { + fseek(fp, 3, SEEK_CUR); + if (fread(buf, 1, 2, fp) == 2) { + *height = (buf[0] << 8) | buf[1]; + if (fread(buf, 1, 2, fp) == 2) { + *width = (buf[0] << 8) | buf[1]; + goto success; + } + } + break; + } + } + goto error; + } + + if (fread(buf + 2, 1, 1, fp) != 1) goto error; + + if (memcmp(buf, "GIF", 3) == 0) { + /* GIF */ + if (fseek(fp, 3, SEEK_CUR) < 0) goto error; + if (fread(buf, 1, 2, fp) == 2) { + *width = (buf[1] << 8) | buf[0]; + if (fread(buf, 1, 2, fp) == 2) { + *height = (buf[1] << 8) | buf[0]; + goto success; + } + } + goto error; + } + + if (fread(buf + 3, 1, 5, fp) != 5) goto error; + + if (memcmp(buf, "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a", 8) == 0) { + /* PNG */ + if (fseek(fp, 8, SEEK_CUR) < 0) goto error; + if (fread(buf, 1, 4, fp) == 4) { + *width = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; + if (fread(buf, 1, 4, fp) == 4) { + *height = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; + goto success; + } + } + goto error; + } + +error: + fclose(fp); + return FALSE; + +success: + fclose(fp); + return TRUE; +} + int getImageSize(ImageCache * cache) { @@ -531,6 +725,10 @@ getImageSize(ImageCache * cache) if (!cache || !(cache->loaded & IMG_FLAG_LOADED) || (cache->width > 0 && cache->height > 0)) return FALSE; + + if (parseImageHeader(cache->file, &w, &h)) + goto got_image_size; + tmp = Strnew(); if (!strchr(Imgdisplay, '/')) Strcat_m_charp(tmp, w3m_auxbin_dir(), "/", NULL); @@ -546,6 +744,8 @@ getImageSize(ImageCache * cache) if (!(w > 0 && h > 0)) return FALSE; + +got_image_size: w = (int)(w * image_scale / 100 + 0.5); if (w == 0) w = 1; @@ -558,11 +758,11 @@ getImageSize(ImageCache * cache) } else if (cache->width < 0) { int tmp = (int)((double)cache->height * w / h + 0.5); - cache->width = (tmp > MAX_IMAGE_SIZE) ? MAX_IMAGE_SIZE : tmp; + cache->a_width = cache->width = (tmp > MAX_IMAGE_SIZE) ? MAX_IMAGE_SIZE : tmp; } else if (cache->height < 0) { int tmp = (int)((double)cache->width * h / w + 0.5); - cache->height = (tmp > MAX_IMAGE_SIZE) ? MAX_IMAGE_SIZE : tmp; + cache->a_height = cache->height = (tmp > MAX_IMAGE_SIZE) ? MAX_IMAGE_SIZE : tmp; } if (cache->width == 0) cache->width = 1; @@ -19,7 +19,7 @@ unsigned char QUOTE_MAP[0x100] = { /* DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US */ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, /* SPC ! " # $ % & ' ( ) * + , - . / */ - 24, 72, 76, 40, 8, 40, 41, 72, 72, 72, 72, 40, 72, 8, 0, 64, + 24, 72, 76, 40, 8, 40, 41, 77, 72, 72, 72, 40, 72, 8, 0, 64, /* 0 1 2 3 4 5 6 7 8 9 : ; < = > ? */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 72, 74, 72, 75, 40, /* @ A B C D E F G H I J K L M N O */ @@ -47,7 +47,7 @@ char *HTML_QUOTE_MAP[] = { "<", ">", """, - NULL, + "'", NULL, NULL, }; @@ -357,6 +357,20 @@ strcasemstr(char *str, char *srch[], char **ret_ptr) return -1; } +int +strmatchlen(const char *s1, const char *s2, int maxlen) +{ + int i; + + /* To allow the maxlen to be negatie (infinity), + * compare by "!=" instead of "<=". */ + for (i = 0; i != maxlen; ++i) { + if (!s1[i] || !s2[i] || s1[i] != s2[i]) + break; + } + return i; +} + char * remove_space(char *str) { @@ -448,7 +462,7 @@ getescapechar(char **str) q = p; for (p++; IS_ALNUM(*p); p++) ; q = allocStr(q, p - q); - if (strcasestr("lt gt amp quot nbsp", q) && *p != '=') { + if (strcasestr("lt gt amp quot apos nbsp", q) && *p != '=') { /* a character entity MUST be terminated with ";". However, * there's MANY web pages which uses < , > or something * like them as <, >, etc. Therefore, we treat the most @@ -707,6 +721,111 @@ shell_quote(char *str) return str; } +void * +xrealloc(void *ptr, size_t size) +{ + void *newptr = realloc(ptr, size); + if (newptr == NULL) { + fprintf(stderr, "Out of memory\n"); + exit(-1); + } + return newptr; +} + +/* Define this as a separate function in case the free() has + * an incompatible prototype. */ +void +xfree(void *ptr) +{ + free(ptr); +} + +void * +w3m_GC_realloc_atomic(void *ptr, size_t size) +{ + return ptr ? GC_REALLOC(ptr, size) : GC_MALLOC_ATOMIC(size); +} + +void +w3m_GC_free(void *ptr) +{ + GC_FREE(ptr); +} + +void +growbuf_init(struct growbuf *gb) +{ + gb->ptr = NULL; + gb->length = 0; + gb->area_size = 0; + gb->realloc_proc = &w3m_GC_realloc_atomic; + gb->free_proc = &w3m_GC_free; +} + +void +growbuf_init_without_GC(struct growbuf *gb) +{ + gb->ptr = NULL; + gb->length = 0; + gb->area_size = 0; + gb->realloc_proc = &xrealloc; + gb->free_proc = &xfree; +} + +void +growbuf_clear(struct growbuf *gb) +{ + (*gb->free_proc) (gb->ptr); + gb->ptr = NULL; + gb->length = 0; + gb->area_size = 0; +} + +Str +growbuf_to_Str(struct growbuf *gb) +{ + Str s; + + if (gb->free_proc == &w3m_GC_free) { + growbuf_reserve(gb, gb->length + 1); + gb->ptr[gb->length] = '\0'; + s = New(struct _Str); + s->ptr = gb->ptr; + s->length = gb->length; + s->area_size = gb->area_size; + } else { + s = Strnew_charp_n(gb->ptr, gb->length); + (*gb->free_proc) (gb->ptr); + } + gb->ptr = NULL; + gb->length = 0; + gb->area_size = 0; + return s; +} + +void +growbuf_reserve(struct growbuf *gb, int leastarea) +{ + int newarea; + + if (gb->area_size < leastarea) { + newarea = gb->area_size * 3 / 2; + if (newarea < leastarea) + newarea = leastarea; + newarea += 16; + gb->ptr = (*gb->realloc_proc) (gb->ptr, newarea); + gb->area_size = newarea; + } +} + +void +growbuf_append(struct growbuf *gb, const char *src, int len) +{ + growbuf_reserve(gb, gb->length + len); + memcpy(&gb->ptr[gb->length], src, len); + gb->length += len; +} + static char * w3m_dir(const char *name, char *dft) { @@ -1,7 +1,7 @@ /* $Id: indep.h,v 1.16 2003/09/22 21:02:19 ukai Exp $ */ #ifndef INDEP_H #define INDEP_H -#include <gc.h> +#include "alloc.h" #include "Str.h" #include "config.h" @@ -12,6 +12,14 @@ #define FALSE 0 #endif /* FALSE */ +struct growbuf { + char *ptr; + int length; + int area_size; + void *(*realloc_proc) (void *, size_t); + void (*free_proc) (void *); +}; + #define RAW_MODE 0 #define PAGER_MODE 1 #define HTML_MODE 2 @@ -19,7 +27,7 @@ extern unsigned char QUOTE_MAP[]; extern char *HTML_QUOTE_MAP[]; -#define HTML_QUOTE_MASK 0x07 /* &, <, >, " */ +#define HTML_QUOTE_MASK 0x07 /* &, <, >, ", ' */ #define SHELL_UNSAFE_MASK 0x08 /* [^A-Za-z0-9_./:\200-\377] */ #define URL_QUOTE_MASK 0x10 /* [\0- \177-\377] */ #define FILE_QUOTE_MASK 0x30 /* [\0- #%&+:?\177-\377] */ @@ -52,6 +60,7 @@ extern int strncasecmp(const char *s1, const char *s2, size_t n); extern char *strcasestr(const char *s1, const char *s2); #endif extern int strcasemstr(char *str, char *srch[], char **ret_ptr); +int strmatchlen(const char *s1, const char *s2, int maxlen); extern char *remove_space(char *str); extern int non_null(char *s); extern void cleanup_line(Str s, int mode); @@ -64,6 +73,18 @@ extern Str Str_url_unquote(Str x, int is_form, int safe); extern Str Str_form_quote(Str x); #define Str_form_unquote(x) Str_url_unquote((x), TRUE, FALSE) extern char *shell_quote(char *str); +#define xmalloc(s) xrealloc(NULL, s) +extern void *xrealloc(void *ptr, size_t size); +extern void xfree(void *ptr); +extern void *w3m_GC_realloc_atomic(void *ptr, size_t size); +extern void w3m_GC_free(void *ptr); +extern void growbuf_init(struct growbuf *gb); +extern void growbuf_init_without_GC(struct growbuf *gb); +extern void growbuf_clear(struct growbuf *gb); +extern Str growbuf_to_Str(struct growbuf *gb); +extern void growbuf_reserve(struct growbuf *gb, int leastarea); +extern void growbuf_append(struct growbuf *gb, const char *src, int len); +#define GROWBUF_ADD_CHAR(gb,ch) ((((gb)->length>=(gb)->area_size)?growbuf_reserve(gb,(gb)->length+1):(void)0),(void)((gb)->ptr[(gb)->length++] = (ch))) extern char *w3m_auxbin_dir(); extern char *w3m_lib_dir(); @@ -71,10 +92,8 @@ extern char *w3m_etc_dir(); extern char *w3m_conf_dir(); extern char *w3m_help_dir(); -#define New(type) ((type*)GC_MALLOC(sizeof(type))) -#define NewAtom(type) ((type*)GC_MALLOC_ATOMIC(sizeof(type))) -#define New_N(type,n) ((type*)GC_MALLOC((n)*sizeof(type))) -#define NewAtom_N(type,n) ((type*)GC_MALLOC_ATOMIC((n)*sizeof(type))) -#define New_Reuse(type,ptr,n) ((type*)GC_REALLOC((ptr),(n)*sizeof(type))) +#define NewWithoutGC(type) ((type*)xmalloc(sizeof(type))) +#define NewWithoutGC_N(type,n) ((type*)xmalloc((n)*sizeof(type))) +#define NewWithoutGC_Reuse(type,ptr,n) ((type*)xrealloc(ptr,(n)*sizeof(type))) #endif /* INDEP_H */ diff --git a/intl/CVS/Entries b/intl/CVS/Entries deleted file mode 100644 index 1784810..0000000 --- a/intl/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/intl/CVS/Repository b/intl/CVS/Repository deleted file mode 100644 index eb89a50..0000000 --- a/intl/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/intl diff --git a/intl/CVS/Root b/intl/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/intl/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m @@ -22,8 +22,8 @@ static void basic_close(int *handle); static int basic_read(int *handle, char *buf, int len); -static void file_close(struct file_handle *handle); -static int file_read(struct file_handle *handle, char *buf, int len); +static void file_close(struct io_file_handle *handle); +static int file_read(struct io_file_handle *handle, char *buf, int len); static int str_read(Str handle, char *buf, int len); @@ -35,12 +35,14 @@ static int ssl_read(struct ssl_handle *handle, char *buf, int len); static int ens_read(struct ens_handle *handle, char *buf, int len); static void ens_close(struct ens_handle *handle); +static void memchop(char *p, int *len); + static void do_update(BaseStream base) { int len; base->stream.cur = base->stream.next = 0; - len = base->read(base->handle, base->stream.buf, base->stream.size); + len = (*base->read) (base->handle, base->stream.buf, base->stream.size); if (len <= 0) base->iseos = TRUE; else @@ -66,12 +68,12 @@ init_buffer(BaseStream base, char *buf, int bufsize) StreamBuffer sb = &base->stream; sb->size = bufsize; sb->cur = 0; + sb->buf = NewWithoutGC_N(uchar, bufsize); if (buf) { - sb->buf = (uchar *) buf; + memcpy(sb->buf, buf, bufsize); sb->next = bufsize; } else { - sb->buf = NewAtom_N(uchar, bufsize); sb->next = 0; } base->iseos = FALSE; @@ -95,10 +97,10 @@ newInputStream(int des) InputStream stream; if (des < 0) return NULL; - stream = New(union input_stream); + stream = NewWithoutGC(union input_stream); init_base_stream(&stream->base, STREAM_BUF_SIZE); stream->base.type = IST_BASIC; - stream->base.handle = New(int); + stream->base.handle = NewWithoutGC(int); *(int *)stream->base.handle = des; stream->base.read = (int (*)())basic_read; stream->base.close = (void (*)())basic_close; @@ -111,10 +113,10 @@ newFileStream(FILE * f, void (*closep) ()) InputStream stream; if (f == NULL) return NULL; - stream = New(union input_stream); + stream = NewWithoutGC(union input_stream); init_base_stream(&stream->base, STREAM_BUF_SIZE); stream->file.type = IST_FILE; - stream->file.handle = New(struct file_handle); + stream->file.handle = NewWithoutGC(struct io_file_handle); stream->file.handle->f = f; if (closep) stream->file.handle->close = closep; @@ -131,10 +133,10 @@ newStrStream(Str s) InputStream stream; if (s == NULL) return NULL; - stream = New(union input_stream); + stream = NewWithoutGC(union input_stream); init_str_stream(&stream->base, s); stream->str.type = IST_STR; - stream->str.handle = s; + stream->str.handle = NULL; stream->str.read = (int (*)())str_read; stream->str.close = NULL; return stream; @@ -147,10 +149,10 @@ newSSLStream(SSL * ssl, int sock) InputStream stream; if (sock < 0) return NULL; - stream = New(union input_stream); + stream = NewWithoutGC(union input_stream); init_base_stream(&stream->base, SSL_BUF_SIZE); stream->ssl.type = IST_SSL; - stream->ssl.handle = New(struct ssl_handle); + stream->ssl.handle = NewWithoutGC(struct ssl_handle); stream->ssl.handle->ssl = ssl; stream->ssl.handle->sock = sock; stream->ssl.read = (int (*)())ssl_read; @@ -166,14 +168,14 @@ newEncodedStream(InputStream is, char encoding) if (is == NULL || (encoding != ENC_QUOTE && encoding != ENC_BASE64 && encoding != ENC_UUENCODE)) return is; - stream = New(union input_stream); + stream = NewWithoutGC(union input_stream); init_base_stream(&stream->base, STREAM_BUF_SIZE); stream->ens.type = IST_ENCODED; - stream->ens.handle = New(struct ens_handle); + stream->ens.handle = NewWithoutGC(struct ens_handle); stream->ens.handle->is = is; stream->ens.handle->pos = 0; stream->ens.handle->encoding = encoding; - stream->ens.handle->s = NULL; + growbuf_init_without_GC(&stream->ens.handle->gb); stream->ens.read = (int (*)())ens_read; stream->ens.close = (void (*)())ens_close; return stream; @@ -187,8 +189,10 @@ ISclose(InputStream stream) stream->base.type & IST_UNCLOSE) return -1; prevtrap = mySignal(SIGINT, SIG_IGN); - stream->base.close(stream->base.handle); + stream->base.close (stream->base.handle); mySignal(SIGINT, prevtrap); + xfree(stream->base.stream.buf); + xfree(stream); return 0; } @@ -218,122 +222,97 @@ ISundogetc(InputStream stream) return -1; } -#define MARGIN_STR_SIZE 10 Str -StrISgets(InputStream stream) +StrISgets2(InputStream stream, char crnl) { - BaseStream base; - StreamBuffer sb; - Str s = NULL; - uchar *p; - int len; + struct growbuf gb; if (stream == NULL) - return '\0'; - base = &stream->base; - sb = &base->stream; - - while (!base->iseos) { - if (MUST_BE_UPDATED(base)) { - do_update(base); - } - else { - if ((p = memchr(&sb->buf[sb->cur], '\n', sb->next - sb->cur))) { - len = p - &sb->buf[sb->cur] + 1; - if (s == NULL) - s = Strnew_size(len); - Strcat_charp_n(s, (char *)&sb->buf[sb->cur], len); - sb->cur += len; - return s; - } - else { - if (s == NULL) - s = Strnew_size(sb->next - sb->cur + MARGIN_STR_SIZE); - Strcat_charp_n(s, (char *)&sb->buf[sb->cur], - sb->next - sb->cur); - sb->cur = sb->next; - } - } - } - - if (s == NULL) - return Strnew(); - return s; + return NULL; + growbuf_init(&gb); + ISgets_to_growbuf(stream, &gb, crnl); + return growbuf_to_Str(&gb); } -Str -StrmyISgets(InputStream stream) +void +ISgets_to_growbuf(InputStream stream, struct growbuf *gb, char crnl) { - BaseStream base; - StreamBuffer sb; - Str s = NULL; - int i, len; + BaseStream base = &stream->base; + StreamBuffer sb = &base->stream; + int i; - if (stream == NULL) - return '\0'; - base = &stream->base; - sb = &base->stream; + gb->length = 0; while (!base->iseos) { if (MUST_BE_UPDATED(base)) { do_update(base); + continue; } - else { - if (s && Strlastchar(s) == '\r') { - if (sb->buf[sb->cur] == '\n') - Strcat_char(s, (char)sb->buf[sb->cur++]); - return s; - } - for (i = sb->cur; - i < sb->next && sb->buf[i] != '\n' && sb->buf[i] != '\r'; - i++) ; - if (i < sb->next) { - len = i - sb->cur + 1; - if (s == NULL) - s = Strnew_size(len + MARGIN_STR_SIZE); - Strcat_charp_n(s, (char *)&sb->buf[sb->cur], len); - sb->cur = i + 1; - if (sb->buf[i] == '\n') - return s; + if (crnl && gb->length > 0 && gb->ptr[gb->length - 1] == '\r') { + if (sb->buf[sb->cur] == '\n') { + GROWBUF_ADD_CHAR(gb, '\n'); + ++sb->cur; } - else { - if (s == NULL) - s = Strnew_size(sb->next - sb->cur + MARGIN_STR_SIZE); - Strcat_charp_n(s, (char *)&sb->buf[sb->cur], - sb->next - sb->cur); - sb->cur = sb->next; + break; + } + for (i = sb->cur; i < sb->next; ++i) { + if (sb->buf[i] == '\n' || (crnl && sb->buf[i] == '\r')) { + ++i; + break; } } + growbuf_append(gb, &sb->buf[sb->cur], i - sb->cur); + sb->cur = i; + if (gb->length > 0 && gb->ptr[gb->length - 1] == '\n') + break; } - if (s == NULL) - return Strnew(); - return s; + growbuf_reserve(gb, gb->length + 1); + gb->ptr[gb->length] = '\0'; + return; } +#ifdef unused int ISread(InputStream stream, Str buf, int count) { - int rest, len; + int len; + + if (count + 1 > buf->area_size) { + char *newptr = GC_MALLOC_ATOMIC(count + 1); + memcpy(newptr, buf->ptr, buf->length); + newptr[buf->length] = '\0'; + buf->ptr = newptr; + buf->area_size = count + 1; + } + len = ISread_n(stream, buf->ptr, count); + buf->length = (len > 0) ? len : 0; + buf->ptr[buf->length] = '\0'; + return (len > 0) ? 1 : 0; +} +#endif + +int +ISread_n(InputStream stream, char *dst, int count) +{ + int len, l; BaseStream base; - if (stream == NULL || (base = &stream->base)->iseos) + if (stream == NULL || count <= 0) + return -1; + if ((base = &stream->base)->iseos) return 0; - len = buffer_read(&base->stream, buf->ptr, count); - rest = count - len; + len = buffer_read(&base->stream, dst, count); if (MUST_BE_UPDATED(base)) { - len = base->read(base->handle, &buf->ptr[len], rest); - if (len <= 0) { + l = (*base->read) (base->handle, &dst[len], count - len); + if (l <= 0) { base->iseos = TRUE; - len = 0; + } else { + len += l; } - rest -= len; } - Strtruncate(buf, count - rest); - if (buf->length > 0) - return 1; - return 0; + return len; } int @@ -442,7 +421,11 @@ ssl_check_cert_ident(X509 * x, char *hostname) for (i = 0; i < n; i++) { gn = sk_GENERAL_NAME_value(alt, i); if (gn->type == GEN_DNS) { +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) char *sn = ASN1_STRING_data(gn->d.ia5); +#else + char *sn = ASN1_STRING_get0_data(gn->d.ia5); +#endif int sl = ASN1_STRING_length(gn->d.ia5); if (!seen_dnsname) @@ -496,8 +479,6 @@ ssl_check_cert_ident(X509 * x, char *hostname) /* FIXME: gettextize? */ ret = Sprintf("Bad cert ident %s from %s", buf, hostname); } - else - match_ident = TRUE; } return ret; } @@ -645,6 +626,7 @@ basic_close(int *handle) #else close(*(int *)handle); #endif + xfree(handle); } static int @@ -658,13 +640,14 @@ basic_read(int *handle, char *buf, int len) } static void -file_close(struct file_handle *handle) +file_close(struct io_file_handle *handle) { handle->close(handle->f); + xfree(handle); } static int -file_read(struct file_handle *handle, char *buf, int len) +file_read(struct io_file_handle *handle, char *buf, int len) { return fread(buf, 1, len, handle->f); } @@ -682,6 +665,7 @@ ssl_close(struct ssl_handle *handle) close(handle->sock); if (handle->ssl) SSL_free(handle->ssl); + xfree(handle); } static int @@ -717,38 +701,60 @@ static void ens_close(struct ens_handle *handle) { ISclose(handle->is); + growbuf_clear(&handle->gb); + xfree(handle); } static int ens_read(struct ens_handle *handle, char *buf, int len) { - if (handle->s == NULL || handle->pos == handle->s->length) { + if (handle->pos == handle->gb.length) { char *p; - handle->s = StrmyISgets(handle->is); - if (handle->s->length == 0) + struct growbuf gbtmp; + + ISgets_to_growbuf(handle->is, &handle->gb, TRUE); + if (handle->gb.length == 0) return 0; - cleanup_line(handle->s, PAGER_MODE); if (handle->encoding == ENC_BASE64) - Strchop(handle->s); + memchop(handle->gb.ptr, &handle->gb.length); else if (handle->encoding == ENC_UUENCODE) { - if (!strncmp(handle->s->ptr, "begin", 5)) - handle->s = StrmyISgets(handle->is); - Strchop(handle->s); + if (handle->gb.length >= 5 && + !strncmp(handle->gb.ptr, "begin", 5)) + ISgets_to_growbuf(handle->is, &handle->gb, TRUE); + memchop(handle->gb.ptr, &handle->gb.length); } - p = handle->s->ptr; + growbuf_init_without_GC(&gbtmp); + p = handle->gb.ptr; if (handle->encoding == ENC_QUOTE) - handle->s = decodeQP(&p); + decodeQP_to_growbuf(&gbtmp, &p); else if (handle->encoding == ENC_BASE64) - handle->s = decodeB(&p); + decodeB_to_growbuf(&gbtmp, &p); else if (handle->encoding == ENC_UUENCODE) - handle->s = decodeU(&p); + decodeU_to_growbuf(&gbtmp, &p); + growbuf_clear(&handle->gb); + handle->gb = gbtmp; handle->pos = 0; } - if (len > handle->s->length - handle->pos) - len = handle->s->length - handle->pos; + if (len > handle->gb.length - handle->pos) + len = handle->gb.length - handle->pos; - bcopy(&handle->s->ptr[handle->pos], buf, len); + memcpy(buf, &handle->gb.ptr[handle->pos], len); handle->pos += len; return len; } + +static void +memchop(char *p, int *len) +{ + char *q; + + for (q = p + *len; q > p; --q) { + if (q[-1] != '\n' && q[-1] != '\r') + break; + } + if (q != p + *len) + *q = '\0'; + *len = q - p; + return; +} @@ -2,13 +2,13 @@ #ifndef IO_STREAM_H #define IO_STREAM_H +#include "indep.h" #include <stdio.h> #ifdef USE_SSL #include <openssl/bio.h> #include <openssl/x509.h> #include <openssl/ssl.h> #endif -#include "Str.h" #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> @@ -20,7 +20,7 @@ struct stream_buffer { typedef struct stream_buffer *StreamBuffer; -struct file_handle { +struct io_file_handle { FILE *f; void (*close) (); }; @@ -36,7 +36,7 @@ union input_stream; struct ens_handle { union input_stream *is; - Str s; + struct growbuf gb; int pos; char encoding; }; @@ -53,7 +53,7 @@ struct base_stream { struct file_stream { struct stream_buffer stream; - struct file_handle *handle; + struct io_file_handle *handle; char type; char iseos; int (*read) (); @@ -119,9 +119,14 @@ extern InputStream newEncodedStream(InputStream is, char encoding); extern int ISclose(InputStream stream); extern int ISgetc(InputStream stream); extern int ISundogetc(InputStream stream); -extern Str StrISgets(InputStream stream); -extern Str StrmyISgets(InputStream stream); +extern Str StrISgets2(InputStream stream, char crnl); +#define StrISgets(stream) StrISgets2(stream, FALSE) +#define StrmyISgets(stream) StrISgets2(stream, TRUE) +void ISgets_to_growbuf(InputStream stream, struct growbuf *gb, char crnl); +#ifdef unused extern int ISread(InputStream stream, Str buf, int count); +#endif +int ISread_n(InputStream stream, char *dst, int bufsize); extern int ISfileno(InputStream stream); extern int ISeos(InputStream stream); #ifdef USE_SSL @@ -13,7 +13,7 @@ unsigned char GlobalKeymap[128] = { /* C-p C-q C-r C-s C-t C-u C-v C-w */ movU, closeT, isrchbak, isrchfor, tabA, prevA, pgFore, wrapToggle, /* C-x C-y C-z C-[ C-\ C-] C-^ C-_ */ - nulcmd, nulcmd, susp, escmap, nulcmd, nulcmd, nulcmd, nulcmd, + nulcmd, nulcmd, susp, escmap, nulcmd, nulcmd, nulcmd, goHome, /* SPC ! " # $ % & ' */ pgFore, execsh, reMark, pipesh, linend, nulcmd, nulcmd, nulcmd, /* ( ) * + , - . / */ @@ -91,7 +91,7 @@ unsigned char EscBKeymap[128] = { /* 0 1 2 3 4 5 6 7 */ nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, /* 8 9 : ; < = > ? */ - nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, + nulcmd, nulcmd, nulcmd, nulcmd, sgrmouse, nulcmd, nulcmd, nulcmd, /* @ A B C D E F G */ nulcmd, movU, movD, movR, movL, nulcmd, goLineL, pgFore, /* H I J K L M N O */ diff --git a/keybind_lynx.c b/keybind_lynx.c index 163f6b2..42267ec 100644 --- a/keybind_lynx.c +++ b/keybind_lynx.c @@ -99,7 +99,7 @@ unsigned char EscBKeymap[128] = { /* 0 1 2 3 4 5 6 7 */ nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, /* 8 9 : ; < = > ? */ - nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, nulcmd, + nulcmd, nulcmd, nulcmd, nulcmd, sgrmouse, nulcmd, nulcmd, nulcmd, /* @ A B C D E F G */ nulcmd, prevA, nextA, followA, backBf, nulcmd, goLineL, pgFore, /* H I J K L M N O */ diff --git a/libwc/.cvsignore b/libwc/.cvsignore deleted file mode 100644 index f3c7a7c..0000000 --- a/libwc/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile diff --git a/libwc/CVS/Entries b/libwc/CVS/Entries deleted file mode 100644 index bdd6455..0000000 --- a/libwc/CVS/Entries +++ /dev/null @@ -1,53 +0,0 @@ -/.cvsignore/1.1/Mon Sep 22 22:53:53 2003// -/big5.c/1.1/Mon Sep 22 21:02:23 2003// -/big5.h/1.1/Mon Sep 22 21:02:23 2003// -/ccs.h/1.1/Mon Sep 22 21:02:23 2003// -/ces.c/1.1/Mon Sep 22 21:02:23 2003// -/char_conv.c/1.1/Mon Sep 22 21:02:23 2003// -/combining.c/1.1/Mon Sep 22 21:02:23 2003// -/conv.c/1.1/Mon Sep 22 21:02:23 2003// -/detect.c/1.3/Wed Apr 5 14:18:54 2006// -/gb18030.c/1.1/Mon Sep 22 21:02:23 2003// -/gb18030.h/1.1/Mon Sep 22 21:02:23 2003// -/gbk.c/1.1/Mon Sep 22 21:02:23 2003// -/gbk.h/1.1/Mon Sep 22 21:02:23 2003// -/hkscs.c/1.1/Mon Sep 22 21:02:23 2003// -/hkscs.h/1.1/Mon Sep 22 21:02:23 2003// -/hz.c/1.1/Mon Sep 22 21:02:23 2003// -/hz.h/1.1/Mon Sep 22 21:02:23 2003// -/iso2022.c/1.1/Mon Sep 22 21:02:23 2003// -/iso2022.h/1.1/Mon Sep 22 21:02:23 2003// -/jis.c/1.1/Mon Sep 22 21:02:23 2003// -/jis.h/1.1/Mon Sep 22 21:02:23 2003// -/johab.c/1.1/Mon Sep 22 21:02:23 2003// -/johab.h/1.1/Mon Sep 22 21:02:23 2003// -/priv.c/1.1/Mon Sep 22 21:02:23 2003// -/priv.h/1.1/Mon Sep 22 21:02:23 2003// -/putc.c/1.1/Mon Sep 22 21:02:23 2003// -/search.c/1.1/Mon Sep 22 21:02:23 2003// -/search.h/1.1/Mon Sep 22 21:02:23 2003// -/sjis.c/1.1/Mon Sep 22 21:02:23 2003// -/sjis.h/1.1/Mon Sep 22 21:02:23 2003// -/test.c/1.1/Mon Sep 22 21:02:23 2003// -/ucs.map/1.1/Mon Sep 22 21:02:23 2003// -/uhc.c/1.1/Mon Sep 22 21:02:23 2003// -/uhc.h/1.1/Mon Sep 22 21:02:23 2003// -/utf7.c/1.1/Mon Sep 22 21:02:23 2003// -/utf7.h/1.1/Mon Sep 22 21:02:23 2003// -/utf8.c/1.1/Mon Sep 22 21:02:23 2003// -/utf8.h/1.1/Mon Sep 22 21:02:23 2003// -/viet.c/1.1/Mon Sep 22 21:02:23 2003// -/viet.h/1.1/Mon Sep 22 21:02:23 2003// -/wc.h/1.1/Mon Sep 22 21:02:23 2003// -/wtf.c/1.1/Mon Sep 22 21:02:23 2003// -/wtf.h/1.1/Mon Sep 22 21:02:23 2003// -D/map//// -/EastAsianWidth.txt/1.1/Sun Jul 25 09:55:05 2010// -/Makefile.in/1.7/Tue Jan 4 09:22:27 2011// -/ambwidth_map.awk/1.1/Sun Jul 25 09:55:05 2010// -/ces.h/1.2/Tue Jan 4 09:22:27 2011// -/charset.c/1.4/Tue Jan 4 09:22:27 2011// -/status.c/1.2/Tue Jan 4 09:22:27 2011// -/ucs.c/1.4/Tue Jan 4 09:22:27 2011// -/ucs.h/1.4/Tue Jan 4 09:22:27 2011// -/wc_types.h/1.3/Tue Jan 4 09:22:27 2011// diff --git a/libwc/CVS/Repository b/libwc/CVS/Repository deleted file mode 100644 index 6ad67c0..0000000 --- a/libwc/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/libwc diff --git a/libwc/CVS/Root b/libwc/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/libwc/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/libwc/ambwidth_map.awk b/libwc/ambwidth_map.awk index 8544f58..1d9d25f 100644 --- a/libwc/ambwidth_map.awk +++ b/libwc/ambwidth_map.awk @@ -3,9 +3,15 @@ BEGIN { i = 0; } $2 == "A" { - code = sprintf("0x%s", $1); - if (strtonum(code) < 0x10000) { - map[i] = code + code = code2 = strtonum(sprintf("0x%s", $1)) + if (match($1, /[.]+[0-9A-Fa-f]+/)) { + s = substr($1, RSTART, RLENGTH) + sub(/[.]+/, "0x", s) + code2 = strtonum(s) + } + for (; code <= code2; code++) { + if (code >= 0x10000) { break } + map[i] = sprintf("0x%04X", code) i++; } } @@ -15,28 +21,14 @@ END { prev = strtonum(map[0]); for (j = 1; j < i; j++) { cur = strtonum(map[j]); - if (match(map[j], "[.]+")) { + if (cur - prev > 1) { map2[n] = sprintf("%s, %s", start, map[j - 1]); n++; - gsub("[.]+", ", 0x", map[j]) - map2[n] = map[j]; - n++; - start = map[j + 1]; - cur = strtonum(start); - } else { - if (cur - prev > 2) { - map2[n] = sprintf("%s, %s", start, map[j - 1]); - start = map[j]; - n++; - } - - if (j == i - 1) { - map2[n] = sprintf("%s, %s", start, map[j]); - n++; - } + start = map[j]; } prev = cur; } + if (i > 0) { map2[n] = sprintf("%s, %s", start, map[i - 1]); n++ } printf("static wc_map ucs_ambwidth_map[] = {\n"); for (j = 0; j < n; j++) { diff --git a/libwc/charset.c b/libwc/charset.c index 3f0b74d..ea79b1c 100644 --- a/libwc/charset.c +++ b/libwc/charset.c @@ -1,8 +1,7 @@ #include <stdlib.h> #include <ctype.h> -#include <gc.h> -#define New_N(type,n) ((type*)GC_MALLOC((n)*sizeof(type))) +#include "../alloc.h" #include "wc.h" diff --git a/libwc/gb18030.c b/libwc/gb18030.c index c195d49..d5c9018 100644 --- a/libwc/gb18030.c +++ b/libwc/gb18030.c @@ -151,6 +151,7 @@ wc_ucs_to_gb18030(wc_uint32 ucs) return cc; } cc.ccs = WC_CCS_UNKNOWN; + cc.code = 0; return cc; } #endif diff --git a/libwc/iso2022.c b/libwc/iso2022.c index 33d9a19..a191f28 100644 --- a/libwc/iso2022.c +++ b/libwc/iso2022.c @@ -405,7 +405,8 @@ wc_push_to_iso2022(Str os, wc_wchar_t cc, wc_status *st) case WC_CCS_A_CS94: if (cc.ccs == WC_CCS_US_ASCII) cc.ccs = st->g0_ccs; - g = cs94_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE]; + if (WC_CCS_INDEX(cc.ccs) >= WC_F_ISO_BASE) + g = cs94_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE]; break; case WC_CCS_A_CS94W: is_wide = 1; @@ -435,35 +436,41 @@ wc_push_to_iso2022(Str os, wc_wchar_t cc, wc_status *st) break; #endif } - g = cs94w_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE]; + if (WC_CCS_INDEX(cc.ccs) >= WC_F_ISO_BASE) + g = cs94w_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE]; break; case WC_CCS_A_CS96: - g = cs96_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE]; + if (WC_CCS_INDEX(cc.ccs) >= WC_F_ISO_BASE) + g = cs96_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE]; break; case WC_CCS_A_CS96W: is_wide = 1; - g = cs96w_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE]; + if (WC_CCS_INDEX(cc.ccs) >= WC_F_ISO_BASE) + g = cs96w_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE]; break; case WC_CCS_A_CS942: - g = cs942_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE]; + if (WC_CCS_INDEX(cc.ccs) >= WC_F_ISO_BASE) + g = cs942_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE]; break; case WC_CCS_A_UNKNOWN_W: if (WcOption.no_replace) return; is_wide = 1; cc.ccs = WC_CCS_US_ASCII; - g = cs94_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE]; + if (WC_CCS_INDEX(cc.ccs) >= WC_F_ISO_BASE) + g = cs94_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE]; cc.code = ((wc_uint32)WC_REPLACE_W[0] << 8) | WC_REPLACE_W[1]; break; case WC_CCS_A_UNKNOWN: if (WcOption.no_replace) return; cc.ccs = WC_CCS_US_ASCII; - g = cs94_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE]; + if (WC_CCS_INDEX(cc.ccs) >= WC_F_ISO_BASE) + g = cs94_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE]; cc.code = (wc_uint32)WC_REPLACE[0]; break; default: - if ((cc.ccs == WC_CCS_JOHAB || WC_CCS_JOHAB_1 || + if ((cc.ccs == WC_CCS_JOHAB || cc.ccs == WC_CCS_JOHAB_1 || cc.ccs == WC_CCS_JOHAB_2 || cc.ccs == WC_CCS_JOHAB_3) && cs94w_gmap[WC_F_KS_X_1001 - WC_F_ISO_BASE]) { wc_wchar_t cc2 = wc_johab_to_ksx1001(cc); diff --git a/libwc/johab.c b/libwc/johab.c index 8d587b8..498b1bb 100644 --- a/libwc/johab.c +++ b/libwc/johab.c @@ -160,9 +160,9 @@ wc_N_to_johab1(wc_uint32 code) { wc_uint32 a, b, c; - a = N_johab1_map[0][(code / 28) / 21]; - b = N_johab1_map[1][(code / 28) % 21]; - c = N_johab1_map[2][ code % 28 ]; + a = N_johab1_map[0][(code / 28) / 21 & 0x1F]; + b = N_johab1_map[1][(code / 28) % 21 & 0x1F]; + c = N_johab1_map[2][ code % 28 & 0x1F]; return 0x8000 | (a << 10) | (b << 5) | c; } diff --git a/libwc/map/CVS/Entries b/libwc/map/CVS/Entries deleted file mode 100644 index 7e3a839..0000000 --- a/libwc/map/CVS/Entries +++ /dev/null @@ -1,112 +0,0 @@ -/big5_ucs.map/1.1/Mon Sep 22 21:02:24 2003// -/cns11643_ucs.map/1.1/Mon Sep 22 21:02:24 2003// -/cp1006_ucs.map/1.1/Mon Sep 22 21:02:24 2003// -/cp1250_ucs.map/1.1/Mon Sep 22 21:02:24 2003// -/cp1251_ucs.map/1.1/Mon Sep 22 21:02:24 2003// -/cp1252_ucs.map/1.1/Mon Sep 22 21:02:24 2003// -/cp1253_ucs.map/1.1/Mon Sep 22 21:02:24 2003// -/cp1254_ucs.map/1.1/Mon Sep 22 21:02:24 2003// -/cp1255_combining.map/1.1/Mon Sep 22 21:02:25 2003// -/cp1255_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp1256_combining.map/1.1/Mon Sep 22 21:02:25 2003// -/cp1256_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp1257_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp1258_combining.map/1.1/Mon Sep 22 21:02:25 2003// -/cp1258_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp437_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp737_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp775_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp850_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp852_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp855_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp856_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp857_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp860_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp861_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp862_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp863_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp864_combining.map/1.1/Mon Sep 22 21:02:25 2003// -/cp864_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp865_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp866_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp869_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/cp874_combining.map/1.1/Mon Sep 22 21:02:25 2003// -/cp874_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/gb12345_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/gb18030_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/gb2312_gbk.map/1.1/Mon Sep 22 21:02:25 2003// -/gb2312_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/gbk_ucs.map/1.1/Mon Sep 22 21:02:25 2003// -/hkscs_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/hkscs_ucs_p2.map/1.1/Mon Sep 22 21:02:26 2003// -/iso885910_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/iso885911_combining.map/1.1/Mon Sep 22 21:02:26 2003// -/iso885911_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/iso885913_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/iso885914_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/iso885915_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/iso885916_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/iso88591_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/iso88592_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/iso88593_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/iso88594_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/iso88595_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/iso88596_combining.map/1.1/Mon Sep 22 21:02:26 2003// -/iso88596_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/iso88597_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/iso88598_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/iso88599_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/jisx0201k_jisx0208.map/1.1/Mon Sep 22 21:02:26 2003// -/jisx0201k_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/jisx0208_jisx02131.map/1.1/Mon Sep 22 21:02:26 2003// -/jisx0208x0212x0213_ucs.map/1.1/Mon Sep 22 21:02:26 2003// -/jisx02132_sjis.map/1.1/Mon Sep 22 21:02:28 2003// -/jisx0213_ucs_p2.map/1.1/Mon Sep 22 21:02:28 2003// -/johab_ucs.map/1.1/Mon Sep 22 21:02:28 2003// -/koi8r_ucs.map/1.1/Mon Sep 22 21:02:28 2003// -/koi8u_ucs.map/1.1/Mon Sep 22 21:02:28 2003// -/ksx1001_ucs.map/1.1/Mon Sep 22 21:02:28 2003// -/mk_big5_txt.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_big5_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_cns_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_combining_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_cp1258_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_cp950_txt.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_gb18030_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_gb_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_gbk_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_hkscs_p2_txt.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_hkscs_txt.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_hkscs_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_hkscs_ucs_p2_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_jis_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_jisx0213_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_johab_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_ks_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_sjis_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_tis_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_uhc_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/mk_viet_ucs_map.pl/1.1/Mon Sep 22 21:02:28 2003// -/nextstep_ucs.map/1.1/Mon Sep 22 21:02:28 2003// -/sjis_ext_ucs.map/1.1/Mon Sep 22 21:02:28 2003// -/tcvn57123_tcvn5712.map/1.1/Mon Sep 22 21:02:28 2003// -/tcvn5712_combining.map/1.1/Mon Sep 22 21:02:28 2003// -/tcvn5712_ucs.map/1.1/Mon Sep 22 21:02:28 2003// -/ucs_combining.map/1.1/Mon Sep 22 21:02:28 2003// -/ucs_fullwidth.map/1.1/Mon Sep 22 21:02:28 2003// -/ucs_hangul.map/1.1/Mon Sep 22 21:02:28 2003// -/ucs_precompose.map/1.1/Mon Sep 22 21:02:28 2003// -/uhc_ucs.map/1.1/Mon Sep 22 21:02:28 2003// -/viscii11_ucs.map/1.1/Mon Sep 22 21:02:29 2003// -/vps_ucs.map/1.1/Mon Sep 22 21:02:29 2003// -/mk_ucs_case_map.pl/1.1/Tue Aug 24 10:11:51 2010// -/mk_ucs_isdigit_map.pl/1.1/Tue Aug 24 10:11:51 2010// -/ucs_ambwidth.map/1.1/Sun Jul 25 09:55:05 2010// -/ucs_case.map/1.1/Tue Aug 24 10:11:51 2010// -/ucs_isalpha.map/1.1/Tue Aug 24 10:11:51 2010// -/ucs_isdigit.map/1.1/Tue Aug 24 10:11:51 2010// -/ucs_islower.map/1.1/Tue Aug 24 10:11:51 2010// -/ucs_isupper.map/1.1/Tue Aug 24 10:11:51 2010// -/ucs_wide.map/1.2/Tue Jan 4 09:22:28 2011// -D diff --git a/libwc/map/CVS/Repository b/libwc/map/CVS/Repository deleted file mode 100644 index 487f8e5..0000000 --- a/libwc/map/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/libwc/map diff --git a/libwc/map/CVS/Root b/libwc/map/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/libwc/map/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/libwc/map/big5_ucs.map b/libwc/map/big5_ucs.map index 0c6fd12..ac817a9 100644 --- a/libwc/map/big5_ucs.map +++ b/libwc/map/big5_ucs.map @@ -1,6 +1,8 @@ /* Big5 (Chinese Taiwan) */ -static wc_uint16 big5_ucs_map[ 0x59 * 0x9D ] = { +#define N_big5_ucs_map (0x59 * 0x9D) + +static wc_uint16 big5_ucs_map[ N_big5_ucs_map ] = { 0x3000, /* 0xA140 */ 0xFF0C, /* 0xA141 */ 0x3001, /* 0xA142 */ diff --git a/libwc/map/cns11643_ucs.map b/libwc/map/cns11643_ucs.map index b426dd3..fcba334 100644 --- a/libwc/map/cns11643_ucs.map +++ b/libwc/map/cns11643_ucs.map @@ -1,6 +1,8 @@ /* CNS 11643 (Chinese Taiwan) */ -static wc_uint16 cns116431_ucs_map[ 0x5E * 0x5E ] = { +#define N_cns116431_ucs_map (0x5E * 0x5E) + +static wc_uint16 cns116431_ucs_map[ N_cns116431_ucs_map ] = { 0x3000, /* 0x2121 */ 0xFF0C, /* 0x2122 */ 0x3001, /* 0x2123 */ @@ -8839,7 +8841,9 @@ static wc_uint16 cns116431_ucs_map[ 0x5E * 0x5E ] = { 0, /* 0x7E7E */ }; -static wc_uint16 cns116432_ucs_map[ 0x5E * 0x5E ] = { +#define N_cns116432_ucs_map (0x5E * 0x5E) + +static wc_uint16 cns116432_ucs_map[ N_cns116432_ucs_map ] = { 0x4E42, /* 0x2121 */ 0x4E5C, /* 0x2122 */ 0x51F5, /* 0x2123 */ diff --git a/libwc/map/gb12345_ucs.map b/libwc/map/gb12345_ucs.map index 55558c7..3fb338d 100644 --- a/libwc/map/gb12345_ucs.map +++ b/libwc/map/gb12345_ucs.map @@ -1,6 +1,8 @@ /* GB 12345 (Chinese) */ -static wc_uint16 gb12345_ucs_map[ 0x5E * 0x5E ] = { +#define N_gb12345_ucs_map (0x5E * 0x5E) + +static wc_uint16 gb12345_ucs_map[ N_gb12345_ucs_map ] = { 0x3000, /* 0x2121 */ 0x3001, /* 0x2122 */ 0x3002, /* 0x2123 */ diff --git a/libwc/map/gb2312_ucs.map b/libwc/map/gb2312_ucs.map index 38fb88f..3d37465 100644 --- a/libwc/map/gb2312_ucs.map +++ b/libwc/map/gb2312_ucs.map @@ -1,6 +1,8 @@ /* GB 2312 (Chinese) */ -static wc_uint16 gb2312_ucs_map[ 0x5E * 0x5E ] = { +#define N_gb2312_ucs_map (0x5E * 0x5E) + +static wc_uint16 gb2312_ucs_map[ N_gb2312_ucs_map ] = { 0x3000, /* 0x2121 */ 0x3001, /* 0x2122 */ 0x3002, /* 0x2123 */ diff --git a/libwc/map/gbk_ucs.map b/libwc/map/gbk_ucs.map index 5a0d5ba..d092fd7 100644 --- a/libwc/map/gbk_ucs.map +++ b/libwc/map/gbk_ucs.map @@ -6,7 +6,9 @@ static wc_map ucs_gbk_80_map[ N_ucs_gbk_80_map ] = { { 0x20AC, 0x0080 }, }; -static wc_uint16 gbk_ucs_map[ 0x7E * 0xBE - 0x5E * 0x5E + 0x0A + 0x16 + 0x06 ] = { +#define N_gbk_ucs_map (0x7E * 0xBE - 0x5E * 0x5E + 0x0A + 0x16 + 0x06) + +static wc_uint16 gbk_ucs_map[ N_gbk_ucs_map ] = { 0x4E02, /* 0x8140 */ 0x4E04, /* 0x8141 */ 0x4E05, /* 0x8142 */ diff --git a/libwc/map/hkscs_ucs.map b/libwc/map/hkscs_ucs.map index 96d1566..2fbe6b4 100644 --- a/libwc/map/hkscs_ucs.map +++ b/libwc/map/hkscs_ucs.map @@ -1,6 +1,8 @@ /* HKSCS (Chinese Hong Kong) */ -static wc_uint16 hkscs_ucs_map[ 0x1E * 0x9D ] = { +#define N_hkscs_ucs_map (0x1E * 0x9D) + +static wc_uint16 hkscs_ucs_map[ N_hkscs_ucs_map ] = { 0, /* 0x8840 */ 0, /* 0x8841 */ 0, /* 0x8842 */ diff --git a/libwc/map/jisx0208x0212x0213_ucs.map b/libwc/map/jisx0208x0212x0213_ucs.map index 1a1d706..28c2a6c 100644 --- a/libwc/map/jisx0208x0212x0213_ucs.map +++ b/libwc/map/jisx0208x0212x0213_ucs.map @@ -1,6 +1,8 @@ /* JIS X 0208, JIS X 0212, JIS X 0213 (Japanese) */ -static wc_uint16 jisx0208x02131_ucs_map[ 0x5E * 0x5E ] = { +#define N_jisx0208x02131_ucs_map (0x5E * 0x5E) + +static wc_uint16 jisx0208x02131_ucs_map[ N_jisx0208x02131_ucs_map ] = { 0x3000, /* JIS X 0208 0x2121 */ 0x3001, /* JIS X 0208 0x2122 */ 0x3002, /* JIS X 0208 0x2123 */ @@ -8839,7 +8841,9 @@ static wc_uint16 jisx0208x02131_ucs_map[ 0x5E * 0x5E ] = { 0, /* JIS X 0213-1 0x7E7E */ }; -static wc_uint16 jisx0212x02132_ucs_map[ 0x5E * 0x5E ] = { +#define N_jisx0212x02132_ucs_map (0x5E * 0x5E) + +static wc_uint16 jisx0212x02132_ucs_map[ N_jisx0212x02132_ucs_map ] = { 0, /* JIS X 0213-2 0x2121 */ 0x4E02, /* JIS X 0213-2 0x2122 */ 0x4E0F, /* JIS X 0213-2 0x2123 */ diff --git a/libwc/map/ksx1001_ucs.map b/libwc/map/ksx1001_ucs.map index 9a17d61..cb62f98 100644 --- a/libwc/map/ksx1001_ucs.map +++ b/libwc/map/ksx1001_ucs.map @@ -1,6 +1,8 @@ /* KS X 1001 (Korean) */ -static wc_uint16 ksx1001_ucs_map[ 0x5E * 0x5E ] = { +#define N_ksx1001_ucs_map (0x5E * 0x5E) + +static wc_uint16 ksx1001_ucs_map[ N_ksx1001_ucs_map ] = { 0x3000, /* 0x2121 */ 0x3001, /* 0x2122 */ 0x3002, /* 0x2123 */ diff --git a/libwc/map/sjis_ext_ucs.map b/libwc/map/sjis_ext_ucs.map index a82995c..cc748ba 100644 --- a/libwc/map/sjis_ext_ucs.map +++ b/libwc/map/sjis_ext_ucs.map @@ -1,6 +1,8 @@ /* Shift_JIS/CP932 (Japanese) */ -static wc_uint16 sjis_ext_ucs_map[ 0x5E * 10 ] = { +#define N_sjis_ext_ucs_map (0x5E * 10) + +static wc_uint16 sjis_ext_ucs_map[ N_sjis_ext_ucs_map ] = { 0x2460, /* 0x8740 */ 0x2461, /* 0x8741 */ 0x2462, /* 0x8742 */ diff --git a/libwc/map/ucs_ambwidth.map b/libwc/map/ucs_ambwidth.map index 6f03ba8..35ceedb 100644 --- a/libwc/map/ucs_ambwidth.map +++ b/libwc/map/ucs_ambwidth.map @@ -1,50 +1,82 @@ static wc_map ucs_ambwidth_map[] = { { 0x00A1, 0x00A1 }, { 0x00A4, 0x00A4 }, - { 0x00A7, 0x00AA }, - { 0x00AD, 0x00BF }, + { 0x00A7, 0x00A8 }, + { 0x00AA, 0x00AA }, + { 0x00AD, 0x00AE }, + { 0x00B0, 0x00B4 }, + { 0x00B6, 0x00BA }, + { 0x00BC, 0x00BF }, { 0x00C6, 0x00C6 }, { 0x00D0, 0x00D0 }, { 0x00D7, 0x00D8 }, { 0x00DE, 0x00E1 }, - { 0x00E6, 0x00ED }, - { 0x00F0, 0x00F3 }, - { 0x00F7, 0x00FE }, + { 0x00E6, 0x00E6 }, + { 0x00E8, 0x00EA }, + { 0x00EC, 0x00ED }, + { 0x00F0, 0x00F0 }, + { 0x00F2, 0x00F3 }, + { 0x00F7, 0x00FA }, + { 0x00FC, 0x00FC }, + { 0x00FE, 0x00FE }, { 0x0101, 0x0101 }, - { 0x0111, 0x0113 }, + { 0x0111, 0x0111 }, + { 0x0113, 0x0113 }, { 0x011B, 0x011B }, { 0x0126, 0x0127 }, { 0x012B, 0x012B }, { 0x0131, 0x0133 }, { 0x0138, 0x0138 }, - { 0x013F, 0x0144 }, - { 0x0148, 0x014D }, + { 0x013F, 0x0142 }, + { 0x0144, 0x0144 }, + { 0x0148, 0x014B }, + { 0x014D, 0x014D }, { 0x0152, 0x0153 }, { 0x0166, 0x0167 }, { 0x016B, 0x016B }, - { 0x01CE, 0x01DC }, + { 0x01CE, 0x01CE }, + { 0x01D0, 0x01D0 }, + { 0x01D2, 0x01D2 }, + { 0x01D4, 0x01D4 }, + { 0x01D6, 0x01D6 }, + { 0x01D8, 0x01D8 }, + { 0x01DA, 0x01DA }, + { 0x01DC, 0x01DC }, { 0x0251, 0x0251 }, { 0x0261, 0x0261 }, { 0x02C4, 0x02C4 }, - { 0x02C7, 0x02CD }, + { 0x02C7, 0x02C7 }, + { 0x02C9, 0x02CB }, + { 0x02CD, 0x02CD }, { 0x02D0, 0x02D0 }, - { 0x02D8, 0x02DF }, + { 0x02D8, 0x02DB }, + { 0x02DD, 0x02DD }, + { 0x02DF, 0x02DF }, { 0x0300, 0x036F }, - { 0x0391, 0x03A9 }, - { 0x03B1, 0x03C9 }, + { 0x0391, 0x03A1 }, + { 0x03A3, 0x03A9 }, + { 0x03B1, 0x03C1 }, + { 0x03C3, 0x03C9 }, { 0x0401, 0x0401 }, - { 0x0410, 0x0451 }, + { 0x0410, 0x044F }, + { 0x0451, 0x0451 }, { 0x2010, 0x2010 }, - { 0x2013, 0x2019 }, + { 0x2013, 0x2016 }, + { 0x2018, 0x2019 }, { 0x201C, 0x201D }, - { 0x2020, 0x2027 }, - { 0x2030, 0x2035 }, + { 0x2020, 0x2022 }, + { 0x2024, 0x2027 }, + { 0x2030, 0x2030 }, + { 0x2032, 0x2033 }, + { 0x2035, 0x2035 }, { 0x203B, 0x203B }, { 0x203E, 0x203E }, { 0x2074, 0x2074 }, - { 0x207F, 0x2084 }, + { 0x207F, 0x207F }, + { 0x2081, 0x2084 }, { 0x20AC, 0x20AC }, - { 0x2103, 0x2105 }, + { 0x2103, 0x2103 }, + { 0x2105, 0x2105 }, { 0x2109, 0x2109 }, { 0x2113, 0x2113 }, { 0x2116, 0x2116 }, @@ -52,21 +84,28 @@ static wc_map ucs_ambwidth_map[] = { { 0x2126, 0x2126 }, { 0x212B, 0x212B }, { 0x2153, 0x2154 }, - { 0x215B, 0x216B }, + { 0x215B, 0x215E }, + { 0x2160, 0x216B }, { 0x2170, 0x2179 }, { 0x2189, 0x2189 }, { 0x2190, 0x2199 }, { 0x21B8, 0x21B9 }, - { 0x21D2, 0x21D4 }, + { 0x21D2, 0x21D2 }, + { 0x21D4, 0x21D4 }, { 0x21E7, 0x21E7 }, - { 0x2200, 0x2203 }, + { 0x2200, 0x2200 }, + { 0x2202, 0x2203 }, { 0x2207, 0x2208 }, { 0x220B, 0x220B }, - { 0x220F, 0x2211 }, + { 0x220F, 0x220F }, + { 0x2211, 0x2211 }, { 0x2215, 0x2215 }, { 0x221A, 0x221A }, { 0x221D, 0x2220 }, - { 0x2223, 0x222E }, + { 0x2223, 0x2223 }, + { 0x2225, 0x2225 }, + { 0x2227, 0x222C }, + { 0x222E, 0x222E }, { 0x2234, 0x2237 }, { 0x223C, 0x223D }, { 0x2248, 0x2248 }, @@ -83,11 +122,13 @@ static wc_map ucs_ambwidth_map[] = { { 0x22A5, 0x22A5 }, { 0x22BF, 0x22BF }, { 0x2312, 0x2312 }, - { 0x2460, 0x254B }, + { 0x2460, 0x24E9 }, + { 0x24EB, 0x254B }, { 0x2550, 0x2573 }, { 0x2580, 0x258F }, { 0x2592, 0x2595 }, - { 0x25A0, 0x25A9 }, + { 0x25A0, 0x25A1 }, + { 0x25A3, 0x25A9 }, { 0x25B2, 0x25B3 }, { 0x25B6, 0x25B7 }, { 0x25BC, 0x25BD }, @@ -101,12 +142,20 @@ static wc_map ucs_ambwidth_map[] = { { 0x2609, 0x2609 }, { 0x260E, 0x260F }, { 0x2614, 0x2615 }, - { 0x261C, 0x261E }, - { 0x2640, 0x2642 }, - { 0x2660, 0x266F }, + { 0x261C, 0x261C }, + { 0x261E, 0x261E }, + { 0x2640, 0x2640 }, + { 0x2642, 0x2642 }, + { 0x2660, 0x2661 }, + { 0x2663, 0x2665 }, + { 0x2667, 0x266A }, + { 0x266C, 0x266D }, + { 0x266F, 0x266F }, { 0x269E, 0x269F }, { 0x26BE, 0x26BF }, - { 0x26C4, 0x26E3 }, + { 0x26C4, 0x26CD }, + { 0x26CF, 0x26E1 }, + { 0x26E3, 0x26E3 }, { 0x26E8, 0x26FF }, { 0x273D, 0x273D }, { 0x2757, 0x2757 }, diff --git a/libwc/map/uhc_ucs.map b/libwc/map/uhc_ucs.map index b6b43ca..55efc09 100644 --- a/libwc/map/uhc_ucs.map +++ b/libwc/map/uhc_ucs.map @@ -1,6 +1,8 @@ /* UHC/CP949 (Korean) */ -static wc_uint16 uhc_ucs_map[ 0x20 * 0xB2 + 0x27 * 0x54 + 2 ] = { +#define N_uhc_ucs_map (0x20 * 0xB2 + 0x27 * 0x54 + 2) + +static wc_uint16 uhc_ucs_map[ N_uhc_ucs_map ] = { 0xAC02, /* 0x8141 */ 0xAC03, /* 0x8142 */ 0xAC05, /* 0x8143 */ diff --git a/libwc/status.c b/libwc/status.c index d25c924..4a2ebf8 100644 --- a/libwc/status.c +++ b/libwc/status.c @@ -1,7 +1,6 @@ #include <string.h> -#include <gc.h> -#define New_N(type,n) ((type*)GC_MALLOC((n)*sizeof(type))) +#include "../alloc.h" #include "wc.h" #ifdef USE_UNICODE diff --git a/libwc/ucs.c b/libwc/ucs.c index d7b6948..18c3a67 100644 --- a/libwc/ucs.c +++ b/libwc/ucs.c @@ -100,6 +100,7 @@ wc_ucs_to_any(wc_uint32 ucs, wc_table *t) return t->conv(t->ccs, map->code2); } cc.ccs = WC_CCS_UNKNOWN; + cc.code = 0; return cc; } @@ -108,6 +109,7 @@ wc_any_to_ucs(wc_wchar_t cc) { int f; wc_uint16 *map = NULL; + wc_uint32 map_size = 0x80; wc_map *map2; f = WC_CCS_INDEX(cc.ccs); @@ -138,6 +140,7 @@ wc_any_to_ucs(wc_wchar_t cc) if (f < WC_F_ISO_BASE || f > WC_F_CS94W_END) return 0; map = cs94w_ucs_map[f - WC_F_ISO_BASE]; + map_size = cs94w_ucs_map_size[f - WC_F_ISO_BASE]; cc.code = WC_CS94W_N(cc.code); break; case WC_CCS_A_CS96: @@ -150,6 +153,7 @@ wc_any_to_ucs(wc_wchar_t cc) if (f < WC_F_ISO_BASE || f > WC_F_CS96W_END) return WC_C_UCS4_ERROR; map = cs96w_ucs_map[f - WC_F_ISO_BASE]; + map_size = cs96w_ucs_map_size[f - WC_F_ISO_BASE]; cc.code = WC_CS96W_N(cc.code); break; case WC_CCS_A_CS942: @@ -174,12 +178,14 @@ wc_any_to_ucs(wc_wchar_t cc) return WC_C_UCS2_EURO; } map = pcs_ucs_map[f - WC_F_PCS_BASE]; + map_size = pcs_ucs_map_size[f - WC_F_PCS_BASE]; cc.code &= 0x7f; break; case WC_CCS_A_PCSW: if (f < WC_F_PCS_BASE || f > WC_F_PCSW_END) return WC_C_UCS4_ERROR; map = pcsw_ucs_map[f - WC_F_PCS_BASE]; + map_size = pcsw_ucs_map_size[f - WC_F_PCS_BASE]; switch (cc.ccs) { case WC_CCS_BIG5: cc.code = WC_BIG5_N(cc.code); @@ -271,6 +277,8 @@ wc_any_to_ucs(wc_wchar_t cc) } if (map == NULL) return WC_C_UCS4_ERROR; + if (map_size == 0 || cc.code > map_size - 1) + return WC_C_UCS4_ERROR; cc.code = map[cc.code]; return cc.code ? cc.code : WC_C_UCS4_ERROR; } diff --git a/libwc/ucs.map b/libwc/ucs.map index dfac6d9..bed5dff 100644 --- a/libwc/ucs.map +++ b/libwc/ucs.map @@ -175,6 +175,49 @@ static wc_uint16 *pcs_ucs_map[] = { NULL, /* (Raw) */ }; +static wc_uint32 pcs_ucs_map_size[] = { + 0x80, /* cp437_ucs_map */ + 0x80, /* cp737_ucs_map */ + 0x80, /* cp775_ucs_map */ + 0x80, /* cp850_ucs_map */ + 0x80, /* cp852_ucs_map */ + 0x80, /* cp855_ucs_map */ + 0x80, /* cp856_ucs_map */ + 0x80, /* cp857_ucs_map */ + 0x80, /* cp860_ucs_map */ + 0x80, /* cp861_ucs_map */ + 0x80, /* cp862_ucs_map */ + 0x80, /* cp863_ucs_map */ + 0x80, /* cp864_ucs_map */ + 0x80, /* cp865_ucs_map */ + 0x80, /* cp866_ucs_map */ + 0x80, /* cp869_ucs_map */ + 0x80, /* cp874_ucs_map */ + 0x80, /* cp1006_ucs_map */ + 0x80, /* cp1250_ucs_map */ + 0x80, /* cp1251_ucs_map */ + 0x80, /* cp1252_ucs_map */ + 0x80, /* cp1253_ucs_map */ + 0x80, /* cp1254_ucs_map */ + 0x80, /* cp1255_ucs_map */ + 0x80, /* cp1256_ucs_map */ + 0x80, /* cp1257_ucs_map */ + 0x80, /* cp1258_ucs_map */ + 0, /* NULL */ + 0x80, /* tcvn57121_ucs_map */ + 0x20, /* tcvn57122_ucs_map */ + 0, /* NULL */ + 0x80, /* viscii111_ucs_map */ + 0x20, /* viscii112_ucs_map */ + 0x80, /* vps1_ucs_map */ + 0x20, /* vps2_ucs_map */ + 0x80, /* koi8r_ucs_map */ + 0x80, /* koi8u_ucs_map */ + 0x80, /* nextstep_ucs_map */ + 0, /* NULL */ + 0, /* NULL (Raw) */ +}; + static wc_uint16 *cs94w_ucs_map[] = { jisx0208x02131_ucs_map, /* 40 (JIS C 6226) */ gb2312_ucs_map, /* 41 (GB 2312) */ @@ -195,7 +238,28 @@ static wc_uint16 *cs94w_ucs_map[] = { jisx0212x02132_ucs_map, /* 50 (JIS X 0213-2) */ }; +static wc_uint32 cs94w_ucs_map_size[] = { + N_jisx0208x02131_ucs_map, /* 40 (JIS C 6226) */ + N_gb2312_ucs_map, /* 41 (GB 2312) */ + N_jisx0208x02131_ucs_map, /* 42 (JIS X 0208) */ + N_ksx1001_ucs_map, /* 43 (KS X 1001) */ + N_jisx0212x02132_ucs_map, /* 44 (JIS X 0212) */ + 0, /* 45 (ISO IR 165) */ + 0, /* 46 */ + N_cns116431_ucs_map, /* 47 (CNS 11643-1) */ + N_cns116432_ucs_map, /* 48 (CNS 11643-2) */ + 0, /* 49 (CNS 11643-3) */ + 0, /* 4A (CNS 11643-4) */ + 0, /* 4B (CNS 11643-5) */ + 0, /* 4C (CNS 11643-6) */ + 0, /* 4D (CNS 11643-7) */ + 0, /* 4E (KSP 9566) */ + N_jisx0208x02131_ucs_map, /* 4F (JIS X 0213-1) */ + N_jisx0212x02132_ucs_map, /* 50 (JIS X 0213-2) */ +}; + static wc_uint16 **cs96w_ucs_map; +static wc_uint32 *cs96w_ucs_map_size; static wc_uint16 *pcsw_ucs_map[] = { big5_ucs_map, /* Big5 */ @@ -233,6 +297,42 @@ static wc_uint16 *pcsw_ucs_map[] = { hkscs_ucs_map, /* HKSCS-2 */ }; +static wc_uint32 pcsw_ucs_map_size[] = { + N_big5_ucs_map, /* Big5 */ + N_big5_ucs_map, /* Big5-1 */ + N_big5_ucs_map, /* Big5-2 */ + 0, /* CNS 11643-8 */ + 0, /* CNS 11643-9 */ + 0, /* CNS 11643-10 */ + 0, /* CNS 11643-11 */ + 0, /* CNS 11643-12 */ + 0, /* CNS 11643-13 */ + 0, /* CNS 11643-14 */ + 0, /* CNS 11643-15 */ + 0, /* CNS 11643-16 */ + 0, /* CNS 11643-X */ + N_gb12345_ucs_map, /* GB 12345 */ + 0, /* Johab (special conversion) */ + 0, /* Johab-1 (special conversion) */ + 0, /* Johab-2 (special conversion) */ + N_ksx1001_ucs_map, /* Johab-3 */ + N_sjis_ext_ucs_map, /* Shift_JIS(CP932) ext */ + N_sjis_ext_ucs_map, /* Shift_JIS(CP932) ext-1 */ + N_sjis_ext_ucs_map, /* Shift_JIS(CP932) ext-2 */ + N_gbk_ucs_map, /* GBK(CP936) */ + N_gbk_ucs_map, /* GBK(CP936)-1 */ + N_gbk_ucs_map, /* GBK(CP936)-2 */ + 0, /* GB18030 GBK-ext (special conversion) */ + 0, /* GB18030 GBK-ext-1 (special conversion) */ + 0, /* GB18030 GBK-ext-2 (special conversion) */ + N_uhc_ucs_map, /* UHC(CP949) */ + N_uhc_ucs_map, /* UHC(CP949)-1 */ + N_uhc_ucs_map, /* UHC(CP949)-2 */ + N_hkscs_ucs_map, /* HKSCS */ + N_hkscs_ucs_map, /* HKSCS-1 */ + N_hkscs_ucs_map, /* HKSCS-2 */ +}; + static wc_wchar_t ucs_cs94_conv(wc_ccs ccs, wc_uint16 c) { diff --git a/libwc/wtf.c b/libwc/wtf.c index b8cfdc7..94d95c1 100644 --- a/libwc/wtf.c +++ b/libwc/wtf.c @@ -120,29 +120,36 @@ int wtf_strwidth(wc_uchar *p) { int w = 0; + wc_uchar *q = p + strlen(p); - while (*p) { + while (p < q) { w += wtf_width(p); p += WTF_LEN_MAP[*p]; } return w; } -/* size_t wtf_len1(wc_uchar *p) { - return (size_t)WTF_LEN_MAP[*p]; + size_t len, len_max = WTF_LEN_MAP[*p]; + + for (len = 0; *(p + len); len++) + if (len == len_max) + break; + if (len == 0) + len = 1; + return len; } -*/ size_t wtf_len(wc_uchar *p) { wc_uchar *q = p; + wc_uchar *strz = p + strlen(p); q += WTF_LEN_MAP[*q]; - while (*q && ! WTF_WIDTH_MAP[*q]) + while (q < strz && ! WTF_WIDTH_MAP[*q]) q += WTF_LEN_MAP[*q]; return q - p; } @@ -166,15 +173,17 @@ wtf_type(wc_uchar *p) ((p)[3] = (((c) >> 7) & 0x7f) | 0x80), \ ((p)[4] = ( (c) & 0x7f) | 0x80) #define wtf_to_wcs16(p) \ + ((p)[0] == 0 || (p)[1] == 0 || (p)[2] == 0 ? 0 : \ ((wc_uint32)((p)[0] & 0x03) << 14) \ | ((wc_uint32)((p)[1] & 0x7f) << 7) \ - | ((wc_uint32)((p)[2] & 0x7f) ) + | ((wc_uint32)((p)[2] & 0x7f) )) #define wtf_to_wcs32(p) \ + ((p)[0] == 0 || (p)[1] == 0 || (p)[2] == 0 || (p)[3] == 0 || (p)[4] == 0 ? 0 : \ ((wc_uint32)((p)[0] & 0x0f) << 28) \ | ((wc_uint32)((p)[1] & 0x7f) << 21) \ | ((wc_uint32)((p)[2] & 0x7f) << 14) \ | ((wc_uint32)((p)[3] & 0x7f) << 7) \ - | ((wc_uint32)((p)[4] & 0x7f) ) + | ((wc_uint32)((p)[4] & 0x7f) )) void wtf_push(Str os, wc_ccs ccs, wc_uint32 code) @@ -388,7 +397,7 @@ wtf_parse1(wc_uchar **p) cc.code = *(q++); } else if (*q > 0xa0) { cc.ccs = wtf_gr_ccs; - if (WC_CCS_IS_WIDE(cc.ccs)) { + if (WC_CCS_IS_WIDE(cc.ccs) && *(q+1)) { cc.code = ((wc_uint32)*q << 8) | *(q+1); q += 2; } else @@ -401,27 +410,47 @@ wtf_parse1(wc_uchar **p) case WC_CCS_A_CS942: case WC_CCS_A_PCS: case WC_CCS_A_UNKNOWN: - cc.ccs |= *(q++) & 0x7f; - cc.code = *(q++); + if (*q && *(q+1)) { + cc.ccs |= *(q++) & 0x7f; + cc.code = *(q++); + } else { + cc.ccs = WC_CCS_US_ASCII; + cc.code = (wc_uint32)' '; + } break; case WC_CCS_A_CS94W: case WC_CCS_A_CS96W: case WC_CCS_A_PCSW: - cc.ccs |= *(q++) & 0x7f; - cc.code = ((wc_uint32)*q << 8) | *(q+1); - q += 2; + if (*q && *(q+1) && *(q+2)) { + cc.ccs |= *(q++) & 0x7f; + cc.code = ((wc_uint32)*q << 8) | *(q+1); + q += 2; + } else { + cc.ccs = WC_CCS_US_ASCII; + cc.code = (wc_uint32)' '; + } break; case WC_CCS_A_WCS16: case WC_CCS_A_WCS16W: - cc.ccs |= (*q & 0x7c) >> 2; - cc.code = wtf_to_wcs16(q); - q += 3; + if (*q && *(q+1) && *(q+2)) { + cc.ccs |= (*q & 0x7c) >> 2; + cc.code = wtf_to_wcs16(q); + q += 3; + } else { + cc.ccs = WC_CCS_US_ASCII; + cc.code = (wc_uint32)' '; + } break; case WC_CCS_A_WCS32: case WC_CCS_A_WCS32W: - cc.ccs |= (*q & 0x70) >> 4; - cc.code = wtf_to_wcs32(q); - q += 5; + if (*q && *(q+1) && *(q+2) && *(q+3) && *(q+4)) { + cc.ccs |= (*q & 0x70) >> 4; + cc.code = wtf_to_wcs32(q); + q += 5; + } else { + cc.ccs = WC_CCS_US_ASCII; + cc.code = (wc_uint32)' '; + } break; default: /* case 0: */ diff --git a/libwc/wtf.h b/libwc/wtf.h index ad47973..435526f 100644 --- a/libwc/wtf.h +++ b/libwc/wtf.h @@ -59,8 +59,7 @@ extern void wtf_init(wc_ces ces1, wc_ces ces2); #define wtf_width(p) (WcOption.use_wide ? (int)WTF_WIDTH_MAP[(wc_uchar)*(p)] \ : ((int)WTF_WIDTH_MAP[(wc_uchar)*(p)] ? 1 : 0)) extern int wtf_strwidth(wc_uchar *p); -/* extern size_t wtf_len1(wc_uchar *p); */ -#define wtf_len1(p) ((int)WTF_LEN_MAP[(wc_uchar)*(p)]) +extern size_t wtf_len1(wc_uchar *p); extern size_t wtf_len(wc_uchar *p); /* extern int wtf_type(wc_uchar *p); */ #define wtf_type(p) WTF_TYPE_MAP[(wc_uchar)*(p)] @@ -184,7 +184,7 @@ inputLineHistSearch(char *prompt, char *def_str, int flag, Hist *hist, cm_clear = TRUE; cm_disp_clear = TRUE; if (!i_quote && - (((cm_mode & CPL_ALWAYS) && (c == CTRL_I || c == ' ')) || + (((cm_mode & CPL_ALWAYS) && (c == CTRL_I || (space_autocomplete && c == ' '))) || ((cm_mode & CPL_ON) && (c == CTRL_I)))) { if (emacs_like_lineedit && cm_next) { _dcompl(); @@ -714,7 +714,8 @@ _rdcompl(void) static void next_dcompl(int next) { - static int col, row, len; + static int col, row; + static unsigned int len; static Str d; int i, j, n, y; Str f; @@ -780,9 +781,10 @@ next_dcompl(int next) if (len < n) len = n; } - col = COLS / len; - if (col == 0) - col = 1; + if (len > 0 && COLS > len) + col = COLS / len; + else + col = 1; row = (NCFileBuf + col - 1) / col; disp_next: @@ -1026,7 +1028,7 @@ _prev(void) strCurrentBuf = strBuf; } if (DecodeURL && (cm_mode & CPL_URL) ) - p = url_unquote_conv(p, 0); + p = url_decode2(p, NULL); strBuf = Strnew_charp(p); CLen = CPos = setStrType(strBuf, strProp); offset = 0; @@ -1045,7 +1047,7 @@ _next(void) p = nextHist(hist); if (p) { if (DecodeURL && (cm_mode & CPL_URL) ) - p = url_unquote_conv(p, 0); + p = url_decode2(p, NULL); strBuf = Strnew_charp(p); } else { @@ -109,6 +109,7 @@ loadLocalDir(char *dname) n++; } } + closedir(d); if (multicolList) { l = COLS / (maxlen + 2); @@ -167,7 +168,7 @@ loadLocalDir(char *dname) else { #if defined(HAVE_LSTAT) && defined(HAVE_READLINK) if (S_ISLNK(lst.st_mode)) { - if ((l = readlink(fbuf->ptr, lbuf, sizeof(lbuf))) > 0) { + if ((l = readlink(fbuf->ptr, lbuf, sizeof(lbuf) - 1)) > 0) { lbuf[l] = '\0'; Strcat_m_charp(tmp, " -> ", html_quote(conv_from_system(lbuf)), NULL); @@ -212,18 +213,17 @@ set_environ(char *var, char *value) if (var != NULL && value != NULL) setenv(var, value, 1); #else /* not HAVE_SETENV */ -#ifdef HAVE_PUTENV static Hash_sv *env_hash = NULL; Str tmp = Strnew_m_charp(var, "=", value, NULL); if (env_hash == NULL) env_hash = newHash_sv(20); putHash_sv(env_hash, var, (void *)tmp->ptr); +#ifdef HAVE_PUTENV putenv(tmp->ptr); #else /* not HAVE_PUTENV */ extern char **environ; char **ne; - char *p; int i, l, el; char **e, **newenv; @@ -250,7 +250,7 @@ set_environ(char *var, char *value) if (newenv == NULL) return; for (e = environ, ne = newenv; *e != NULL; *(ne++) = *(e++)) ; - *(ne++) = p; + *(ne++) = tmp->ptr; *ne = NULL; environ = newenv; #endif /* not HAVE_PUTENV */ @@ -359,6 +359,10 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer) int status; pid_t pid; char *file = uri, *name = uri, *path_info = NULL, *tmpf = NULL; +#ifdef HAVE_CHDIR + char *cgi_dir; +#endif + char *cgi_basename; #ifdef __MINGW32_VERSION return NULL; @@ -373,18 +377,25 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer) if (!fw) return NULL; } + if (qstr) + uri = Strnew_m_charp(uri, "?", qstr, NULL)->ptr; +#ifdef HAVE_CHDIR + cgi_dir = mydirname(file); +#endif + cgi_basename = mybasename(file); pid = open_pipe_rw(&fr, NULL); - if (pid < 0) + /* Don't invoke gc after here, or the program might crash in some platforms */ + if (pid < 0) { + if (fw) + fclose(fw); return NULL; - else if (pid) { + } else if (pid) { if (fw) fclose(fw); return fr; } setup_child(TRUE, 2, fw ? fileno(fw) : -1); - if (qstr) - uri = Strnew_m_charp(uri, "?", qstr, NULL)->ptr; set_cgi_environ(name, file, uri); if (path_info) set_environ("PATH_INFO", path_info); @@ -415,12 +426,14 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer) } #ifdef HAVE_CHDIR /* ifndef __EMX__ ? */ - chdir(mydirname(file)); + if (chdir(cgi_dir) == -1) { + fprintf(stderr, "failed to chdir to %s: %s\n", cgi_dir, strerror(errno)); + exit(1); + } #endif - execl(file, mybasename(file), NULL); + execl(file, cgi_basename, NULL); fprintf(stderr, "execl(\"%s\", \"%s\", NULL): %s\n", - file, mybasename(file), strerror(errno)); + file, cgi_basename, strerror(errno)); exit(1); - return NULL; #endif } @@ -72,7 +72,7 @@ searchMailcap(struct mailcap *table, char *type) } static int -matchMailcapAttr(char *p, char *attr, int len, Str *value) +matchMailcapAttr(char *p, char *attr, size_t len, Str *value) { int quoted; char *q = NULL; @@ -1,6 +1,7 @@ /* $Id: main.c,v 1.270 2010/08/24 10:11:51 htrb Exp $ */ #define MAINPROGRAM #include "fm.h" +#include <stdio.h> #include <signal.h> #include <setjmp.h> #include <sys/stat.h> @@ -11,6 +12,9 @@ #include <sys/wait.h> #endif #include <time.h> +#if defined(__CYGWIN__) && defined(USE_BINMODE_STREAM) +#include <io.h> +#endif #include "terms.h" #include "myctype.h" #include "regex.h" @@ -119,6 +123,8 @@ static int searchKeyNum(void); #define help() fusage(stdout, 0) #define usage() fusage(stderr, 1) +int enable_inline_image; /* 1 == mlterm OSC 5379, 2 == sixel */ + static void fversion(FILE * f) { @@ -200,10 +206,12 @@ fusage(FILE * f, int err) #ifdef USE_M17N fprintf(f, " -I charset document charset\n"); fprintf(f, " -O charset display/output charset\n"); +#if 0 /* use -O{s|j|e} instead */ fprintf(f, " -e EUC-JP\n"); fprintf(f, " -s Shift_JIS\n"); fprintf(f, " -j JIS\n"); #endif +#endif fprintf(f, " -B load bookmark\n"); fprintf(f, " -bookmark file specify bookmark file\n"); fprintf(f, " -T type specify content-type\n"); @@ -214,7 +222,7 @@ fusage(FILE * f, int err) #endif /* USE_COLOR */ fprintf(f, " -N open URL of command line on each new tab\n"); - fprintf(f, " -F automatically render frame\n"); + fprintf(f, " -F automatically render frames\n"); fprintf(f, " -cols width specify column width (used with -dump)\n"); fprintf(f, @@ -247,9 +255,13 @@ fusage(FILE * f, int err) " -cookie use cookie (-no-cookie: don't use cookie)\n"); #endif /* USE_COOKIE */ fprintf(f, " -graph use DEC special graphics for border of table and menu\n"); - fprintf(f, " -no-graph use ACII character for border of table and menu\n"); + fprintf(f, " -no-graph use ASCII character for border of table and menu\n"); +#if 1 /* pager requires -s */ + fprintf(f, " -s squeeze multiple blank lines\n"); +#else fprintf(f, " -S squeeze multiple blank lines\n"); - fprintf(f, " -W toggle wrap search mode\n"); +#endif + fprintf(f, " -W toggle search wrap mode\n"); fprintf(f, " -X don't use termcap init/deinit\n"); fprintf(f, " -title[=TERM] set buffer name to terminal title string\n"); @@ -363,6 +375,8 @@ make_optional_header_string(char *s) Strcopy_charp_n(hs, s, p - s); if (!Strcasecmp_charp(hs, "content-type")) override_content_type = TRUE; + if (!Strcasecmp_charp(hs, "user-agent")) + override_user_agent = TRUE; Strcat_charp(hs, ": "); if (*(++p)) { /* not null header */ SKIP_BLANKS(p); /* skip white spaces */ @@ -372,12 +386,19 @@ make_optional_header_string(char *s) return hs; } +static void * +die_oom(size_t bytes) +{ + fprintf(stderr, "Out of memory: %lu bytes unavailable!\n", (unsigned long)bytes); + exit(1); +} + int main(int argc, char **argv, char **envp) { Buffer *newbuf = NULL; - char *p, c; - int i; + char *p; + int c, i; InputStream redin; char *line_str = NULL; char **load_argv; @@ -397,7 +418,15 @@ main(int argc, char **argv, char **envp) wc_ces CodePage; #endif #endif +#if defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) + char **getimage_args = NULL; +#endif /* defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) */ GC_INIT(); +#if (GC_VERSION_MAJOR>7) || ((GC_VERSION_MAJOR==7) && (GC_VERSION_MINOR>=2)) + GC_set_oom_fn(die_oom); +#else + GC_oom_fn = die_oom; +#endif #if defined(ENABLE_NLS) || (defined(USE_M17N) && defined(HAVE_LANGINFO_CODESET)) setlocale(LC_ALL, ""); #endif @@ -406,10 +435,6 @@ main(int argc, char **argv, char **envp) textdomain(PACKAGE); #endif -#ifndef HAVE_SYS_ERRLIST - prepare_sys_errlist(); -#endif /* not HAVE_SYS_ERRLIST */ - NO_proxy_domains = newTextList(); fileToDelete = newTextList(); @@ -418,6 +443,10 @@ main(int argc, char **argv, char **envp) CurrentDir = currentdir(); CurrentPid = (int)getpid(); +#if defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) + if (argv[0] && *argv[0]) + MyProgramName = argv[0]; +#endif /* defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) */ BookmarkFile = NULL; config_file = NULL; @@ -530,12 +559,14 @@ main(int argc, char **argv, char **envp) PagerMax = atoi(argv[i]); } #ifdef USE_M17N +#if 0 /* use -O{s|j|e} instead */ else if (!strcmp("-s", argv[i])) DisplayCharset = WC_CES_SHIFT_JIS; else if (!strcmp("-j", argv[i])) DisplayCharset = WC_CES_ISO_2022_JP; else if (!strcmp("-e", argv[i])) DisplayCharset = WC_CES_EUC_JP; +#endif else if (!strncmp("-I", argv[i], 2)) { if (argv[i][2] != '\0') p = argv[i] + 2; @@ -660,6 +691,12 @@ main(int argc, char **argv, char **envp) } } #endif + else if (!strcmp("-ri", argv[i])) { + enable_inline_image = 1; + } + else if (!strcmp("-sixel", argv[i])) { + enable_inline_image = 2; + } else if (!strcmp("-num", argv[i])) showLineNum = TRUE; else if (!strcmp("-no-proxy", argv[i])) @@ -703,7 +740,11 @@ main(int argc, char **argv, char **envp) accept_cookie = TRUE; } #endif /* USE_COOKIE */ +#if 1 /* pager requires -s */ + else if (!strcmp("-s", argv[i])) +#else else if (!strcmp("-S", argv[i])) +#endif squeezeBlankLine = TRUE; else if (!strcmp("-X", argv[i])) Do_not_use_ti_te = TRUE; @@ -735,6 +776,15 @@ main(int argc, char **argv, char **envp) else if (!strcmp("-reqlog",argv[i])) { w3m_reqlog=rcFile("request.log"); } +#if defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) + else if (!strcmp("-$$getimage", argv[i])) { + ++i; + getimage_args = argv + i; + i += 4; + if (i > argc) + usage(); + } +#endif /* defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) */ else { usage(); } @@ -817,12 +867,36 @@ main(int argc, char **argv, char **envp) #ifdef USE_M17N wtf_init(DocumentCharset, DisplayCharset); /* if (w3m_dump) - * WcOption.pre_conv = WC_TRUE; + * WcOption.pre_conv = WC_TRUE; */ #endif if (w3m_backend) backend(); +#if defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) + if (getimage_args) { + char *image_url = conv_from_system(getimage_args[0]); + char *base_url = conv_from_system(getimage_args[1]); + ParsedURL base_pu; + + parseURL2(base_url, &base_pu, NULL); + image_source = getimage_args[2]; + newbuf = loadGeneralFile(image_url, &base_pu, NULL, 0, NULL); + if (!newbuf || !newbuf->real_type || + strncasecmp(newbuf->real_type, "image/", 6)) + unlink(getimage_args[2]); +#if defined(HAVE_SYMLINK) && defined(HAVE_LSTAT) + symlink(getimage_args[2], getimage_args[3]); +#else + { + FILE *f = fopen(getimage_args[3], "w"); + if (f) + fclose(f); + } +#endif + w3m_exit(0); + } +#endif /* defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) */ if (w3m_dump) mySignal(SIGINT, SIG_IGN); @@ -833,7 +907,12 @@ main(int argc, char **argv, char **envp) mySignal(SIGPIPE, SigPipe); #endif +#if (GC_VERSION_MAJOR>7) || ((GC_VERSION_MAJOR==7) && (GC_VERSION_MINOR>=2)) + orig_GC_warn_proc = GC_get_warn_proc(); + GC_set_warn_proc(wrap_GC_warn_proc); +#else orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc); +#endif err_msg = Strnew(); if (load_argc == 0) { /* no URL specified */ @@ -894,12 +973,17 @@ main(int argc, char **argv, char **envp) if (i >= 0) { SearchHeader = search_header; DefaultType = default_type; + char *url; + + url = load_argv[i]; + if (getURLScheme(&url) == SCM_MISSING && !ArgvIsURL) + url = file_to_url(load_argv[i]); + else + url = url_encode(conv_from_system(load_argv[i]), NULL, 0); if (w3m_dump == DUMP_HEAD) { request = New(FormList); request->method = FORM_METHOD_HEAD; - newbuf = - loadGeneralFile(load_argv[i], NULL, NO_REFERER, 0, - request); + newbuf = loadGeneralFile(url, NULL, NO_REFERER, 0, request); } else { if (post_file && i == 0) { @@ -928,9 +1012,7 @@ main(int argc, char **argv, char **envp) else { request = NULL; } - newbuf = - loadGeneralFile(load_argv[i], NULL, NO_REFERER, 0, - request); + newbuf = loadGeneralFile(url, NULL, NO_REFERER, 0, request); } if (newbuf == NULL) { /* FIXME: gettextize? */ @@ -945,7 +1027,7 @@ main(int argc, char **argv, char **envp) break; case SCM_LOCAL: case SCM_LOCAL_CGI: - unshiftHist(LoadHist, conv_from_system(load_argv[i])); + unshiftHist(LoadHist, url); default: pushHashHist(URLHist, parsedURL2Str(&newbuf->currentURL)->ptr); break; @@ -1183,13 +1265,13 @@ static void dump_source(Buffer *buf) { FILE *f; - char c; + int c; if (buf->sourcefile == NULL) return; f = fopen(buf->sourcefile, "r"); if (f == NULL) return; - while (c = fgetc(f), !feof(f)) { + while ((c = fgetc(f)) != EOF) { putchar(c); } fclose(f); @@ -1246,6 +1328,12 @@ dump_extra(Buffer *buf) #endif } +static int +cmp_anchor_hseq(const void *a, const void *b) +{ + return (*((const Anchor **) a))->hseq - (*((const Anchor **) b))->hseq; +} + static void do_dump(Buffer *buf) { @@ -1266,18 +1354,20 @@ do_dump(Buffer *buf) int i; saveBuffer(buf, stdout, FALSE); if (displayLinkNumber && buf->href) { + int nanchor = buf->href->nanchor; printf("\nReferences:\n\n"); - for (i = 0; i < buf->href->nanchor; i++) { - ParsedURL pu; - static Str s = NULL; - if (buf->href->anchors[i].slave) + Anchor **in_order = New_N(Anchor *, buf->href->nanchor); + for (i = 0; i < nanchor; i++) + in_order[i] = buf->href->anchors + i; + qsort(in_order, nanchor, sizeof(Anchor *), cmp_anchor_hseq); + for (i = 0; i < nanchor; i++) { + ParsedURL pu; + char *url; + if (in_order[i]->slave) continue; - parseURL2(buf->href->anchors[i].url, &pu, baseURL(buf)); - s = parsedURL2Str(&pu); - if (DecodeURL) - s = Strnew_charp(url_unquote_conv - (s->ptr, Currentbuf->document_charset)); - printf("[%d] %s\n", buf->href->anchors[i].hseq + 1, s->ptr); + parseURL2(in_order[i]->url, &pu, baseURL(buf)); + url = url_decode2(parsedURL2Str(&pu)->ptr, Currentbuf); + printf("[%d] %s\n", in_order[i]->hseq + 1, url); } } } @@ -1485,7 +1575,7 @@ SigPipe(SIGNAL_ARG) } #endif -/* +/* * Command functions: These functions are called with a keystroke. */ @@ -1547,7 +1637,7 @@ nscroll(int n, int mode) } /* Move page forward */ -DEFUN(pgFore, NEXT_PAGE, "Move to next page") +DEFUN(pgFore, NEXT_PAGE, "Scroll down one page") { if (vi_prec_num) nscroll(searchKeyNum() * (Currentbuf->LINES - 1), B_NORMAL); @@ -1557,7 +1647,7 @@ DEFUN(pgFore, NEXT_PAGE, "Move to next page") } /* Move page backward */ -DEFUN(pgBack, PREV_PAGE, "Move to previous page") +DEFUN(pgBack, PREV_PAGE, "Scroll up one page") { if (vi_prec_num) nscroll(-searchKeyNum() * (Currentbuf->LINES - 1), B_NORMAL); @@ -1566,20 +1656,32 @@ DEFUN(pgBack, PREV_PAGE, "Move to previous page") * (Currentbuf->LINES - 1)), prec_num ? B_SCROLL : B_NORMAL); } +/* Move half page forward */ +DEFUN(hpgFore, NEXT_HALF_PAGE, "Scroll down half a page") +{ + nscroll(searchKeyNum() * (Currentbuf->LINES / 2 - 1), B_NORMAL); +} + +/* Move half page backward */ +DEFUN(hpgBack, PREV_HALF_PAGE, "Scroll up half a page") +{ + nscroll(-searchKeyNum() * (Currentbuf->LINES / 2 - 1), B_NORMAL); +} + /* 1 line up */ -DEFUN(lup1, UP, "Scroll up one line") +DEFUN(lup1, UP, "Scroll the screen up one line") { nscroll(searchKeyNum(), B_SCROLL); } /* 1 line down */ -DEFUN(ldown1, DOWN, "Scroll down one line") +DEFUN(ldown1, DOWN, "Scroll the screen down one line") { nscroll(-searchKeyNum(), B_SCROLL); } /* move cursor position to the center of screen */ -DEFUN(ctrCsrV, CENTER_V, "Move to the center column") +DEFUN(ctrCsrV, CENTER_V, "Center on cursor line") { int offsety; if (Currentbuf->firstLine == NULL) @@ -1598,7 +1700,7 @@ DEFUN(ctrCsrV, CENTER_V, "Move to the center column") } } -DEFUN(ctrCsrH, CENTER_H, "Move to the center line") +DEFUN(ctrCsrH, CENTER_H, "Center on cursor column") { int offsetx; if (Currentbuf->firstLine == NULL) @@ -1612,7 +1714,7 @@ DEFUN(ctrCsrH, CENTER_H, "Move to the center line") } /* Redraw screen */ -DEFUN(rdrwSc, REDRAW, "Redraw screen") +DEFUN(rdrwSc, REDRAW, "Draw the screen anew") { clear(); arrangeCursor(Currentbuf); @@ -1844,19 +1946,23 @@ srch_nxtprv(int reverse) result = srchcore(SearchString, routine[reverse]); if (result & SR_FOUND) clear_mark(Currentbuf->currentLine); + else { + if (reverse == 0) + Currentbuf->pos -= 1; + } displayBuffer(Currentbuf, B_NORMAL); disp_srchresult(result, (reverse ? "Backward: " : "Forward: "), SearchString); } /* Search next matching */ -DEFUN(srchnxt, SEARCH_NEXT, "Search next regexp") +DEFUN(srchnxt, SEARCH_NEXT, "Continue search forward") { srch_nxtprv(0); } /* Search previous matching */ -DEFUN(srchprv, SEARCH_PREV, "Search previous regexp") +DEFUN(srchprv, SEARCH_PREV, "Continue search backward") { srch_nxtprv(1); } @@ -1919,7 +2025,7 @@ DEFUN(col1R, RIGHT, "Shift screen one column right") displayBuffer(Currentbuf, B_NORMAL); } -DEFUN(col1L, LEFT, "Shift screen one column") +DEFUN(col1L, LEFT, "Shift screen one column left") { Buffer *buf = Currentbuf; Line *l = buf->currentLine; @@ -1960,7 +2066,7 @@ DEFUN(setEnv, SETENV, "Set environment variable") displayBuffer(Currentbuf, B_NORMAL); } -DEFUN(pipeBuf, PIPE_BUF, "Send rendered document to pipe") +DEFUN(pipeBuf, PIPE_BUF, "Pipe current buffer through a shell command and display output") { Buffer *buf; char *cmd, *tmpf; @@ -2006,7 +2112,7 @@ DEFUN(pipeBuf, PIPE_BUF, "Send rendered document to pipe") } /* Execute shell command and read output ac pipe. */ -DEFUN(pipesh, PIPE_SHELL, "Execute shell command and browse") +DEFUN(pipesh, PIPE_SHELL, "Execute shell command and display output") { Buffer *buf; char *cmd; @@ -2037,7 +2143,7 @@ DEFUN(pipesh, PIPE_SHELL, "Execute shell command and browse") } /* Execute shell command and load entire output to buffer */ -DEFUN(readsh, READ_SHELL, "Execute shell command and load") +DEFUN(readsh, READ_SHELL, "Execute shell command and display output") { Buffer *buf; MySignalHandler(*prevtrap) (); @@ -2074,7 +2180,7 @@ DEFUN(readsh, READ_SHELL, "Execute shell command and load") } /* Execute shell command */ -DEFUN(execsh, EXEC_SHELL SHELL, "Execute shell command") +DEFUN(execsh, EXEC_SHELL SHELL, "Execute shell command and display output") { char *cmd; @@ -2099,7 +2205,7 @@ DEFUN(execsh, EXEC_SHELL SHELL, "Execute shell command") } /* Load file */ -DEFUN(ldfile, LOAD, "Load local file") +DEFUN(ldfile, LOAD, "Open local file in a new buffer") { char *fn; @@ -2118,7 +2224,7 @@ DEFUN(ldfile, LOAD, "Load local file") } /* Load help file */ -DEFUN(ldhelp, HELP, "View help") +DEFUN(ldhelp, HELP, "Show help panel") { #ifdef USE_HELP_CGI char *lang; @@ -2167,13 +2273,12 @@ _movL(int n) displayBuffer(Currentbuf, B_NORMAL); } -DEFUN(movL, MOVE_LEFT, - "Move cursor left (a half screen shift at the left edge)") +DEFUN(movL, MOVE_LEFT, "Cursor left") { _movL(Currentbuf->COLS / 2); } -DEFUN(movL1, MOVE_LEFT1, "Move cursor left (1 columns shift at the left edge)") +DEFUN(movL1, MOVE_LEFT1, "Cursor left. With edge touched, slide") { _movL(1); } @@ -2190,14 +2295,12 @@ _movD(int n) displayBuffer(Currentbuf, B_NORMAL); } -DEFUN(movD, MOVE_DOWN, - "Move cursor down (a half screen scroll at the end of screen)") +DEFUN(movD, MOVE_DOWN, "Cursor down") { _movD((Currentbuf->LINES + 1) / 2); } -DEFUN(movD1, MOVE_DOWN1, - "Move cursor down (1 line scroll at the end of screen)") +DEFUN(movD1, MOVE_DOWN1, "Cursor down. With edge touched, slide") { _movD(1); } @@ -2214,13 +2317,12 @@ _movU(int n) displayBuffer(Currentbuf, B_NORMAL); } -DEFUN(movU, MOVE_UP, - "Move cursor up (a half screen scroll at the top of screen)") +DEFUN(movU, MOVE_UP, "Cursor up") { _movU((Currentbuf->LINES + 1) / 2); } -DEFUN(movU1, MOVE_UP1, "Move cursor up (1 line scrol at the top of screen)") +DEFUN(movU1, MOVE_UP1, "Cursor up. With edge touched, slide") { _movU(1); } @@ -2237,22 +2339,20 @@ _movR(int n) displayBuffer(Currentbuf, B_NORMAL); } -DEFUN(movR, MOVE_RIGHT, - "Move cursor right (a half screen shift at the right edge)") +DEFUN(movR, MOVE_RIGHT, "Cursor right") { _movR(Currentbuf->COLS / 2); } -DEFUN(movR1, MOVE_RIGHT1, - "Move cursor right (1 columns shift at the right edge)") +DEFUN(movR1, MOVE_RIGHT1, "Cursor right. With edge touched, slide") { _movR(1); } /* movLW, movRW */ -/* +/* * From: Takashi Nishimoto <g96p0935@mse.waseda.ac.jp> Date: Mon, 14 Jun - * 1999 09:29:56 +0900 + * 1999 09:29:56 +0900 */ #if defined(USE_M17N) && defined(USE_UNICODE) #define nextChar(s, l) do { (s)++; } while ((s) < (l)->len && (l)->propBuf[s] & PC_WCHAR2) @@ -2261,7 +2361,7 @@ DEFUN(movR1, MOVE_RIGHT1, static wc_uint32 getChar(char *p) { - return wc_any_to_ucs(wtf_parse1(&p)); + return wc_any_to_ucs(wtf_parse1((wc_uchar **)&p)); } static int @@ -2269,7 +2369,7 @@ is_wordchar(wc_uint32 c) { return wc_is_ucs_alnum(c); } -#else +#else #define nextChar(s, l) (s)++ #define prevChar(s, l) (s)-- #define getChar(p) ((int)*(p)) @@ -2296,7 +2396,7 @@ prev_nonnull_line(Line *line) return 0; } -DEFUN(movLW, PREV_WORD, "Move to previous word") +DEFUN(movLW, PREV_WORD, "Move to the previous word") { char *lb; Line *pline, *l; @@ -2364,7 +2464,7 @@ next_nonnull_line(Line *line) return 0; } -DEFUN(movRW, NEXT_WORD, "Move to next word") +DEFUN(movRW, NEXT_WORD, "Move to the next word") { char *lb; Line *pline, *l; @@ -2442,19 +2542,19 @@ _quitfm(int confirm) } /* Quit */ -DEFUN(quitfm, ABORT EXIT, "Quit w3m without confirmation") +DEFUN(quitfm, ABORT EXIT, "Quit at once") { _quitfm(FALSE); } /* Question and Quit */ -DEFUN(qquitfm, QUIT, "Quit w3m") +DEFUN(qquitfm, QUIT, "Quit with confirmation request") { _quitfm(confirm_on_quit); } /* Select buffer */ -DEFUN(selBuf, SELECT, "Go to buffer selection panel") +DEFUN(selBuf, SELECT, "Display buffer-stack panel") { Buffer *buf; int ok; @@ -2502,7 +2602,7 @@ DEFUN(selBuf, SELECT, "Go to buffer selection panel") } /* Suspend (on BSD), or run interactive shell (on SysV) */ -DEFUN(susp, INTERRUPT SUSPEND, "Stop loading document") +DEFUN(susp, INTERRUPT SUSPEND, "Suspend w3m to background") { #ifndef SIGSTOP char *shell; @@ -2517,7 +2617,17 @@ DEFUN(susp, INTERRUPT SUSPEND, "Stop loading document") shell = "/bin/sh"; system(shell); #else /* SIGSTOP */ +#ifdef SIGTSTP + signal(SIGTSTP, SIG_DFL); /* just in case */ + /* + * Note: If susp() was called from SIGTSTP handler, + * unblocking SIGTSTP would be required here. + * Currently not. + */ + kill(0, SIGTSTP); /* stop whole job, not a single process */ +#else kill((pid_t) 0, SIGSTOP); +#endif #endif /* SIGSTOP */ fmInit(); displayBuffer(Currentbuf, B_FORCE_REDRAW); @@ -2550,7 +2660,7 @@ _goLine(char *l) displayBuffer(Currentbuf, B_FORCE_REDRAW); } -DEFUN(goLine, GOTO_LINE, "Go to specified line") +DEFUN(goLine, GOTO_LINE, "Go to the specified line") { char *str = searchKeyData(); @@ -2575,7 +2685,7 @@ DEFUN(goLineL, END, "Go to the last line") } /* Go to the beginning of the line */ -DEFUN(linbeg, LINE_BEGIN, "Go to the beginning of line") +DEFUN(linbeg, LINE_BEGIN, "Go to the beginning of the line") { if (Currentbuf->firstLine == NULL) return; @@ -2587,7 +2697,7 @@ DEFUN(linbeg, LINE_BEGIN, "Go to the beginning of line") } /* Go to the bottom of the line */ -DEFUN(linend, LINE_END, "Go to the end of line") +DEFUN(linend, LINE_END, "Go to the end of the line") { if (Currentbuf->firstLine == NULL) return; @@ -2616,7 +2726,7 @@ cur_real_linenumber(Buffer *buf) } /* Run editor on the current buffer */ -DEFUN(editBf, EDIT, "Edit current document") +DEFUN(editBf, EDIT, "Edit local source") { char *fn = Currentbuf->filename; Str cmd; @@ -2643,7 +2753,7 @@ DEFUN(editBf, EDIT, "Edit current document") } /* Run editor on the current screen */ -DEFUN(editScr, EDIT_SCREEN, "Edit currently rendered document") +DEFUN(editScr, EDIT_SCREEN, "Edit rendered copy of document") { char *tmpf; FILE *f; @@ -2681,7 +2791,7 @@ DEFUN(_mark, MARK, "Set/unset mark") } /* Go to next mark */ -DEFUN(nextMk, NEXT_MARK, "Move to next word") +DEFUN(nextMk, NEXT_MARK, "Go to the next mark") { Line *l; int i; @@ -2714,7 +2824,7 @@ DEFUN(nextMk, NEXT_MARK, "Move to next word") } /* Go to previous mark */ -DEFUN(prevMk, PREV_MARK, "Move to previous mark") +DEFUN(prevMk, PREV_MARK, "Go to the previous mark") { Line *l; int i; @@ -2749,7 +2859,7 @@ DEFUN(prevMk, PREV_MARK, "Move to previous mark") } /* Mark place to which the regular expression matches */ -DEFUN(reMark, REG_MARK, "Set mark using regexp") +DEFUN(reMark, REG_MARK, "Mark all occurences of a pattern") { Line *l; char *str; @@ -2804,12 +2914,15 @@ loadLink(char *url, char *target, char *referer, FormList *request) union frameset_element *f_element = NULL; int flag = 0; ParsedURL *base, pu; + const int *no_referer_ptr; message(Sprintf("loading %s", url)->ptr, 0, 0); refresh(); + no_referer_ptr = query_SCONF_NO_REFERER_FROM(&Currentbuf->currentURL); base = baseURL(Currentbuf); - if (base == NULL || + if ((no_referer_ptr && *no_referer_ptr) || + base == NULL || base->scheme == SCM_LOCAL || base->scheme == SCM_LOCAL_CGI) referer = NO_REFERER; if (referer == NULL) @@ -2830,7 +2943,7 @@ loadLink(char *url, char *target, char *referer, FormList *request) if (!on_target) /* open link as an indivisual page */ return loadNormalBuf(buf, TRUE); - if (do_download) /* download (thus no need to render frame) */ + if (do_download) /* download (thus no need to render frames) */ return loadNormalBuf(buf, FALSE); if (target == NULL || /* no target specified (that means this page is not a frame page) */ @@ -2940,7 +3053,7 @@ handleMailto(char *url) return 1; } #endif - + /* invoke external mailer */ if (MailtoOptions == MAILTO_OPTIONS_USE_MAILTO_URL) { to = Strnew_charp(html_unquote(url)); @@ -2959,9 +3072,8 @@ handleMailto(char *url) } /* follow HREF link */ -DEFUN(followA, GOTO_LINK, "Go to current link") +DEFUN(followA, GOTO_LINK, "Follow current hyperlink in a new buffer") { - Line *l; Anchor *a; ParsedURL u; #ifdef USE_IMAGE @@ -2971,7 +3083,6 @@ DEFUN(followA, GOTO_LINK, "Go to current link") if (Currentbuf->firstLine == NULL) return; - l = Currentbuf->currentLine; #ifdef USE_IMAGE a = retrieveCurrentImg(Currentbuf); @@ -3051,15 +3162,13 @@ bufferA(void) } /* view inline image */ -DEFUN(followI, VIEW_IMAGE, "View image") +DEFUN(followI, VIEW_IMAGE, "Display image in viewer") { - Line *l; Anchor *a; Buffer *buf; if (Currentbuf->firstLine == NULL) return; - l = Currentbuf->currentLine; a = retrieveCurrentImg(Currentbuf); if (a == NULL) @@ -3309,7 +3418,6 @@ followForm(void) static void _followForm(int submit) { - Line *l; Anchor *a, *a2; char *p; FormItemList *fi, *f2; @@ -3318,7 +3426,6 @@ _followForm(int submit) if (Currentbuf->firstLine == NULL) return; - l = Currentbuf->currentLine; a = retrieveCurrentForm(Currentbuf); if (a == NULL) @@ -3423,7 +3530,6 @@ _followForm(int submit) case FORM_INPUT_BUTTON: do_submit: tmp = Strnew(); - tmp2 = Strnew(); multipart = (fi->parent->method == FORM_METHOD_POST && fi->parent->enctype == FORM_ENCTYPE_MULTIPART); query_from_followform(&tmp, fi, multipart); @@ -3501,7 +3607,7 @@ _followForm(int submit) } /* go to the top anchor */ -DEFUN(topA, LINK_BEGIN, "Go to the first link") +DEFUN(topA, LINK_BEGIN, "Move to the first hyperlink") { HmarkerList *hl = Currentbuf->hmarklist; BufferPoint *po; @@ -3534,7 +3640,7 @@ DEFUN(topA, LINK_BEGIN, "Go to the first link") } /* go to the last anchor */ -DEFUN(lastA, LINK_END, "Go to the last link") +DEFUN(lastA, LINK_END, "Move to the last hyperlink") { HmarkerList *hl = Currentbuf->hmarklist; BufferPoint *po; @@ -3568,26 +3674,53 @@ DEFUN(lastA, LINK_END, "Go to the last link") displayBuffer(Currentbuf, B_NORMAL); } +/* go to the nth anchor */ +DEFUN(nthA, LINK_N, "Go to the nth link") +{ + HmarkerList *hl = Currentbuf->hmarklist; + BufferPoint *po; + Anchor *an; + + int n = searchKeyNum(); + if (n < 0 || n > hl->nmark) return; + + if (Currentbuf->firstLine == NULL) + return; + if (!hl || hl->nmark == 0) + return; + + po = hl->marks + n-1; + an = retrieveAnchor(Currentbuf->href, po->line, po->pos); + if (an == NULL) + an = retrieveAnchor(Currentbuf->formitem, po->line, po->pos); + if (an == NULL) return; + + gotoLine(Currentbuf, po->line); + Currentbuf->pos = po->pos; + arrangeCursor(Currentbuf); + displayBuffer(Currentbuf, B_NORMAL); +} + /* go to the next anchor */ -DEFUN(nextA, NEXT_LINK, "Move to next link") +DEFUN(nextA, NEXT_LINK, "Move to the next hyperlink") { _nextA(FALSE); } /* go to the previous anchor */ -DEFUN(prevA, PREV_LINK, "Move to previous link") +DEFUN(prevA, PREV_LINK, "Move to the previous hyperlink") { _prevA(FALSE); } /* go to the next visited anchor */ -DEFUN(nextVA, NEXT_VISITED, "Move to next visited link") +DEFUN(nextVA, NEXT_VISITED, "Move to the next visited hyperlink") { _nextA(TRUE); } /* go to the previous visited anchor */ -DEFUN(prevVA, PREV_VISITED, "Move to previous visited link") +DEFUN(prevVA, PREV_VISITED, "Move to the previous visited hyperlink") { _prevA(TRUE); } @@ -3863,43 +3996,43 @@ nextY(int d) } /* go to the next left anchor */ -DEFUN(nextL, NEXT_LEFT, "Move to next left link") +DEFUN(nextL, NEXT_LEFT, "Move left to the next hyperlink") { nextX(-1, 0); } /* go to the next left-up anchor */ -DEFUN(nextLU, NEXT_LEFT_UP, "Move to next left (or upward) link") +DEFUN(nextLU, NEXT_LEFT_UP, "Move left or upward to the next hyperlink") { nextX(-1, -1); } /* go to the next right anchor */ -DEFUN(nextR, NEXT_RIGHT, "Move to next right link") +DEFUN(nextR, NEXT_RIGHT, "Move right to the next hyperlink") { nextX(1, 0); } /* go to the next right-down anchor */ -DEFUN(nextRD, NEXT_RIGHT_DOWN, "Move to next right (or downward) link") +DEFUN(nextRD, NEXT_RIGHT_DOWN, "Move right or downward to the next hyperlink") { nextX(1, 1); } /* go to the next downward anchor */ -DEFUN(nextD, NEXT_DOWN, "Move to next downward link") +DEFUN(nextD, NEXT_DOWN, "Move downward to the next hyperlink") { nextY(1); } /* go to the next upward anchor */ -DEFUN(nextU, NEXT_UP, "Move to next upward link") +DEFUN(nextU, NEXT_UP, "Move upward to the next hyperlink") { nextY(-1); } /* go to the next bufferr */ -DEFUN(nextBf, NEXT, "Move to next buffer") +DEFUN(nextBf, NEXT, "Switch to the next buffer") { Buffer *buf; int i; @@ -3917,7 +4050,7 @@ DEFUN(nextBf, NEXT, "Move to next buffer") } /* go to the previous bufferr */ -DEFUN(prevBf, PREV, "Move to previous buffer") +DEFUN(prevBf, PREV, "Switch to the previous buffer") { Buffer *buf; int i; @@ -3959,7 +4092,7 @@ checkBackBuffer(Buffer *buf) } /* delete current buffer and back to the previous buffer */ -DEFUN(backBf, BACK, "Back to previous buffer") +DEFUN(backBf, BACK, "Close current buffer and return to the one below in stack") { Buffer *buf = Currentbuf->linkBuffer[LB_N_FRAME]; @@ -3970,7 +4103,7 @@ DEFUN(backBf, BACK, "Back to previous buffer") } else /* FIXME: gettextize? */ - disp_message("Can't back...", TRUE); + disp_message("Can't go back...", TRUE); return; } @@ -4008,8 +4141,7 @@ DEFUN(backBf, BACK, "Back to previous buffer") displayBuffer(Currentbuf, B_FORCE_REDRAW); } -DEFUN(deletePrevBuf, DELETE_PREVBUF, - "Delete previous buffer (mainly for local-CGI)") +DEFUN(deletePrevBuf, DELETE_PREVBUF, "Delete previous buffer (mainly for local CGI-scripts)") { Buffer *buf = Currentbuf->nextBuffer; if (buf) @@ -4055,6 +4187,7 @@ goURL0(char *prompt, int relative) char *url, *referer; ParsedURL p_url, *current; Buffer *cur_buf = Currentbuf; + const int *no_referer_ptr; url = searchKeyData(); if (url == NULL) { @@ -4064,11 +4197,8 @@ goURL0(char *prompt, int relative) current = baseURL(Currentbuf); if (current) { char *c_url = parsedURL2Str(current)->ptr; - if (DefaultURLString == DEFAULT_URL_CURRENT) { - url = c_url; - if (DecodeURL) - url = url_unquote_conv(url, 0); - } + if (DefaultURLString == DEFAULT_URL_CURRENT) + url = url_decode2(c_url, NULL); else pushHist(hist, c_url); } @@ -4077,11 +4207,8 @@ goURL0(char *prompt, int relative) char *a_url; parseURL2(a->url, &p_url, current); a_url = parsedURL2Str(&p_url)->ptr; - if (DefaultURLString == DEFAULT_URL_LINK) { - url = a_url; - if (DecodeURL) - url = url_unquote_conv(url, Currentbuf->document_charset); - } + if (DefaultURLString == DEFAULT_URL_LINK) + url = url_decode2(a_url, Currentbuf); else pushHist(hist, a_url); } @@ -4089,15 +4216,22 @@ goURL0(char *prompt, int relative) if (url != NULL) SKIP_BLANKS(url); } -#ifdef USE_M17N - if (url != NULL) { - if ((relative || *url == '#') && Currentbuf->document_charset) - url = wc_conv_strict(url, InnerCharset, - Currentbuf->document_charset)->ptr; + if (relative) { + no_referer_ptr = query_SCONF_NO_REFERER_FROM(&Currentbuf->currentURL); + current = baseURL(Currentbuf); + if ((no_referer_ptr && *no_referer_ptr) || + current == NULL || + current->scheme == SCM_LOCAL || current->scheme == SCM_LOCAL_CGI) + referer = NO_REFERER; else - url = conv_to_system(url); + referer = parsedURL2Str(&Currentbuf->currentURL)->ptr; + url = url_encode(url, current, Currentbuf->document_charset); + } + else { + current = NULL; + referer = NULL; + url = url_encode(url, NULL, 0); } -#endif if (url == NULL || *url == '\0') { displayBuffer(Currentbuf, B_FORCE_REDRAW); return; @@ -4106,14 +4240,6 @@ goURL0(char *prompt, int relative) gotoLabel(url + 1); return; } - if (relative) { - current = baseURL(Currentbuf); - referer = parsedURL2Str(&Currentbuf->currentURL)->ptr; - } - else { - current = NULL; - referer = NULL; - } parseURL2(url, &p_url, current); pushHashHist(URLHist, parsedURL2Str(&p_url)->ptr); cmd_loadURL(url, current, referer, NULL); @@ -4121,12 +4247,29 @@ goURL0(char *prompt, int relative) pushHashHist(URLHist, parsedURL2Str(&Currentbuf->currentURL)->ptr); } -DEFUN(goURL, GOTO, "Go to URL") +DEFUN(goURL, GOTO, "Open specified document in a new buffer") { goURL0("Goto URL: ", FALSE); } -DEFUN(gorURL, GOTO_RELATIVE, "Go to relative URL") +DEFUN(goHome, GOTO_HOME, "Open home page in a new buffer") +{ + char *url; + if ((url = getenv("HTTP_HOME")) != NULL || + (url = getenv("WWW_HOME")) != NULL) { + ParsedURL p_url; + Buffer *cur_buf = Currentbuf; + SKIP_BLANKS(url); + url = url_encode(url, NULL, 0); + parseURL2(url, &p_url, NULL); + pushHashHist(URLHist, parsedURL2Str(&p_url)->ptr); + cmd_loadURL(url, NULL, NULL, NULL); + if (Currentbuf != cur_buf) /* success */ + pushHashHist(URLHist, parsedURL2Str(&Currentbuf->currentURL)->ptr); + } +} + +DEFUN(gorURL, GOTO_RELATIVE, "Go to relative address") { goURL0("Goto relative URL: ", TRUE); } @@ -4151,14 +4294,14 @@ cmd_loadBuffer(Buffer *buf, int prop, int linkid) } /* load bookmark */ -DEFUN(ldBmark, BOOKMARK VIEW_BOOKMARK, "Read bookmark") +DEFUN(ldBmark, BOOKMARK VIEW_BOOKMARK, "View bookmarks") { cmd_loadURL(BookmarkFile, NULL, NO_REFERER, NULL); } /* Add current to bookmark */ -DEFUN(adBmark, ADD_BOOKMARK, "Add current page to bookmark") +DEFUN(adBmark, ADD_BOOKMARK, "Add current page to bookmarks") { Str tmp; FormList *request; @@ -4188,7 +4331,7 @@ DEFUN(adBmark, ADD_BOOKMARK, "Add current page to bookmark") } /* option setting */ -DEFUN(ldOpt, OPTIONS, "Option setting panel") +DEFUN(ldOpt, OPTIONS, "Display options setting panel") { cmd_loadBuffer(load_option_panel(), BP_NO_URL, LB_NOLINK); } @@ -4223,7 +4366,7 @@ DEFUN(msgs, MSGS, "Display error messages") } /* page info */ -DEFUN(pginfo, INFO, "View info of current document") +DEFUN(pginfo, INFO, "Display information about the current document") { Buffer *buf; @@ -4291,7 +4434,7 @@ follow_map(struct parsed_tagarg *arg) #ifdef USE_MENU /* link menu */ -DEFUN(linkMn, LINK_MENU, "Popup link element menu") +DEFUN(linkMn, LINK_MENU, "Pop up link element menu") { LinkList *l = link_menu(Currentbuf); ParsedURL p_url; @@ -4329,26 +4472,25 @@ anchorMn(Anchor *(*menu_func) (Buffer *), int go) } /* accesskey */ -DEFUN(accessKey, ACCESSKEY, "Popup acceskey menu") +DEFUN(accessKey, ACCESSKEY, "Pop up accesskey menu") { anchorMn(accesskey_menu, TRUE); } /* list menu */ -DEFUN(listMn, LIST_MENU, "Popup link list menu and go to selected link") +DEFUN(listMn, LIST_MENU, "Pop up menu for hyperlinks to browse to") { anchorMn(list_menu, TRUE); } -DEFUN(movlistMn, MOVE_LIST_MENU, - "Popup link list menu and move cursor to selected link") +DEFUN(movlistMn, MOVE_LIST_MENU, "Pop up menu to navigate between hyperlinks") { anchorMn(list_menu, FALSE); } #endif /* link,anchor,image list */ -DEFUN(linkLst, LIST, "Show all links and images") +DEFUN(linkLst, LIST, "Show all URLs referenced") { Buffer *buf; @@ -4375,14 +4517,14 @@ DEFUN(cooLst, COOKIE, "View cookie list") #ifdef USE_HISTORY /* History page */ -DEFUN(ldHist, HISTORY, "View history of URL") +DEFUN(ldHist, HISTORY, "Show browsing history") { cmd_loadBuffer(historyBuffer(URLHist), BP_NO_URL, LB_NOLINK); } #endif /* USE_HISTORY */ /* download HREF link */ -DEFUN(svA, SAVE_LINK, "Save link to file") +DEFUN(svA, SAVE_LINK, "Save hyperlink target") { CurrentKeyData = NULL; /* not allowed in w3m-control: */ do_download = TRUE; @@ -4391,7 +4533,7 @@ DEFUN(svA, SAVE_LINK, "Save link to file") } /* download IMG link */ -DEFUN(svI, SAVE_IMAGE, "Save image to file") +DEFUN(svI, SAVE_IMAGE, "Save inline image") { CurrentKeyData = NULL; /* not allowed in w3m-control: */ do_download = TRUE; @@ -4400,7 +4542,7 @@ DEFUN(svI, SAVE_IMAGE, "Save image to file") } /* save buffer */ -DEFUN(svBuf, PRINT SAVE_SCREEN, "Save rendered document to file") +DEFUN(svBuf, PRINT SAVE_SCREEN, "Save rendered document") { char *qfile = NULL, *file; FILE *f; @@ -4449,7 +4591,7 @@ DEFUN(svBuf, PRINT SAVE_SCREEN, "Save rendered document to file") } /* save source */ -DEFUN(svSrc, DOWNLOAD SAVE, "Save document source to file") +DEFUN(svSrc, DOWNLOAD SAVE, "Save document source") { char *file; @@ -4510,8 +4652,7 @@ _peekURL(int only_img) s = parsedURL2Str(&pu); } if (DecodeURL) - s = Strnew_charp(url_unquote_conv - (s->ptr, Currentbuf->document_charset)); + s = Strnew_charp(url_decode2(s->ptr, Currentbuf)); #ifdef USE_M17N s = checkType(s, &pp, NULL); p = NewAtom_N(Lineprop, s->length); @@ -4529,13 +4670,13 @@ _peekURL(int only_img) } /* peek URL */ -DEFUN(peekURL, PEEK_LINK, "Peek link URL") +DEFUN(peekURL, PEEK_LINK, "Show target address") { _peekURL(0); } /* peek URL of image */ -DEFUN(peekIMG, PEEK_IMG, "Peek image URL") +DEFUN(peekIMG, PEEK_IMG, "Show image address") { _peekURL(1); } @@ -4549,7 +4690,7 @@ currentURL(void) return parsedURL2Str(&Currentbuf->currentURL); } -DEFUN(curURL, PEEK, "Peek current URL") +DEFUN(curURL, PEEK, "Show current address") { static Str s = NULL; #ifdef USE_M17N @@ -4570,7 +4711,7 @@ DEFUN(curURL, PEEK, "Peek current URL") offset = 0; s = currentURL(); if (DecodeURL) - s = Strnew_charp(url_unquote_conv(s->ptr, 0)); + s = Strnew_charp(url_decode2(s->ptr, NULL)); #ifdef USE_M17N s = checkType(s, &pp, NULL); p = NewAtom_N(Lineprop, s->length); @@ -4588,7 +4729,7 @@ DEFUN(curURL, PEEK, "Peek current URL") } /* view HTML source */ -DEFUN(vwSrc, SOURCE VIEW, "View HTML source") +DEFUN(vwSrc, SOURCE VIEW, "Toggle between HTML shown or processed") { Buffer *buf; @@ -4679,7 +4820,7 @@ DEFUN(vwSrc, SOURCE VIEW, "View HTML source") } /* reload */ -DEFUN(reload, RELOAD, "Reload buffer") +DEFUN(reload, RELOAD, "Load current document anew") { Buffer *buf, *fbuf = NULL, sbuf; #ifdef USE_M17N @@ -4804,7 +4945,7 @@ DEFUN(reload, RELOAD, "Reload buffer") } /* reshape */ -DEFUN(reshape, RESHAPE, "Re-render buffer") +DEFUN(reshape, RESHAPE, "Re-render document") { Currentbuf->need_reshape = TRUE; reshapeBuffer(Currentbuf); @@ -4846,7 +4987,7 @@ change_charset(struct parsed_tagarg *arg) _docCSet(charset); } -DEFUN(docCSet, CHARSET, "Change the current document charset") +DEFUN(docCSet, CHARSET, "Change the character encoding for the current document") { char *cs; wc_ces charset; @@ -4864,7 +5005,7 @@ DEFUN(docCSet, CHARSET, "Change the current document charset") _docCSet(charset); } -DEFUN(defCSet, DEFAULT_CHARSET, "Change the default document charset") +DEFUN(defCSet, DEFAULT_CHARSET, "Change the default character encoding") { char *cs; wc_ces charset; @@ -4915,13 +5056,13 @@ chkURLBuffer(Buffer *buf) buf->check_url |= CHK_URL; } -DEFUN(chkURL, MARK_URL, "Mark URL-like strings as anchors") +DEFUN(chkURL, MARK_URL, "Turn URL-like strings into hyperlinks") { chkURLBuffer(Currentbuf); displayBuffer(Currentbuf, B_FORCE_REDRAW); } -DEFUN(chkWORD, MARK_WORD, "Mark current word as anchor") +DEFUN(chkWORD, MARK_WORD, "Turn current word into hyperlink") { char *p; int spos, epos; @@ -4948,15 +5089,15 @@ chkNMIDBuffer(Buffer *buf) buf->check_url |= CHK_NMID; } -DEFUN(chkNMID, MARK_MID, "Mark Message-ID-like strings as anchors") +DEFUN(chkNMID, MARK_MID, "Turn Message-ID-like strings into hyperlinks") { chkNMIDBuffer(Currentbuf); displayBuffer(Currentbuf, B_FORCE_REDRAW); } #endif /* USE_NNTP */ -/* render frame */ -DEFUN(rFrame, FRAME, "Render frame") +/* render frames */ +DEFUN(rFrame, FRAME, "Toggle rendering HTML frames") { Buffer *buf; @@ -5010,6 +5151,24 @@ invoke_browser(char *url) case 3: browser = ExtBrowser3; break; + case 4: + browser = ExtBrowser4; + break; + case 5: + browser = ExtBrowser5; + break; + case 6: + browser = ExtBrowser6; + break; + case 7: + browser = ExtBrowser7; + break; + case 8: + browser = ExtBrowser8; + break; + case 9: + browser = ExtBrowser9; + break; } if (browser == NULL || *browser == '\0') { browser = inputStr("Browse command: ", NULL); @@ -5038,7 +5197,7 @@ invoke_browser(char *url) displayBuffer(Currentbuf, B_FORCE_REDRAW); } -DEFUN(extbrz, EXTERN, "Execute external browser") +DEFUN(extbrz, EXTERN, "Display using an external browser") { if (Currentbuf->bufferprop & BP_INTERNAL) { /* FIXME: gettextize? */ @@ -5055,7 +5214,7 @@ DEFUN(extbrz, EXTERN, "Execute external browser") invoke_browser(parsedURL2Str(&Currentbuf->currentURL)->ptr); } -DEFUN(linkbrz, EXTERN_LINK, "View current link using external browser") +DEFUN(linkbrz, EXTERN_LINK, "Display target using an external browser") { Anchor *a; ParsedURL pu; @@ -5070,7 +5229,7 @@ DEFUN(linkbrz, EXTERN_LINK, "View current link using external browser") } /* show current line number and number of lines in the entire document */ -DEFUN(curlno, LINE_INFO, "Show current line number") +DEFUN(curlno, LINE_INFO, "Display current position in document") { Line *l = Currentbuf->currentLine; Str tmp; @@ -5362,7 +5521,7 @@ process_mouse(int btn, int x, int y) } } -DEFUN(msToggle, MOUSE_TOGGLE, "Toggle activity of mouse") +DEFUN(msToggle, MOUSE_TOGGLE, "Toggle mouse support") { if (use_mouse) { use_mouse = FALSE; @@ -5398,6 +5557,60 @@ DEFUN(mouse, MOUSE, "mouse operation") process_mouse(btn, x, y); } +DEFUN(sgrmouse, SGRMOUSE, "SGR 1006 mouse operation") +{ + int btn = 0, x = 0, y = 0; + unsigned char c; + + do { + c = getch(); + if (IS_DIGIT(c)) + btn = btn * 10 + c - '0'; + else if (c == ';') + break; + else + return; + } while (1); + +#if defined(__CYGWIN__) && CYGWIN_VERSION_DLL_MAJOR < 1005 + if (cygwin_mouse_btn_swapped) { + if (btn == MOUSE_BTN2_DOWN) + btn = MOUSE_BTN3_DOWN; + else if (btn == MOUSE_BTN3_DOWN) + btn = MOUSE_BTN2_DOWN; + }; +#endif + + do { + c = getch(); + if (IS_DIGIT(c)) + x = x * 10 + c - '0'; + else if (c == ';') + break; + else + return; + } while (1); + if (x>0) x--; + + do { + c = getch(); + if (IS_DIGIT(c)) + y = y * 10 + c - '0'; + else if (c == 'M') + break; + else if (c == 'm') { + btn |= 3; + break; + } else + return; + } while (1); + if (y>0) y--; + + if (x < 0 || x >= COLS || y < 0 || y > LASTLINE) + return; + process_mouse(btn, x, y); +} + #ifdef USE_GPM int gpm_process_mouse(Gpm_Event * event, void *data) @@ -5451,7 +5664,7 @@ sysm_process_mouse(int x, int y, int nbs, int obs) } #endif /* USE_SYSMOUSE */ -DEFUN(movMs, MOVE_MOUSE, "Move cursor to mouse cursor (for mouse action)") +DEFUN(movMs, MOVE_MOUSE, "Move cursor to mouse pointer") { if (!mouse_action.in_action) return; @@ -5473,7 +5686,7 @@ DEFUN(movMs, MOVE_MOUSE, "Move cursor to mouse cursor (for mouse action)") #define FRAME_WIDTH 1 #endif -DEFUN(menuMs, MENU_MOUSE, "Popup menu at mouse cursor (for mouse action)") +DEFUN(menuMs, MENU_MOUSE, "Pop up menu at mouse pointer") { if (!mouse_action.in_action) return; @@ -5490,7 +5703,7 @@ DEFUN(menuMs, MENU_MOUSE, "Popup menu at mouse cursor (for mouse action)") } #endif -DEFUN(tabMs, TAB_MOUSE, "Move to tab on mouse cursor (for mouse action)") +DEFUN(tabMs, TAB_MOUSE, "Select tab by mouse action") { TabBuffer *tab; @@ -5503,8 +5716,7 @@ DEFUN(tabMs, TAB_MOUSE, "Move to tab on mouse cursor (for mouse action)") displayBuffer(Currentbuf, B_FORCE_REDRAW); } -DEFUN(closeTMs, CLOSE_TAB_MOUSE, - "Close tab on mouse cursor (for mouse action)") +DEFUN(closeTMs, CLOSE_TAB_MOUSE, "Close tab at mouse pointer") { TabBuffer *tab; @@ -5518,12 +5730,12 @@ DEFUN(closeTMs, CLOSE_TAB_MOUSE, } #endif /* USE_MOUSE */ -DEFUN(dispVer, VERSION, "Display version of w3m") +DEFUN(dispVer, VERSION, "Display the version of w3m") { disp_message(Sprintf("w3m version %s", w3m_version)->ptr, TRUE); } -DEFUN(wrapToggle, WRAP_TOGGLE, "Toggle wrap search mode") +DEFUN(wrapToggle, WRAP_TOGGLE, "Toggle wrapping mode in searches") { if (WrapSearch) { WrapSearch = FALSE; @@ -5604,7 +5816,7 @@ execdict(char *word) disp_message("Execution failed", TRUE); return; } - else { + else if (buf != NO_BUFFER) { buf->filename = w; buf->buffername = Sprintf("%s %s", DICTBUFFERNAME, word)->ptr; if (buf->type == NULL) @@ -5671,7 +5883,7 @@ set_buffer_environ(Buffer *buf) set_environ("W3M_CURRENT_FORM", form2str((FormItemList *)a->url)); else set_environ("W3M_CURRENT_FORM", ""); - set_environ("W3M_CURRENT_LINE", Sprintf("%d", + set_environ("W3M_CURRENT_LINE", Sprintf("%ld", l->real_linenumber)->ptr); set_environ("W3M_CURRENT_COLUMN", Sprintf("%d", buf->currentColumn + @@ -5747,8 +5959,14 @@ deleteFiles() Firstbuf = buf; } } - while ((f = popText(fileToDelete)) != NULL) + while ((f = popText(fileToDelete)) != NULL) { unlink(f); + if (enable_inline_image == 2 && strcmp(f+strlen(f)-4, ".gif") == 0) { + Str firstframe = Strnew_charp(f); + Strcat_charp(firstframe, "-1"); + unlink(firstframe->ptr); + } + } } void @@ -5769,10 +5987,17 @@ w3m_exit(int i) #ifdef __MINGW32_VERSION WSACleanup(); #endif +#ifdef HAVE_MKDTEMP + if (no_rc_dir && tmp_dir != rc_dir) + if (rmdir(tmp_dir) != 0) { + fprintf(stderr, "Can't remove temporary directory (%s)!\n", tmp_dir); + exit(1); + } +#endif exit(i); } -DEFUN(execCmd, COMMAND, "Execute w3m command(s)") +DEFUN(execCmd, COMMAND, "Invoke w3m function(s)") { char *data, *p; int cmd; @@ -5900,7 +6125,7 @@ setAlarmEvent(AlarmEvent * event, int sec, short status, int cmd, void *data) } #endif -DEFUN(reinit, REINIT, "Reload configuration files") +DEFUN(reinit, REINIT, "Reload configuration file") { char *resource = searchKeyData(); @@ -5969,8 +6194,7 @@ DEFUN(reinit, REINIT, "Reload configuration files") ptr, FALSE); } -DEFUN(defKey, DEFINE_KEY, - "Define a binding between a key stroke and a user command") +DEFUN(defKey, DEFINE_KEY, "Define a binding between a key stroke combination and a command") { char *data; @@ -6031,7 +6255,7 @@ _newT(void) nTab++; } -DEFUN(newT, NEW_TAB, "Open new tab") +DEFUN(newT, NEW_TAB, "Open a new tab (with current document)") { _newT(); displayBuffer(Currentbuf, B_REDRAW_IMAGE); @@ -6142,7 +6366,7 @@ deleteTab(TabBuffer * tab) return FirstTab; } -DEFUN(closeT, CLOSE_TAB, "Close current tab") +DEFUN(closeT, CLOSE_TAB, "Close tab") { TabBuffer *tab; @@ -6157,7 +6381,7 @@ DEFUN(closeT, CLOSE_TAB, "Close current tab") displayBuffer(Currentbuf, B_REDRAW_IMAGE); } -DEFUN(nextT, NEXT_TAB, "Move to next tab") +DEFUN(nextT, NEXT_TAB, "Switch to the next tab") { int i; @@ -6172,7 +6396,7 @@ DEFUN(nextT, NEXT_TAB, "Move to next tab") displayBuffer(Currentbuf, B_REDRAW_IMAGE); } -DEFUN(prevT, PREV_TAB, "Move to previous tab") +DEFUN(prevT, PREV_TAB, "Switch to the previous tab") { int i; @@ -6236,7 +6460,7 @@ followTab(TabBuffer * tab) displayBuffer(Currentbuf, B_FORCE_REDRAW); } -DEFUN(tabA, TAB_LINK, "Open current link on new tab") +DEFUN(tabA, TAB_LINK, "Follow current hyperlink in a new tab") { followTab(prec_num ? numTab(PREC_NUM) : NULL); } @@ -6277,13 +6501,13 @@ tabURL0(TabBuffer * tab, char *prompt, int relative) displayBuffer(Currentbuf, B_FORCE_REDRAW); } -DEFUN(tabURL, TAB_GOTO, "Open URL on new tab") +DEFUN(tabURL, TAB_GOTO, "Open specified document in a new tab") { tabURL0(prec_num ? numTab(PREC_NUM) : NULL, "Goto URL on new tab: ", FALSE); } -DEFUN(tabrURL, TAB_GOTO_RELATIVE, "Open relative URL on new tab") +DEFUN(tabrURL, TAB_GOTO_RELATIVE, "Open relative address in a new tab") { tabURL0(prec_num ? numTab(PREC_NUM) : NULL, "Goto relative URL on new tab: ", TRUE); @@ -6328,7 +6552,7 @@ moveTab(TabBuffer * t, TabBuffer * t2, int right) displayBuffer(Currentbuf, B_FORCE_REDRAW); } -DEFUN(tabR, TAB_RIGHT, "Move current tab right") +DEFUN(tabR, TAB_RIGHT, "Move right along the tab bar") { TabBuffer *tab; int i; @@ -6338,7 +6562,7 @@ DEFUN(tabR, TAB_RIGHT, "Move current tab right") moveTab(CurrentTab, tab ? tab : LastTab, TRUE); } -DEFUN(tabL, TAB_LEFT, "Move current tab left") +DEFUN(tabL, TAB_LEFT, "Move left along the tab bar") { TabBuffer *tab; int i; @@ -6547,7 +6771,7 @@ stopDownload(void) } /* download panel */ -DEFUN(ldDL, DOWNLOAD_LIST, "Display download list panel") +DEFUN(ldDL, DOWNLOAD_LIST, "Display downloads panel") { Buffer *buf; int replace = FALSE, new_tab = FALSE; @@ -6665,3 +6889,37 @@ DEFUN(redoPos, REDO, "Cancel the last undo") for (i = 0; i < PREC_NUM && b->next; i++, b = b->next) ; resetPos(b); } + +DEFUN(cursorTop, CURSOR_TOP, "Move cursor to the top of the screen") +{ + if (Currentbuf->firstLine == NULL) + return; + Currentbuf->currentLine = lineSkip(Currentbuf, Currentbuf->topLine, + 0, FALSE); + arrangeLine(Currentbuf); + displayBuffer(Currentbuf, B_NORMAL); +} + +DEFUN(cursorMiddle, CURSOR_MIDDLE, "Move cursor to the middle of the screen") +{ + int offsety; + if (Currentbuf->firstLine == NULL) + return; + offsety = (Currentbuf->LINES - 1) / 2; + Currentbuf->currentLine = currentLineSkip(Currentbuf, Currentbuf->topLine, + offsety, FALSE); + arrangeLine(Currentbuf); + displayBuffer(Currentbuf, B_NORMAL); +} + +DEFUN(cursorBottom, CURSOR_BOTTOM, "Move cursor to the bottom of the screen") +{ + int offsety; + if (Currentbuf->firstLine == NULL) + return; + offsety = Currentbuf->LINES - 1; + Currentbuf->currentLine = currentLineSkip(Currentbuf, Currentbuf->topLine, + offsety, FALSE); + arrangeLine(Currentbuf); + displayBuffer(Currentbuf, B_NORMAL); +} @@ -279,7 +279,7 @@ follow_map_panel(Buffer *buf, char *name) p = parsedURL2Str(&pu)->ptr; q = html_quote(p); if (DecodeURL) - p = html_quote(url_unquote_conv(p, buf->document_charset)); + p = html_quote(url_decode2(p, buf)); else p = q; Strcat_m_charp(mappage, "<tr valign=top><td><a href=\"", q, "\">", @@ -417,10 +417,7 @@ append_map_info(Buffer *buf, Str tmp, FormItemList *fi) continue; parseURL2(a->url, &pu, baseURL(buf)); q = html_quote(parsedURL2Str(&pu)->ptr); - if (DecodeURL) - p = html_quote(url_unquote_conv(a->url, buf->document_charset)); - else - p = html_quote(a->url); + p = html_quote(url_decode2(a->url, buf)); Strcat_m_charp(tmp, "<tr valign=top><td> <td><a href=\"", q, "\">", html_quote(*a->alt ? a->alt : mybasename(a->url)), @@ -457,10 +454,8 @@ append_link_info(Buffer *buf, Str html, LinkList * link) Strcat_charp(html, "[Rev]"); if (!l->url) url = "(empty)"; - else if (DecodeURL) - url = html_quote(url_unquote_conv(l->url, buf->document_charset)); else - url = html_quote(l->url); + url = html_quote(url_decode2(l->url, buf)); Strcat_m_charp(html, "<td>", url, NULL); if (l->ctype) Strcat_m_charp(html, " (", html_quote(l->ctype), ")", NULL); @@ -498,8 +493,7 @@ append_frame_info(Buffer *buf, Str html, struct frameset *set, int level) Strcat_charp(html, p); } if (DecodeURL) - p = html_quote(url_unquote_conv(frame.body->url, - buf->document_charset)); + p = html_quote(url_decode2(frame.body->url, buf)); else p = q; Strcat_m_charp(html, " ", p, "</a></pre_int><br>\n", NULL); @@ -550,9 +544,7 @@ page_info_panel(Buffer *buf) #ifdef USE_M17N Strcat_charp(tmp, "<form method=internal action=charset>"); #endif - p = parsedURL2Str(&buf->currentURL)->ptr; - if (DecodeURL) - p = url_unquote_conv(p, 0); + p = url_decode2(parsedURL2Str(&buf->currentURL)->ptr, NULL); Strcat_m_charp(tmp, "<table cellpadding=0>", "<tr valign=top><td nowrap>Title<td>", html_quote(buf->buffername), @@ -581,7 +573,7 @@ page_info_panel(Buffer *buf) "<tr valign=top><td nowrap>Number of lines<td>", Sprintf("%d", all)->ptr, "<tr valign=top><td nowrap>Transferred bytes<td>", - Sprintf("%d", buf->trbyte)->ptr, NULL); + Sprintf("%lu", (unsigned long)buf->trbyte)->ptr, NULL); a = retrieveCurrentAnchor(buf); if (a != NULL) { @@ -589,7 +581,7 @@ page_info_panel(Buffer *buf) p = parsedURL2Str(&pu)->ptr; q = html_quote(p); if (DecodeURL) - p = html_quote(url_unquote_conv(p, buf->document_charset)); + p = html_quote(url_decode2(p, buf)); else p = q; Strcat_m_charp(tmp, @@ -602,7 +594,7 @@ page_info_panel(Buffer *buf) p = parsedURL2Str(&pu)->ptr; q = html_quote(p); if (DecodeURL) - p = html_quote(url_unquote_conv(p, buf->document_charset)); + p = html_quote(url_decode2(p, buf)); else p = q; Strcat_m_charp(tmp, @@ -613,10 +605,7 @@ page_info_panel(Buffer *buf) if (a != NULL) { FormItemList *fi = (FormItemList *)a->url; p = form2str(fi); - if (DecodeURL) - p = html_quote(url_unquote_conv(p, buf->document_charset)); - else - p = html_quote(p); + p = html_quote(url_decode2(p, buf)); Strcat_m_charp(tmp, "<tr valign=top><td nowrap>Method/type of current form <td>", p, NULL); @@ -34,18 +34,12 @@ #include "config.h" #include "matrix.h" -#include <gc.h> +#include "alloc.h" /* * Macros from "fm.h". */ -#define New(type) ((type*)GC_MALLOC(sizeof(type))) -#define NewAtom(type) ((type*)GC_MALLOC_ATOMIC(sizeof(type))) -#define New_N(type,n) ((type*)GC_MALLOC((n)*sizeof(type))) -#define NewAtom_N(type,n) ((type*)GC_MALLOC_ATOMIC((n)*sizeof(type))) -#define Renew_N(type,ptr,n) ((type*)GC_REALLOC((ptr),(n)*sizeof(type))) - #define SWAPD(a,b) { double tmp = a; a = b; b = tmp; } #define SWAPI(a,b) { int tmp = a; a = b; b = tmp; } @@ -57,6 +57,7 @@ static int mCancel(char c); static int mClose(char c); static int mSusp(char c); static int mMouse(char c); +static int mSgrMouse(char c); static int mSrchF(char c); static int mSrchB(char c); static int mSrchN(char c); @@ -116,15 +117,15 @@ static int (*MenuEscKeymap[128]) (char c) = { mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, -/* O */ +/* O */ mNull, mNull, mNull, mNull, mNull, mNull, mNull, mEscB, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, -/* [ */ +/* [ */ mNull, mNull, mNull, mEscB, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, -/* v */ +/* v */ mNull, mNull, mNull, mNull, mNull, mNull, mPrev, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, }; @@ -137,10 +138,11 @@ static int (*MenuEscBKeymap[128]) (char c) = { mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, - mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, -/* A B C D E */ +/* 8 9 : ; < = > ? */ + mNull, mNull, mNull, mNull, mSgrMouse,mNull,mNull, mNull, +/* A B C D E */ mNull, mUp, mDown, mOk, mCancel,mClose, mNull, mNull, -/* L M */ +/* L M */ mNull, mNull, mNull, mNull, mClose, mMouse, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, mNull, @@ -359,7 +361,6 @@ geom_menu(Menu *menu, int x, int y, int mselect) if (win_w > COLS) { menu->width = COLS - 2 * FRAME_WIDTH; menu->width -= menu->width % FRAME_WIDTH; - win_w = menu->width + 2 * FRAME_WIDTH; } } menu->x = win_x + FRAME_WIDTH; @@ -1203,6 +1204,48 @@ mMouse(char c) return process_mMouse(btn, x, y); } +static int +mSgrMouse(char c) +{ + int btn = 0, x = 0, y = 0; + unsigned char ch; + + for (ch = getch(); IS_DIGIT(ch); ch = getch()) + btn = btn * 10 + ch - '0'; + if (ch != ';') + return MENU_NOTHING; + +#if defined (__CYGWIN__) && CYGWIN_VERSION_DLL_MAJOR < 1005 + if (cygwin_mouse_btn_swapped) { + if (btn == MOUSE_BTN2_DOWN) + btn = MOUSE_BTN3_DOWN; + else if (btn == MOUSE_BTN3_DOWN) + btn = MOUSE_BTN2_DOWN; + } +#endif + + for (ch = getch(); IS_DIGIT(ch); ch = getch()) + x = x * 10 + ch - '0'; + if (ch != ';') + return MENU_NOTHING; + if (x > 0) + x--; + + for (ch = getch(); IS_DIGIT(ch); ch = getch()) + y = y * 10 + ch - '0'; + if (ch == 'm') + btn |= 3; + else if (ch != 'M' && ch != ';') + return MENU_NOTHING; + if (y > 0) + y--; + + if (x < 0 || x >= COLS || y < 0 || y > LASTLINE) + return MENU_NOTHING; + + return process_mMouse(btn, x, y); +} + #ifdef USE_GPM static int gpm_process_menu_mouse(Gpm_Event * event, void *data) @@ -1261,6 +1304,12 @@ mMouse(char c) { return (MENU_NOTHING); } + +static int +mSgrMouse(char c) +{ + return (MENU_NOTHING); +} #endif /* not USE_MOUSE */ /* --- MenuFunctions (END) --- */ @@ -1289,7 +1338,7 @@ mainMenu(int x, int y) popupMenu(x, y, &MainMenu); } -DEFUN(mainMn, MAIN_MENU MENU, "Popup menu") +DEFUN(mainMn, MAIN_MENU MENU, "Pop up menu") { Menu *menu = &MainMenu; char *data; @@ -1317,7 +1366,7 @@ DEFUN(mainMn, MAIN_MENU MENU, "Popup menu") /* --- SelectMenu --- */ -DEFUN(selMn, SELECT_MENU, "Popup buffer selection menu") +DEFUN(selMn, SELECT_MENU, "Pop up buffer-stack menu") { int x = Currentbuf->cursorX + Currentbuf->rootX, y = Currentbuf->cursorY + Currentbuf->rootY; @@ -1365,9 +1414,7 @@ initSelectMenu(void) break; default: Strcat_char(str, ' '); - p = parsedURL2Str(&buf->currentURL)->ptr; - if (DecodeURL) - p = url_unquote_conv(p, 0); + p = url_decode2(parsedURL2Str(&buf->currentURL)->ptr, NULL); Strcat_charp(str, p); break; } @@ -1464,7 +1511,7 @@ smDelBuf(char c) /* --- SelTabMenu --- */ -DEFUN(tabMn, TAB_MENU, "Popup tab selection menu") +DEFUN(tabMn, TAB_MENU, "Pop up tab selection menu") { int x = Currentbuf->cursorX + Currentbuf->rootX, y = Currentbuf->cursorY + Currentbuf->rootY; @@ -1513,9 +1560,7 @@ initSelTabMenu(void) case SCM_MISSING: break; default: - p = parsedURL2Str(&buf->currentURL)->ptr; - if (DecodeURL) - p = url_unquote_conv(p, 0); + p = url_decode2(parsedURL2Str(&buf->currentURL)->ptr, NULL); Strcat_charp(str, p); break; } @@ -1696,7 +1741,7 @@ initMenu(void) FILE *mf; MenuList *list; - w3mMenuList = New_N(MenuList, 3); + w3mMenuList = New_N(MenuList, 4); w3mMenuList[0].id = "Main"; w3mMenuList[0].menu = &MainMenu; w3mMenuList[0].item = MainMenuItem; @@ -1845,10 +1890,8 @@ link_menu(Buffer *buf) Strcat_charp(str, " "); if (!l->url) p = ""; - else if (DecodeURL) - p = url_unquote_conv(l->url, buf->document_charset); else - p = l->url; + p = url_decode2(l->url, buf); Strcat_charp(str, p); label[i] = str->ptr; if (len < str->length) @@ -1913,6 +1956,7 @@ accesskey_menu(Buffer *buf) } label[nitem] = NULL; + set_menu_frame(); new_option_menu(&menu, label, &key, NULL); menu.initial = 0; @@ -2025,7 +2069,6 @@ list_menu(Buffer *buf) label[nitem] = NULL; set_menu_frame(); - set_menu_frame(); new_option_menu(&menu, label, &key, NULL); menu.initial = 0; @@ -64,12 +64,22 @@ ha2d(char x, char y) Str decodeB(char **ww) { + struct growbuf gb; + + growbuf_init(&gb); + decodeB_to_growbuf(&gb, ww); + return growbuf_to_Str(&gb); +} + +void +decodeB_to_growbuf(struct growbuf *gb, char **ww) +{ unsigned char c[4]; char *wp = *ww; char d[3]; int i, n_pad; - Str ap = Strnew_size(strlen(wp)); + growbuf_reserve(gb, strlen(wp) + 1); n_pad = 0; while (1) { for (i = 0; i < 4; i++) { @@ -93,39 +103,50 @@ decodeB(char **ww) for (i = 0; i < 4; i++) { c[i] = c2e(c[i]); if (c[i] == BAD_BASE64) { - *ww = wp; - return ap; + goto last; } } d[0] = ((c[0] << 2) | (c[1] >> 4)); d[1] = ((c[1] << 4) | (c[2] >> 2)); d[2] = ((c[2] << 6) | c[3]); for (i = 0; i < 3 - n_pad; i++) { - Strcat_char(ap, d[i]); + GROWBUF_ADD_CHAR(gb, d[i]); } if (n_pad || *wp == '\0' || *wp == '?') break; } +last: + growbuf_reserve(gb, gb->length + 1); + gb->ptr[gb->length] = '\0'; *ww = wp; - return ap; + return; } Str decodeU(char **ww) { + struct growbuf gb; + + growbuf_init(&gb); + decodeU_to_growbuf(&gb, ww); + return growbuf_to_Str(&gb); +} + +void +decodeU_to_growbuf(struct growbuf *gb, char **ww) +{ unsigned char c1, c2; char *w = *ww; int n, i; - Str a; if (*w <= 0x20 || *w >= 0x60) - return Strnew_size(0); + return; n = *w - 0x20; - a = Strnew_size(n); + growbuf_reserve(gb, n + 1); for (w++, i = 2; *w != '\0' && n; n--) { c1 = (w[0] - 0x20) % 0x40; c2 = (w[1] - 0x20) % 0x40; - Strcat_char(a, (c1 << i) | (c2 >> (6 - i))); + gb->ptr[gb->length++] = (c1 << i) | (c2 >> (6 - i)); if (i == 6) { w += 2; i = 2; @@ -135,7 +156,8 @@ decodeU(char **ww) i += 2; } } - return a; + gb->ptr[gb->length] = '\0'; + return; } /* RFC2047 (4.2. The "Q" encoding) */ @@ -165,9 +187,19 @@ decodeQ(char **ww) Str decodeQP(char **ww) { + struct growbuf gb; + + growbuf_init(&gb); + decodeQP_to_growbuf(&gb, ww); + return growbuf_to_Str(&gb); +} + +void +decodeQP_to_growbuf(struct growbuf *gb, char **ww) +{ char *w = *ww; - Str a = Strnew_size(strlen(w)); + growbuf_reserve(gb, strlen(w) + 1); for (; *w != '\0'; w++) { if (*w == '=') { w++; @@ -180,15 +212,16 @@ decodeQP(char **ww) else { if (*w == '\0' || *(w + 1) == '\0') break; - Strcat_char(a, ha2d(*w, *(w + 1))); + gb->ptr[gb->length++] = ha2d(*w, *(w + 1)); w++; } } else - Strcat_char(a, *w); + gb->ptr[gb->length++] = *w; } + gb->ptr[gb->length] = '\0'; *ww = w; - return a; + return; } #ifdef USE_M17N @@ -76,13 +76,15 @@ news_close(News * news) static int news_open(News * news) { - int sock, status; + int sock, status, fd; sock = openSocket(news->host, "nntp", news->port); if (sock < 0) goto open_err; news->rf = newInputStream(sock); - news->wf = fdopen(dup(sock), "wb"); + if ((fd = dup(sock)) < 0) + goto open_err; + news->wf = fdopen(fd, "wb"); if (!news->rf || !news->wf) goto open_err; IStype(news->rf) |= IST_UNCLOSE; diff --git a/parsetagx.c b/parsetagx.c index 6b627d2..1cc7048 100644 --- a/parsetagx.c +++ b/parsetagx.c @@ -120,6 +120,7 @@ parse_tag(char **s, int internal) int i, attr_id = 0, nattr; /* Parse tag name */ + tagname[0] = '\0'; q = (*s) + 1; p = tagname; if (*q == '/') { @@ -221,6 +222,7 @@ parse_tag(char **s, int internal) int j, hidden=FALSE; for (j=0; j<i; j++) { if (tag->attrid[j] == ATTR_TYPE && + tag->value[j] && strcmp("hidden",tag->value[j]) == 0) { hidden=TRUE; break; diff --git a/po/.cvsignore b/po/.cvsignore deleted file mode 100644 index f817688..0000000 --- a/po/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -stamp-po -POTFILES -ja.gmo -Makefile -Makefile.in -remove-potcdate.sed diff --git a/po/CVS/Entries b/po/CVS/Entries deleted file mode 100644 index 1e7831b..0000000 --- a/po/CVS/Entries +++ /dev/null @@ -1,16 +0,0 @@ -/.cvsignore/1.2/Thu Sep 25 18:35:43 2003// -/LINGUAS/1.1/Wed Sep 24 18:35:06 2003// -/POTFILES.in/1.2/Wed Sep 24 18:35:06 2003// -/boldquot.sed/1.1/Tue Sep 23 18:42:25 2003// -/en@boldquot.header/1.1/Tue Sep 23 18:42:25 2003// -/en@quot.header/1.1/Tue Sep 23 18:42:25 2003// -/insert-header.sin/1.1/Tue Sep 23 18:42:25 2003// -/quot.sed/1.1/Tue Sep 23 18:42:25 2003// -/remove-potcdate.sin/1.1/Tue Sep 23 18:42:25 2003// -/Makevars/1.2/Tue Jan 4 09:22:28 2011// -/ChangeLog/1.2/Tue Jan 4 12:39:29 2011// -/Makefile.in.in/1.3/Tue Jan 4 12:39:29 2011// -/Rules-quot/1.2/Tue Jan 4 12:39:29 2011// -/ja.po/1.14/Sat Jan 15 04:29:58 2011// -/w3m.pot/1.14/Sat Jan 15 02:20:26 2011// -D diff --git a/po/CVS/Repository b/po/CVS/Repository deleted file mode 100644 index 139f7dd..0000000 --- a/po/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/po diff --git a/po/CVS/Root b/po/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/po/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m @@ -1,2 +1,2 @@ # Set of available languages. -ja +ja de zh_CN zh_TW diff --git a/po/Makefile.in.in b/po/Makefile.in.in index 83d8838..9d9691e 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -89,7 +89,7 @@ CATALOGS = @CATALOGS@ @lang=`echo $* | sed -e 's,.*/,,'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ - cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo + cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && if [ x$(GMSGFMT) != x: ] ; then mv t-$${lang}.gmo $${lang}.gmo ; fi .sin.sed: sed -e '/^#/d' $< > t-$@ @@ -153,14 +153,14 @@ $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ - --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --copyright-holder="$(COPYRIGHT_HOLDER)" \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ *) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ - --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --copyright-holder="$(COPYRIGHT_HOLDER)" \ --package-name="$${package_gnu}@PACKAGE@" \ --package-version='@VERSION@' \ --msgid-bugs-address="$$msgid_bugs_address" \ diff --git a/po/Makevars b/po/Makevars index 2f57810..0c4cb4d 100644 --- a/po/Makevars +++ b/po/Makevars @@ -18,7 +18,7 @@ XGETTEXT_OPTIONS = --from-code=EUC-JP --keyword=_ --keyword=N_ # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. -COPYRIGHT_HOLDER = Fumitoshi UKAI +COPYRIGHT_HOLDER = THE w3m'S COPYRIGHT HOLDER # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: @@ -34,7 +34,7 @@ COPYRIGHT_HOLDER = Fumitoshi UKAI # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. -MSGID_BUGS_ADDRESS = satodai@w3m.jp +MSGID_BUGS_ADDRESS = # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. diff --git a/po/POTFILES.in b/po/POTFILES.in index bc4ce87..fbb5ea9 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,9 +1,6 @@ # List of source files containing translatable strings. -# Copyright (C) 2003 Fumitoshi UKAI #main.c menu.c rc.c #w3mbookmark.c #w3mhelperpanel.c - - diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..a0afa27 --- /dev/null +++ b/po/de.po @@ -0,0 +1,944 @@ +# German translation of w3m +# Copyright (C) 2014 THE w3m'S COPYRIGHT HOLDER +# This file is distributed under the same license as the w3m package. +# Markus Hiereth <markus.hiereth@freenet.de>, 2014. +msgid "" +msgstr "" +"Project-Id-Version: w3m 0.5.3\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-24 19:21+0900\n" +"PO-Revision-Date: 2016-03-14 19:51+0900\n" +"Last-Translator: Tatsuya Kinoshita <tats@debian.org>\n" +"Language-Team: German <debian-l10n-german@lists.debian.org>\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" + +#: menu.c:269 +msgid " Back (b) " +msgstr " Zur端ck (b) " + +#: menu.c:270 +msgid " Select Buffer(s) " +msgstr " Puffer ausw辰hlen (s) " + +#: menu.c:272 +msgid " Select Tab (t) " +msgstr " Reiter ausw辰hlen (t) " + +#: menu.c:274 +msgid " View Source (v) " +msgstr " Codeansicht (v) " + +#: menu.c:275 +msgid " Edit Source (e) " +msgstr " Code bearbeiten (e) " + +#: menu.c:276 +msgid " Save Source (S) " +msgstr " Code speichern (S) " + +#: menu.c:277 +msgid " Reload (r) " +msgstr " Erneut laden (r) " + +#: menu.c:278 menu.c:285 menu.c:289 +msgid " ---------------- " +msgstr " ---------------------- " + +#: menu.c:279 +msgid " Go Link (a) " +msgstr " Ziel 旦ffnen.. (a) " + +#: menu.c:280 +msgid " on New Tab (n) " +msgstr " ..in neuem Reiter (n) " + +#: menu.c:281 +msgid " Save Link (A) " +msgstr " Ziel speichern (A) " + +#: menu.c:282 +msgid " View Image (i) " +msgstr " Bild anzeigen (i) " + +#: menu.c:283 +msgid " Save Image (I) " +msgstr " Bild speichern (I) " + +#: menu.c:284 +msgid " View Frame (f) " +msgstr " Frames zeigen (f) " + +#: menu.c:286 +msgid " Bookmark (B) " +msgstr " Lesezeichen (B) " + +#: menu.c:287 +msgid " Help (h) " +msgstr " Hilfe (h) " + +#: menu.c:288 +msgid " Option (o) " +msgstr " Einstellungen (o) " + +#: menu.c:290 +msgid " Quit (q) " +msgstr " Programm verlassen (q) " + +#: rc.c:62 +msgid "External Viewer Setup" +msgstr "Konfiguration f端r externe Anzeigeprogramme" + +#: rc.c:63 +msgid "Tab width in characters" +msgstr "Tabulatorbreite in Zeichen" + +#: rc.c:64 +msgid "Indent for HTML rendering" +msgstr "Einzug bei HTML-Darstellung" + +#: rc.c:65 +msgid "Number of pixels per character (4.0...32.0)" +msgstr "Anzahl von Pixeln pro Zeichen (4.0 bis 32.0)" + +#: rc.c:66 +msgid "Number of pixels per line (4.0...64.0)" +msgstr "Anzahl von Pixeln pro Zeile (4.0 bis 64.0)" + +# entsprechend Bescheibung aus MANUAL.html, mh 14.10.2014 +#: rc.c:67 +msgid "Number of remembered lines when used as a pager" +msgstr "Anzahl gemerkter, 端ber die Standardeingabe erhaltener Zeilen" + +#: rc.c:68 +msgid "Use URL history" +msgstr "URL-Chronik verwenden" + +#: rc.c:69 +msgid "Number of remembered URL" +msgstr "Anzahl von URLs in Chronik" + +#: rc.c:70 +msgid "Save URL history" +msgstr "URL-Chronik speichern" + +#: rc.c:71 +msgid "Render frames automatically" +msgstr "Frames selbstst辰ndig darstellen" + +#: rc.c:72 +msgid "Treat argument without scheme as URL" +msgstr "Eingabe ohne Protokoll-Pr辰fix als URL auffassen" + +#: rc.c:73 +msgid "Use _self as default target" +msgstr "_self als Standard-Zielfenster verwenden" + +#: rc.c:74 +msgid "Open link on new tab if target is _blank or _new" +msgstr "" +"Link in neuem Reiter 旦ffnen, falls f端r Zielfenster _blank oder _new " +"definiert ist" + +#: rc.c:75 +msgid "Open download list panel on new tab" +msgstr "Downloadliste in neuem Reiter 旦ffnen" + +#: rc.c:76 +msgid "Display link URL automatically" +msgstr "URL der Links selbstst辰ndig anzeigen" + +#: rc.c:77 +msgid "Display link numbers" +msgstr "Linknummern anzeigen" + +#: rc.c:78 +msgid "Display decoded URL" +msgstr "URL entschl端sselt anzeigen" + +#: rc.c:79 +msgid "Display current line number" +msgstr "Aktuelle Zeilennummer anzeigen" + +#: rc.c:80 +msgid "Display inline images" +msgstr "Eingebettete Bilder anzeigen" + +#: rc.c:81 +msgid "Display pseudo-ALTs for inline images with no ALT or TITLE string" +msgstr "Pseudo-ALTs zu eingebetteten Bildern ohne ALT oder TITLE anzeigen" + +#: rc.c:83 +msgid "Load inline images automatically" +msgstr "Eingebettete Bilder selbstst辰ndig laden" + +#: rc.c:84 +msgid "Maximum processes for parallel image loading" +msgstr "Anzahl zul辰ssiger Prozesse zum gleichzeitigen Laden von Bildern" + +#: rc.c:85 +msgid "Use external image viewer" +msgstr "Externen Bildbetrachter verwenden" + +#: rc.c:86 +msgid "Scale of image (%)" +msgstr "Bilder prozentual skalieren" + +#: rc.c:87 +msgid "External command to display image" +msgstr "Befehl f端r externen Bildbetrachter" + +#: rc.c:88 +msgid "Use link list of image map" +msgstr "Bei Grafiken mit eingebetteten Links Ziele auflisten" + +#: rc.c:90 +msgid "Display file names in multi-column format" +msgstr "Dateinamen auf Spalten verteilt anzeigen" + +#: rc.c:91 +msgid "Use ASCII equivalents to display entities" +msgstr "ASCII-Ersatz f端r in HTML benannte Zeichen verwenden" + +#: rc.c:92 +msgid "Character type for border of table and menu" +msgstr "Zeichen zum Einrahmen von Tabellen und Men端s" + +#: rc.c:93 +msgid "Display table borders, ignore value of BORDER" +msgstr "Zeige Tabellen gerahmt, BORDER-Wert ignorieren" + +#: rc.c:94 +msgid "Fold lines in TEXTAREA" +msgstr "In Eingabefeldern vom Typ TEXTAREA Texte umbrechen" + +#: rc.c:95 +msgid "Display INS, DEL, S and STRIKE element" +msgstr "Umsetzung der Elemente INS, DEL, S und STRIKE" + +#: rc.c:96 +msgid "Display with color" +msgstr "In Farbe anzeigen" + +#: rc.c:97 +msgid "Color of normal character" +msgstr "Farbe f端r normalen Text" + +#: rc.c:98 +msgid "Color of anchor" +msgstr "Farbe f端r Links / Element A" + +#: rc.c:99 +msgid "Color of image link" +msgstr "Farbe f端r Bilder / Element IMG" + +#: rc.c:100 +msgid "Color of form" +msgstr "Farbe f端r Eingaben / Element INPUT" + +#: rc.c:101 +msgid "Enable coloring of active link" +msgstr "Aktiven Link farblich hervorheben" + +#: rc.c:102 +msgid "Color of currently active link" +msgstr "Farbe des derzeit aktiven Links " + +#: rc.c:103 +msgid "Use visited link color" +msgstr "Besuchte Links farblich hervorheben" + +#: rc.c:104 +msgid "Color of visited link" +msgstr "Farbe f端r besuchte Links" + +#: rc.c:105 +msgid "Color of background" +msgstr "Hintergrundfarbe" + +#: rc.c:106 +msgid "Color of mark" +msgstr "Farbe f端r Textmarken" + +# msgstr "Farbe f端r Textmarkierungen" +#: rc.c:107 +msgid "Use proxy" +msgstr "Proxy verwenden" + +#: rc.c:108 +msgid "URL of HTTP proxy host" +msgstr "URL des HTTP-Proxy-Hosts" + +#: rc.c:110 +msgid "URL of HTTPS proxy host" +msgstr "URL des HTTPS-Proxy-Hosts" + +#: rc.c:113 +msgid "URL of GOPHER proxy host" +msgstr "URL des GOPHER-Proxy-Hosts" + +#: rc.c:115 +msgid "URL of FTP proxy host" +msgstr "URL des FTP-Proxy-Hosts" + +#: rc.c:116 +msgid "Domains to be accessed directly (no proxy)" +msgstr "Ohne Proxy, direkt zu kontaktierende Domains" + +#: rc.c:117 +msgid "Check noproxy by network address" +msgstr "" +"Direkten Datentransfer ohne Proxy mittels Netzwerkadresse sicherstellen" + +#: rc.c:118 +msgid "Disable cache" +msgstr "Zwischenspeicherung deaktivieren" + +#: rc.c:120 +msgid "News server" +msgstr "News-Server" + +#: rc.c:121 +msgid "Mode of news server" +msgstr "Modus des News-Servers" + +#: rc.c:122 +msgid "Number of news messages" +msgstr "News-Anzahl" + +#: rc.c:124 +msgid "Order of name resolution" +msgstr "Reihenfolge der Namens-Aufl旦sung" + +#: rc.c:125 +msgid "Directory corresponding to / (document root)" +msgstr "Wurzelverzeichnis f端r Dokumente (/)" + +#: rc.c:126 +msgid "Directory corresponding to /~user" +msgstr "Pfad zum Benutzerverzeichnis (~)" + +#: rc.c:127 +msgid "Directory corresponding to /cgi-bin" +msgstr "Verzeichnis f端r ausf端hrbare Skripte (cgi-bin)" + +#: rc.c:128 +msgid "Confirm when quitting with q" +msgstr "Das Programm erst nach Best辰tigung verlassen" + +#: rc.c:129 +msgid "Close tab if buffer is last when back" +msgstr "Reiter mit nur einem Puffer auf Zur端ck-Befehl hin schlieen" + +#: rc.c:131 +msgid "Enable mark operations" +msgstr "Arbeit mit Textmarken erm旦glichen" + +# msgstr "Arbeit mit Textmarkierungen erm旦glichen" +#: rc.c:133 +msgid "Enable Emacs-style line editing" +msgstr "Zeilen wie in Emacs bearbeiten" + +#: rc.c:134 +msgid "Space key triggers file completion while editing URLs" +msgstr "" + +#: rc.c:135 +msgid "Enable vi-like numeric prefix" +msgstr "Vorangestellte Zahlen wie in vi aktivieren" + +#: rc.c:136 +msgid "Move cursor to top line when going to label" +msgstr "Labels nach Aufsuchen immer oben positionieren" + +#: rc.c:137 +msgid "Move cursor to top line when moving to next page" +msgstr "Beim Umbl辰ttern Eingabemarke nach oben setzen" + +#: rc.c:138 +msgid "Fold lines of plain text file" +msgstr "Zeilen in Textdateien umbrechen" + +#: rc.c:139 +msgid "Show line numbers" +msgstr "Zeilennummern anzeigen" + +#: rc.c:140 +msgid "Show search string" +msgstr "Suchbegriff anzeigen" + +#: rc.c:141 +msgid "List of mime.types files" +msgstr "Liste der mime.types-Dateien" + +#: rc.c:142 +msgid "List of mailcap files" +msgstr "Liste der mailcap-Dateien" + +#: rc.c:143 +msgid "List of urimethodmap files" +msgstr "Liste von Dateien mit URI-Methode-Zuordnungen" + +#: rc.c:144 +msgid "Editor" +msgstr "Editor" + +#: rc.c:145 +msgid "Mailer" +msgstr "Mail-Programm" + +# korrespondiert mit Pulldown-Men端, daher verk端rzt. mh 09.10.2014 +#: rc.c:146 +msgid "How to call Mailer for mailto URLs with options" +msgstr "Umgang mit mailto-URLs" + +#: rc.c:147 +msgid "External browser" +msgstr "Externer browser" + +#: rc.c:148 +msgid "2nd external browser" +msgstr "Zweiter externer browser" + +#: rc.c:149 +msgid "3rd external browser" +msgstr "Dritter externer browser" + +#: rc.c:150 +msgid "4th external browser" +msgstr "Vierter externer browser" + +#: rc.c:151 +msgid "5th external browser" +msgstr "F端nfter externer browser" + +#: rc.c:152 +msgid "6th external browser" +msgstr "Sechster externer browser" + +#: rc.c:153 +msgid "7th external browser" +msgstr "Siebter externer browser" + +#: rc.c:154 +msgid "8th external browser" +msgstr "Achter externer browser" + +#: rc.c:155 +msgid "9th external browser" +msgstr "Neunter externer browser" + +# entsprechend file:///usr/share/doc/w3m/README.passwd +# Pr端fung beanstandete auch passwd_file mit Zugriffbytes 600, mh, 05.10.2014 +#: rc.c:156 +msgid "Disable secret file security check" +msgstr "Keine Pr端fung der Sicherheit bei Dateien mit geheimem Inhalt" + +#: rc.c:157 +msgid "Password file" +msgstr "Passwort-Datei" + +#: rc.c:158 +msgid "File for setting form on loading" +msgstr "Datei mit vordefinierten Eingaben f端r Formulare" + +#: rc.c:159 +msgid "File for preferences for each site" +msgstr "Datei mit adress-spezifischen Voreinstellungen" + +#: rc.c:160 +msgid "Password for anonymous FTP (your mail address)" +msgstr "Passwort f端r anonyme FTP-Anmeldung (Ihre Mailadresse)" + +#: rc.c:161 +msgid "Generate domain part of password for FTP" +msgstr "Domain-Teil des FTP-Passwortes erzeugen" + +#: rc.c:162 +msgid "User-Agent identification string" +msgstr "Browserkennung 端bermitteln" + +#: rc.c:163 +msgid "Accept-Encoding header" +msgstr "Accept-Encoding-Kopfzeile" + +#: rc.c:164 +msgid "Accept header" +msgstr "Accept-Kopfzeile" + +#: rc.c:165 +msgid "Accept-Language header" +msgstr "Accept-Language-Kopfzeile" + +#: rc.c:166 +msgid "Treat URL-like strings as links in all pages" +msgstr "URL-artige Zeichenketten auf allen Seiten als Links auffassen" + +#: rc.c:167 +msgid "Wrap search" +msgstr "Im Dokument umlaufend suchen" + +#: rc.c:168 +msgid "Display unseen objects (e.g. bgimage tag)" +msgstr "Nicht gezeigte Objekte melden (z.B. Hintergrundbild)" + +#: rc.c:169 +msgid "Uncompress compressed data automatically when downloading" +msgstr "Komprimierte Daten beim Download selbstst辰ndig dekomprimieren" + +# String nicht in Optionen-Men端 gefunden. mh, 05.10.2014 +#: rc.c:171 +msgid "Run external viewer in a separate session" +msgstr "Externe Anzeigeprogramme in eigener Sitzung laufen lassen" + +#: rc.c:173 +msgid "Run external viewer in the background" +msgstr "Externe Anzeigeprogramme im Hintergrund laufen lassen" + +#: rc.c:175 +msgid "Use external program for directory listing" +msgstr "Externes Programm zum Auflisten von Verzeichnissen verwenden" + +#: rc.c:176 +msgid "URL of directory listing command" +msgstr "URL des Befehls zum Auflisten von Verzeichnissen" + +#: rc.c:178 +msgid "Enable dictionary lookup through CGI" +msgstr "W旦rterbuchabfrage mittels CGI aktivieren" + +#: rc.c:179 +msgid "URL of dictionary lookup command" +msgstr "URL des Befehls zur W旦rterbuch-Abfrage" + +#: rc.c:181 +msgid "Display link name for images lacking ALT" +msgstr "Bei Bildern ohne ALT-Angabe Linkziel anzeigen" + +#: rc.c:182 +msgid "Index file for directories" +msgstr "Indexdatei f端r Verzeichnisse" + +#: rc.c:183 +msgid "Prepend http:// to URL automatically" +msgstr "Ziel-Eingaben gegebenenfalls http:// voranstellen" + +#: rc.c:184 +msgid "Default value for open-URL command" +msgstr "Vorgabewert bei der Adresseneingabe" + +#: rc.c:185 +msgid "Decode Content-Transfer-Encoding when saving" +msgstr "Beim Speichern entsprechend Content-Transfer-Encoding entschl端sseln" + +#: rc.c:186 +msgid "Preserve timestamp when saving" +msgstr "Zeitstempel beim Speichern erhalten" + +#: rc.c:188 +msgid "Enable mouse" +msgstr "Maus aktivieren" + +#: rc.c:189 +msgid "Scroll in reverse direction of mouse drag" +msgstr "Mausbewegungen entgegengesetzt scrollen" + +#: rc.c:190 +msgid "Behavior of wheel scroll speed" +msgstr "Umsetzung der Mausradbewegung" + +#: rc.c:191 +msgid "(A only)Scroll by # (%) of screen" +msgstr "(nur A) Um # % des Fensters scrollen" + +#: rc.c:192 +msgid "(B only)Scroll by # lines" +msgstr "(nur B) Um # Zeilen scrollen" + +#: rc.c:194 +msgid "Free memory of undisplayed buffers" +msgstr "Speicherplatz nicht angezeigter Puffer freigeben" + +#: rc.c:195 +msgid "Suppress `Referer:' header" +msgstr "Referer-Kopfzeile unterdr端cken" + +#: rc.c:196 +msgid "Search case-insensitively" +msgstr "Gro- und Kleinschreibung beim Suchen ignorieren" + +#: rc.c:197 +msgid "Use LESSOPEN" +msgstr "LESSOPEN verwenden" + +#: rc.c:200 +msgid "Perform SSL server verification" +msgstr "SSL-Server-Verifizierung durchf端hren" + +#: rc.c:201 +msgid "PEM encoded certificate file of client" +msgstr "PEM-kodierte Zertifikatsdatei des Clients" + +#: rc.c:202 +msgid "PEM encoded private key file of client" +msgstr "PEM-kodierte private Schl端sseldatei des Clients" + +#: rc.c:203 +msgid "Path to directory for PEM encoded certificates of CAs" +msgstr "Pfad zum Verzeichnis f端r PEM-kodierte Zertifikate von CAs" + +#: rc.c:204 +msgid "File consisting of PEM encoded certificates of CAs" +msgstr "Datei mit PEM-kodierten Zertifikaten von CAs" + +#: rc.c:206 +msgid "" +"List of forbidden SSL methods (2: SSLv2, 3: SSLv3, t: TLSv1.0, 5: TLSv1.1, " +"6: TLSv1.2, 7: TLSv1.3)" +msgstr "" +"Liste unzul辰ssiger SSL-Verfahren (2: SSLv2, 3: SSLv3, t: TLSv1.0, 5: " +"TLSv1.1, 6: TLSv1.2, 7: TLSv1.3)" + +#: rc.c:209 +msgid "Enable cookie processing" +msgstr "Cookie-Verarbeitung aktivieren" + +#: rc.c:210 +msgid "Print a message when receiving a cookie" +msgstr "Den Empfang von Cookies melden" + +#: rc.c:211 +msgid "Accept cookies" +msgstr "Cookies akzeptieren" + +#: rc.c:212 +msgid "Action to be taken on invalid cookie" +msgstr "Reaktion auf ung端ltiges Cookie" + +#: rc.c:213 +msgid "Domains to reject cookies from" +msgstr "Domains, deren Cookies abzulehnen sind" + +#: rc.c:214 +msgid "Domains to accept cookies from" +msgstr "Domains, deren Cookies akzeptiert werden" + +# Variable vom Typ String im Abschnitt Cookies-Einstellungen, mh 10.10.2014 +#: rc.c:215 +msgid "Domains to avoid [wrong number of dots]" +msgstr "Zu meidende Domains (falsche Anzahl von Punkten)" + +#: rc.c:217 +msgid "Number of redirections to follow" +msgstr "Anzahl zu akzeptierender Umleitungen" + +# Konfigurationsvariable vom Typ string, mh, 05.10.2014 +#: rc.c:218 +msgid "Enable processing of meta-refresh tag" +msgstr "Meta-Refresh-Element verarbeiten" + +#: rc.c:221 +msgid "Enable Migemo (Roma-ji search)" +msgstr "Romaji-Suche mittels Migemo aktivieren" + +#: rc.c:222 +msgid "Migemo command" +msgstr "Migemo-Befehl" + +#: rc.c:226 +msgid "Display charset" +msgstr "Zeichenkodierung der Anzeige" + +#: rc.c:227 +msgid "Default document charset" +msgstr "Zeichenkodierungs-Vorgabe f端r Dokumente" + +#: rc.c:228 +msgid "Automatic charset detect when loading" +msgstr "Selbstst辰ndige Erkennung der Zeichenkodierung beim Laden" + +#: rc.c:229 +msgid "System charset" +msgstr "Zeichenkodierung des Systems" + +#: rc.c:230 +msgid "System charset follows locale(LC_CTYPE)" +msgstr "Zeichenkodierung des Systems entsprechend Locale (LC_CTYPE)" + +# war zuvor +# msgstr "Halfdump mit der zur Anzeige benutzten Zeichenkodierung exportieren" +#: rc.c:231 +msgid "Output halfdump with display charset" +msgstr "Halfdump in der zur Anzeige benutzten Kodierung" + +# Konfigurationsvariable vom Typ boolean, mh, 05.10.2014 +#: rc.c:232 +msgid "Use multi column characters" +msgstr "Spalten端bergreifende Zeichen verwenden" + +#: rc.c:233 +msgid "Use combining characters" +msgstr "Kombinationszeichen verwenden" + +#: rc.c:234 +msgid "Use double width for some Unicode characters" +msgstr "Einzelnen Unicode-Zeichen zwei Spalten einr辰umen" + +#: rc.c:235 +msgid "Use Unicode language tags" +msgstr "Unicode-Sprach-Tags verwenden" + +#: rc.c:236 +msgid "Charset conversion using Unicode map" +msgstr "Zeichen in Unicode kodieren" + +#: rc.c:237 +msgid "Charset conversion when loading" +msgstr "Zeichenkodierung beim Laden anpassen" + +#: rc.c:238 +msgid "Adjust search string for document charset" +msgstr "Zu suchende Zeichenkette der Kodierung des Dokumentes anpassen" + +#: rc.c:239 +msgid "Fix character width when conversion" +msgstr "Bei Umwandlung an der Breite von Zeichen festhalten" + +#: rc.c:240 +msgid "Use GB 12345 Unicode map instead of GB 2312's" +msgstr "GB-12345-Unicode statt GB 2312 verwenden" + +#: rc.c:241 +msgid "Use JIS X 0201 Roman for ISO-2022-JP" +msgstr "JIS X 0201 Roman statt ISO-2022-JP verwenden" + +#: rc.c:242 +msgid "Use JIS C 6226:1978 for ISO-2022-JP" +msgstr "JIS C 6226:1978 statt ISO-2022-JP verwenden" + +#: rc.c:243 +msgid "Use JIS X 0201 Katakana" +msgstr "JIS X 0201 Katakana verwenden" + +#: rc.c:244 +msgid "Use JIS X 0212:1990 (Supplemental Kanji)" +msgstr "JIS X 0212:1990 verwenden (erg辰nzendes Kanji)" + +#: rc.c:245 +msgid "Use JIS X 0213:2000 (2000JIS)" +msgstr "JIS X 0213:2000 verwenden (2000JIS)" + +#: rc.c:246 +msgid "Strict ISO-2022-JP/KR/CN" +msgstr "Striktes ISO-2022-JP/KR/CN" + +#: rc.c:247 +msgid "Treat 4 bytes char. of GB18030 as Unicode" +msgstr "4-Byte-Zeichen von GB 18030 als Unicode auffassen" + +#: rc.c:248 +msgid "Simple Preserve space" +msgstr "Einfache Platzerhaltung" + +#: rc.c:251 +msgid "keymap file" +msgstr "Tastaturbelegungs-Datei" + +#: rc.c:268 +msgid "black" +msgstr "schwarz" + +#: rc.c:269 +msgid "red" +msgstr "rot" + +#: rc.c:270 +msgid "green" +msgstr "gr端n" + +#: rc.c:271 +msgid "yellow" +msgstr "gelb" + +#: rc.c:272 +msgid "blue" +msgstr "blau" + +#: rc.c:273 +msgid "magenta" +msgstr "magenta" + +#: rc.c:274 +msgid "cyan" +msgstr "cyan" + +#: rc.c:275 +msgid "white" +msgstr "wei" + +#: rc.c:276 +msgid "terminal" +msgstr "wie Terminal" + +#: rc.c:295 +msgid "none" +msgstr "keiner" + +#: rc.c:296 +msgid "current URL" +msgstr "aktuelle URL" + +#: rc.c:297 +msgid "link URL" +msgstr "Link-URL" + +#: rc.c:302 +msgid "simple" +msgstr "einfach" + +#: rc.c:303 +msgid "use tag" +msgstr "durch Tags" + +#: rc.c:304 +msgid "fontify" +msgstr "hervorgehoben" + +#: rc.c:310 +msgid "A:relative to screen height" +msgstr "A: relativ zu Fensterh旦he" + +#: rc.c:311 +msgid "B:fixed speed" +msgstr "B: feste Geschwindigkeit" + +#: rc.c:318 +msgid "unspecified" +msgstr "nicht spezifiziert" + +#: rc.c:319 +msgid "inet inet6" +msgstr "inet inet6" + +#: rc.c:320 +msgid "inet6 inet" +msgstr "inet6 inet" + +#: rc.c:321 +msgid "inet only" +msgstr "nur inet" + +#: rc.c:322 +msgid "inet6 only" +msgstr "nur inet6" + +#: rc.c:329 +msgid "discard" +msgstr "verwerfen" + +#: rc.c:331 +msgid "accept" +msgstr "annehmen" + +#: rc.c:333 +msgid "ask" +msgstr "nachfragen" + +# geh旦rt zu rc.c:142 +# erscheint in Pulldown-Men端, daher verk端rzt. mh 09.10.2014 +#: rc.c:340 +msgid "use internal mailer instead" +msgstr "Mail intern erstellen" + +# geh旦rt zu rc.c:142 +# erscheint in Pulldown-Men端, daher verk端rzt. mh 09.10.2014 +#: rc.c:342 +msgid "ignore options and use only the address" +msgstr "Optionen ignorieren" + +# geh旦rt zu rc.c:142 +# erscheint in Pulldown-Men端, daher verk端rzt. mh 09.10.2014 +#: rc.c:343 +msgid "use full mailto URL" +msgstr "komplett verwenden" + +#: rc.c:352 +msgid "OFF" +msgstr "AUS" + +#: rc.c:353 +msgid "Only ISO 2022" +msgstr "Nur ISO-2022" + +#: rc.c:354 +msgid "ON" +msgstr "AN" + +# Wert aus einem Set zur Wiedergabe von R辰ndern, mh, 05.10.2014 +#: rc.c:360 +msgid "ASCII" +msgstr "ASCII" + +# Wert aus einem Set zur Wiedergabe von R辰ndern, mh, 05.10.2014 +# hier ist "Zeichensatz" akzeptabel mh, 09.10.2014 +#: rc.c:361 +msgid "charset specific" +msgstr "zeichensatzspezifisch" + +# Wert aus einem Set zur Wiedergabe von R辰ndern, mh, 05.10.2014 +#: rc.c:362 +msgid "DEC special graphics" +msgstr "mit DEC-Grafiken" + +#: rc.c:743 +msgid "Display Settings" +msgstr "Einstellungen zur Anzeige" + +#: rc.c:745 +msgid "Color Settings" +msgstr "Farbeinstellungen" + +#: rc.c:747 +msgid "Miscellaneous Settings" +msgstr "Weitere Einstellungen" + +#: rc.c:748 +msgid "Directory Settings" +msgstr "Verzeichnis-Einstellungen" + +#: rc.c:749 +msgid "External Program Settings" +msgstr "Einstellungen f端r externe Programme" + +#: rc.c:750 +msgid "Network Settings" +msgstr "Netzwerk-Einstellungen" + +#: rc.c:751 +msgid "Proxy Settings" +msgstr "Proxy-Einstellungen" + +#: rc.c:753 +msgid "SSL Settings" +msgstr "SSL-Einstellungen" + +#: rc.c:756 +msgid "Cookie Settings" +msgstr "Cookie-Einstellungen" + +#: rc.c:759 +msgid "Charset Settings" +msgstr "Zeichenkodierungs-Einstellungen" + +#. TRANSLATORS: +#. * AcceptLang default: this is used in Accept-Language: HTTP request +#. * header. For example, ja.po should translate it as +#. * "ja;q=1.0, en;q=0.5" like that. +#. +#: rc.c:1241 +msgid "en;q=1.0" +msgstr "de;q=1.0, en;q=0.5" @@ -1,872 +1,912 @@ # Japanese translations for w3m package # w3m 宴若吾絲障沿┳. -# Copyright (C) 2003 THE w3m'S COPYRIGHT HOLDER +# Copyright (C) 2003-2020 THE w3m'S COPYRIGHT HOLDER # This file is distributed under the same license as the w3m package. # Fumitoshi UKAI <ukai@debian.or.jp>, 2003. # msgid "" msgstr "" "Project-Id-Version: w3m 0.5.3\n" -"Report-Msgid-Bugs-To: satodai@w3m.jp\n" -"POT-Creation-Date: 2010-08-20 18:44+0900\n" -"PO-Revision-Date: 2010-08-20 18:45+0900\n" -"Last-Translator: Fumitoshi UKAI <ukai@debian.or.jp>\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-24 19:21+0900\n" +"PO-Revision-Date: 2020-11-24 19:22+0900\n" +"Last-Translator: Tatsuya Kinoshita <tats@debian.org>\n" "Language-Team: Japanese\n" -"Language: \n" +"Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: menu.c:267 +#: menu.c:269 msgid " Back (b) " msgstr "祉 (b)" -#: menu.c:268 +#: menu.c:270 msgid " Select Buffer(s) " msgstr "♂御 (s)" -#: menu.c:270 +#: menu.c:272 msgid " Select Tab (t) " msgstr "帥御 (t)" -#: menu.c:272 +#: menu.c:274 msgid " View Source (v) " msgstr "純若鴻茵腓 (v)" -#: menu.c:273 +#: menu.c:275 msgid " Edit Source (e) " msgstr "純若鴻膩 (e)" -#: menu.c:274 +#: menu.c:276 msgid " Save Source (S) " msgstr "純若鴻篆絖 (S)" -#: menu.c:275 +#: menu.c:277 msgid " Reload (r) " msgstr "茯粋昭 (r)" -#: menu.c:276 menu.c:283 menu.c:287 +#: menu.c:278 menu.c:285 menu.c:289 msgid " ---------------- " msgstr "----------------" -#: menu.c:277 +#: menu.c:279 msgid " Go Link (a) " msgstr "潟茵腓 (a)" -#: menu.c:278 +#: menu.c:280 msgid " on New Tab (n) " msgstr "違帥ц;腓 (n)" -#: menu.c:279 +#: menu.c:281 msgid " Save Link (A) " msgstr "潟篆絖 (A)" -#: menu.c:280 +#: menu.c:282 msgid " View Image (i) " msgstr "糸茵腓 (i)" -#: menu.c:281 +#: menu.c:283 msgid " Save Image (I) " msgstr "糸篆絖 (I)" -#: menu.c:282 +#: menu.c:284 msgid " View Frame (f) " msgstr "若茵腓 (f)" -#: menu.c:284 +#: menu.c:286 msgid " Bookmark (B) " msgstr "若 (B)" -#: menu.c:285 +#: menu.c:287 msgid " Help (h) " msgstr " (h)" -#: menu.c:286 +#: menu.c:288 msgid " Option (o) " msgstr "激с (o)" -#: menu.c:288 +#: menu.c:290 msgid " Quit (q) " msgstr "腟篋 (q)" -#: rc.c:60 +#: rc.c:62 msgid "External Viewer Setup" msgstr "紊ャ若≪膩" -#: rc.c:61 +#: rc.c:63 msgid "Tab width in characters" msgstr "帥綛" -#: rc.c:62 +#: rc.c:64 msgid "Indent for HTML rendering" msgstr "HTML翫就ゃ潟潟綛" -#: rc.c:63 +#: rc.c:65 msgid "Number of pixels per character (4.0...32.0)" msgstr "絖綛 (4.0...32.0)" -#: rc.c:64 +#: rc.c:66 msgid "Number of pixels per line (4.0...64.0)" msgstr "筝茵蕭 (4.0...64.0)" -#: rc.c:65 +#: rc.c:67 msgid "Number of remembered lines when used as a pager" msgstr "若吾c篆絖茵" -#: rc.c:66 +#: rc.c:68 msgid "Use URL history" msgstr "絮ユ眼篏帥" -#: rc.c:67 +#: rc.c:69 msgid "Number of remembered URL" msgstr "篆URL絮ユ眼" -#: rc.c:68 +#: rc.c:70 msgid "Save URL history" msgstr "URL絮ユ眼篆絖" -#: rc.c:69 +#: rc.c:71 msgid "Render frames automatically" msgstr "若茵腓" -#: rc.c:70 +#: rc.c:72 msgid "Treat argument without scheme as URL" msgstr "scheme 綣違 URL 帥" -#: rc.c:71 +#: rc.c:73 msgid "Use _self as default target" msgstr "target絎翫_self篏睡" -#: rc.c:72 +#: rc.c:74 msgid "Open link on new tab if target is _blank or _new" msgstr "target_blank_new翫違帥ч" -#: rc.c:73 +#: rc.c:75 msgid "Open download list panel on new tab" msgstr "Download list panel 違帥ч" -#: rc.c:74 +#: rc.c:76 msgid "Display link URL automatically" msgstr "潟茵腓" -#: rc.c:75 +#: rc.c:77 msgid "Display link numbers" msgstr "潟垩茵腓" -#: rc.c:76 +#: rc.c:78 msgid "Display decoded URL" msgstr "URL潟若茵腓" -#: rc.c:77 +#: rc.c:79 msgid "Display current line number" msgstr "憜茵垩茵腓" -#: rc.c:78 +#: rc.c:80 msgid "Display inline images" msgstr "ゃ潟ゃ括糸茵腓" -#: rc.c:79 +#: rc.c:81 msgid "Display pseudo-ALTs for inline images with no ALT or TITLE string" msgstr "ALT 障 TITLE 糸篁f帥鴻茵腓" -#: rc.c:81 +#: rc.c:83 msgid "Load inline images automatically" msgstr "ゃ潟ゃ括糸ц粋昭" -#: rc.c:82 +#: rc.c:84 msgid "Maximum processes for parallel image loading" msgstr "糸顄粋昭炊紊с祉号" -#: rc.c:83 +#: rc.c:85 msgid "Use external image viewer" msgstr "糸紊ャ若ц;腓" -#: rc.c:84 +#: rc.c:86 msgid "Scale of image (%)" msgstr "糸鴻宴若(%)" -#: rc.c:85 +#: rc.c:87 msgid "External command to display image" msgstr "糸茵腓冴潟潟" -#: rc.c:86 +#: rc.c:88 msgid "Use link list of image map" msgstr "ゃ<若吾潟筝荀с茵腓" -#: rc.c:88 +#: rc.c:90 msgid "Display file names in multi-column format" msgstr "<ゃ茵腓" -#: rc.c:89 +#: rc.c:91 msgid "Use ASCII equivalents to display entities" msgstr "潟cc ASCII 篁f粋;憗ц;" -#: rc.c:90 +#: rc.c:92 msgid "Character type for border of table and menu" msgstr "若<ャ若篏帥絖" -#: rc.c:91 +#: rc.c:93 +msgid "Display table borders, ignore value of BORDER" +msgstr "BORDER ゃ∴若茵腓" + +#: rc.c:94 msgid "Fold lines in TEXTAREA" msgstr "TEXTAREA 茵菴茵腓" -#: rc.c:92 +#: rc.c:95 msgid "Display INS, DEL, S and STRIKE element" msgstr "INS, DEL, S, STRIKE 荀膣茵腓" -#: rc.c:93 +#: rc.c:96 msgid "Display with color" msgstr "取;腓" -#: rc.c:94 +#: rc.c:97 msgid "Color of normal character" msgstr "絖" -#: rc.c:95 +#: rc.c:98 msgid "Color of anchor" msgstr "≪潟若" -#: rc.c:96 +#: rc.c:99 msgid "Color of image link" msgstr "糸潟" -#: rc.c:97 +#: rc.c:100 msgid "Color of form" msgstr "若" -#: rc.c:98 +#: rc.c:101 msgid "Enable coloring of active link" msgstr "憜御潟蚊絎" -#: rc.c:99 +#: rc.c:102 msgid "Color of currently active link" msgstr "憜御潟" -#: rc.c:100 +#: rc.c:103 msgid "Use visited link color" msgstr "荐潟蚊紊" -#: rc.c:101 +#: rc.c:104 msgid "Color of visited link" msgstr "荐潟" -#: rc.c:102 +#: rc.c:105 msgid "Color of background" msgstr "" -#: rc.c:103 +#: rc.c:106 msgid "Color of mark" msgstr "若" -#: rc.c:104 +#: rc.c:107 msgid "Use proxy" msgstr "激篏睡" -#: rc.c:105 +#: rc.c:108 msgid "URL of HTTP proxy host" msgstr "HTTP(URLуュ)" -#: rc.c:107 +#: rc.c:110 msgid "URL of HTTPS proxy host" msgstr "HTTPS(URLуュ)" -#: rc.c:110 +#: rc.c:113 msgid "URL of GOPHER proxy host" msgstr "GOPHER(URLуュ)" -#: rc.c:112 +#: rc.c:115 msgid "URL of FTP proxy host" msgstr "FTP(URLуュ)" -#: rc.c:113 +#: rc.c:116 msgid "Domains to be accessed directly (no proxy)" msgstr "激ゅ<ゃ" -#: rc.c:114 +#: rc.c:117 msgid "Check noproxy by network address" msgstr "若≪鴻с潔ゅс" -#: rc.c:115 +#: rc.c:118 msgid "Disable cache" msgstr "Cache 篏帥" -#: rc.c:117 +#: rc.c:120 msgid "News server" msgstr "News 泣若" -#: rc.c:118 +#: rc.c:121 msgid "Mode of news server" msgstr "News 泣若≪若" -#: rc.c:119 +#: rc.c:122 msgid "Number of news messages" msgstr "News 筝荀ц;腓冴" -#: rc.c:121 +#: rc.c:124 msgid "Order of name resolution" msgstr "茹f浦綺" -#: rc.c:122 +#: rc.c:125 msgid "Directory corresponding to / (document root)" msgstr "/ ц;c(document root)" -#: rc.c:123 +#: rc.c:126 msgid "Directory corresponding to /~user" msgstr "/~user ц;c" -#: rc.c:124 +#: rc.c:127 msgid "Directory corresponding to /cgi-bin" msgstr "/cgi-bin ц;c" -#: rc.c:125 +#: rc.c:128 msgid "Confirm when quitting with q" msgstr "q с腟篋腆肴" -#: rc.c:126 +#: rc.c:129 msgid "Close tab if buffer is last when back" msgstr "祉<緇帥" -#: rc.c:128 +#: rc.c:131 msgid "Enable mark operations" msgstr "若罘純鴻" -#: rc.c:130 +#: rc.c:133 msgid "Enable Emacs-style line editing" msgstr "Emacs蘂茵膩" -#: rc.c:131 +#: rc.c:134 +msgid "Space key triggers file completion while editing URLs" +msgstr "URL膩筝鴻若鴻若с<ゃ茖絎" + +#: rc.c:135 msgid "Enable vi-like numeric prefix" msgstr "vi蘂医ゃc" -#: rc.c:132 +#: rc.c:136 msgid "Move cursor to top line when going to label" msgstr "腱糸若純" -#: rc.c:133 +#: rc.c:137 msgid "Move cursor to top line when moving to next page" msgstr "罨<若吾腱糸若純" -#: rc.c:134 +#: rc.c:138 msgid "Fold lines of plain text file" msgstr "plain text <ゃ茵菴" -#: rc.c:135 +#: rc.c:139 msgid "Show line numbers" msgstr "茵垩茵腓冴" -#: rc.c:136 +#: rc.c:140 msgid "Show search string" msgstr "罎膣∽絖茵腓冴" -#: rc.c:137 +#: rc.c:141 msgid "List of mime.types files" msgstr "mime.types" -#: rc.c:138 +#: rc.c:142 msgid "List of mailcap files" msgstr "mailcap" -#: rc.c:139 +#: rc.c:143 msgid "List of urimethodmap files" msgstr "urimethodmap" -#: rc.c:140 +#: rc.c:144 msgid "Editor" msgstr "c" -#: rc.c:141 +#: rc.c:145 msgid "Mailer" msgstr "<若" -#: rc.c:142 +#: rc.c:146 msgid "How to call Mailer for mailto URLs with options" msgstr "mailto 帥違宴" -#: rc.c:143 -msgid "External Browser" +#: rc.c:147 +msgid "External browser" msgstr "紊" -#: rc.c:144 -msgid "Second External Browser" +#: rc.c:148 +msgid "2nd external browser" msgstr "紊吟2" -#: rc.c:145 -msgid "Third External Browser" +#: rc.c:149 +msgid "3rd external browser" msgstr "紊吟3" -#: rc.c:146 +#: rc.c:150 +msgid "4th external browser" +msgstr "紊吟4" + +#: rc.c:151 +msgid "5th external browser" +msgstr "紊吟5" + +#: rc.c:152 +msgid "6th external browser" +msgstr "紊吟6" + +#: rc.c:153 +msgid "7th external browser" +msgstr "紊吟7" + +#: rc.c:154 +msgid "8th external browser" +msgstr "紊吟8" + +#: rc.c:155 +msgid "9th external browser" +msgstr "紊吟9" + +#: rc.c:156 msgid "Disable secret file security check" msgstr "鴻若<ゃ若激с潟с" -#: rc.c:147 +#: rc.c:157 msgid "Password file" msgstr "鴻若<ゃ" -#: rc.c:148 +#: rc.c:158 msgid "File for setting form on loading" msgstr "梧莨惹若荐絎<ゃ" -#: rc.c:149 +#: rc.c:159 +msgid "File for preferences for each site" +msgstr "泣ゃヨ┃絎<ゃ" + +#: rc.c:160 msgid "Password for anonymous FTP (your mail address)" msgstr "FTP鴻若(mail address篏帥)" -#: rc.c:150 +#: rc.c:161 msgid "Generate domain part of password for FTP" msgstr "FTP鴻若<ゃ喝" -#: rc.c:151 +#: rc.c:162 msgid "User-Agent identification string" msgstr "User-Agent" -#: rc.c:152 +#: rc.c:163 msgid "Accept-Encoding header" msgstr "х軒号(Accept-Encoding:)" -#: rc.c:153 +#: rc.c:164 msgid "Accept header" msgstr "ゃ<c≪帥ゃ(Accept:)" -#: rc.c:154 +#: rc.c:165 msgid "Accept-Language header" msgstr "ゃ荐茯(Accept-Language:)" -#: rc.c:155 +#: rc.c:166 msgid "Treat URL-like strings as links in all pages" msgstr "若吾URL蘂絖潟" -#: rc.c:156 +#: rc.c:167 msgid "Wrap search" msgstr "菴罎膣" -#: rc.c:157 +#: rc.c:168 msgid "Display unseen objects (e.g. bgimage tag)" msgstr "糸靁吾潟篏" -#: rc.c:158 +#: rc.c:169 msgid "Uncompress compressed data automatically when downloading" msgstr "潟若х軒若帥茹e" -#: rc.c:160 +#: rc.c:171 msgid "Run external viewer in a separate session" msgstr "紊ャ若≪ャ祉激с潟у" -#: rc.c:162 +#: rc.c:173 msgid "Run external viewer in the background" msgstr "紊ャ若≪違潟у" -#: rc.c:164 +#: rc.c:175 msgid "Use external program for directory listing" msgstr "c鴻紊潟潟篏帥" -#: rc.c:165 +#: rc.c:176 msgid "URL of directory listing command" msgstr "c鴻潟潟" -#: rc.c:167 +#: rc.c:178 msgid "Enable dictionary lookup through CGI" msgstr "莨後CGI腟宴с" -#: rc.c:168 +#: rc.c:179 msgid "URL of dictionary lookup command" msgstr "莨後潟潟URL" -#: rc.c:170 +#: rc.c:181 msgid "Display link name for images lacking ALT" msgstr "腥冴IMG ALT絮с潟茵腓冴" -#: rc.c:171 +#: rc.c:182 msgid "Index file for directories" msgstr "cゃ潟鴻<ゃ" -#: rc.c:172 +#: rc.c:183 msgid "Prepend http:// to URL automatically" msgstr "URL http:// 茖" -#: rc.c:173 +#: rc.c:184 msgid "Default value for open-URL command" msgstr "URL絖" -#: rc.c:174 +#: rc.c:185 msgid "Decode Content-Transfer-Encoding when saving" msgstr "篆絖 Content-Transfer-Encoding 潟若" -#: rc.c:175 +#: rc.c:186 msgid "Preserve timestamp when saving" msgstr "篆絖帥ゃ鴻帥潟篆" -#: rc.c:177 +#: rc.c:188 msgid "Enable mouse" msgstr "鴻篏帥" -#: rc.c:178 +#: rc.c:189 msgid "Scroll in reverse direction of mouse drag" msgstr "鴻医篏" -#: rc.c:179 +#: rc.c:190 msgid "Behavior of wheel scroll speed" msgstr "ゃ若с鴻若綺宴" -#: rc.c:180 +#: rc.c:191 msgid "(A only)Scroll by # (%) of screen" msgstr "(A)脂≪篏%鴻若" -#: rc.c:181 +#: rc.c:192 msgid "(B only)Scroll by # lines" msgstr "(B)鴻若茵" -#: rc.c:183 +#: rc.c:194 msgid "Free memory of undisplayed buffers" msgstr "茵腓冴<<≪茹f障" -#: rc.c:184 +#: rc.c:195 msgid "Suppress `Referer:' header" msgstr "Referer: " -#: rc.c:185 +#: rc.c:196 msgid "Search case-insensitively" msgstr "泣若紊ф絖絨絖阪ャ" -#: rc.c:186 +#: rc.c:197 msgid "Use LESSOPEN" msgstr "LESSOPEN篏睡" -#: rc.c:189 +#: rc.c:200 msgid "Perform SSL server verification" msgstr "SSL泣若茯荐若茵" -#: rc.c:190 +#: rc.c:201 msgid "PEM encoded certificate file of client" msgstr "SSLゃ≪潟PEM綵√頥惹吾<ゃ" -#: rc.c:191 +#: rc.c:202 msgid "PEM encoded private key file of client" msgstr "SSLゃ≪潟PEM綵√霡絲泣<ゃ" -#: rc.c:192 +#: rc.c:203 msgid "Path to directory for PEM encoded certificates of CAs" msgstr "SSL茯荐弱PEM綵√頥惹悟召c吾" -#: rc.c:193 +#: rc.c:204 msgid "File consisting of PEM encoded certificates of CAs" msgstr "SSL茯荐弱PEM綵√頥惹悟召<ゃ" -#: rc.c:195 -msgid "List of forbidden SSL methods (2: SSLv2, 3: SSLv3, t:TLSv1)" -msgstr "篏帥SSL<純鴻(2: SSLv2, 3: SSLv3, t:TLSv1)" +#: rc.c:206 +msgid "" +"List of forbidden SSL methods (2: SSLv2, 3: SSLv3, t: TLSv1.0, 5: TLSv1.1, " +"6: TLSv1.2, 7: TLSv1.3)" +msgstr "" +"篏帥SSL<純鴻(2: SSLv2, 3: SSLv3, t: TLSv1.0, 5: TLSv1.1, 6: " +"TLSv1.2, 7: TLSv1.3)" -#: rc.c:198 +#: rc.c:209 msgid "Enable cookie processing" msgstr "若篏睡" -#: rc.c:199 +#: rc.c:210 msgid "Print a message when receiving a cookie" msgstr "若篁<祉若吾茵腓冴" -#: rc.c:200 +#: rc.c:211 msgid "Accept cookies" msgstr "若篁" -#: rc.c:201 +#: rc.c:212 msgid "Action to be taken on invalid cookie" msgstr "馹若с篁" -#: rc.c:202 +#: rc.c:213 msgid "Domains to reject cookies from" msgstr "若篁<ゃ" -#: rc.c:203 +#: rc.c:214 msgid "Domains to accept cookies from" msgstr "若篁<ゃ" -#: rc.c:204 +#: rc.c:215 msgid "Domains to avoid [wrong number of dots]" msgstr "[wrong number of dots] ∴<ゃ" -#: rc.c:206 +#: rc.c:217 msgid "Number of redirections to follow" msgstr "緇ゃ" -#: rc.c:207 +#: rc.c:218 msgid "Enable processing of meta-refresh tag" msgstr "meta refresh 絲上" -#: rc.c:210 +#: rc.c:221 msgid "Enable Migemo (Roma-ji search)" msgstr "Migemo(若絖罎膣)篏睡" -#: rc.c:211 +#: rc.c:222 msgid "Migemo command" msgstr "Migemo潟潟" -#: rc.c:215 +#: rc.c:226 msgid "Display charset" msgstr "茵腓榊絖潟若" -#: rc.c:216 +#: rc.c:227 msgid "Default document charset" msgstr "吾罔羣絖潟若" -#: rc.c:217 +#: rc.c:228 msgid "Automatic charset detect when loading" msgstr "吾茯粋昭炊絖潟若ゅ茵" -#: rc.c:218 +#: rc.c:229 msgid "System charset" msgstr "激鴻絖潟若" -#: rc.c:219 +#: rc.c:230 msgid "System charset follows locale(LC_CTYPE)" msgstr "Locale(LC_CTYPE) 緇c激鴻絖潟若荐絎" -#: rc.c:220 +#: rc.c:231 msgid "Output halfdump with display charset" msgstr "茵腓榊絖潟若 halfdump 阪茵" -#: rc.c:221 +#: rc.c:232 msgid "Use multi column characters" msgstr "茲違絖篏帥" -#: rc.c:222 +#: rc.c:233 msgid "Use combining characters" msgstr "腟絖篏帥" -#: rc.c:223 +#: rc.c:234 msgid "Use double width for some Unicode characters" msgstr "腮Unicode絖茹" -#: rc.c:224 +#: rc.c:235 msgid "Use Unicode language tags" msgstr "Unicode 荐茯帥違篏帥" -#: rc.c:225 +#: rc.c:236 msgid "Charset conversion using Unicode map" msgstr "Unicode篁潟若紊" -#: rc.c:226 +#: rc.c:237 msgid "Charset conversion when loading" msgstr "吾茯粋昭炊絖潟若紊" -#: rc.c:227 +#: rc.c:238 msgid "Adjust search string for document charset" msgstr "罎膣∽絖吾絖潟若紊" -#: rc.c:228 +#: rc.c:239 msgid "Fix character width when conversion" msgstr "絖綛紊紊" -#: rc.c:229 +#: rc.c:240 msgid "Use GB 12345 Unicode map instead of GB 2312's" msgstr "GB 12345 Unicode GB 2312 篏帥" -#: rc.c:230 +#: rc.c:241 msgid "Use JIS X 0201 Roman for ISO-2022-JP" msgstr "ISO-2022-JP JIS X 0201-Roman 篏帥" -#: rc.c:231 +#: rc.c:242 msgid "Use JIS C 6226:1978 for ISO-2022-JP" msgstr "ISO-2022-JP JIS C 6226:1978(JIS) 篏帥" -#: rc.c:232 +#: rc.c:243 msgid "Use JIS X 0201 Katakana" msgstr "JIS X 0201-Katakana 篏帥" -#: rc.c:233 +#: rc.c:244 msgid "Use JIS X 0212:1990 (Supplemental Kanji)" msgstr "JIS X 0212:1990(茖羲√) 篏帥" -#: rc.c:234 +#: rc.c:245 msgid "Use JIS X 0213:2000 (2000JIS)" msgstr "JIS X 0213:2000(2000JIS) 篏帥" -#: rc.c:235 +#: rc.c:246 msgid "Strict ISO-2022-JP/KR/CN" msgstr "ウ若 ISO-2022-JP/KR/CN 篏帥" -#: rc.c:236 +#: rc.c:247 msgid "Treat 4 bytes char. of GB18030 as Unicode" msgstr "GB18030 4ゃ絖 Unicode 宴" -#: rc.c:237 +#: rc.c:248 msgid "Simple Preserve space" msgstr "膣腥榊純篆絖" -#: rc.c:240 +#: rc.c:251 msgid "keymap file" msgstr "keymap<ゃ" -#: rc.c:257 +#: rc.c:268 msgid "black" msgstr "藥" -#: rc.c:258 +#: rc.c:269 msgid "red" msgstr "莎" -#: rc.c:259 +#: rc.c:270 msgid "green" msgstr "膩" -#: rc.c:260 +#: rc.c:271 msgid "yellow" msgstr "藥" -#: rc.c:261 +#: rc.c:272 msgid "blue" msgstr "" -#: rc.c:262 +#: rc.c:273 msgid "magenta" msgstr "膣" -#: rc.c:263 +#: rc.c:274 msgid "cyan" msgstr "腥肴" -#: rc.c:264 +#: rc.c:275 msgid "white" msgstr "" -#: rc.c:265 +#: rc.c:276 msgid "terminal" msgstr "腴" -#: rc.c:284 +#: rc.c:295 msgid "none" msgstr "<" -#: rc.c:285 +#: rc.c:296 msgid "current URL" msgstr "憜URL" -#: rc.c:286 +#: rc.c:297 msgid "link URL" msgstr "潟URL" -#: rc.c:291 +#: rc.c:302 msgid "simple" msgstr "激潟" -#: rc.c:292 +#: rc.c:303 msgid "use tag" msgstr "帥違ц;腓" -#: rc.c:293 +#: rc.c:304 msgid "fontify" msgstr "絖茖蕋" -#: rc.c:299 +#: rc.c:310 msgid "A:relative to screen height" msgstr "A:脂≪泣ゃ冴罸箴" -#: rc.c:300 +#: rc.c:311 msgid "B:fixed speed" msgstr "B:筝絎茵" -#: rc.c:307 +#: rc.c:318 msgid "unspecified" msgstr "絎" -#: rc.c:308 +#: rc.c:319 msgid "inet inet6" msgstr "IPv4" -#: rc.c:309 +#: rc.c:320 msgid "inet6 inet" msgstr "IPv6" -#: rc.c:310 +#: rc.c:321 msgid "inet only" msgstr "IPv4" -#: rc.c:311 +#: rc.c:322 msgid "inet6 only" msgstr "IPv6" -#: rc.c:318 +#: rc.c:329 msgid "discard" msgstr "贋" -#: rc.c:320 +#: rc.c:331 msgid "accept" msgstr "ャ" -#: rc.c:322 +#: rc.c:333 msgid "ask" msgstr "腆肴" -#: rc.c:329 +#: rc.c:340 msgid "use internal mailer instead" msgstr "<若篏睡" -#: rc.c:331 +#: rc.c:342 msgid "ignore options and use only the address" msgstr "≪鴻推戎" -#: rc.c:332 +#: rc.c:343 msgid "use full mailto URL" msgstr "URL 篏篏睡" -#: rc.c:341 +#: rc.c:352 msgid "OFF" msgstr "≦" -#: rc.c:342 +#: rc.c:353 msgid "Only ISO 2022" msgstr "ISO 2022 " -#: rc.c:343 +#: rc.c:354 msgid "ON" msgstr "" -#: rc.c:349 +#: rc.c:360 msgid "ASCII" msgstr "ASCII" -#: rc.c:350 +#: rc.c:361 msgid "charset specific" msgstr "絖潟若箴絖" -#: rc.c:351 +#: rc.c:362 msgid "DEC special graphics" msgstr "DEC 号絖" -#: rc.c:714 +#: rc.c:743 msgid "Display Settings" msgstr "茵腓咲≫" -#: rc.c:716 +#: rc.c:745 msgid "Color Settings" msgstr "茵腓肴" -#: rc.c:718 +#: rc.c:747 msgid "Miscellaneous Settings" msgstr "紊荐絎" -#: rc.c:719 +#: rc.c:748 msgid "Directory Settings" msgstr "c荐絎" -#: rc.c:720 +#: rc.c:749 msgid "External Program Settings" msgstr "紊違" -#: rc.c:721 +#: rc.c:750 msgid "Network Settings" msgstr "若荐絎" -#: rc.c:722 +#: rc.c:751 msgid "Proxy Settings" msgstr "激荐絎" -#: rc.c:724 +#: rc.c:753 msgid "SSL Settings" msgstr "SSL荐絎" -#: rc.c:727 +#: rc.c:756 msgid "Cookie Settings" msgstr "若荐絎" -#: rc.c:730 +#: rc.c:759 msgid "Charset Settings" msgstr "絖潟若荐絎" @@ -875,6 +915,6 @@ msgstr "絖潟若荐絎" #. * header. For example, ja.po should translate it as #. * "ja;q=1.0, en;q=0.5" like that. #. -#: rc.c:1209 +#: rc.c:1241 msgid "en;q=1.0" msgstr "ja;q=1.0, en;q=0.5" @@ -1,14 +1,14 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Fumitoshi UKAI -# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE w3m'S COPYRIGHT HOLDER +# This file is distributed under the same license as the w3m package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: w3m 0.5.3\n" -"Report-Msgid-Bugs-To: satodai@w3m.jp\n" -"POT-Creation-Date: 2010-08-20 18:44+0900\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-24 19:21+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,855 +17,893 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: menu.c:267 +#: menu.c:269 msgid " Back (b) " msgstr "" -#: menu.c:268 +#: menu.c:270 msgid " Select Buffer(s) " msgstr "" -#: menu.c:270 +#: menu.c:272 msgid " Select Tab (t) " msgstr "" -#: menu.c:272 +#: menu.c:274 msgid " View Source (v) " msgstr "" -#: menu.c:273 +#: menu.c:275 msgid " Edit Source (e) " msgstr "" -#: menu.c:274 +#: menu.c:276 msgid " Save Source (S) " msgstr "" -#: menu.c:275 +#: menu.c:277 msgid " Reload (r) " msgstr "" -#: menu.c:276 menu.c:283 menu.c:287 +#: menu.c:278 menu.c:285 menu.c:289 msgid " ---------------- " msgstr "" -#: menu.c:277 +#: menu.c:279 msgid " Go Link (a) " msgstr "" -#: menu.c:278 +#: menu.c:280 msgid " on New Tab (n) " msgstr "" -#: menu.c:279 +#: menu.c:281 msgid " Save Link (A) " msgstr "" -#: menu.c:280 +#: menu.c:282 msgid " View Image (i) " msgstr "" -#: menu.c:281 +#: menu.c:283 msgid " Save Image (I) " msgstr "" -#: menu.c:282 +#: menu.c:284 msgid " View Frame (f) " msgstr "" -#: menu.c:284 +#: menu.c:286 msgid " Bookmark (B) " msgstr "" -#: menu.c:285 +#: menu.c:287 msgid " Help (h) " msgstr "" -#: menu.c:286 +#: menu.c:288 msgid " Option (o) " msgstr "" -#: menu.c:288 +#: menu.c:290 msgid " Quit (q) " msgstr "" -#: rc.c:60 +#: rc.c:62 msgid "External Viewer Setup" msgstr "" -#: rc.c:61 +#: rc.c:63 msgid "Tab width in characters" msgstr "" -#: rc.c:62 +#: rc.c:64 msgid "Indent for HTML rendering" msgstr "" -#: rc.c:63 +#: rc.c:65 msgid "Number of pixels per character (4.0...32.0)" msgstr "" -#: rc.c:64 +#: rc.c:66 msgid "Number of pixels per line (4.0...64.0)" msgstr "" -#: rc.c:65 +#: rc.c:67 msgid "Number of remembered lines when used as a pager" msgstr "" -#: rc.c:66 +#: rc.c:68 msgid "Use URL history" msgstr "" -#: rc.c:67 +#: rc.c:69 msgid "Number of remembered URL" msgstr "" -#: rc.c:68 +#: rc.c:70 msgid "Save URL history" msgstr "" -#: rc.c:69 +#: rc.c:71 msgid "Render frames automatically" msgstr "" -#: rc.c:70 +#: rc.c:72 msgid "Treat argument without scheme as URL" msgstr "" -#: rc.c:71 +#: rc.c:73 msgid "Use _self as default target" msgstr "" -#: rc.c:72 +#: rc.c:74 msgid "Open link on new tab if target is _blank or _new" msgstr "" -#: rc.c:73 +#: rc.c:75 msgid "Open download list panel on new tab" msgstr "" -#: rc.c:74 +#: rc.c:76 msgid "Display link URL automatically" msgstr "" -#: rc.c:75 +#: rc.c:77 msgid "Display link numbers" msgstr "" -#: rc.c:76 +#: rc.c:78 msgid "Display decoded URL" msgstr "" -#: rc.c:77 +#: rc.c:79 msgid "Display current line number" msgstr "" -#: rc.c:78 +#: rc.c:80 msgid "Display inline images" msgstr "" -#: rc.c:79 +#: rc.c:81 msgid "Display pseudo-ALTs for inline images with no ALT or TITLE string" msgstr "" -#: rc.c:81 +#: rc.c:83 msgid "Load inline images automatically" msgstr "" -#: rc.c:82 +#: rc.c:84 msgid "Maximum processes for parallel image loading" msgstr "" -#: rc.c:83 +#: rc.c:85 msgid "Use external image viewer" msgstr "" -#: rc.c:84 +#: rc.c:86 msgid "Scale of image (%)" msgstr "" -#: rc.c:85 +#: rc.c:87 msgid "External command to display image" msgstr "" -#: rc.c:86 +#: rc.c:88 msgid "Use link list of image map" msgstr "" -#: rc.c:88 +#: rc.c:90 msgid "Display file names in multi-column format" msgstr "" -#: rc.c:89 +#: rc.c:91 msgid "Use ASCII equivalents to display entities" msgstr "" -#: rc.c:90 +#: rc.c:92 msgid "Character type for border of table and menu" msgstr "" -#: rc.c:91 +#: rc.c:93 +msgid "Display table borders, ignore value of BORDER" +msgstr "" + +#: rc.c:94 msgid "Fold lines in TEXTAREA" msgstr "" -#: rc.c:92 +#: rc.c:95 msgid "Display INS, DEL, S and STRIKE element" msgstr "" -#: rc.c:93 +#: rc.c:96 msgid "Display with color" msgstr "" -#: rc.c:94 +#: rc.c:97 msgid "Color of normal character" msgstr "" -#: rc.c:95 +#: rc.c:98 msgid "Color of anchor" msgstr "" -#: rc.c:96 +#: rc.c:99 msgid "Color of image link" msgstr "" -#: rc.c:97 +#: rc.c:100 msgid "Color of form" msgstr "" -#: rc.c:98 +#: rc.c:101 msgid "Enable coloring of active link" msgstr "" -#: rc.c:99 +#: rc.c:102 msgid "Color of currently active link" msgstr "" -#: rc.c:100 +#: rc.c:103 msgid "Use visited link color" msgstr "" -#: rc.c:101 +#: rc.c:104 msgid "Color of visited link" msgstr "" -#: rc.c:102 +#: rc.c:105 msgid "Color of background" msgstr "" -#: rc.c:103 +#: rc.c:106 msgid "Color of mark" msgstr "" -#: rc.c:104 +#: rc.c:107 msgid "Use proxy" msgstr "" -#: rc.c:105 +#: rc.c:108 msgid "URL of HTTP proxy host" msgstr "" -#: rc.c:107 +#: rc.c:110 msgid "URL of HTTPS proxy host" msgstr "" -#: rc.c:110 +#: rc.c:113 msgid "URL of GOPHER proxy host" msgstr "" -#: rc.c:112 +#: rc.c:115 msgid "URL of FTP proxy host" msgstr "" -#: rc.c:113 +#: rc.c:116 msgid "Domains to be accessed directly (no proxy)" msgstr "" -#: rc.c:114 +#: rc.c:117 msgid "Check noproxy by network address" msgstr "" -#: rc.c:115 +#: rc.c:118 msgid "Disable cache" msgstr "" -#: rc.c:117 +#: rc.c:120 msgid "News server" msgstr "" -#: rc.c:118 +#: rc.c:121 msgid "Mode of news server" msgstr "" -#: rc.c:119 +#: rc.c:122 msgid "Number of news messages" msgstr "" -#: rc.c:121 +#: rc.c:124 msgid "Order of name resolution" msgstr "" -#: rc.c:122 +#: rc.c:125 msgid "Directory corresponding to / (document root)" msgstr "" -#: rc.c:123 +#: rc.c:126 msgid "Directory corresponding to /~user" msgstr "" -#: rc.c:124 +#: rc.c:127 msgid "Directory corresponding to /cgi-bin" msgstr "" -#: rc.c:125 +#: rc.c:128 msgid "Confirm when quitting with q" msgstr "" -#: rc.c:126 +#: rc.c:129 msgid "Close tab if buffer is last when back" msgstr "" -#: rc.c:128 +#: rc.c:131 msgid "Enable mark operations" msgstr "" -#: rc.c:130 +#: rc.c:133 msgid "Enable Emacs-style line editing" msgstr "" -#: rc.c:131 +#: rc.c:134 +msgid "Space key triggers file completion while editing URLs" +msgstr "" + +#: rc.c:135 msgid "Enable vi-like numeric prefix" msgstr "" -#: rc.c:132 +#: rc.c:136 msgid "Move cursor to top line when going to label" msgstr "" -#: rc.c:133 +#: rc.c:137 msgid "Move cursor to top line when moving to next page" msgstr "" -#: rc.c:134 +#: rc.c:138 msgid "Fold lines of plain text file" msgstr "" -#: rc.c:135 +#: rc.c:139 msgid "Show line numbers" msgstr "" -#: rc.c:136 +#: rc.c:140 msgid "Show search string" msgstr "" -#: rc.c:137 +#: rc.c:141 msgid "List of mime.types files" msgstr "" -#: rc.c:138 +#: rc.c:142 msgid "List of mailcap files" msgstr "" -#: rc.c:139 +#: rc.c:143 msgid "List of urimethodmap files" msgstr "" -#: rc.c:140 +#: rc.c:144 msgid "Editor" msgstr "" -#: rc.c:141 +#: rc.c:145 msgid "Mailer" msgstr "" -#: rc.c:142 +#: rc.c:146 msgid "How to call Mailer for mailto URLs with options" msgstr "" -#: rc.c:143 -msgid "External Browser" +#: rc.c:147 +msgid "External browser" msgstr "" -#: rc.c:144 -msgid "Second External Browser" +#: rc.c:148 +msgid "2nd external browser" msgstr "" -#: rc.c:145 -msgid "Third External Browser" +#: rc.c:149 +msgid "3rd external browser" msgstr "" -#: rc.c:146 +#: rc.c:150 +msgid "4th external browser" +msgstr "" + +#: rc.c:151 +msgid "5th external browser" +msgstr "" + +#: rc.c:152 +msgid "6th external browser" +msgstr "" + +#: rc.c:153 +msgid "7th external browser" +msgstr "" + +#: rc.c:154 +msgid "8th external browser" +msgstr "" + +#: rc.c:155 +msgid "9th external browser" +msgstr "" + +#: rc.c:156 msgid "Disable secret file security check" msgstr "" -#: rc.c:147 +#: rc.c:157 msgid "Password file" msgstr "" -#: rc.c:148 +#: rc.c:158 msgid "File for setting form on loading" msgstr "" -#: rc.c:149 +#: rc.c:159 +msgid "File for preferences for each site" +msgstr "" + +#: rc.c:160 msgid "Password for anonymous FTP (your mail address)" msgstr "" -#: rc.c:150 +#: rc.c:161 msgid "Generate domain part of password for FTP" msgstr "" -#: rc.c:151 +#: rc.c:162 msgid "User-Agent identification string" msgstr "" -#: rc.c:152 +#: rc.c:163 msgid "Accept-Encoding header" msgstr "" -#: rc.c:153 +#: rc.c:164 msgid "Accept header" msgstr "" -#: rc.c:154 +#: rc.c:165 msgid "Accept-Language header" msgstr "" -#: rc.c:155 +#: rc.c:166 msgid "Treat URL-like strings as links in all pages" msgstr "" -#: rc.c:156 +#: rc.c:167 msgid "Wrap search" msgstr "" -#: rc.c:157 +#: rc.c:168 msgid "Display unseen objects (e.g. bgimage tag)" msgstr "" -#: rc.c:158 +#: rc.c:169 msgid "Uncompress compressed data automatically when downloading" msgstr "" -#: rc.c:160 +#: rc.c:171 msgid "Run external viewer in a separate session" msgstr "" -#: rc.c:162 +#: rc.c:173 msgid "Run external viewer in the background" msgstr "" -#: rc.c:164 +#: rc.c:175 msgid "Use external program for directory listing" msgstr "" -#: rc.c:165 +#: rc.c:176 msgid "URL of directory listing command" msgstr "" -#: rc.c:167 +#: rc.c:178 msgid "Enable dictionary lookup through CGI" msgstr "" -#: rc.c:168 +#: rc.c:179 msgid "URL of dictionary lookup command" msgstr "" -#: rc.c:170 +#: rc.c:181 msgid "Display link name for images lacking ALT" msgstr "" -#: rc.c:171 +#: rc.c:182 msgid "Index file for directories" msgstr "" -#: rc.c:172 +#: rc.c:183 msgid "Prepend http:// to URL automatically" msgstr "" -#: rc.c:173 +#: rc.c:184 msgid "Default value for open-URL command" msgstr "" -#: rc.c:174 +#: rc.c:185 msgid "Decode Content-Transfer-Encoding when saving" msgstr "" -#: rc.c:175 +#: rc.c:186 msgid "Preserve timestamp when saving" msgstr "" -#: rc.c:177 +#: rc.c:188 msgid "Enable mouse" msgstr "" -#: rc.c:178 +#: rc.c:189 msgid "Scroll in reverse direction of mouse drag" msgstr "" -#: rc.c:179 +#: rc.c:190 msgid "Behavior of wheel scroll speed" msgstr "" -#: rc.c:180 +#: rc.c:191 msgid "(A only)Scroll by # (%) of screen" msgstr "" -#: rc.c:181 +#: rc.c:192 msgid "(B only)Scroll by # lines" msgstr "" -#: rc.c:183 +#: rc.c:194 msgid "Free memory of undisplayed buffers" msgstr "" -#: rc.c:184 +#: rc.c:195 msgid "Suppress `Referer:' header" msgstr "" -#: rc.c:185 +#: rc.c:196 msgid "Search case-insensitively" msgstr "" -#: rc.c:186 +#: rc.c:197 msgid "Use LESSOPEN" msgstr "" -#: rc.c:189 +#: rc.c:200 msgid "Perform SSL server verification" msgstr "" -#: rc.c:190 +#: rc.c:201 msgid "PEM encoded certificate file of client" msgstr "" -#: rc.c:191 +#: rc.c:202 msgid "PEM encoded private key file of client" msgstr "" -#: rc.c:192 +#: rc.c:203 msgid "Path to directory for PEM encoded certificates of CAs" msgstr "" -#: rc.c:193 +#: rc.c:204 msgid "File consisting of PEM encoded certificates of CAs" msgstr "" -#: rc.c:195 -msgid "List of forbidden SSL methods (2: SSLv2, 3: SSLv3, t:TLSv1)" +#: rc.c:206 +msgid "" +"List of forbidden SSL methods (2: SSLv2, 3: SSLv3, t: TLSv1.0, 5: TLSv1.1, " +"6: TLSv1.2, 7: TLSv1.3)" msgstr "" -#: rc.c:198 +#: rc.c:209 msgid "Enable cookie processing" msgstr "" -#: rc.c:199 +#: rc.c:210 msgid "Print a message when receiving a cookie" msgstr "" -#: rc.c:200 +#: rc.c:211 msgid "Accept cookies" msgstr "" -#: rc.c:201 +#: rc.c:212 msgid "Action to be taken on invalid cookie" msgstr "" -#: rc.c:202 +#: rc.c:213 msgid "Domains to reject cookies from" msgstr "" -#: rc.c:203 +#: rc.c:214 msgid "Domains to accept cookies from" msgstr "" -#: rc.c:204 +#: rc.c:215 msgid "Domains to avoid [wrong number of dots]" msgstr "" -#: rc.c:206 +#: rc.c:217 msgid "Number of redirections to follow" msgstr "" -#: rc.c:207 +#: rc.c:218 msgid "Enable processing of meta-refresh tag" msgstr "" -#: rc.c:210 +#: rc.c:221 msgid "Enable Migemo (Roma-ji search)" msgstr "" -#: rc.c:211 +#: rc.c:222 msgid "Migemo command" msgstr "" -#: rc.c:215 +#: rc.c:226 msgid "Display charset" msgstr "" -#: rc.c:216 +#: rc.c:227 msgid "Default document charset" msgstr "" -#: rc.c:217 +#: rc.c:228 msgid "Automatic charset detect when loading" msgstr "" -#: rc.c:218 +#: rc.c:229 msgid "System charset" msgstr "" -#: rc.c:219 +#: rc.c:230 msgid "System charset follows locale(LC_CTYPE)" msgstr "" -#: rc.c:220 +#: rc.c:231 msgid "Output halfdump with display charset" msgstr "" -#: rc.c:221 +#: rc.c:232 msgid "Use multi column characters" msgstr "" -#: rc.c:222 +#: rc.c:233 msgid "Use combining characters" msgstr "" -#: rc.c:223 +#: rc.c:234 msgid "Use double width for some Unicode characters" msgstr "" -#: rc.c:224 +#: rc.c:235 msgid "Use Unicode language tags" msgstr "" -#: rc.c:225 +#: rc.c:236 msgid "Charset conversion using Unicode map" msgstr "" -#: rc.c:226 +#: rc.c:237 msgid "Charset conversion when loading" msgstr "" -#: rc.c:227 +#: rc.c:238 msgid "Adjust search string for document charset" msgstr "" -#: rc.c:228 +#: rc.c:239 msgid "Fix character width when conversion" msgstr "" -#: rc.c:229 +#: rc.c:240 msgid "Use GB 12345 Unicode map instead of GB 2312's" msgstr "" -#: rc.c:230 +#: rc.c:241 msgid "Use JIS X 0201 Roman for ISO-2022-JP" msgstr "" -#: rc.c:231 +#: rc.c:242 msgid "Use JIS C 6226:1978 for ISO-2022-JP" msgstr "" -#: rc.c:232 +#: rc.c:243 msgid "Use JIS X 0201 Katakana" msgstr "" -#: rc.c:233 +#: rc.c:244 msgid "Use JIS X 0212:1990 (Supplemental Kanji)" msgstr "" -#: rc.c:234 +#: rc.c:245 msgid "Use JIS X 0213:2000 (2000JIS)" msgstr "" -#: rc.c:235 +#: rc.c:246 msgid "Strict ISO-2022-JP/KR/CN" msgstr "" -#: rc.c:236 +#: rc.c:247 msgid "Treat 4 bytes char. of GB18030 as Unicode" msgstr "" -#: rc.c:237 +#: rc.c:248 msgid "Simple Preserve space" msgstr "" -#: rc.c:240 +#: rc.c:251 msgid "keymap file" msgstr "" -#: rc.c:257 +#: rc.c:268 msgid "black" msgstr "" -#: rc.c:258 +#: rc.c:269 msgid "red" msgstr "" -#: rc.c:259 +#: rc.c:270 msgid "green" msgstr "" -#: rc.c:260 +#: rc.c:271 msgid "yellow" msgstr "" -#: rc.c:261 +#: rc.c:272 msgid "blue" msgstr "" -#: rc.c:262 +#: rc.c:273 msgid "magenta" msgstr "" -#: rc.c:263 +#: rc.c:274 msgid "cyan" msgstr "" -#: rc.c:264 +#: rc.c:275 msgid "white" msgstr "" -#: rc.c:265 +#: rc.c:276 msgid "terminal" msgstr "" -#: rc.c:284 +#: rc.c:295 msgid "none" msgstr "" -#: rc.c:285 +#: rc.c:296 msgid "current URL" msgstr "" -#: rc.c:286 +#: rc.c:297 msgid "link URL" msgstr "" -#: rc.c:291 +#: rc.c:302 msgid "simple" msgstr "" -#: rc.c:292 +#: rc.c:303 msgid "use tag" msgstr "" -#: rc.c:293 +#: rc.c:304 msgid "fontify" msgstr "" -#: rc.c:299 +#: rc.c:310 msgid "A:relative to screen height" msgstr "" -#: rc.c:300 +#: rc.c:311 msgid "B:fixed speed" msgstr "" -#: rc.c:307 +#: rc.c:318 msgid "unspecified" msgstr "" -#: rc.c:308 +#: rc.c:319 msgid "inet inet6" msgstr "" -#: rc.c:309 +#: rc.c:320 msgid "inet6 inet" msgstr "" -#: rc.c:310 +#: rc.c:321 msgid "inet only" msgstr "" -#: rc.c:311 +#: rc.c:322 msgid "inet6 only" msgstr "" -#: rc.c:318 +#: rc.c:329 msgid "discard" msgstr "" -#: rc.c:320 +#: rc.c:331 msgid "accept" msgstr "" -#: rc.c:322 +#: rc.c:333 msgid "ask" msgstr "" -#: rc.c:329 +#: rc.c:340 msgid "use internal mailer instead" msgstr "" -#: rc.c:331 +#: rc.c:342 msgid "ignore options and use only the address" msgstr "" -#: rc.c:332 +#: rc.c:343 msgid "use full mailto URL" msgstr "" -#: rc.c:341 +#: rc.c:352 msgid "OFF" msgstr "" -#: rc.c:342 +#: rc.c:353 msgid "Only ISO 2022" msgstr "" -#: rc.c:343 +#: rc.c:354 msgid "ON" msgstr "" -#: rc.c:349 +#: rc.c:360 msgid "ASCII" msgstr "" -#: rc.c:350 +#: rc.c:361 msgid "charset specific" msgstr "" -#: rc.c:351 +#: rc.c:362 msgid "DEC special graphics" msgstr "" -#: rc.c:714 +#: rc.c:743 msgid "Display Settings" msgstr "" -#: rc.c:716 +#: rc.c:745 msgid "Color Settings" msgstr "" -#: rc.c:718 +#: rc.c:747 msgid "Miscellaneous Settings" msgstr "" -#: rc.c:719 +#: rc.c:748 msgid "Directory Settings" msgstr "" -#: rc.c:720 +#: rc.c:749 msgid "External Program Settings" msgstr "" -#: rc.c:721 +#: rc.c:750 msgid "Network Settings" msgstr "" -#: rc.c:722 +#: rc.c:751 msgid "Proxy Settings" msgstr "" -#: rc.c:724 +#: rc.c:753 msgid "SSL Settings" msgstr "" -#: rc.c:727 +#: rc.c:756 msgid "Cookie Settings" msgstr "" -#: rc.c:730 +#: rc.c:759 msgid "Charset Settings" msgstr "" @@ -874,6 +912,6 @@ msgstr "" #. * header. For example, ja.po should translate it as #. * "ja;q=1.0, en;q=0.5" like that. #. -#: rc.c:1209 +#: rc.c:1241 msgid "en;q=1.0" msgstr "" diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 0000000..41d7273 --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,924 @@ +# zh_CN translation for w3m +# Copyright (C) YEAR THE w3m'S COPYRIGHT HOLDER +# This file is distributed under the same license as the w3m package. +# Junde Yi <lmy441900@gmail.com>, 2014. +# Mingcong Bai <jeffbai@aosc.xyz>, 2014. +# liushuyu <liushuyu_011@126.com>, 2014. +# Xingda Zheng <icenowy@outlook.com>, 2014. +# Mingye Wang (Arthur2e5) <arthur200126@gmail.com>, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: w3m 0.5.3\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-24 19:21+0900\n" +"PO-Revision-Date: 2016-03-14 19:51+0900\n" +"Last-Translator: Tatsuya Kinoshita <tats@debian.org>\n" +"Language-Team: AOSC zh_CN <aosc@members.fsf.org>\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.6\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: menu.c:269 +msgid " Back (b) " +msgstr " (b) " + +#: menu.c:270 +msgid " Select Buffer(s) " +msgstr " 膽峨 " + +#: menu.c:272 +msgid " Select Tab (t) " +msgstr " 膈 (t) " + +#: menu.c:274 +msgid " View Source (v) " +msgstr " ョ羣 (v) " + +#: menu.c:275 +msgid " Edit Source (e) " +msgstr " 篆号 (e) " + +#: menu.c:276 +msgid " Save Source (S) " +msgstr " 篆絖羣 (S) " + +#: menu.c:277 +msgid " Reload (r) " +msgstr " 域十 (r) " + +#: menu.c:278 menu.c:285 menu.c:289 +msgid " ---------------- " +msgstr " ---------------- " + +#: menu.c:279 +msgid " Go Link (a) " +msgstr " 莉育丈・ (a) " + +#: menu.c:280 +msgid " on New Tab (n) " +msgstr " 井膈 (n) " + +#: menu.c:281 +msgid " Save Link (A) " +msgstr " 篆絖丈・ (A) " + +#: menu.c:282 +msgid " View Image (i) " +msgstr " ョ丞 (i) " + +#: menu.c:283 +msgid " Save Image (I) " +msgstr " 篆絖丞 (I) " + +#: menu.c:284 +msgid " View Frame (f) " +msgstr " ョ罅 (f) " + +#: menu.c:286 +msgid " Bookmark (B) " +msgstr " 箙膈 (B) " + +#: menu.c:287 +msgid " Help (h) " +msgstr " 絽 (h) " + +#: menu.c:288 +msgid " Option (o) " +msgstr " 蕁 (o) " + +#: menu.c:290 +msgid " Quit (q) " +msgstr " (q) " + +#: rc.c:62 +msgid "External Viewer Setup" +msgstr "紊ョ莅丞舟" + +#: rc.c:63 +msgid "Tab width in characters" +msgstr "絖筝 TAB 絎遵墾" + +#: rc.c:64 +msgid "Indent for HTML rendering" +msgstr "篋 HTML 羝我" + +#: rc.c:65 +msgid "Number of pixels per character (4.0...32.0)" +msgstr "罸鎕篏紊у靘 (4.0...32.0)" + +#: rc.c:66 +msgid "Number of pixels per line (4.0...64.0)" +msgstr "罸頫靘 (4.0...64.0)" + +#: rc.c:67 +msgid "Number of remembered lines when used as a pager" +msgstr "綵篏筝阪蕁球篏睡区医茵" + +#: rc.c:68 +msgid "Use URL history" +msgstr "篏睡 URL 兓医" + +#: rc.c:69 +msgid "Number of remembered URL" +msgstr "莅医 URL 育" + +#: rc.c:70 +msgid "Save URL history" +msgstr "篆絖 URL " + +#: rc.c:71 +msgid "Render frames automatically" +msgstr "羝我罅" + +#: rc.c:72 +msgid "Treat argument without scheme as URL" +msgstr "絨弱亥篏 URL" + +#: rc.c:73 +msgid "Use _self as default target" +msgstr "絨荳篏筝咲莅ょ (_S)" + +#: rc.c:74 +msgid "Open link on new tab if target is _blank or _new" +msgstr "絋筝榊 (_b) 医産 (_n) 井膈丈綣蕁級" + +#: rc.c:75 +msgid "Open download list panel on new tab" +msgstr "綣筝莉遵茵∽推井膈" + +#: rc.c:76 +msgid "Display link URL automatically" +msgstr "丞ず丈・ URL" + +#: rc.c:77 +msgid "Display link numbers" +msgstr "丞ず丈・膽" + +#: rc.c:78 +msgid "Display decoded URL" +msgstr "丞ず茹g URL" + +#: rc.c:79 +msgid "Display current line number" +msgstr "丞ず綵茵" + +#: rc.c:80 +msgid "Display inline images" +msgstr "丞ず上" + +#: rc.c:81 +msgid "Display pseudo-ALTs for inline images with no ALT or TITLE string" +msgstr "筝坂絽 ALT TITLE 絖筝牙上丞ず篌 ALT" + +#: rc.c:83 +msgid "Load inline images automatically" +msgstr "莉遵ヨ上" + +#: rc.c:84 +msgid "Maximum processes for parallel image loading" +msgstr "紊膾睡上莉順紊ц腮" + +#: rc.c:85 +msgid "Use external image viewer" +msgstr "篏睡紊丞ョ" + +#: rc.c:86 +msgid "Scale of image (%)" +msgstr "上閴箴絨 (%)" + +#: rc.c:87 +msgid "External command to display image" +msgstr "篋丞ず上紊巡擦" + +#: rc.c:88 +msgid "Use link list of image map" +msgstr "篏睡上絨丈・茵" + +#: rc.c:90 +msgid "Display file names in multi-column format" +msgstr "篁ュ弱丞ず篁九" + +#: rc.c:91 +msgid "Use ASCII equivalents to display entities" +msgstr "篏睡絲劫 ASCII 膽ユ丞ず絎篏 " + +#: rc.c:92 +msgid "Character type for border of table and menu" +msgstr "茵弱莨号絖膃膠糸" + +#: rc.c:93 +msgid "Display table borders, ignore value of BORDER" +msgstr "丞ず茵取捷罅鐚綽順 BORDER 医" + +#: rc.c:94 +msgid "Fold lines in TEXTAREA" +msgstr " (TEXTAREA) 筝茵" + +#: rc.c:95 +msgid "Display INS, DEL, S and STRIKE element" +msgstr "丞ず INS, DEL, S STRIKE 膣" + +#: rc.c:96 +msgid "Display with color" +msgstr "篏睡絽蘂牙丞ず" + +#: rc.c:97 +msgid "Color of normal character" +msgstr "筝絖蘂" + +#: rc.c:98 +msgid "Color of anchor" +msgstr "丈・絖蘂" + +#: rc.c:99 +msgid "Color of image link" +msgstr "丞丈・蘂" + +#: rc.c:100 +msgid "Color of form" +msgstr "茵守" + +#: rc.c:101 +msgid "Enable coloring of active link" +msgstr "筝堺柑丈・綣筝" + +#: rc.c:102 +msgid "Color of currently active link" +msgstr "綵羇糸丈・蘂" + +#: rc.c:103 +msgid "Use visited link color" +msgstr "筝肴翠菴丈・筝" + +#: rc.c:104 +msgid "Color of visited link" +msgstr "綏画翠丈・蘂" + +#: rc.c:105 +msgid "Color of background" +msgstr "" + +#: rc.c:106 +msgid "Color of mark" +msgstr "莅育" + +#: rc.c:107 +msgid "Use proxy" +msgstr "篏睡篁g≦" + +#: rc.c:108 +msgid "URL of HTTP proxy host" +msgstr "HTTP 篁g筝紙阪医" + +#: rc.c:110 +msgid "URL of HTTPS proxy host" +msgstr "HTTPS 篁g筝紙阪医" + +#: rc.c:113 +msgid "URL of GOPHER proxy host" +msgstr "GOPHER 篁g筝紙阪医" + +#: rc.c:115 +msgid "URL of FTP proxy host" +msgstr "FTP 篁g筝紙阪医" + +#: rc.c:116 +msgid "Domains to be accessed directly (no proxy)" +msgstr "贋・莅翠筝篁g≦莅翠 URL" + +#: rc.c:117 +msgid "Check noproxy by network address" +msgstr "号臀膸医罍 noproxy" + +#: rc.c:118 +msgid "Disable cache" +msgstr "胼膽絖" + +#: rc.c:120 +msgid "News server" +msgstr "育紙≦" + +#: rc.c:121 +msgid "Mode of news server" +msgstr "育紙≦罔≦" + +#: rc.c:122 +msgid "Number of news messages" +msgstr "育紙育" + +#: rc.c:124 +msgid "Order of name resolution" +msgstr "腱域В蕁阪" + +#: rc.c:125 +msgid "Directory corresponding to / (document root)" +msgstr "絲劫 / 綵 (罅f合綵)" + +#: rc.c:126 +msgid "Directory corresponding to /~user" +msgstr "絲劫 /~user 綵" + +#: rc.c:127 +msgid "Directory corresponding to /cgi-bin" +msgstr "絲劫 /cgi-bin 綵" + +#: rc.c:128 +msgid "Confirm when quitting with q" +msgstr "篏睡 q 堺区傑隋莅" + +#: rc.c:129 +msgid "Close tab if buffer is last when back" +msgstr "菴句峨肴篁ュ倶絨怨渇膈冗ゝ" + +#: rc.c:131 +msgid "Enable mark operations" +msgstr "莅井篏" + +#: rc.c:133 +msgid "Enable Emacs-style line editing" +msgstr " Emacs 蕋主茵膽莨" + +#: rc.c:134 +msgid "Space key triggers file completion while editing URLs" +msgstr "" + +#: rc.c:135 +msgid "Enable vi-like numeric prefix" +msgstr " vi 綣医莊活習" + +#: rc.c:136 +msgid "Move cursor to top line when going to label" +msgstr "綵腱糸井膈丈九腱糸井蕁区" + +#: rc.c:137 +msgid "Move cursor to top line when moving to next page" +msgstr "綵莉遺筝蕁究九腱糸井蕁区" + +#: rc.c:138 +msgid "Fold lines of plain text file" +msgstr "絲合痕篁九茵茵" + +#: rc.c:139 +msgid "Show line numbers" +msgstr "丞ず茵" + +#: rc.c:140 +msgid "Show search string" +msgstr "丞ず膣√膃筝" + +#: rc.c:141 +msgid "List of mime.types files" +msgstr "mime.type 篁九茵" + +#: rc.c:142 +msgid "List of mailcap files" +msgstr "mailcap 篁九茵" + +#: rc.c:143 +msgid "List of urimethodmap files" +msgstr "urlmethodmap 篁九茵" + +#: rc.c:144 +msgid "Editor" +msgstr "膽莨" + +#: rc.c:145 +msgid "Mailer" +msgstr "" + +#: rc.c:146 +msgid "How to call Mailer for mailto URLs with options" +msgstr " mailto 医区球篁句綺劫" + +#: rc.c:147 +msgid "External browser" +msgstr "紊羌頵" + +#: rc.c:148 +msgid "2nd external browser" +msgstr "膃篋紊羌頵" + +#: rc.c:149 +msgid "3rd external browser" +msgstr "膃筝紊羌頵" + +#: rc.c:150 +msgid "4th external browser" +msgstr "膃紊羌頵" + +#: rc.c:151 +msgid "5th external browser" +msgstr "膃篋紊羌頵" + +#: rc.c:152 +msgid "6th external browser" +msgstr "膃紊羌頵" + +#: rc.c:153 +msgid "7th external browser" +msgstr "膃筝紊羌頵" + +#: rc.c:154 +msgid "8th external browser" +msgstr "膃紊羌頵" + +#: rc.c:155 +msgid "9th external browser" +msgstr "膃箙紊羌頵" + +#: rc.c:156 +msgid "Disable secret file security check" +msgstr "渇腱絲篁九罍" + +#: rc.c:157 +msgid "Password file" +msgstr "絲篁" + +#: rc.c:158 +msgid "File for setting form on loading" +msgstr "莅丞舟腦e莉醇句篁" + +#: rc.c:159 +msgid "File for preferences for each site" +msgstr "筝腴合薤蕁号篁" + +#: rc.c:160 +msgid "Password for anonymous FTP (your mail address)" +msgstr "水FTP絲鐚膊怨医鐚" + +#: rc.c:161 +msgid "Generate domain part of password for FTP" +msgstr "筝 FTP 絲" + +#: rc.c:162 +msgid "User-Agent identification string" +msgstr "User-Agent 筝" + +#: rc.c:163 +msgid "Accept-Encoding header" +msgstr "・膽 (Accept-Encoding) ュご" + +#: rc.c:164 +msgid "Accept header" +msgstr "・ (Accept) ュご" + +#: rc.c:165 +msgid "Accept-Language header" +msgstr "・莚荐 (Accept-Language) ュご" + +#: rc.c:166 +msgid "Treat URL-like strings as links in all pages" +msgstr "絨蕁級≫賢膠私室篋 URL 絖膃筝峨丈・" + +#: rc.c:167 +msgid "Wrap search" +msgstr "茖膣∝" + +#: rc.c:168 +msgid "Display unseen objects (e.g. bgimage tag)" +msgstr "丞ず筝亥絲壕院 鐚箴絋鐚bdimage膈常" + +#: rc.c:169 +msgid "Uncompress compressed data automatically when downloading" +msgstr "筝莉醇区茹e茴膽井" + +#: rc.c:171 +msgid "Run external viewer in a separate session" +msgstr "Ί筝篌莚筝菴茵紊ョ" + +#: rc.c:173 +msgid "Run external viewer in the background" +msgstr "佈茵紊ョ" + +#: rc.c:175 +msgid "Use external program for directory listing" +msgstr "篏睡紊腮綺榊綵" + +#: rc.c:176 +msgid "URL of directory listing command" +msgstr "綵茵巡擦臀" + +#: rc.c:178 +msgid "Enable dictionary lookup through CGI" +msgstr "坂 CGI 莚御ヨ" + +#: rc.c:179 +msgid "URL of dictionary lookup command" +msgstr "絖御ユ上巡擦臀" + +#: rc.c:181 +msgid "Display link name for images lacking ALT" +msgstr "絲合失絨 ALT 丞丞ず丈・腱" + +#: rc.c:182 +msgid "Index file for directories" +msgstr "綵膣√篁" + +#: rc.c:183 +msgid "Prepend http:// to URL automatically" +msgstr " URL http://" + +#: rc.c:184 +msgid "Default value for open-URL command" +msgstr "綣臀巡擦藥莅ゅ" + +#: rc.c:185 +msgid "Decode Content-Transfer-Encoding when saving" +msgstr "篆絖九劫絎剛莨膽篆≧ (Content-Transfer-Encoding) 菴茵茹g" + +#: rc.c:186 +msgid "Preserve timestamp when saving" +msgstr "篆絖銀狗贋" + +#: rc.c:188 +msgid "Enable mouse" +msgstr "藜" + +#: rc.c:189 +msgid "Scroll in reverse direction of mouse drag" +msgstr "藜劫羯" + +#: rc.c:190 +msgid "Behavior of wheel scroll speed" +msgstr "羯莉羯綺茵筝" + +#: rc.c:191 +msgid "(A only)Scroll by # (%) of screen" +msgstr "(篁 A) 罸閩≧ # (%) 絮鎶蕭綺" + +#: rc.c:192 +msgid "(B only)Scroll by # lines" +msgstr "(篁 B) 罸閩≧ # 茵" + +#: rc.c:194 +msgid "Free memory of undisplayed buffers" +msgstr "丈丞ず膽絖絖" + +#: rc.c:195 +msgid "Suppress `Referer:' header" +msgstr "胼罩 'Referer:' 篁九ご" + +#: rc.c:196 +msgid "Search case-insensitively" +msgstr "膣≫阪紊у" + +#: rc.c:197 +msgid "Use LESSOPEN" +msgstr "篏睡 LESSOPEN" + +#: rc.c:200 +msgid "Perform SSL server verification" +msgstr "菴茵 SSL ≦罍" + +#: rc.c:201 +msgid "PEM encoded certificate file of client" +msgstr "絎∽欠 PEM 膽莚箙篁" + +#: rc.c:202 +msgid "PEM encoded private key file of client" +msgstr "絎∽欠 PEM 膽腱ユ篁" + +#: rc.c:203 +msgid "Path to directory for PEM encoded certificates of CAs" +msgstr "PEM 膽 CA 莚箙綵莊緇" + +#: rc.c:204 +msgid "File consisting of PEM encoded certificates of CAs" +msgstr " PEM 膽 CA 莚箙篁" + +#: rc.c:206 +msgid "" +"List of forbidden SSL methods (2: SSLv2, 3: SSLv3, t: TLSv1.0, 5: TLSv1.1, " +"6: TLSv1.2, 7: TLSv1.3)" +msgstr "" +"茴胼罩∝ SSL 劫茵 (2: SSLv2, 3: SSLv3, t: TLSv1.0, 5: TLSv1.1, 6: " +"TLSv1.2, 7: TLSv1.3)" + +#: rc.c:209 +msgid "Enable cookie processing" +msgstr "綣 Cookie 紊" + +#: rc.c:210 +msgid "Print a message when receiving a cookie" +msgstr "・銀筝 Cookie 倶丞ず筝筝羔" + +#: rc.c:211 +msgid "Accept cookies" +msgstr "・ Cookies" + +#: rc.c:212 +msgid "Action to be taken on invalid cookie" +msgstr "絲号 Cookies 菴茵篏" + +#: rc.c:213 +msgid "Domains to reject cookies from" +msgstr "膸絋筝 Cookies" + +#: rc.c:214 +msgid "Domains to accept cookies from" +msgstr "・絋筝 Cookies" + +#: rc.c:215 +msgid "Domains to avoid [wrong number of dots]" +msgstr "水莅翠 [莚号]" + +#: rc.c:217 +msgid "Number of redirections to follow" +msgstr "莊絎育" + +#: rc.c:218 +msgid "Enable processing of meta-refresh tag" +msgstr "綣 meta-refresh 膈上" + +#: rc.c:221 +msgid "Enable Migemo (Roma-ji search)" +msgstr "綣 Migemo (臀薊絖膣)" + +#: rc.c:222 +msgid "Migemo command" +msgstr "Migemo 巡擦" + +#: rc.c:226 +msgid "Display charset" +msgstr "丞ず絖膃" + +#: rc.c:227 +msgid "Default document charset" +msgstr "藥莅ゆ罅e膃" + +#: rc.c:228 +msgid "Automatic charset detect when loading" +msgstr "莉遵ユ区茵絖膃「羌" + +#: rc.c:229 +msgid "System charset" +msgstr "膤紫絖膃" + +#: rc.c:230 +msgid "System charset follows locale(LC_CTYPE)" +msgstr "号膤紫莅丞舟 (LC_CTYPE) 絎膤紫絖膃" + +#: rc.c:231 +msgid "Output halfdump with display charset" +msgstr "篏睡丞ず絖膃莨 halfdump" + +#: rc.c:232 +msgid "Use multi column characters" +msgstr "篏睡紊絖膃" + +#: rc.c:233 +msgid "Use combining characters" +msgstr "篏睡綛九膃" + +#: rc.c:234 +msgid "Use double width for some Unicode characters" +msgstr "篏 Unicode 絖膃篏睡絎遵墾" + +#: rc.c:235 +msgid "Use Unicode language tags" +msgstr "篏睡 Unicode 莚荐膈" + +#: rc.c:236 +msgid "Charset conversion using Unicode map" +msgstr "篏睡 Unicode 絨菴茵絖膃莉" + +#: rc.c:237 +msgid "Charset conversion when loading" +msgstr "莉遵ユ区茵絖膃莉" + +#: rc.c:238 +msgid "Adjust search string for document charset" +msgstr "莪贋罅e膃膣√筝" + +#: rc.c:239 +msgid "Fix character width when conversion" +msgstr "莉∽九阪絖膃絎遵墾" + +#: rc.c:240 +msgid "Use GB 12345 Unicode map instead of GB 2312's" +msgstr "篏睡 GB 12345 Unicode 絨 GB 2312" + +#: rc.c:241 +msgid "Use JIS X 0201 Roman for ISO-2022-JP" +msgstr "篏睡 JIS X 0201 臀薊絖罸篋 ISO-2022-JP" + +#: rc.c:242 +msgid "Use JIS C 6226:1978 for ISO-2022-JP" +msgstr "篏睡 JIS C 6226:1978 篋 ISO-2022-JP" + +#: rc.c:243 +msgid "Use JIS X 0201 Katakana" +msgstr "篏睡 JIS X 0201 " + +#: rc.c:244 +msgid "Use JIS X 0212:1990 (Supplemental Kanji)" +msgstr "篏睡 JIS X 0212:1990 (茵ュ羆絖)" + +#: rc.c:245 +msgid "Use JIS X 0213:2000 (2000JIS)" +msgstr "篏睡 JIS X 0213:2000 (2000JIS)" + +#: rc.c:246 +msgid "Strict ISO-2022-JP/KR/CN" +msgstr "筝ユ ISO-2022-JP/KR/CN" + +#: rc.c:247 +msgid "Treat 4 bytes char. of GB18030 as Unicode" +msgstr "茹 GB18030 膽 4 絖絖膃筝 Unicode" + +#: rc.c:248 +msgid "Simple Preserve space" +msgstr "膊篆腥咲" + +#: rc.c:251 +msgid "keymap file" +msgstr "絨篁" + +#: rc.c:268 +msgid "black" +msgstr "藥" + +#: rc.c:269 +msgid "red" +msgstr "膾∵" + +#: rc.c:270 +msgid "green" +msgstr "膸粋" + +#: rc.c:271 +msgid "yellow" +msgstr "藥" + +#: rc.c:272 +msgid "blue" +msgstr "" + +#: rc.c:273 +msgid "magenta" +msgstr "膾" + +#: rc.c:274 +msgid "cyan" +msgstr "" + +#: rc.c:275 +msgid "white" +msgstr "処" + +#: rc.c:276 +msgid "terminal" +msgstr "膸腴" + +#: rc.c:295 +msgid "none" +msgstr "" + +#: rc.c:296 +msgid "current URL" +msgstr "綵 URL" + +#: rc.c:297 +msgid "link URL" +msgstr "丈・ URL" + +#: rc.c:302 +msgid "simple" +msgstr "膊" + +#: rc.c:303 +msgid "use tag" +msgstr "篏睡膈" + +#: rc.c:304 +msgid "fontify" +msgstr "" + +#: rc.c:310 +msgid "A:relative to screen height" +msgstr "A:後剛絮鎶蕭綺" + +#: rc.c:311 +msgid "B:fixed speed" +msgstr "B:阪綺" + +#: rc.c:318 +msgid "unspecified" +msgstr "絎" + +#: rc.c:319 +msgid "inet inet6" +msgstr "" + +#: rc.c:320 +msgid "inet6 inet" +msgstr "" + +#: rc.c:321 +msgid "inet only" +msgstr "篁 inet" + +#: rc.c:322 +msgid "inet6 only" +msgstr "篁 inet6" + +#: rc.c:329 +msgid "discard" +msgstr "筝√" + +#: rc.c:331 +msgid "accept" +msgstr "・" + +#: rc.c:333 +msgid "ask" +msgstr "莚∫" + +#: rc.c:340 +msgid "use internal mailer instead" +msgstr "篏睡綮咲篁九" + +#: rc.c:342 +msgid "ignore options and use only the address" +msgstr "綽順ラ蕁壕Ü戎医" + +#: rc.c:343 +msgid "use full mailto URL" +msgstr "篏睡岩肩 mailto URL" + +#: rc.c:352 +msgid "OFF" +msgstr "" + +#: rc.c:353 +msgid "Only ISO 2022" +msgstr "篁 ISO 2022" + +#: rc.c:354 +msgid "ON" +msgstr "綣" + +#: rc.c:360 +msgid "ASCII" +msgstr "ASCII" + +#: rc.c:361 +msgid "charset specific" +msgstr "絖膃劫" + +#: rc.c:362 +msgid "DEC special graphics" +msgstr "DEC 号上" + +#: rc.c:743 +msgid "Display Settings" +msgstr "丞ず莅丞舟" + +#: rc.c:745 +msgid "Color Settings" +msgstr "蘂画丞舟" + +#: rc.c:747 +msgid "Miscellaneous Settings" +msgstr "蕁壕丞舟" + +#: rc.c:748 +msgid "Directory Settings" +msgstr "綵莅丞舟" + +#: rc.c:749 +msgid "External Program Settings" +msgstr "紊腮綺顒丞舟" + +#: rc.c:750 +msgid "Network Settings" +msgstr "臀膸莅丞舟" + +#: rc.c:751 +msgid "Proxy Settings" +msgstr "篁g莅丞舟" + +#: rc.c:753 +msgid "SSL Settings" +msgstr "SSL 莅丞舟" + +#: rc.c:756 +msgid "Cookie Settings" +msgstr "Cookie 莅丞舟" + +#: rc.c:759 +msgid "Charset Settings" +msgstr "絖膃莅丞舟" + +#. TRANSLATORS: +#. * AcceptLang default: this is used in Accept-Language: HTTP request +#. * header. For example, ja.po should translate it as +#. * "ja;q=1.0, en;q=0.5" like that. +#. +#: rc.c:1241 +msgid "en;q=1.0" +msgstr "zh-CN;q=1.0, zh-Hans;q=0.9, zh;q=0.8, en;q=0.6" diff --git a/po/zh_TW.po b/po/zh_TW.po new file mode 100644 index 0000000..854877e --- /dev/null +++ b/po/zh_TW.po @@ -0,0 +1,930 @@ +# zh_TW translation for w3m +# Copyright (C) 2014-2020 w3m contributors. +# This file is distributed under the same license as the w3m package. +# +# Comparative editing: +# Ambrose Li <ambrose.li@gmail.com>, 2020. +# +# Originally machine-converted from zh_CN translation translated by: +# Junde Yi <lmy441900@gmail.com>, 2014. +# Mingcong Bai <jeffbai@aosc.xyz>, 2014. +# liushuyu <liushuyu_011@126.com>, 2014. +# Xingda Zheng <icenowy@outlook.com>, 2014. +# Mingye Wang (Arthur2e5) <arthur200126@gmail.com>, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: w3m 0.5.3\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-24 19:21+0900\n" +"PO-Revision-Date: 2020-12-17 21:29-0500\n" +"Last-Translator: Ambrose Li <ambrose.li@gmail.com>\n" +"Language-Team: Pidgin zh_TW <http://www.transifex.com/pidgin/pidgin/language/" +"zh_TW/>\n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: menu.c:269 +msgid " Back (b) " +msgstr " 菴 (b) " + +#: menu.c:270 +msgid " Select Buffer(s) " +msgstr " 御膩茵 " + +#: menu.c:272 +msgid " Select Tab (t) " +msgstr " 御 (t) " + +#: menu.c:274 +msgid " View Source (v) " +msgstr " 罟∵羣紮腆 (v) " + +#: menu.c:275 +msgid " Edit Source (e) " +msgstr " 篆号紮腆 (e) " + +#: menu.c:276 +msgid " Save Source (S) " +msgstr " 峨羣紮腆 (S) " + +#: menu.c:277 +msgid " Reload (r) " +msgstr " 域 (r) " + +#: menu.c:278 menu.c:285 menu.c:289 +msgid " ---------------- " +msgstr " ---------------- " + +#: menu.c:279 +msgid " Go Link (a) " +msgstr " g (a) " + +#: menu.c:280 +msgid " on New Tab (n) " +msgstr " 惹医 (n) " + +#: menu.c:281 +msgid " Save Link (A) " +msgstr " 峨g (A) " + +#: menu.c:282 +msgid " View Image (i) " +msgstr " 罟∵綵怨 (i) " + +#: menu.c:283 +msgid " Save Image (I) " +msgstr " 峨綵怨 (I) " + +#: menu.c:284 +msgid " View Frame (f) " +msgstr " 罟∵罅 (f) " + +#: menu.c:286 +msgid " Bookmark (B) " +msgstr " 悟韻 (B) " + +#: menu.c:287 +msgid " Help (h) " +msgstr " 茯 (h) " + +#: menu.c:288 +msgid " Option (o) " +msgstr " 檎 (o) " + +#: menu.c:290 +msgid " Quit (q) " +msgstr " 腟腮綣 (q) " + +#: rc.c:62 +msgid "External Viewer Setup" +msgstr "紊罟∵荐絎" + +#: rc.c:63 +msgid "Tab width in characters" +msgstr "罨罔絖絲綺鐚綵√醐" + +#: rc.c:64 +msgid "Indent for HTML rendering" +msgstr "膰絖醐蕁腓 HTML 絨鐚" + +#: rc.c:65 +msgid "Number of pixels per character (4.0...32.0)" +msgstr "綵√絲綺鐚靘鐚 (4.0...32.0)" + +#: rc.c:66 +msgid "Number of pixels per line (4.0...64.0)" +msgstr "綵√蕭綺鐚靘鐚 (4.0...64.0)" + +#: rc.c:67 +msgid "Number of remembered lines when used as a pager" +msgstr "篏阪篏睡荐句茵" + +#: rc.c:68 +msgid "Use URL history" +msgstr "膓峨罩桁兓" + +#: rc.c:69 +msgid "Number of remembered URL" +msgstr "荐膓峨" + +#: rc.c:70 +msgid "Save URL history" +msgstr "峨膓峨罩桁" + +#: rc.c:71 +msgid "Render frames automatically" +msgstr "蕁腓堺" + +#: rc.c:72 +msgid "Treat argument without scheme as URL" +msgstr "羃荐絎 (scheme) 娯緇荀篏膓峨" + +#: rc.c:73 +msgid "Use _self as default target" +msgstr "篏睡 _self 篏咲荐罔" + +#: rc.c:74 +msgid "Open link on new tab if target is _blank or _new" +msgstr "句罔 _blank _new 篏睡医g" + +#: rc.c:75 +msgid "Open download list panel on new tab" +msgstr "医蕁腓坂莠羝" + +#: rc.c:76 +msgid "Display link URL automatically" +msgstr "蕁腓咲g膓峨" + +#: rc.c:77 +msgid "Display link numbers" +msgstr "蕁腓咲g膩" + +#: rc.c:78 +msgid "Display decoded URL" +msgstr "蕁腓榊恐茵茹g⊆" + +#: rc.c:79 +msgid "Display current line number" +msgstr "蕁腓榊茵" + +#: rc.c:80 +msgid "Display inline images" +msgstr "蕁腓阪ュ襲" + +#: rc.c:81 +msgid "Display pseudo-ALTs for inline images with no ALT or TITLE string" +msgstr "綉ュ襲閽 ALT TITLE 絮ф蕁腓肴推撮絖" + +#: rc.c:83 +msgid "Load inline images automatically" +msgstr "莠ュュ襲" + +#: rc.c:84 +msgid "Maximum processes for parallel image loading" +msgstr "綛活莠ュ襲膵羇絖腮綺檎鋇" + +#: rc.c:85 +msgid "Use external image viewer" +msgstr "篏睡紊臀綵怨閡∵" + +#: rc.c:86 +msgid "Scale of image (%)" +msgstr "綵怨閴箴 (%)" + +#: rc.c:87 +msgid "External command to display image" +msgstr "蕁腓阪襲篁" + +#: rc.c:88 +msgid "Use link list of image map" +msgstr "篏睡綵怨医хg羝" + +#: rc.c:90 +msgid "Display file names in multi-column format" +msgstr "篁ュ罨篏弱馹腓堺" + +#: rc.c:91 +msgid "Use ASCII equivalents to display entities" +msgstr " ASCII 絖蕁腓阪腮怨蕭" + +#: rc.c:92 +msgid "Character type for border of table and menu" +msgstr "蕁腓肴;弱後紊罅主篏睡絖蕁" + +#: rc.c:93 +msgid "Display table borders, ignore value of BORDER" +msgstr "茵寂緇蕁腓阪罅主鐚綽順 BORDER 後種" + +#: rc.c:94 +msgid "Fold lines in TEXTAREA" +msgstr "絖 (TEXTAREA) 筝決" + +#: rc.c:95 +msgid "Display INS, DEL, S and STRIKE element" +msgstr "INSDELS STRIKE 膣蕁腓堺号" + +#: rc.c:96 +msgid "Display with color" +msgstr "篏睡蕁" + +#: rc.c:97 +msgid "Color of normal character" +msgstr "筝絖蕁" + +#: rc.c:98 +msgid "Color of anchor" +msgstr "絖g蕁" + +#: rc.c:99 +msgid "Color of image link" +msgstr "g蕁" + +#: rc.c:100 +msgid "Color of form" +msgstr "茵守" + +#: rc.c:101 +msgid "Enable coloring of active link" +msgstr "羝御g篁ヤ蕁臥¨腓" + +#: rc.c:102 +msgid "Color of currently active link" +msgstr "羝御g蕁" + +#: rc.c:103 +msgid "Use visited link color" +msgstr "g篁ヤ蕁臥¨腓" + +#: rc.c:104 +msgid "Color of visited link" +msgstr "g蕁" + +#: rc.c:105 +msgid "Color of background" +msgstr "蕁" + +#: rc.c:106 +msgid "Color of mark" +msgstr "罔荐蕁" + +#: rc.c:107 +msgid "Use proxy" +msgstr "篏睡篁g篌堺" + +#: rc.c:108 +msgid "URL of HTTP proxy host" +msgstr "HTTP 篁g篌堺篏" + +#: rc.c:110 +msgid "URL of HTTPS proxy host" +msgstr "HTTPS 篁g篌堺篏" + +#: rc.c:113 +msgid "URL of GOPHER proxy host" +msgstr "GOPHER 篁g篌堺篏" + +#: rc.c:115 +msgid "URL of FTP proxy host" +msgstr "FTP 篁g篌堺篏" + +#: rc.c:116 +msgid "Domains to be accessed directly (no proxy)" +msgstr "筝篏睡篁g篌堺膓峨" + +#: rc.c:117 +msgid "Check noproxy by network address" +msgstr "筝筝篏睡篁g篌堺膓峨膓画君篏" + +#: rc.c:118 +msgid "Disable cache" +msgstr "綽" + +#: rc.c:120 +msgid "News server" +msgstr "域篌堺" + +#: rc.c:121 +msgid "Mode of news server" +msgstr "絖域篌堺篏睡罔≦" + +#: rc.c:122 +msgid "Number of news messages" +msgstr "域荐罸閩∴" + +#: rc.c:124 +msgid "Order of name resolution" +msgstr "筝紙腮沿В綺" + +#: rc.c:125 +msgid "Directory corresponding to / (document root)" +msgstr "絨亥 / 鐚篁倶合鐚" + +#: rc.c:126 +msgid "Directory corresponding to /~user" +msgstr "絨亥 /~user " + +#: rc.c:127 +msgid "Directory corresponding to /cgi-bin" +msgstr "絨亥 /cgi-bin " + +#: rc.c:128 +msgid "Confirm when quitting with q" +msgstr "篏睡 q 窮腮綣茵腆肴" + +#: rc.c:129 +msgid "Close tab if buffer is last when back" +msgstr "緇緇筝膩茵菴渇" + +#: rc.c:131 +msgid "Enable mark operations" +msgstr "罔荐篏" + +#: rc.c:133 +msgid "Enable Emacs-style line editing" +msgstr " Emacs 蘂主膩莠" + +#: rc.c:134 +msgid "Space key triggers file completion while editing URLs" +msgstr "膩莠膓峨腥榊初笈Ц惹茖藹" + +#: rc.c:135 +msgid "Enable vi-like numeric prefix" +msgstr " vi 綣後膓" + +#: rc.c:136 +msgid "Move cursor to top line when going to label" +msgstr "莊喝井膠ゆ絨羝御腱糸井茵" + +#: rc.c:137 +msgid "Move cursor to top line when moving to next page" +msgstr "莊喝遺筝絨羝御腱糸井茵" + +#: rc.c:138 +msgid "Fold lines of plain text file" +msgstr "蕁腓榊絖罟罅決" + +#: rc.c:139 +msgid "Show line numbers" +msgstr "蕁腓肴" + +#: rc.c:140 +msgid "Show search string" +msgstr "蕁腓堺絨絖筝" + +#: rc.c:141 +msgid "List of mime.types files" +msgstr "mime.type 罟罅茵" + +#: rc.c:142 +msgid "List of mailcap files" +msgstr "mailcap 罟罅茵" + +#: rc.c:143 +msgid "List of urimethodmap files" +msgstr "urlmethodmap 罟罅茵" + +#: rc.c:144 +msgid "Editor" +msgstr "絖膩莠" + +#: rc.c:145 +msgid "Mailer" +msgstr "糸灸散腮綣" + +#: rc.c:146 +msgid "How to call Mailer for mailto URLs with options" +msgstr "悟 mailto 膓峨決糸灸散腮綣号" + +#: rc.c:147 +msgid "External browser" +msgstr "紊頳遵" + +#: rc.c:148 +msgid "2nd external browser" +msgstr "紊頳遵箙篋" + +#: rc.c:149 +msgid "3rd external browser" +msgstr "紊頳遵箙筝" + +#: rc.c:150 +msgid "4th external browser" +msgstr "紊頳遵箙" + +#: rc.c:151 +msgid "5th external browser" +msgstr "紊頳遵箙篋" + +#: rc.c:152 +msgid "6th external browser" +msgstr "紊頳遵箙" + +#: rc.c:153 +msgid "7th external browser" +msgstr "紊頳遵箙筝" + +#: rc.c:154 +msgid "8th external browser" +msgstr "紊頳遵箙" + +#: rc.c:155 +msgid "9th external browser" +msgstr "紊頳遵箙箙" + +#: rc.c:156 +msgid "Disable secret file security check" +msgstr "腱絲罟罅絎罟∽" + +#: rc.c:157 +msgid "Password file" +msgstr "絲腆惹罅" + +#: rc.c:158 +msgid "File for setting form on loading" +msgstr "紂絲茵惹絨腱絲罟罅" + +#: rc.c:159 +msgid "File for preferences for each site" +msgstr "荐ョ恐腴鎁順罟罅" + +#: rc.c:160 +msgid "Password for anonymous FTP (your mail address)" +msgstr "水FTP絲腆種糸灸散医鐚" + +#: rc.c:161 +msgid "Generate domain part of password for FTP" +msgstr " FTP 絲腆主膓峨" + +#: rc.c:162 +msgid "User-Agent identification string" +msgstr "User-Agent 茘ョ" + +#: rc.c:163 +msgid "Accept-Encoding header" +msgstr "Accept-Encoding 罔種・紕膰号鐚" + +#: rc.c:164 +msgid "Accept header" +msgstr "Accept 罔種・篁倶弱鐚" + +#: rc.c:165 +msgid "Accept-Language header" +msgstr "Accept-Language 罔種・茯荐鐚" + +#: rc.c:166 +msgid "Treat URL-like strings as links in all pages" +msgstr "≫賢篌主恐絖筝俄緇荀篏g" + +#: rc.c:167 +msgid "Wrap search" +msgstr "絨膵" + +#: rc.c:168 +msgid "Display unseen objects (e.g. bgimage tag)" +msgstr "蕁腓榊筝亥篁駈箴絋 bgimage 罔膠わ" + +#: rc.c:169 +msgid "Uncompress compressed data automatically when downloading" +msgstr "筝莠茹e茴紕膰莖" + +#: rc.c:171 +msgid "Run external viewer in a separate session" +msgstr "腴綏ヤ罧球決紊罟∵" + +#: rc.c:173 +msgid "Run external viewer in the background" +msgstr "緇伾決紊罟∵" + +#: rc.c:175 +msgid "Use external program for directory listing" +msgstr "篏睡紊腮綣榊" + +#: rc.c:176 +msgid "URL of directory listing command" +msgstr "茵篁ょ膓峨" + +#: rc.c:178 +msgid "Enable dictionary lookup through CGI" +msgstr "堺 CGI 荅御ヨ" + +#: rc.c:179 +msgid "URL of dictionary lookup command" +msgstr "荅御ヨ∽篁ょ膓峨" + +# NOTE: This option is problematic because it enables a behaviour that violates WCAG +#: rc.c:181 +msgid "Display link name for images lacking ALT" +msgstr "綵怨 ALT 主榊榊醇蕁腓阪襲閡罅腮" + +#: rc.c:182 +msgid "Index file for directories" +msgstr "膣√罟罅" + +#: rc.c:183 +msgid "Prepend http:// to URL automatically" +msgstr "膓峨筝 http://" + +#: rc.c:184 +msgid "Default value for open-URL command" +msgstr "膓峨膓峨荐" + +#: rc.c:185 +msgid "Decode Content-Transfer-Encoding when saving" +msgstr "峨罟罅 Content-Transfer-Encoding 画茹g⊆" + +#: rc.c:186 +msgid "Preserve timestamp when saving" +msgstr "峨罟罅篆活" + +#: rc.c:188 +msgid "Enable mouse" +msgstr "羯藜" + +#: rc.c:189 +msgid "Scroll in reverse direction of mouse drag" +msgstr "恰藜劫峨" + +#: rc.c:190 +msgid "Behavior of wheel scroll speed" +msgstr "羯上羯乗耳荐膊峨綺号" + +#: rc.c:191 +msgid "(A only)Scroll by # (%) of screen" +msgstr "鐚号 A 鐚峨√蕭綺上" + +#: rc.c:192 +msgid "(B only)Scroll by # lines" +msgstr "鐚号 B 鐚峨茵" + +#: rc.c:194 +msgid "Free memory of undisplayed buffers" +msgstr "膩茵絋茴蕁腓削荀乗狗" + +#: rc.c:195 +msgid "Suppress `Referer:' header" +msgstr "筝渇 Referer 罔" + +#: rc.c:196 +msgid "Search case-insensitively" +msgstr "絨筝紊у鎛" + +#: rc.c:197 +msgid "Use LESSOPEN" +msgstr "篏睡 LESSOPEN" + +#: rc.c:200 +msgid "Perform SSL server verification" +msgstr "画 SSL 篌堺薊茘" + +#: rc.c:201 +msgid "PEM encoded certificate file of client" +msgstr "句 PEM 茘罟罅" + +#: rc.c:202 +msgid "PEM encoded private key file of client" +msgstr "句 PEM 腱井罅" + +#: rc.c:203 +msgid "Path to directory for PEM encoded certificates of CAs" +msgstr "茘罘罕 PEM 茘莊緇" + +#: rc.c:204 +msgid "File consisting of PEM encoded certificates of CAs" +msgstr "茘罘罕 PEM 茘悟罟罅" + +#: rc.c:206 +msgid "" +"List of forbidden SSL methods (2: SSLv2, 3: SSLv3, t: TLSv1.0, 5: TLSv1.1, " +"6: TLSv1.2, 7: TLSv1.3)" +msgstr "" +"胼罩≫戎 SSL (2: SSLv2, 3: SSLv3, t: TLSv1.0, 5: TLSv1.1, 6: TLSv1.2, " +"7: TLSv1.3)" + +#: rc.c:209 +msgid "Enable cookie processing" +msgstr " Cookie " + +#: rc.c:210 +msgid "Print a message when receiving a cookie" +msgstr "・ Cookie 蕁腓肴" + +#: rc.c:211 +msgid "Accept cookies" +msgstr "・ Cookie" + +#: rc.c:212 +msgid "Action to be taken on invalid cookie" +msgstr "≧ Cookie 号" + +#: rc.c:213 +msgid "Domains to reject cookies from" +msgstr "腟篁ヤ膓峨 Cookie" + +#: rc.c:214 +msgid "Domains to accept cookies from" +msgstr "・篁ヤ膓峨 Cookie" + +#: rc.c:215 +msgid "Domains to avoid [wrong number of dots]" +msgstr "水頳順膓峨 [膓峨茯ゆ檎藥]" + +#: rc.c:217 +msgid "Number of redirections to follow" +msgstr "莊絎檎" + +#: rc.c:218 +msgid "Enable processing of meta-refresh tag" +msgstr " meta-refresh 罔膠よ" + +#: rc.c:221 +msgid "Enable Migemo (Roma-ji search)" +msgstr " Migemo (ヨ臂薤絖絨)" + +#: rc.c:222 +msgid "Migemo command" +msgstr "Migemo 篁" + +#: rc.c:226 +msgid "Display charset" +msgstr "莠後榊隈腆" + +#: rc.c:227 +msgid "Default document charset" +msgstr "荐篁句隈腆" + +#: rc.c:228 +msgid "Automatic charset detect when loading" +msgstr "莠ユ究謙篁句隈腆" + +#: rc.c:229 +msgid "System charset" +msgstr "膤紫輝膩腆" + +#: rc.c:230 +msgid "System charset follows locale(LC_CTYPE)" +msgstr " LC_CTYPE 御膤紫輝膩腆" + +#: rc.c:231 +msgid "Output halfdump with display charset" +msgstr "篏睡莠後榊隈腆惹篏睡上 (halfdump) 莠後堺─綣" + +#: rc.c:232 +msgid "Use multi column characters" +msgstr "篏睡絲弱綵∝絖" + +#: rc.c:233 +msgid "Use combining characters" +msgstr "篏睡腟絖" + +#: rc.c:234 +msgid "Use double width for some Unicode characters" +msgstr "篏睡綵√蕁腓堺篋 Unicode 絖" + +#: rc.c:235 +msgid "Use Unicode language tags" +msgstr "篏睡 Unicode 茯荐罔膠" + +#: rc.c:236 +msgid "Charset conversion using Unicode map" +msgstr "篏睡 Unicode 絨画膩腆取" + +#: rc.c:237 +msgid "Charset conversion when loading" +msgstr "莠ユ画膩腆取" + +#: rc.c:238 +msgid "Adjust search string for document charset" +msgstr "絨篁句隈腆取茯炊贋絨絖筝" + +#: rc.c:239 +msgid "Fix character width when conversion" +msgstr "莉膩腆惹≧e絲綺" + +#: rc.c:240 +msgid "Use GB 12345 Unicode map instead of GB 2312's" +msgstr "篏睡 GB 12345 GB 2312 Unicode 絨" + +#: rc.c:241 +msgid "Use JIS X 0201 Roman for ISO-2022-JP" +msgstr "篏睡 JIS X 0201 臂薤絖罸 ISO-2022-JP" + +#: rc.c:242 +msgid "Use JIS C 6226:1978 for ISO-2022-JP" +msgstr "篏睡 JIS C 6226:1978 ISO-2022-JP" + +#: rc.c:243 +msgid "Use JIS X 0201 Katakana" +msgstr "篏睡 JIS X 0201 " + +#: rc.c:244 +msgid "Use JIS X 0212:1990 (Supplemental Kanji)" +msgstr "篏睡 JIS X 0212:1990 (茖羲√)" + +#: rc.c:245 +msgid "Use JIS X 0213:2000 (2000JIS)" +msgstr "篏睡 JIS X 0213:2000 (2000JIS)" + +#: rc.c:246 +msgid "Strict ISO-2022-JP/KR/CN" +msgstr "贋取 ISO-2022-JP/KR/CN" + +#: rc.c:247 +msgid "Treat 4 bytes char. of GB18030 as Unicode" +msgstr "GB18030 膩腆主 4 篏腟絖筝緇荀 Unicode" + +#: rc.c:248 +msgid "Simple Preserve space" +msgstr "篆腥榊醇Ü膂≦" + +#: rc.c:251 +msgid "keymap file" +msgstr "窮ゅ罟罅" + +#: rc.c:268 +msgid "black" +msgstr "藥" + +#: rc.c:269 +msgid "red" +msgstr "膣" + +#: rc.c:270 +msgid "green" +msgstr "膓" + +#: rc.c:271 +msgid "yellow" +msgstr "藥" + +#: rc.c:272 +msgid "blue" +msgstr "" + +#: rc.c:273 +msgid "magenta" +msgstr "羇膣" + +#: rc.c:274 +msgid "cyan" +msgstr "" + +#: rc.c:275 +msgid "white" +msgstr "処" + +#: rc.c:276 +msgid "terminal" +msgstr "腟腴罘荐" + +#: rc.c:295 +msgid "none" +msgstr "腥榊" + +#: rc.c:296 +msgid "current URL" +msgstr "膩茵膓峨" + +#: rc.c:297 +msgid "link URL" +msgstr "g膓峨" + +#: rc.c:302 +msgid "simple" +msgstr "筝篏" + +#: rc.c:303 +msgid "use tag" +msgstr "蕁腓堺膠" + +#: rc.c:304 +msgid "fontify" +msgstr "弱" + +#: rc.c:310 +msgid "A:relative to screen height" +msgstr "A:後取√蕭綺" + +#: rc.c:311 +msgid "B:fixed speed" +msgstr "B:阪綺" + +#: rc.c:318 +msgid "unspecified" +msgstr "絎" + +#: rc.c:319 +msgid "inet inet6" +msgstr "IPv4 九 IPv6" + +#: rc.c:320 +msgid "inet6 inet" +msgstr "IPv6 九 IPv4" + +#: rc.c:321 +msgid "inet only" +msgstr " IPv4" + +#: rc.c:322 +msgid "inet6 only" +msgstr " IPv6" + +#: rc.c:329 +msgid "discard" +msgstr "筝罍" + +#: rc.c:331 +msgid "accept" +msgstr "・" + +#: rc.c:333 +msgid "ask" +msgstr "荅√" + +#: rc.c:340 +msgid "use internal mailer instead" +msgstr "篏睡у産灸散渇" + +#: rc.c:342 +msgid "ignore options and use only the address" +msgstr "綽順ュ醐医" + +#: rc.c:343 +msgid "use full mailto URL" +msgstr "篏睡翫 mailto 膓峨" + +#: rc.c:352 +msgid "OFF" +msgstr "" + +#: rc.c:353 +msgid "Only ISO 2022" +msgstr "Ū ISO 2022" + +#: rc.c:354 +msgid "ON" +msgstr "" + +#: rc.c:360 +msgid "ASCII" +msgstr " ASCII" + +#: rc.c:361 +msgid "charset specific" +msgstr "箴х隈腆" + +#: rc.c:362 +msgid "DEC special graphics" +msgstr "篏睡 DEC 綵√" + +#: rc.c:743 +msgid "Display Settings" +msgstr "蕁腓肴┃絎" + +#: rc.c:745 +msgid "Color Settings" +msgstr "蕁画┃絎" + +#: rc.c:747 +msgid "Miscellaneous Settings" +msgstr "荐絎" + +#: rc.c:748 +msgid "Directory Settings" +msgstr "荐絎" + +#: rc.c:749 +msgid "External Program Settings" +msgstr "紊腮綣頥絎" + +#: rc.c:750 +msgid "Network Settings" +msgstr "膓画君荐絎" + +#: rc.c:751 +msgid "Proxy Settings" +msgstr "篁g篌堺荐絎" + +#: rc.c:753 +msgid "SSL Settings" +msgstr "SSL 荐絎" + +#: rc.c:756 +msgid "Cookie Settings" +msgstr "Cookie 荐絎" + +#: rc.c:759 +msgid "Charset Settings" +msgstr "膩腆取┃絎" + +#. TRANSLATORS: +#. * AcceptLang default: this is used in Accept-Language: HTTP request +#. * header. For example, ja.po should translate it as +#. * "ja;q=1.0, en;q=0.5" like that. +#. +#: rc.c:1241 +msgid "en;q=1.0" +msgstr "zh-TW;q=1.0, zh-Hant;q=0.9, en;q=0.8; zh;q=0.6" @@ -1,5 +1,5 @@ /* $Id: proto.h,v 1.104 2010/07/25 09:55:05 htrb Exp $ */ -/* +/* * This file was automatically generated by version 1.7 of cextract. * Manual editing not recommended. * @@ -11,6 +11,8 @@ extern void pushEvent(int cmd, void *data); extern MySignalHandler intTrap(SIGNAL_ARG); extern void pgFore(void); extern void pgBack(void); +extern void hpgFore(void); +extern void hpgBack(void); extern void lup1(void); extern void ldown1(void); extern void ctrCsrV(void); @@ -61,6 +63,7 @@ extern void submitForm(void); extern void followForm(void); extern void topA(void); extern void lastA(void); +extern void nthA(void); extern void onA(void); extern void nextA(void); @@ -78,6 +81,7 @@ extern void prevBf(void); extern void backBf(void); extern void deletePrevBuf(void); extern void goURL(void); +extern void goHome(void); extern void gorURL(void); extern void ldBmark(void); extern void adBmark(void); @@ -152,6 +156,9 @@ extern Anchor *list_menu(Buffer *buf); #endif extern void undoPos(void); extern void redoPos(void); +extern void cursorTop(void); +extern void cursorMiddle(void); +extern void cursorBottom(void); extern int currentLn(Buffer *buf); extern void tmpClearBuffer(Buffer *buf); @@ -162,6 +169,24 @@ extern Str searchURIMethods(ParsedURL *pu); extern void chkExternalURIBuffer(Buffer *buf); #endif extern ParsedURL *schemeToProxy(int scheme); +#ifdef USE_M17N +extern wc_ces url_to_charset(const char *url, const ParsedURL *base, + wc_ces doc_charset); +extern char *url_encode(const char *url, const ParsedURL *base, + wc_ces doc_charset); +#if 0 +extern char *url_decode(const char *url, const ParsedURL *base, + wc_ces doc_charset); +#endif +extern char *url_decode2(const char *url, const Buffer *buf); +#else /* !defined(USE_M17N) */ +#define url_encode(url, base, cs) url_quote(url) +extern char *url_decode0(const char *url); +#if 0 +#define url_decode(url, base, cs) url_decode0(url) +#endif +#define url_decode2(url, buf) url_decode0(url) +#endif /* !defined(USE_M17N) */ extern void examineFile(char *path, URLFile *uf); extern char *acceptableEncoding(); extern int dir_exist(char *path); @@ -180,7 +205,6 @@ extern void push_symbol(Str str, char symbol, int width, int n); #ifdef USE_UNICODE extern void update_utf8_symbol(void); #endif -extern Buffer *loadFile(char *path); extern Buffer *loadGeneralFile(char *path, ParsedURL *current, char *referer, int flag, FormList *request); extern int is_boundary(unsigned char *, unsigned char *); @@ -207,6 +231,8 @@ extern int getImageSize(ImageCache * cache); extern Str process_img(struct parsed_tag *tag, int width); extern Str process_anchor(struct parsed_tag *tag, char *tagbuf); extern Str process_input(struct parsed_tag *tag); +extern Str process_button(struct parsed_tag *tag); +extern Str process_n_button(void); extern Str process_select(struct parsed_tag *tag); extern Str process_n_select(void); extern void feed_select(char *str); @@ -235,7 +261,15 @@ extern void loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal); extern Buffer *loadHTMLString(Str page); #ifdef USE_GOPHER +#ifdef USE_M17N extern Str loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset); +extern Str loadGopherSearch(URLFile *uf, ParsedURL *pu, wc_ces * charset); +#else +extern Str loadGopherDir0(URLFile *uf, ParsedURL *pu); +extern Str loadGopherSearch0(URLFile *uf, ParsedURL *pu); +#define loadGopherDir(uf,pu,charset) loadGopherDir0(uf,pu) +#define loadGopherSearch(uf,pu,charset) loadGopherSearch0(uf,pu) +#endif #endif /* USE_GOPHER */ extern Buffer *loadBuffer(URLFile *uf, Buffer *newBuf); #ifdef USE_IMAGE @@ -249,8 +283,7 @@ extern Buffer *openPagerBuffer(InputStream stream, Buffer *buf); extern Buffer *openGeneralPagerBuffer(InputStream stream); extern Line *getNextPage(Buffer *buf, int plen); extern int save2tmp(URLFile uf, char *tmpf); -extern int doExternal(URLFile uf, char *path, char *type, Buffer **bufp, - Buffer *defaultbuf); +extern Buffer *doExternal(URLFile uf, char *type, Buffer *defaultbuf); extern int _doFileCopy(char *tmpf, char *defstr, int download); #define doFileCopy(tmpf, defstr) _doFileCopy(tmpf, defstr, FALSE); extern int doFileMove(char *tmpf, char *defstr); @@ -372,6 +405,7 @@ extern void align(TextLine *lbuf, int width, int mode); extern void print_item(struct table *t, int row, int col, int width, Str buf); extern void print_sep(struct table *t, int row, int type, int maxcol, Str buf); extern void do_refill(struct table *tbl, int row, int col, int maxlimit); +extern void initRenderTable(void); extern void renderTable(struct table *t, int max_width, struct html_feed_environ *h_env); extern struct table *begin_table(int border, int spacing, int padding, @@ -507,7 +541,7 @@ extern ParsedURL *baseURL(Buffer *buf); extern int openSocket(char *hostname, char *remoteport_name, unsigned short remoteport_num); extern void parseURL(char *url, ParsedURL *p_url, ParsedURL *current); -extern void copyParsedURL(ParsedURL *p, ParsedURL *q); +extern void copyParsedURL(ParsedURL *p, const ParsedURL *q); extern void parseURL2(char *url, ParsedURL *pu, ParsedURL *current); extern Str parsedURL2Str(ParsedURL *pu); extern int getURLScheme(char **url); @@ -586,9 +620,12 @@ extern char *getAnchorText(Buffer *buf, AnchorList *al, Anchor *a); extern Buffer *link_list_panel(Buffer *buf); extern Str decodeB(char **ww); +extern void decodeB_to_growbuf(struct growbuf *gb, char **ww); extern Str decodeQ(char **ww); extern Str decodeQP(char **ww); +extern void decodeQP_to_growbuf(struct growbuf *gb, char **ww); extern Str decodeU(char **ww); +extern void decodeU_to_growbuf(struct growbuf *gb, char **ww); #ifdef USE_M17N extern Str decodeWord(char **ow, wc_ces * charset); extern Str decodeMIME(Str orgstr, wc_ces * charset); @@ -611,6 +648,7 @@ extern char *confFile(char *base); extern char *auxbinFile(char *base); extern char *libFile(char *base); extern char *helpFile(char *base); +extern const void *querySiteconf(const ParsedURL *query_pu, int field); extern Str localCookie(void); extern Str loadLocalDir(char *dirname); extern void set_environ(char *var, char *value); @@ -683,6 +721,7 @@ extern void reMark(void); #ifdef USE_MOUSE extern void mouse(void); +extern void sgrmouse(void); extern void mouse_init(void); extern void mouse_end(void); extern void mouse_active(void); @@ -698,6 +737,7 @@ extern void tabMs(void); extern void closeTMs(void); #else /* not USE_MOUSE */ #define mouse nulcmd +#define sgrmouse nulcmd #define msToggle nulcmd #define movMs nulcmd #define menuMs nulcmd @@ -723,6 +763,8 @@ extern int getKey(char *s); extern char *getKeyData(int key); extern char *getWord(char **str); extern char *getQWord(char **str); +struct regex; +extern char *getRegexWord(const char **str, struct regex **regex_ret); #ifdef USE_MOUSE extern void initMouseAction(void); #endif @@ -786,5 +828,3 @@ extern void dispVer(void); void srand48(long); long lrand48(void); #endif - -#include "indep.h" @@ -9,7 +9,9 @@ #include <errno.h> #include "parsetag.h" #include "local.h" +#include "regex.h" #include <stdlib.h> +#include <stddef.h> struct param_ptr { char *name; @@ -88,6 +90,7 @@ static int OptionEncode = FALSE; #define CMT_MULTICOL N_("Display file names in multi-column format") #define CMT_ALT_ENTITY N_("Use ASCII equivalents to display entities") #define CMT_GRAPHIC_CHAR N_("Character type for border of table and menu") +#define CMT_DISP_BORDERS N_("Display table borders, ignore value of BORDER") #define CMT_FOLD_TEXTAREA N_("Fold lines in TEXTAREA") #define CMT_DISP_INS_DEL N_("Display INS, DEL, S and STRIKE element") #define CMT_COLOR N_("Display with color") @@ -128,6 +131,7 @@ static int OptionEncode = FALSE; #define CMT_USE_MARK N_("Enable mark operations") #endif #define CMT_EMACS_LIKE_LINEEDIT N_("Enable Emacs-style line editing") +#define CMT_SPACE_AUTOCOMPLETE N_("Space key triggers file completion while editing URLs") #define CMT_VI_PREC_NUM N_("Enable vi-like numeric prefix") #define CMT_LABEL_TOPLINE N_("Move cursor to top line when going to label") #define CMT_NEXTPAGE_TOPLINE N_("Move cursor to top line when moving to next page") @@ -140,12 +144,19 @@ static int OptionEncode = FALSE; #define CMT_EDITOR N_("Editor") #define CMT_MAILER N_("Mailer") #define CMT_MAILTO_OPTIONS N_("How to call Mailer for mailto URLs with options") -#define CMT_EXTBRZ N_("External Browser") -#define CMT_EXTBRZ2 N_("Second External Browser") -#define CMT_EXTBRZ3 N_("Third External Browser") +#define CMT_EXTBRZ N_("External browser") +#define CMT_EXTBRZ2 N_("2nd external browser") +#define CMT_EXTBRZ3 N_("3rd external browser") +#define CMT_EXTBRZ4 N_("4th external browser") +#define CMT_EXTBRZ5 N_("5th external browser") +#define CMT_EXTBRZ6 N_("6th external browser") +#define CMT_EXTBRZ7 N_("7th external browser") +#define CMT_EXTBRZ8 N_("8th external browser") +#define CMT_EXTBRZ9 N_("9th external browser") #define CMT_DISABLE_SECRET_SECURITY_CHECK N_("Disable secret file security check") #define CMT_PASSWDFILE N_("Password file") #define CMT_PRE_FORM_FILE N_("File for setting form on loading") +#define CMT_SITECONF_FILE N_("File for preferences for each site") #define CMT_FTPPASS N_("Password for anonymous FTP (your mail address)") #define CMT_FTPPASS_HOSTNAMEGEN N_("Generate domain part of password for FTP") #define CMT_USERAGENT N_("User-Agent identification string") @@ -192,7 +203,7 @@ static int OptionEncode = FALSE; #define CMT_SSL_CA_PATH N_("Path to directory for PEM encoded certificates of CAs") #define CMT_SSL_CA_FILE N_("File consisting of PEM encoded certificates of CAs") #endif /* USE_SSL_VERIFY */ -#define CMT_SSL_FORBID_METHOD N_("List of forbidden SSL methods (2: SSLv2, 3: SSLv3, t:TLSv1)") +#define CMT_SSL_FORBID_METHOD N_("List of forbidden SSL methods (2: SSLv2, 3: SSLv3, t: TLSv1.0, 5: TLSv1.1, 6: TLSv1.2, 7: TLSv1.3)") #endif /* USE_SSL */ #ifdef USE_COOKIE #define CMT_USECOOKIE N_("Enable cookie processing") @@ -390,6 +401,8 @@ struct param_ptr params1[] = { NULL}, {"graphic_char", P_CHARINT, PI_SEL_C, (void *)&UseGraphicChar, CMT_GRAPHIC_CHAR, (void *)graphic_char_str}, + {"display_borders", P_CHARINT, PI_ONOFF, (void *)&DisplayBorders, + CMT_DISP_BORDERS, NULL}, {"fold_textarea", P_CHARINT, PI_ONOFF, (void *)&FoldTextarea, CMT_FOLD_TEXTAREA, NULL}, {"display_ins_del", P_INT, PI_SEL_C, (void *)&displayInsDel, @@ -473,6 +486,8 @@ struct param_ptr params3[] = { #endif {"emacs_like_lineedit", P_INT, PI_ONOFF, (void *)&emacs_like_lineedit, CMT_EMACS_LIKE_LINEEDIT, NULL}, + {"space_autocomplete", P_INT, PI_ONOFF, (void *)&space_autocomplete, + CMT_SPACE_AUTOCOMPLETE, NULL}, {"vi_prec_num", P_INT, PI_ONOFF, (void *)&vi_prec_num, CMT_VI_PREC_NUM, NULL}, {"mark_all_pages", P_INT, PI_ONOFF, (void *)&MarkAllPages, @@ -561,6 +576,18 @@ struct param_ptr params6[] = { NULL}, {"extbrowser3", P_STRING, PI_TEXT, (void *)&ExtBrowser3, CMT_EXTBRZ3, NULL}, + {"extbrowser4", P_STRING, PI_TEXT, (void *)&ExtBrowser4, CMT_EXTBRZ4, + NULL}, + {"extbrowser5", P_STRING, PI_TEXT, (void *)&ExtBrowser5, CMT_EXTBRZ5, + NULL}, + {"extbrowser6", P_STRING, PI_TEXT, (void *)&ExtBrowser6, CMT_EXTBRZ6, + NULL}, + {"extbrowser7", P_STRING, PI_TEXT, (void *)&ExtBrowser7, CMT_EXTBRZ7, + NULL}, + {"extbrowser8", P_STRING, PI_TEXT, (void *)&ExtBrowser8, CMT_EXTBRZ8, + NULL}, + {"extbrowser9", P_STRING, PI_TEXT, (void *)&ExtBrowser9, CMT_EXTBRZ9, + NULL}, {"bgextviewer", P_INT, PI_ONOFF, (void *)&BackgroundExtViewer, CMT_BGEXTVIEW, NULL}, {"use_lessopen", P_INT, PI_ONOFF, (void *)&use_lessopen, CMT_USE_LESSOPEN, @@ -619,6 +646,8 @@ struct param_ptr params9[] = { CMT_FTPPASS_HOSTNAMEGEN, NULL}, {"pre_form_file", P_STRING, PI_TEXT, (void *)&pre_form_file, CMT_PRE_FORM_FILE, NULL}, + {"siteconf_file", P_STRING, PI_TEXT, (void *)&siteconf_file, + CMT_SITECONF_FILE, NULL}, {"user_agent", P_STRING, PI_TEXT, (void *)&UserAgent, CMT_USERAGENT, NULL}, {"no_referer", P_INT, PI_ONOFF, (void *)&NoSendReferer, CMT_NOSENDREFERER, NULL}, @@ -771,7 +800,7 @@ create_option_search_table() qsort(RC_search_table, RC_table_size, sizeof(struct rc_search_table), (int (*)(const void *, const void *))compare_table); - diff1 = diff2 = 0; + diff2 = 0; for (i = 0; i < RC_table_size - 1; i++) { p = RC_search_table[i].param->name; q = RC_search_table[i + 1].param->name; @@ -829,7 +858,7 @@ void show_params(FILE * fp) { int i, j, l; - char *t = NULL; + const char *t = ""; char *cmt; #ifdef USE_M17N @@ -1173,6 +1202,8 @@ do_mkdir(const char *dir, long mode) #endif /* not __MINW32_VERSION */ #endif /* not __EMX__ */ +static void loadSiteconf(void); + void sync_with_option(void) { @@ -1199,6 +1230,7 @@ sync_with_option(void) #endif loadPasswd(); loadPreForm(); + loadSiteconf(); if (AcceptLang == NULL || *AcceptLang == '\0') { /* TRANSLATORS: @@ -1250,7 +1282,7 @@ init_rc(void) if (stat(rc_dir, &st) < 0) { if (errno == ENOENT) { /* no directory */ if (do_mkdir(rc_dir, 0700) < 0) { - fprintf(stderr, "Can't create config directory (%s)!", rc_dir); + /* fprintf(stderr, "Can't create config directory (%s)!\n", rc_dir); */ goto rc_dir_err; } else { @@ -1258,17 +1290,17 @@ init_rc(void) } } else { - fprintf(stderr, "Can't open config directory (%s)!", rc_dir); + /* fprintf(stderr, "Can't open config directory (%s)!\n", rc_dir); */ goto rc_dir_err; } } if (!S_ISDIR(st.st_mode)) { /* not a directory */ - fprintf(stderr, "%s is not a directory!", rc_dir); + /* fprintf(stderr, "%s is not a directory!\n", rc_dir); */ goto rc_dir_err; } if (!(st.st_mode & S_IWUSR)) { - fprintf(stderr, "%s is not writable!", rc_dir); + /* fprintf(stderr, "%s is not writable!\n", rc_dir); */ goto rc_dir_err; } no_rc_dir = FALSE; @@ -1301,6 +1333,11 @@ init_rc(void) ((tmp_dir = getenv("TMP")) == NULL || *tmp_dir == '\0') && ((tmp_dir = getenv("TEMP")) == NULL || *tmp_dir == '\0')) tmp_dir = "/tmp"; +#ifdef HAVE_MKDTEMP + tmp_dir = mkdtemp(Strnew_m_charp(tmp_dir, "/w3m-XXXXXX", NULL)->ptr); + if (tmp_dir == NULL) + tmp_dir = rc_dir; +#endif create_option_search_table(); goto open_rc; } @@ -1483,6 +1520,7 @@ panel_set_option(struct parsed_tagarg *arg) { FILE *f = NULL; char *p; + Str s = Strnew(), tmp; if (config_file == NULL) { disp_message("There's no config file... config not saved", FALSE); @@ -1498,14 +1536,17 @@ panel_set_option(struct parsed_tagarg *arg) if (arg->value) { p = conv_to_system(arg->value); if (set_param(arg->arg, p)) { - if (f) - fprintf(f, "%s %s\n", arg->arg, p); + tmp = Sprintf("%s %s\n", arg->arg, p); + Strcat(tmp, s); + s = tmp; } } arg = arg->next; } - if (f) + if (f) { + fputs(s->ptr, f); fclose(f); + } sync_with_option(); backBf(); } @@ -1556,3 +1597,229 @@ helpFile(char *base) return expandPath(Strnew_m_charp(w3m_help_dir(), "/", base, NULL)->ptr); } #endif + +/* siteconf */ +/* + * url "<url>"|/<re-url>/|m@<re-url>@i [exact] + * substitute_url "<destination-url>" + * url_charset <charset> + * no_referer_from on|off + * no_referer_to on|off + * user_agent "<string>" + * + * The last match wins. + */ + +struct siteconf_rec { + struct siteconf_rec *next; + char *url; + Regex *re_url; + int url_exact; + unsigned char mask[(SCONF_N_FIELD + 7) >> 3]; + + char *substitute_url; + char *user_agent; +#ifdef USE_M17N + wc_ces url_charset; +#endif + int no_referer_from; + int no_referer_to; +}; +#define SCONF_TEST(ent, f) ((ent)->mask[(f)>>3] & (1U<<((f)&7))) +#define SCONF_SET(ent, f) ((ent)->mask[(f)>>3] |= (1U<<((f)&7))) +#define SCONF_CLEAR(ent, f) ((ent)->mask[(f)>>3] &= ~(1U<<((f)&7))) + +static struct siteconf_rec *siteconf_head = NULL; +static struct siteconf_rec *newSiteconfRec(void); + +static struct siteconf_rec * +newSiteconfRec(void) +{ + struct siteconf_rec *ent; + + ent = New(struct siteconf_rec); + ent->next = NULL; + ent->url = NULL; + ent->re_url = NULL; + ent->url_exact = FALSE; + memset(ent->mask, 0, sizeof(ent->mask)); + + ent->substitute_url = NULL; + ent->user_agent = NULL; +#ifdef USE_M17N + ent->url_charset = 0; +#endif + return ent; +} + +static void +loadSiteconf(void) +{ + char *efname; + FILE *fp; + Str line; + struct siteconf_rec *ent = NULL; + + siteconf_head = NULL; + if (!siteconf_file) + return; + if ((efname = expandPath(siteconf_file)) == NULL) + return; + fp = fopen(efname, "r"); + if (fp == NULL) + return; + while (line = Strfgets(fp), line->length > 0) { + char *p, *s; + + Strchop(line); + p = line->ptr; + SKIP_BLANKS(p); + if (*p == '#' || *p == '\0') + continue; + s = getWord(&p); + + /* The "url" begins a new record. */ + if (strcmp(s, "url") == 0) { + char *url, *opt; + struct siteconf_rec *newent; + + /* First, register the current record. */ + if (ent) { + ent->next = siteconf_head; + siteconf_head = ent; + ent = NULL; + } + + /* Second, create a new record. */ + newent = newSiteconfRec(); + url = getRegexWord((const char **)&p, &newent->re_url); + opt = getWord(&p); + SKIP_BLANKS(p); + if (!newent->re_url) { + ParsedURL pu; + if (!url || !*url) + continue; + parseURL2(url, &pu, NULL); + newent->url = parsedURL2Str(&pu)->ptr; + } + /* If we have an extra or unknown option, ignore this record + * for future extensions. */ + if (strcmp(opt, "exact") == 0) { + newent->url_exact = TRUE; + } + else if (*opt != 0) + continue; + if (*p) + continue; + ent = newent; + continue; + } + + /* If the current record is broken, skip to the next "url". */ + if (!ent) + continue; + + /* Fill the new record. */ + if (strcmp(s, "substitute_url") == 0) { + ent->substitute_url = getQWord(&p); + SCONF_SET(ent, SCONF_SUBSTITUTE_URL); + } + if (strcmp(s, "user_agent") == 0) { + ent->user_agent = getQWord(&p); + SCONF_SET(ent, SCONF_USER_AGENT); + } +#ifdef USE_M17N + else if (strcmp(s, "url_charset") == 0) { + char *charset = getWord(&p); + ent->url_charset = (charset && *charset) ? + wc_charset_to_ces(charset) : 0; + SCONF_SET(ent, SCONF_URL_CHARSET); + } +#endif /* USE_M17N */ + else if (strcmp(s, "no_referer_from") == 0) { + ent->no_referer_from = str_to_bool(getWord(&p), 0); + SCONF_SET(ent, SCONF_NO_REFERER_FROM); + } + else if (strcmp(s, "no_referer_to") == 0) { + ent->no_referer_to = str_to_bool(getWord(&p), 0); + SCONF_SET(ent, SCONF_NO_REFERER_TO); + } + } + if (ent) { + ent->next = siteconf_head; + siteconf_head = ent; + ent = NULL; + } + fclose(fp); +} + +const void * +querySiteconf(const ParsedURL *query_pu, int field) +{ + const struct siteconf_rec *ent; + Str u; + char *firstp, *lastp; + + if (field < 0 || field >= SCONF_N_FIELD) + return NULL; + if (!query_pu || IS_EMPTY_PARSED_URL(query_pu)) + return NULL; + u = parsedURL2Str((ParsedURL *)query_pu); + if (u->length == 0) + return NULL; + + for (ent = siteconf_head; ent; ent = ent->next) { + if (!SCONF_TEST(ent, field)) + continue; + if (ent->re_url) { + if (RegexMatch(ent->re_url, u->ptr, u->length, 1)) { + MatchedPosition(ent->re_url, &firstp, &lastp); + if (!ent->url_exact) + goto url_found; + if (firstp != u->ptr || lastp == firstp) + continue; + if (*lastp == 0 || *lastp == '?' || *(lastp - 1) == '?' || + *lastp == '#' || *(lastp - 1) == '#') + goto url_found; + } + } else { + int matchlen = strmatchlen(ent->url, u->ptr, u->length); + if (matchlen == 0 || ent->url[matchlen] != 0) + continue; + firstp = u->ptr; + lastp = u->ptr + matchlen; + if (*lastp == 0 || *lastp == '?' || *(lastp - 1) == '?' || + *lastp == '#' || *(lastp - 1) == '#') + goto url_found; + if (!ent->url_exact && (*lastp == '/' || *(lastp - 1) == '/')) + goto url_found; + } + } + return NULL; + +url_found: + switch (field) { + case SCONF_SUBSTITUTE_URL: + if (ent->substitute_url && *ent->substitute_url) { + Str tmp = Strnew_charp_n(u->ptr, firstp - u->ptr); + Strcat_charp(tmp, ent->substitute_url); + Strcat_charp(tmp, lastp); + return tmp->ptr; + } + return NULL; + case SCONF_USER_AGENT: + if (ent->user_agent && *ent->user_agent) { + return ent->user_agent; + } + return NULL; +#ifdef USE_M17N + case SCONF_URL_CHARSET: + return &ent->url_charset; +#endif + case SCONF_NO_REFERER_FROM: + return &ent->no_referer_from; + case SCONF_NO_REFERER_TO: + return &ent->no_referer_to; + } + return NULL; +} @@ -77,7 +77,7 @@ static longchar set_longchar(char *str) { unsigned char *p = (unsigned char *)str; - longchar r; + longchar r = { }; #ifdef USE_M17N if (*p & 0x80) { @@ -580,7 +580,7 @@ regmatch_iter(struct MatchingContext1 *c, c->lastpos = c->str; #ifdef REGEX_DEBUG if (verbose) - printf("Succeed: %s %d\n", c->str, c->lastpos - c->str); + printf("Succeed: %s %ld\n", c->str, (long)(c->lastpos - c->str)); #endif YIELD(1, c, 7); return 0; diff --git a/scripts/.cvsignore b/scripts/.cvsignore deleted file mode 100644 index 67b6dc8..0000000 --- a/scripts/.cvsignore +++ /dev/null @@ -1,9 +0,0 @@ -dirlist.cgi -w3mhelp.cgi -w3mmail.cgi -w3mhelp-funcdesc.en.pl -w3mhelp-funcdesc.ja.pl -w3mhelp-funcname.pl -w3mhelp-funcdesc-stamp -xface2xpm -Makefile diff --git a/scripts/CVS/Entries b/scripts/CVS/Entries deleted file mode 100644 index 2d1a4e5..0000000 --- a/scripts/CVS/Entries +++ /dev/null @@ -1,13 +0,0 @@ -/.cvsignore/1.10/Mon Sep 22 22:53:53 2003// -/dirlist.cgi.in/1.7/Fri Feb 7 15:06:17 2003// -/w3mhelp-funcdesc.en.pl.in/1.4/Mon Mar 22 17:03:13 2004// -/w3mhelp-funcdesc.ja.pl.in/1.4/Mon Mar 22 17:03:13 2004// -/w3mhelp-funcname.pl.in/1.3/Mon Apr 7 15:19:43 2003// -/w3mmail.cgi.in/1.14/Mon Aug 30 16:32:24 2004// -/xface2xbm.in/1.3/Mon Nov 18 17:33:01 2002// -/xface2xpm.in/1.1/Tue Apr 9 14:45:58 2002// -D/bm2menu//// -D/multipart//// -D/w3mman//// -/Makefile.in/1.11/Tue Jan 4 09:22:28 2011// -/w3mhelp.cgi.in/1.29/Tue Jan 4 09:22:28 2011// diff --git a/scripts/CVS/Repository b/scripts/CVS/Repository deleted file mode 100644 index 578c817..0000000 --- a/scripts/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/scripts diff --git a/scripts/CVS/Root b/scripts/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/scripts/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/scripts/Makefile.in b/scripts/Makefile.in index 4da9ce5..5beb9b0 100644 --- a/scripts/Makefile.in +++ b/scripts/Makefile.in @@ -60,7 +60,7 @@ w3mhelp-funcname.pl: w3mhelp-funcname.pl.in ../funcname.tab $(top_srcdir)/doc/ke @cat $(srcdir)/w3mhelp-funcname.pl.in >> w3mhelp-funcname.pl @echo "done" -w3mhelp-funcdesc-stamp: $(top_srcdir)/doc/README.func $(top_srcdir)/doc-jp/README.func w3mhelp-funcdesc.en.pl.in w3mhelp-funcdesc.ja.pl.in +w3mhelp-funcdesc-stamp: $(top_srcdir)/doc/README.func $(top_srcdir)/doc-jp/README.func $(top_srcdir)/doc-de/README.func w3mhelp-funcdesc.en.pl.in w3mhelp-funcdesc.ja.pl.in w3mhelp-funcdesc.de.pl.in @echo "generating w3mhelp-funcdesc*.pl..." @for dirlang in $(DOCDIRS); do \ dir=`expr "$$dirlang" : "\(.*\):.*"`; \ @@ -87,7 +87,7 @@ install: $(LIB_TARGETS) $(HELP_TARGETS) do \ $(INSTALL_SCRIPT) $$file $(DESTDIR)$(AUXBIN_DIR); \ done - for file in $(LIB_TARGETS); \ + for file in w3mdict.cgi $(LIB_TARGETS); \ do \ $(INSTALL_SCRIPT) $$file $(DESTDIR)$(CGIBIN_DIR); \ done @@ -105,7 +105,7 @@ uninstall: do \ rm -f $(AUXBIN_DIR)/$$file; \ done - -for file in $(LIB_TARGETS); \ + -for file in w3mdict.cgi $(LIB_TARGETS); \ do \ rm -f $(LIB_DIR)/$$file; \ done diff --git a/scripts/bm2menu/CVS/Entries b/scripts/bm2menu/CVS/Entries deleted file mode 100644 index 448ac0a..0000000 --- a/scripts/bm2menu/CVS/Entries +++ /dev/null @@ -1,3 +0,0 @@ -/README/1.1/Thu Nov 15 00:32:14 2001// -/bm2menu.pl/1.1/Thu Nov 15 00:32:14 2001// -D diff --git a/scripts/bm2menu/CVS/Repository b/scripts/bm2menu/CVS/Repository deleted file mode 100644 index c3eaf83..0000000 --- a/scripts/bm2menu/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/scripts/bm2menu diff --git a/scripts/bm2menu/CVS/Root b/scripts/bm2menu/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/scripts/bm2menu/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/scripts/bm2menu/README b/scripts/bm2menu/README index b44f144..cc1f89b 100644 --- a/scripts/bm2menu/README +++ b/scripts/bm2menu/README @@ -1,21 +1,21 @@ bm2menu.pl - ブックマークファイル ~/.w3m/bookmark.html を変換して w3m の - ブックマークメニューとして使える様にする。 + 若<ゃ ~/.w3m/bookmark.html 紊 w3m + 若<ャ若篏帥罕 -使用法 +篏睡羈 - ~/.w3m/bookmark.html を変換して ~/.w3m/menu に追加。 + ~/.w3m/bookmark.html 紊 ~/.w3m/menu 菴遵 perl bm2menu.pl ~/.w3m/bookmark.html >> ~/.w3m/menu - 次に、~/.w3m/keymap に + 罨<~/.w3m/keymap keymap x MENU Bookmarks - の様にキーの割り当てを追加します。 + 罕若蚊綵菴遵障 - これで、キー `x' でブックマークメニューが開きます。 - メニューの操作は doc-jp/README.menu を読んでください。 + с `x' с若<ャ若障 + <ャ若篏 doc-jp/README.menu 茯с diff --git a/scripts/multipart/.cvsignore b/scripts/multipart/.cvsignore deleted file mode 100644 index db1dff2..0000000 --- a/scripts/multipart/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -multipart.cgi -Makefile diff --git a/scripts/multipart/CVS/Entries b/scripts/multipart/CVS/Entries deleted file mode 100644 index b503f2a..0000000 --- a/scripts/multipart/CVS/Entries +++ /dev/null @@ -1,6 +0,0 @@ -/.cvsignore/1.2/Mon Sep 22 22:53:53 2003// -/README/1.2/Wed Nov 21 09:21:59 2001// -/mailcap/1.1/Thu Nov 15 00:32:14 2001// -/multipart.cgi.in/1.11/Tue Feb 18 15:26:39 2003// -/Makefile.in/1.6/Tue Jan 4 09:22:28 2011// -D diff --git a/scripts/multipart/CVS/Repository b/scripts/multipart/CVS/Repository deleted file mode 100644 index cb383c6..0000000 --- a/scripts/multipart/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/scripts/multipart diff --git a/scripts/multipart/CVS/Root b/scripts/multipart/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/scripts/multipart/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/scripts/multipart/README b/scripts/multipart/README index b82f585..ed1f73d 100644 --- a/scripts/multipart/README +++ b/scripts/multipart/README @@ -1,24 +1,24 @@ -Content-Type: multipart/* を扱う local-CGI +Content-Type: multipart/* 宴 local-CGI - Content-Type: multipart/* なファイルを扱うための local-CGI です。 - 主に mailx などでメールを PAGER="w3m -m" で読む場合を想定しています。 + Content-Type: multipart/* <ゃ宴 local-CGI с + 筝祉 mailx с<若 PAGER="w3m -m" ц翫喝障 -インストール +ゃ潟鴻若 * make install - 必要なら PERL, NKF, LIBDIR を設定してください。 + 綽荀 PERL, NKF, LIBDIR 荐絎 - * mailcap を ~/.w3m/mailcap にマージ - multipart.cgi のパスに注意 + * mailcap ~/.w3m/mailcap 若 + multipart.cgi 鴻羈 - * w3m の Option Setting Panel で、 - 『保存時に Content-Transfer-Encoding をデコードする』を ON - 添付ファイルの保存時に便利です。 + * w3m Option Setting Panel с + 篆絖 Content-Transfer-Encoding 潟若 ON + 羞私<ゃ篆絖箴水с -必要なもの +綽荀 - * NKF モジュールまたは nkf - 文字コード変換や MIME ヘッダのデコードにを使ってます。 - 気にいらなければ変えてください。 + * NKF ≪吾ャ若障 nkf + 絖潟若紊 MIME 潟若篏帥c障 + 羂医 diff --git a/scripts/w3mdict.cgi b/scripts/w3mdict.cgi new file mode 100755 index 0000000..6b0e62e --- /dev/null +++ b/scripts/w3mdict.cgi @@ -0,0 +1,56 @@ +#!/bin/sh +# w3mdict.cgi - A dictd dictionary query cgi for w3m +# +# REQUIREMENTS: +# + dict client software +# + an address of a dict server, for variable ${DICT_SERVER} +# + a name of a favorite database on that server, for variable +# ${FAVORITE_DATABASE} +# OPTIONALLY: +# + locally install a dict server (eg. dictd) and a collection +# of dict databases (eg. wordnet, aka "wn") + +DICT_SERVER="localhost" +FAVORITE_DATABASE="wn" +RETURN_MESSAGE="\n\nPress 'B' to return to the previous page." +printf "Content-type: text/plain\n" +type dict \ +|| { + # Originally, we inconsiderately failed silently ... + # printf "W3m-control: BACK\n\n" + printf "\n\nERROR: dict client software not found${RETURN_MESSAGE}" + exit + } +# First, we check only our best and favorite database. This is most +# likely to give us a best defintion, and avoids displaying a long and +# cluttered page with entries from many databases. +dict --host "${DICT_SERVER}" \ + --database "${FAVORITE_DATABASE}" \ + "${QUERY_STRING}" 2>&1 \ +&& { + printf "${RETURN_MESSAGE}" + } \ +|| { + # The initial attempt failed, so let's search ALL databases + # available on the server. + dict --host "${DICT_SERVER}" \ + "${QUERY_STRING}" 2>&1 \ + && { + printf "${RETURN_MESSAGE}" + } \ + || { + # No defintions were found in any of the server's databases, so + # let's return to the favorite database in order to retrieve its + # guess of what we meant to type. Originally, for this case, we + # pushed the user's default action to be entering another word for + # a dict defintion, so the print command was: + # printf "W3m-control: DICT_WORD\n\n" + # Now, we need only print a blank line to separate the cgi header + # from the page content. + printf "\n" + dict --host "${DICT_SERVER}" \ + --database "${FAVORITE_DATABASE}" \ + "${QUERY_STRING}" 2>&1 + printf "${RETURN_MESSAGE}" + } + } diff --git a/scripts/w3mhelp-funcdesc.de.pl.in b/scripts/w3mhelp-funcdesc.de.pl.in new file mode 100644 index 0000000..11539d1 --- /dev/null +++ b/scripts/w3mhelp-funcdesc.de.pl.in @@ -0,0 +1,66 @@ +# charset +$charset = 'UTF-8'; + +# Buffer selection mode + +%buf_funcdesc = ( + 'BUF:PREV', 'Gehe zum vorherigen Punkt', + 'BUF:NEXT', 'Gehe zum n辰chsten Punkt', + 'BUF:DELETE', 'L旦sche den ausgew辰hlten Eintrag', + 'BUF:GO', 'Gehe zum ausgew辰hlten Eintrag', +); + +%lineedit_funcdesc = ( + 'LINEEDIT:FORWARD', 'Bewege Cursor vorw辰rts', + 'LINEEDIT:BACK', 'Bewege Cursor r端ckw辰rts', + 'LINEEDIT:BS', 'Vorheriges Zeichen l旦schen', + 'LINEEDIT:DEL', 'Aktuelles Zeichen l旦schen', + 'LINEEDIT:KILL_AFTER', 'L旦sche alles nach dem Cursor', + 'LINEEDIT:KILL_BEFORE', 'L旦sche alles vor dem Cursor', + 'LINEEDIT:TOP', 'Gehe zum Zeilenanfang', + 'LINEEDIT:BOTTOM', 'Gehe zum Zeilenende', + 'LINEEDIT:PREV', 'Hole den vorherigen Chronik-Eintrag', + 'LINEEDIT:NEXT', 'Hole den n辰chsten Chronik-Eintrag', + 'LINEEDIT:EDITOR', 'Bearbeite mit externem Editor', + 'LINEEDIT:COMPLETE', 'Versuche, den Dateinamen zu komplettieren', + 'LINEEDIT:ACCEPT', 'Eingabezeile annehmen', +); + +%menu_funcdesc = ( + 'MENU:SELECT', 'W辰hle Eintrag aus', + 'MENU:CLOSE', 'Schliee Men端', + 'MENU:CANCEL', 'Einen Auswahlschritt zur端ck', + 'MENU:DOWN', 'Gehe zum n辰chsten Punkt', + 'MENU:UP', 'Gehe zum vorherigen Punkt', + 'MENU:LINE_UP', 'Scrolle einen Punkt aufw辰rts', + 'MENU:LINE_DOWN', 'Scrolle einen Punkt abw辰rts', + 'MENU:TOP', 'Gehe zum ersten Punkt', + 'MENU:LAST', 'Gehe zum letzten Punkt', + 'MENU:NEXT', 'Gehe zur n辰chsten Seite', + 'MENU:PREV', 'Gehe zur vorherigen Seite', + 'MENU:SEARCH_FORE', 'Suche vorw辰rts', + 'MENU:SEARCH_BACK', 'Suche r端ckw辰rts', + 'MENU:SEARCH_NEXT', 'Suche weitere bereinstimmung', + 'MENU:SEARCH_PREV', 'Suche fr端here bereinstimmung', + 'MENU:SUSPEND', 'Zur端ckstellen', +); + +%title = ( + "Current keymap file", 'Aktuelle Datei mit Tastaturbefehlszuordnung', + "In-page Navigation", 'Navigation auf der Seite', + "Hyperlink Operations", 'Umgang mit Hyperlinks', + "File/Stream Operations", 'Umgang mit Dateien und Datenstr旦men', + "Buffer Operations", 'Umgang mit Puffern', + "Tab Operations", 'Umgang mit Reitern', + "Buffer and Tab Selection Mode", 'Puffer/Reiter-Auswahl-Modus', + "Bookmark Management", 'Lesezeichenverwaltung', + "Searches", 'Suchen', + "Dictionary Lookup", 'Abgleich mit W旦rterbuch', + "Mark Operations", 'Umgang mit Textmarken', + "Miscellaneous", 'Verschiedenes', + "User-defined key bindings", 'Benutzerdefinierte Tastaturbefehle', + "Input Line Editing Mode", 'Bearbeitung der Eingabezeile', + "Popup Menu Mode", 'Navigation in Men端s', +); + +1; diff --git a/scripts/w3mhelp-funcdesc.en.pl.in b/scripts/w3mhelp-funcdesc.en.pl.in index d854b59..b9f4ed8 100644 --- a/scripts/w3mhelp-funcdesc.en.pl.in +++ b/scripts/w3mhelp-funcdesc.en.pl.in @@ -4,44 +4,44 @@ $charset = 'US-ASCII'; # Buffer selection mode %buf_funcdesc = ( - 'BUF:PREV', 'Select previous buffer', - 'BUF:NEXT', 'Select next buffer', - 'BUF:DELETE', 'Delete current buffer', - 'BUF:GO', 'Go to the selected buffer', + 'BUF:PREV', 'Previous item', + 'BUF:NEXT', 'Next item', + 'BUF:DELETE', 'Delete item', + 'BUF:GO', 'Select item', ); %lineedit_funcdesc = ( - 'LINEEDIT:FORWARD', 'Move cursor forward', - 'LINEEDIT:BACK', 'Move cursor backward', + 'LINEEDIT:FORWARD', 'Cursor forward', + 'LINEEDIT:BACK', 'Cursor backward', 'LINEEDIT:BS', 'Delete previous character', - 'LINEEDIT:DEL', 'Delete current character', - 'LINEEDIT:KILL_AFTER', 'Kill everything after cursor', - 'LINEEDIT:KILL_BEFORE', 'Kill everything before cursor', - 'LINEEDIT:TOP', 'Move to the top of line', - 'LINEEDIT:BOTTOM', 'Move to the bottom of line', + 'LINEEDIT:DEL', 'Delete character', + 'LINEEDIT:KILL_AFTER', 'Delete everything after cursor', + 'LINEEDIT:KILL_BEFORE', 'Delete everything before cursor', + 'LINEEDIT:TOP', 'Cursor to the beginning of the line', + 'LINEEDIT:BOTTOM', 'Cursor to the end of the line', 'LINEEDIT:PREV', 'Fetch the previous string from the history list', 'LINEEDIT:NEXT', 'Fetch the next string from the history list', 'LINEEDIT:EDITOR', 'Edit with external editor', - 'LINEEDIT:COMPLETE', 'Complete filename', - 'LINEEDIT:ACCEPT', 'Accept', + 'LINEEDIT:COMPLETE', 'Try to complete filename', + 'LINEEDIT:ACCEPT', 'Accept input line', ); %menu_funcdesc = ( 'MENU:SELECT', 'Select item', 'MENU:CLOSE', 'Close menu', - 'MENU:CANCEL', 'Back', - 'MENU:DOWN', 'Move to next item', - 'MENU:UP', 'Move to previous item', + 'MENU:CANCEL', 'One selection step backward', + 'MENU:DOWN', 'Move to the next item', + 'MENU:UP', 'Move to the previous item', 'MENU:LINE_UP', 'Scroll up one item', 'MENU:LINE_DOWN', 'Scroll down one item', - 'MENU:TOP', 'Go to top item', - 'MENU:LAST', 'Go to last item', - 'MENU:NEXT', 'Go to next page', - 'MENU:PREV', 'Go to previous page', - 'MENU:SEARCH_FORE', 'Search foreward', + 'MENU:TOP', 'Move to the first item', + 'MENU:LAST', 'Move to the final item', + 'MENU:NEXT', 'Go to the next page', + 'MENU:PREV', 'Go to the previous page', + 'MENU:SEARCH_FORE', 'Search forward', 'MENU:SEARCH_BACK', 'Search backward', - 'MENU:SEARCH_NEXT', 'Search next regexp', - 'MENU:SEARCH_PREV', 'Search previous regexp', + 'MENU:SEARCH_NEXT', 'Search for the next match', + 'MENU:SEARCH_PREV', 'Search for the previous match', 'MENU:SUSPEND', 'Suspend', ); diff --git a/scripts/w3mhelp-funcdesc.ja.pl.in b/scripts/w3mhelp-funcdesc.ja.pl.in index 051c888..d3b0b6f 100644 --- a/scripts/w3mhelp-funcdesc.ja.pl.in +++ b/scripts/w3mhelp-funcdesc.ja.pl.in @@ -1,66 +1,66 @@ # charset -$charset = 'EUC-JP'; +$charset = 'UTF-8'; # Buffer selection mode %buf_funcdesc = ( - 'BUF:PREV', '一つ上のバッファを選択', - 'BUF:NEXT', '一つ下のバッファを選択', - 'BUF:DELETE', '現在選択しているバッファを削除', - 'BUF:GO', '現在選択しているバッファを表示', + 'BUF:PREV', '筝や<御', + 'BUF:NEXT', '筝や<御', + 'BUF:DELETE', '憜御<', + 'BUF:GO', '憜御<茵腓', ); %lineedit_funcdesc = ( - 'LINEEDIT:FORWARD', 'カーソルを右へ移動', - 'LINEEDIT:BACK', 'カーソルを左へ移動', - 'LINEEDIT:BS', '前の文字を削除', - 'LINEEDIT:DEL', 'カーソル位置の文字を削除', - 'LINEEDIT:KILL_AFTER', 'カーソルの後方を全て削除', - 'LINEEDIT:KILL_BEFORE', 'カーソルの前までを全て削除', - 'LINEEDIT:TOP', '行頭に移動', - 'LINEEDIT:BOTTOM', '行末へ移動', - 'LINEEDIT:PREV', 'ヒストリから一つ前の文字列を取り出す', - 'LINEEDIT:NEXT', 'ヒストリから次の文字列を取り出す', - 'LINEEDIT:EDITOR', '外部エディタで編集', - 'LINEEDIT:COMPLETE', 'ファイル名の補完', - 'LINEEDIT:ACCEPT', '入力終了', + 'LINEEDIT:FORWARD', '若純劻悟Щ', + 'LINEEDIT:BACK', '若純綏悟Щ', + 'LINEEDIT:BS', '絖', + 'LINEEDIT:DEL', '若純篏臀絖', + 'LINEEDIT:KILL_AFTER', '若純緇鴻', + 'LINEEDIT:KILL_BEFORE', '若純障с', + 'LINEEDIT:TOP', '茵腱糸', + 'LINEEDIT:BOTTOM', '茵悟Щ', + 'LINEEDIT:PREV', '鴻筝ゅ絖冴', + 'LINEEDIT:NEXT', '鴻罨<絖冴', + 'LINEEDIT:EDITOR', '紊c帥х隈', + 'LINEEDIT:COMPLETE', '<ゃ茖絎', + 'LINEEDIT:ACCEPT', 'ュ腟篋', ); %menu_funcdesc = ( - 'MENU:SELECT', '項目を選択', - 'MENU:CLOSE', 'メニューを閉じる', - 'MENU:CANCEL', '戻る', - 'MENU:DOWN', '一つ下の項目へ', - 'MENU:UP', '一つ上の項目へ', - 'MENU:LINE_UP', '項目を下にスクロール', - 'MENU:LINE_DOWN', '項目を上にスクロール', - 'MENU:TOP', '先頭の項目へ', - 'MENU:LAST', '最後の項目へ', - 'MENU:NEXT', '次ページの項目へ', - 'MENU:PREV', '前ページの項目へ', - 'MENU:SEARCH_FORE', '項目を下に向かって検索', - 'MENU:SEARCH_BACK', '項目を上に向かって検索', - 'MENU:SEARCH_NEXT', '次の項目を検索', - 'MENU:SEARCH_PREV', '前の項目を検索', - 'MENU:SUSPEND', 'サスペンド', + 'MENU:SELECT', '御', + 'MENU:CLOSE', '<ャ若', + 'MENU:CANCEL', '祉', + 'MENU:DOWN', '筝や', + 'MENU:UP', '筝や', + 'MENU:LINE_UP', '筝鴻若', + 'MENU:LINE_DOWN', '筝鴻若', + 'MENU:TOP', '', + 'MENU:LAST', '緇', + 'MENU:NEXT', '罨<若吾', + 'MENU:PREV', '若吾', + 'MENU:SEARCH_FORE', '筝c罎膣', + 'MENU:SEARCH_BACK', '筝c罎膣', + 'MENU:SEARCH_NEXT', '罨<罎膣', + 'MENU:SEARCH_PREV', '罎膣', + 'MENU:SUSPEND', '泣鴻潟', ); %title = ( - "Show keymap file", 'keymap ファイルを見る', - "Page/Cursor motion", 'ページ/カーソル移動', - "Hyperlink operation", 'ハイパーリンク操作', - "File/Stream operation", 'ファイル/ストリーム操作', - "Buffer operation", 'バッファ操作', - "Tab operation", 'タブ操作', - "Buffer selection mode", 'バッファ選択モード', - "Bookmark operation", 'ブックマーク操作', - "Search", '検索', - "Dictionary look-up", '辞書検索', - "Mark operation", 'マーク操作', - "Miscellany", 'その他', - "User defined keymaps", 'ユーザ定義', - "Line-edit mode", '行編集モード', - "Popup menu", 'メニュー', + "Current keymap file", 'keymap <ゃ荀', + "In-page Navigation", '若/若純腱糸', + "Hyperlink Operations", 'ゃ若潟篏', + "File/Stream Operations", '<ゃ/鴻若篏', + "Buffer Operations", '≧篏', + "Tab Operations", '帥篏', + "Buffer and Tab Selection Mode", '♂御≪若', + "Bookmark Management", '若篏', + "Searches", '罎膣', + "Dictionary Lookup", '莨御膣', + "Mark Operations", '若篏', + "Miscellaneous", '篁', + "User-defined key bindings", '若九臂', + "Input Line Editing Mode", '茵膩≪若', + "Popup Menu Mode", '<ャ', ); 1; diff --git a/scripts/w3mhelp.cgi.in b/scripts/w3mhelp.cgi.in index b2fca8f..55358f8 100644 --- a/scripts/w3mhelp.cgi.in +++ b/scripts/w3mhelp.cgi.in @@ -48,7 +48,7 @@ if (defined($ENV{'QUERY_STRING'})) { } # print "tlang=$tlang\n"; eval {require "w3mhelp-funcdesc.$tlang.pl";}; - if (defined(%funcdesc)) { + if (%funcdesc) { $lang = $tlang; } } @@ -72,22 +72,26 @@ local (%funckeydesc, $key, $fname, $desc); %funcname = (%funcname, %buf_funcname, %lineedit_funcname, %menu_funcname); %funcdesc = (%funcdesc, %buf_funcdesc, %lineedit_funcdesc, %menu_funcdesc); -while (($fname, $desc) = each %funcdesc) { - $funckeydesc{$funcname{$fname}} = "$fname\n$desc\n"; +# sort for consistent order each time this is run +foreach my $fname (sort keys %funcdesc) { + $funckeydesc{$funcname{$fname}} = "$fname\n$funcdesc{$fname}\n"; } -while (($key, $fname) = each %keyfunc) { +foreach $key (sort keys %keyfunc) { $keydata{$key} && next; - $funckeydesc{$funcname{$fname}} .= "$key,"; + $funckeydesc{$funcname{$keyfunc{$key}}} .= "$key,"; } -while (($key, $fname) = each %buf_keyfunc) { - $funckeydesc{$funcname{$fname}} .= "$key,"; +foreach $key (sort keys %buf_keyfunc) { + $keydata{$key} && next; + $funckeydesc{$funcname{$buf_keyfunc{$key}}} .= "$key,"; } -while (($key, $fname) = each %lineedit_keyfunc) { - $funckeydesc{$funcname{$fname}} .= "$key,"; +foreach $key (sort keys %lineedit_keyfunc) { + $keydata{$key} && next; + $funckeydesc{$funcname{$lineedit_keyfunc{$key}}} .= "$key,"; } -while (($key, $fname) = each %menu_keyfunc) { - $funckeydesc{$funcname{$fname}} .= "$key,"; +foreach $key (sort keys %menu_keyfunc) { + $keydata{$key} && next; + $funckeydesc{$funcname{$menu_keyfunc{$key}}} .= "$key,"; } print <<HEADING; @@ -102,8 +106,7 @@ Content-Type: text/html; charset=$charset ******* <A HREF="http://w3m.sourceforge.net/">w3m</A> (WWW-wo-Miru) Version $version by -<A HREF="mailto:aito\@fw.ipsj.or.jp">A.ITO</A> ********<BR> - ***** Key assign table ***** +<A HREF="mailto:aito\@fw.ipsj.or.jp">A.ITO</A> ******** </CENTER> HEADING @@ -112,77 +115,77 @@ $q_version = $version; $q_version =~ s/[^A-Za-z0-9_\$\.\-]/sprintf('%%%02X', ord($&))/ge; $script = "<A HREF=\"$ENV{'SCRIPT_NAME'}?version=$q_version&lang="; -# doc:en_English doc-jp:ja_Japanese +# doc:en_English doc-jp:ja_Japanese doc-de:de_German for $otherlang (@docdirs) { local(@d) = split(/[:_]/, $otherlang); if ($d[1] ne $lang) { $d[1] =~ s/[^A-Za-z0-9_\$\.\-]/sprintf('%%%02X', ord($&))/ge; - print $script, $d[1], "\">$d[2] version</A>\n"; + print $script, $d[1], "\">[$d[2]]</A>\n"; } } $keymap =~ s/[<>&]/$htmlesc{$&}/ge; -$head = "Show keymap file"; +$head = 'Current keymap file'; if (defined($title{$head})) { $head = $title{$head}; $head =~ s/[<>&]/$htmlesc{$&}/ge; } print "<P><A HREF=\"$keymap\">$head</A>\n"; -&show_keymap("Page/Cursor motion", +&show_keymap('In-page Navigation', split(" ", "pgFore pgBack movR movL movD movU movR1 movL1 movD1 movU1 ldown1 lup1 shiftl shiftr col1L col1R linbeg linend ctrCsrH ctrCsrV goLine goLineF goLineL movRW movLW topA lastA nextA prevA movlistMn nextR nextL nextD nextU nextRD nextLU - undoPos redoPos")); + undoPos redoPos cursorTop cursorMiddle cursorBottom")); -&show_keymap("Hyperlink operation", +&show_keymap('Hyperlink Operations', split(" ", "followA tabA svA followI svI submitForm curURL peekURL peekIMG pginfo curlno chkURL chkWORD chkNMID rFrame extbrz linkbrz linkLst listMn linkMn accessKey")); -&show_keymap("File/Stream operation", +&show_keymap('File/Stream Operations', split(" ", "goURL gorURL tabURL tabrURL ldfile readsh pipesh pipeBuf")); -&show_keymap("Buffer operation", - split(" ", "backBf nextBf prevBf selMn selBuf vwSrc svSrc svBuf - editBf editScr reload reshape rdrwSc dispI stopI")); +&show_keymap('Buffer Operations', + split(" ", "backBf nextBf prevBf goHome selMn selBuf vwSrc svSrc + svBuf editBf editScr reload reshape rdrwSc dispI stopI")); -&show_keymap("Tab operation", +&show_keymap('Tab Operations', split(" ", "newT closeT nextT prevT tabMn tabR tabL")); -&show_keymap("Bookmark operation", +&show_keymap('Bookmark Management', split(" ", "ldBmark adBmark")); -&show_keymap("Search", +&show_keymap('Searches', split(" ", "srchfor srchbak srchnxt srchprv isrchfor isrchbak")); -&show_keymap("Dictionary look-up", +&show_keymap('Dictionary Lookup', split(" ", "dictword dictwordat")); -&show_keymap("Mark operation", +&show_keymap('Mark Operations', split(" ", "_mark nextMk prevMk reMark")); -&show_keymap("Miscellany", +&show_keymap('Miscellaneous', split(" ", "mainMn ldhelp ldOpt dispVer cooLst ldHist ldDL docCSet defCSet msgs msToggle wrapToggle execCmd setAlarm setOpt setEnv defKey reinit execsh susp qquitfm quitfm")); -&show_keymap_data("User defined keymaps"); +&show_keymap_data('User-defined key bindings'); print "<BR>\n<HR WIDTH=80%>\n"; -&show_keymap("Buffer selection mode", +&show_keymap('Buffer and Tab Selection Mode', split(" ", "buffer_next buffer_prev buffer_delete buffer_go")); print "<BR>\n<HR WIDTH=80%>\n"; -&show_keymap("Line-edit mode", +&show_keymap('Input Line Editing Mode', split(" ", "lineedit_forward lineedit_back lineedit_backspace lineedit_delete lineedit_kill_after lineedit_kill_before lineedit_top lineedit_bottom lineedit_prev lineedit_next @@ -190,7 +193,7 @@ print "<BR>\n<HR WIDTH=80%>\n"; print "<BR>\n<HR WIDTH=80%>\n"; -&show_keymap("Popup menu", +&show_keymap('Popup Menu Mode', split(" ", "menu_select menu_close menu_cancel menu_down menu_up menu_line_up menu_line_down menu_top menu_last menu_next menu_prev menu_search_fore menu_search_back menu_search_next diff --git a/scripts/w3mman/.cvsignore b/scripts/w3mman/.cvsignore deleted file mode 100644 index e867c6e..0000000 --- a/scripts/w3mman/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -w3mman -w3mman2html.cgi -w3mman.1 - -Makefile diff --git a/scripts/w3mman/CVS/Entries b/scripts/w3mman/CVS/Entries deleted file mode 100644 index 2cc31ff..0000000 --- a/scripts/w3mman/CVS/Entries +++ /dev/null @@ -1,8 +0,0 @@ -/.cvsignore/1.3/Mon Sep 22 22:53:53 2003// -/README/1.3/Wed Dec 18 16:48:02 2002// -/hlink.cgi/1.1/Thu Nov 15 00:32:14 2001// -/w3mman.1.in/1.6/Fri Apr 7 15:33:56 2006// -/w3mman.in/1.5/Fri Apr 7 15:33:56 2006// -/Makefile.in/1.5/Tue Jan 4 09:22:28 2011// -/w3mman2html.cgi.in/1.9/Tue Jan 4 09:22:28 2011// -D diff --git a/scripts/w3mman/CVS/Repository b/scripts/w3mman/CVS/Repository deleted file mode 100644 index 430e75e..0000000 --- a/scripts/w3mman/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/scripts/w3mman diff --git a/scripts/w3mman/CVS/Root b/scripts/w3mman/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/scripts/w3mman/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/scripts/w3mman/Makefile.in b/scripts/w3mman/Makefile.in index 569e2fc..ad1cffe 100644 --- a/scripts/w3mman/Makefile.in +++ b/scripts/w3mman/Makefile.in @@ -33,11 +33,13 @@ ETC_DIR = $(sysconfdir) CONF_DIR = $(sysconfdir)/$(PACKAGE) BIN_DIR = $(bindir) MAN1_DIR = $(mandir)/man1 +MAN1_DE_DIR = $(mandir)/de/man1 TARGETS = w3mman CGIBIN_TARGETS = w3mman2html.cgi MAN1_TARGETS = w3mman.1 -MAN_TARGETS = $(MAN1_TARGETS) +MAN1_DE_TARGETS = w3mman.de.1 +MAN_TARGETS = $(MAN1_TARGETS) $(MAN1_DE_TARGETS) MKDIR = mkdir -p INSTALL = @INSTALL@ @@ -53,6 +55,7 @@ install: $(TARGETS) $(CGIBIN_TARGETS) $(MAN_TARGETS) -$(MKDIR) $(DESTDIR)$(BIN_DIR) -$(MKDIR) $(DESTDIR)$(CGIBIN_DIR) -$(MKDIR) $(DESTDIR)$(MAN1_DIR) + -$(MKDIR) $(DESTDIR)$(MAN1_DE_DIR) for file in $(TARGETS); \ do \ $(INSTALL_SCRIPT) $$file $(DESTDIR)$(BIN_DIR); \ @@ -65,6 +68,12 @@ install: $(TARGETS) $(CGIBIN_TARGETS) $(MAN_TARGETS) do \ $(INSTALL_MAN) $$file $(DESTDIR)$(MAN1_DIR); \ done + for file in $(MAN1_DE_TARGETS); \ + do \ + $(INSTALL_MAN) $$file $(DESTDIR)$(MAN1_DE_DIR); \ + f=`echo "$$file" | sed -e 's/\.de\././'`; \ + mv $(DESTDIR)$(MAN1_DE_DIR)/$$file $(DESTDIR)$(MAN1_DE_DIR)/$$f; \ + done uninstall: -for file in $(TARGETS); \ @@ -79,6 +88,11 @@ uninstall: do \ rm -f $(MAN1_DIR)/$$file; \ done + -for file in $(MAN1_DE_TARGETS); \ + do \ + f=`echo "$$file" | sed -e 's/\.de\././'`; \ + rm -f $(MAN1_DE_DIR)/$$f; \ + done clean: @@ -89,7 +103,7 @@ distclean: dist: all @-rm -fr $(distdir)/w3mman -$(MKDIR) $(distdir)/w3mman - cp Makefile README w3mman.in w3mman2html.cgi.in hlink.cgi w3mman.1.in $(distdir)/w3mman + cp Makefile README w3mman.in w3mman2html.cgi.in hlink.cgi w3mman.1.in w3mman.de.1.in $(distdir)/w3mman ( cd $(distdir); tar -cf - w3mman | GZIP='' gzip ) \ > $(distdir)/w3mman.tar.gz -rm -fr $(distdir)/w3mman diff --git a/scripts/w3mman/README b/scripts/w3mman/README index 3bcbb3b..189e9ac 100644 --- a/scripts/w3mman/README +++ b/scripts/w3mman/README @@ -1,54 +1,54 @@ w3mman - 他のマニュアルやヘッダファイルにリンクをはることができる - man コマンドの代替コマンドです。 + 篁ャ≪<ゃ潟с + man 潟潟篁f帥潟潟с -使用法 +篏睡羈 w3mman w3mman <command>[(<section>)] w3mman [<section>] <command> w3mman -k <keyword> -環境変数 +医紊 W3MMAN_W3M - 使用する w3m コマンドを指定します(デフォルトは w3m) + 篏睡 w3m 潟潟絎障( w3m) W3MMAN_MAN - 使用する man コマンドを指定します(デフォルトは man) + 篏睡 man 潟潟絎障( man) -インストール +ゃ潟鴻若 make install - 必要なら PERL, MAN, LIBDIR を設定してください。 - w3mman2html.cgi もインストールされます。 + 綽荀 PERL, MAN, LIBDIR 荐絎 + w3mman2html.cgi ゃ潟鴻若障 ================ w3mman2html.cgi -使用法 +篏睡羈 w3m file:///$LIB/w3mman2html.cgi w3m file:///$LIB/w3mman2html.cgi?<command>[(<section>)] w3m file:///$LIB/w3mman2html.cgi?man=<command>[§ion=<section>] w3m file:///$LIB/w3mman2html.cgi?keyword=<keyword> -インストール +ゃ潟鴻若 make install - 必要なら PERL, MAN, LIBDIR を設定してください。 - w3mman もインストールされます。 + 綽荀 PERL, MAN, LIBDIR 荐絎 + w3mman ゃ潟鴻若障 ================ hlink.cgi - ヘッダファイルなどにリンクを張る + <ゃ潟綣泣 -インストール +ゃ潟鴻若 - /$LIB/ にコピー - w3mman2html.cgi で使用するならば $CGI2 に設定してください。 + /$LIB/ 潟 + w3mman2html.cgi т戎 $CGI2 荐絎 diff --git a/scripts/w3mman/w3mman.1.in b/scripts/w3mman/w3mman.1.in index 1c0361d..68e3afc 100644 --- a/scripts/w3mman/w3mman.1.in +++ b/scripts/w3mman/w3mman.1.in @@ -1,4 +1,4 @@ -.TH W3MMAN 1 "Nov 5, 2005" +.TH W3MMAN 1 "2016-07-13" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -12,36 +12,54 @@ .\" .sp <n> insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME -w3mman \- an interface to the on-line reference manuals by w3m(1) +w3mman \- an interface to the on-line reference manuals via w3m(1) .SH SYNOPSIS +.\" mh 2016-07-04: "page" is an optional argument. +.\" Started without it, w3mman displays a form that allows selection +.\" of a manual page according to section, name and keyword. +.\" Therefore square brackets introduced .B w3mman -.RI "[-M " path ] " " [ section ] " page" +[ +.BI \-M " path" +] [ [ +.I section +] +.I page +] .br .B w3mman -.RI "[-M " path "] -k " keyword +[ +.BI \-M " path" +] [ +.I section +] +.BI \-k " keyword" .br .B w3mman -.RI -l " file +.BI \-l " file" +.br .SH DESCRIPTION +.\" mh 2016-07-04 text edited. This section shall deliver +.\" more information than section NAME .B w3mman -is the system's manual pager by -.BR w3m (1). +is a Perl script that uses +.BR w3m (1) +to serve as a pager for on-line reference manuals. .SH OPTIONS A summary of options is included below. .TP .BI \-M " path" -Specify +Specify .I path -as MANPATH. +as alternative MANPATH to use. .TP .BI \-k " keyword" -Specify -.I keyword. +Specify \fIkeyword\fP. .TP .BI \-l " file" -Specify a -.I file. +Specify a \fIfile\fP. .SH ENVIRONMENT +Two variables are available for debugging. .TP .B W3MMAN_W3M If W3MMAN_W3M is set, its value is used instead of @W3M@. @@ -51,7 +69,7 @@ If W3MMAN_MAN is set, its value is used instead of @MAN@. .SH FILES .TP .I @libexecdir@/@PACKAGE@/cgi-bin/w3mman2html.cgi -convert manual page to html. +manual page to HTML converter. .SH SEE ALSO .BR man (1), .BR w3m (1). diff --git a/scripts/w3mman/w3mman.de.1.in b/scripts/w3mman/w3mman.de.1.in new file mode 100644 index 0000000..d6c5a44 --- /dev/null +++ b/scripts/w3mman/w3mman.de.1.in @@ -0,0 +1,71 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH W3MMAN 1 2016\-07\-13 +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp <n> insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +w3mman \- eine Schnittstelle zur Anzeige von Online\-Referenzhandb端chern durch +w3m(1) +.SH SYNOPSIS +.\" mh 2016-07-04: "page" is an optional argument. +.\" Started without it, w3mman displays a form that allows selection +.\" of a manual page according to section, name and keyword. +.\" Therefore square brackets introduced +\fBw3mman\fP [ \fB\-M\fP \fIPfad\fP ] [ \fIAbschnitt\fP ] [ \fISeite\fP ] +.br +\fBw3mman\fP [\fB\-M\fP \fIPfad\fP] \fB\-k\fP \fIStichwort\fP +.br +\fBw3mman\fP \fB\-l\fP \fIDatei\fP +.br +.SH BESCHREIBUNG +.\" mh 2016-07-04 text edited. This section shall deliver +.\" more information than section NAME +\fBw3mman\fP ist ein Perl\-Skript, welches auf \fBw3m\fP(1) zur端ckgreift, um als +Betrachter f端r Online\-Referenzhandb端cher zu dienen. +.SH OPTIONEN +Es folgt eine Zusammenfassung der Optionen. +.TP +\fB\-M\fP\fI Pfad\fP +Suchpfad f端r Handbuchseiten auf \fIPfad\fP setzen +.TP +\fB\-k\fP \fIStichwort\fP +zum \fIStichwort\fP passende Handbuchseiten anzeigen +.TP +\fB\-l\fP \fIDatei\fP +die Handbuchseiten\-Datei \fIDatei\fP anzeigen +.SH UMGEBUNGSVARIABLEN +Zur Fehleranalyse stehen zwei Variablen zur Verf端gung. +.TP +\fBW3MMAN_W3M\fP +Ist W3MMAN_W3M gesetzt, wird ihr Wert anstelle von @W3M@ verwendet. +.TP +\fBW3MMAN_MAN\fP +Ist W3MMAN_MAN gesetzt, wird ihr Wert anstelle von @MAN@ verwendet. +.SH DATEIEN +.TP +\fI@libexecdir@/@PACKAGE@/cgi\-bin/w3mman2html.cgi\fP +Skript, welches Handbuchseiten in HTML konvertiert +.SH "SIEHE AUCH" +\fBman\fP(1), \fBw3m\fP(1). +.SH AUTOR +Diese Handbuchseite wurde von Fumitoshi UKAI <ukai@debian.or.jp> f端r +Debian GNU / Linux geschrieben, sie kann aber auch auf anderen Systemen +verwendet werden. +Die deutsche bersetzung wurde 2016 von +.UR markus.hiereth@freenet.de +Markus Hiereth +.UE +erstellt. diff --git a/scripts/w3mman/w3mman.in b/scripts/w3mman/w3mman.in index 6a27e70..061cb1f 100644 --- a/scripts/w3mman/w3mman.in +++ b/scripts/w3mman/w3mman.in @@ -7,7 +7,7 @@ $SCRIPT = 'file:///$LIB/w3mman2html.cgi'; sub usage { ($_ = $0) =~ s@.*/@@; print STDERR "$_ [-M <path>] [[<section>] <command>]\n"; - print STDERR "$_ [-M <path>] [-k <keyword>]\n"; + print STDERR "$_ [-M <path>] [<section>] [-k <keyword>]\n"; print STDERR "$_ [-l <file>]\n"; exit 1; } @@ -20,19 +20,23 @@ while (@ARGV) { $ENV{'MANPATH'} = shift @ARGV; } elsif (/^-k$/) { @ARGV || &usage(); - $query = "?keyword=" . &form_encode(shift @ARGV); - } elsif (/^-l$/) { - @ARGV || &usage(); - $query = "?quit=ok&local=" . &form_encode(shift @ARGV); + if ( $query eq "" ) { $query = "?quit=ok"; } + $query .= "&keyword=" . &form_encode(shift @ARGV); + } elsif (/^-l$/ || /\//) { + if (/^-l$/) { + @ARGV || &usage(); + $_ = shift @ARGV; + } + $query = "?quit=ok&local=" . &form_encode($_); $query .= "&pwd=" . &form_encode($ENV{'PWD'}); } elsif (/^-/) { &usage(); - } elsif (/^\d/ || $_ eq 'n') { - @ARGV || &usage(); - $query = "?quit=ok&man=" . &form_encode(shift @ARGV); + } elsif (/^\d/ || $_ eq 'n' || $_ eq 'l') { + if ( $query eq "" ) { $query = "?quit=ok"; } $query .= "§ion=" . &form_encode($_); } else { - $query = "?quit=ok&man=" . &form_encode($_); + if ( $query eq "" ) { $query = "?quit=ok"; } + $query .= "&man=" . &form_encode($_); } } diff --git a/scripts/w3mman/w3mman2html.cgi.in b/scripts/w3mman/w3mman2html.cgi.in index f430307..2d326a9 100644 --- a/scripts/w3mman/w3mman2html.cgi.in +++ b/scripts/w3mman/w3mman2html.cgi.in @@ -23,18 +23,23 @@ if ((! $query{"man"}) && (! $query{"local"})) { if ($query{"keyword"}) { $keyword = $query{"keyword"}; $k = &html_quote($keyword); + if ($query{"section"}) { + $section = $query{"section"}; + $sectionopt = "-s $section "; + } else { + $sectionopt = ""; + } print <<EOF; Content-Type: text/html <html> -<head><title>man -k $k</title></head> +<head><title>man $sectionopt-k $k</title></head> <body> -<h2>man -k <b>$k</b></h2> +<h2>man $sectionopt-k <b>$k</b></h2> <ul> EOF $keyword =~ s:([^-\w\200-\377.,])::g; - open(F, "$MAN -k $keyword 2> /dev/null |"); - @line = (); + open(F, "$MAN $sectionopt -k $keyword 2> /dev/null |"); while(<F>) { chop; $_ = &html_quote($_); @@ -59,10 +64,10 @@ Content-Type: text/html <body> <form action="$CGI"> <table> -<tr><td>Manual:<td><input name=man> -<tr><td>Section:<td><input name=section> -<tr><td>Keyword:<td><input name=keyword> -<tr><td><td><input type=submit> <input type=reset> +<tr><td>Manual:<td><input name=man /> +<tr><td>Section:<td><input name=section /> +<tr><td>Keyword:<td><input name=keyword /> +<tr><td><td><input type=submit /> <input type=reset /> </table> </form> </body> @@ -76,7 +81,7 @@ if ($query{"local"}) { if (! ($file =~ /^\//)) { $file = $query{"pwd"} . '/' . $file; } - open(F, "MAN_KEEP_FORMATTING=1 $MAN -l $file 2> /dev/null |"); + open(F, "MAN_KEEP_FORMATTING=1 $MAN $file 2> /dev/null |"); } else { $man = $query{"man"}; if ($man =~ s/\((\w+)\)$//) { @@ -126,12 +131,14 @@ while(<F>) { s/\&/\&/g; s/\</\</g; s/\>/\>/g; + # non ASCII UTF-8 codepoint + my $utf8="[\300-\337][\200-\277]|[\340-\357][\200-\277]{2}|[\360-\367][\200-\277]{3}|[\370-\373][\200-\277]{4}|[\374\375][\200-\277]{5}"; - s@([\200-\377].)(\010{1,2}\1)+@<b>$1</b>@g; + s@($utf8)(\010\1)+@<b>$1</b>@g; s@(\&\w+;|.)(\010\1)+@<b>$1</b>@g; - s@__\010{1,2}((\<b\>)?[\200-\377].(\</b\>)?)@<u>$1</u>@g; + s@_\010((\<b\>)?($utf8)(\</b\>)?)@<u>$1</u>@g; s@_\010((\<b\>)?(\&\w+\;|.)(\</b\>)?)@<u>$1</u>@g; - s@((\<b\>)?[\200-\377].(\</b\>)?)\010{1,2}__@<u>$1</u>@g; + s@((\<b\>)?($utf8)(\</b\>)?)\010_@<u>$1</u>@g; s@((\<b\>)?(\&\w+\;|.)(\</b\>)?)\010_@<u>$1</u>@g; s@.\010(.)@$1@g; @@ -156,7 +163,7 @@ EOF } s@(http|ftp)://[\w.\-/~]+[\w/]@<a href="$&">$&</a>@g; - s@(\W)(mailto:)?(\w[\w.\-]*\@\w[\w.\-]*\.[\w.\-]*\w)@$1<a href="mailto:$3">$2$3</a>@g; + s@\b(mailto:|)(\w[\w.\-]*\@\w[\w.\-]*\.[\w.\-]*\w)@<a href="mailto:$2">$1$2</a>@g; s@(\W)(\~?/[\w.][\w.\-/~]*)@$1 . &file_ref($2)@ge; s@(include(<\/?[bu]\>|\s)*\<)([\w.\-/]+)@$1 . &include_ref($3)@ge; if ($prev && m@^\s*(\<[bu]\>)*(\w[\w.\-]*)(\</[bu]\>)*(\([\dm]\w*\))@) { @@ -220,7 +227,7 @@ sub is_command { local($p); (! -d && -x) || return 0; - if (! defined(%PATH)) { + if (! %PATH) { for $p (split(":", $ENV{'PATH'})) { $p =~ s@/+$@@; $PATH{$p} = 1; @@ -176,10 +176,10 @@ push_symbol(Str str, char symbol, int width, int n) #ifdef USE_M17N if (width == 2) - p = alt2_symbol[(int)symbol]; + p = alt2_symbol[(unsigned char)symbol % N_SYMBOL]; else #endif - p = alt_symbol[(int)symbol]; + p = alt_symbol[(unsigned char)symbol % N_SYMBOL]; for (i = 0; i < 2 && *p; i++, p++) buf[i] = (*p == ' ') ? NBSP_CODE : *p; @@ -188,7 +188,7 @@ dv2sv(double *dv, short *iv, int size) indexarray = NewAtom_N(short, size); edv = NewAtom_N(double, size); for (i = 0; i < size; i++) { - iv[i] = ceil(dv[i]); + iv[i] = (short) ceil(dv[i]); edv[i] = (double)iv[i] - dv[i]; } @@ -205,7 +205,7 @@ dv2sv(double *dv, short *iv, int size) indexarray[i] = k; } iw = min((int)(w + 0.5), size); - if (iw == 0) + if (iw <= 1) return; x = edv[(int)indexarray[iw - 1]]; for (i = 0; i < size; i++) { @@ -429,7 +429,6 @@ visible_length(char *str) char *t, *r2; int amp_len = 0; - t = str; while (*str) { prev_status = status; if (next_status(*str, &status)) { @@ -761,7 +760,7 @@ do_refill(struct table *tbl, int row, int col, int maxlimit) struct parsed_tag *tag; if ((tag = parse_tag(&p, TRUE)) != NULL) parsedtag_get_value(tag, ATTR_TID, &id); - if (id >= 0 && id < tbl->ntable) { + if (id >= 0 && id < tbl->ntable && tbl->tables[id].ptr) { int alignment; TextLineListItem *ti; struct table *t = tbl->tables[id].ptr; @@ -961,7 +960,7 @@ set_integered_width(struct table *t, double *dwidth, short *iwidth) for (step = 0; step < 2; step++) { for (i = 0; i <= t->maxcol; i += n) { int nn; - char *idx; + short *idx; double nsum; if (sum < 0.5) return; @@ -982,7 +981,7 @@ set_integered_width(struct table *t, double *dwidth, short *iwidth) (double)rulewidth - mod[ii] > 0.5) fixed[ii] = 1; } - idx = NewAtom_N(char, n); + idx = NewAtom_N(short, n); for (k = 0; k < cell->maxcell; k++) { int kk, w, width, m; j = cell->index[k]; @@ -1624,6 +1623,15 @@ get_table_width(struct table *t, short *orgwidth, short *cellwidth, int flag) #define fixed_table_width(t)\ (get_table_width(t,t->fixed_width,t->cell.fixed_width,CHECK_MINIMUM)) +#define MAX_COTABLE_LEVEL 100 +static int cotable_level; + +void +initRenderTable(void) +{ + cotable_level = 0; +} + void renderCoTable(struct table *tbl, int maxlimit) { @@ -1634,8 +1642,14 @@ renderCoTable(struct table *tbl, int maxlimit) int i, col, row; int indent, maxwidth; + if (cotable_level >= MAX_COTABLE_LEVEL) + return; /* workaround to prevent infinite recursion */ + cotable_level++; + for (i = 0; i < tbl->ntable; i++) { t = tbl->tables[i].ptr; + if (t == NULL) + continue; col = tbl->tables[i].col; row = tbl->tables[i].row; indent = tbl->tables[i].indent; @@ -1691,7 +1705,7 @@ renderTable(struct table *t, int max_width, struct html_feed_environ *h_env) { int i, j, w, r, h; Str renderbuf; - short new_tabwidth[MAXCOL]; + short new_tabwidth[MAXCOL] = { 0 }; #ifdef MATRIX int itr; VEC *newwidth; @@ -1724,6 +1738,10 @@ renderTable(struct table *t, int max_width, struct html_feed_environ *h_env) if (max_width < rulewidth) max_width = rulewidth; +#define MAX_TABWIDTH 10000 + if (max_width > MAX_TABWIDTH) + max_width = MAX_TABWIDTH; + check_maximum_width(t); #ifdef MATRIX @@ -2272,7 +2290,8 @@ skip_space(struct table *t, char *line, struct table_linfo *linfo, } if (s > 0) { #ifdef USE_M17N - if (ctype == PC_KANJI1 && prev_ctype == PC_KANJI1) + if (!SimplePreserveSpace && + ctype == PC_KANJI1 && prev_ctype == PC_KANJI1) skip += s; else #endif @@ -2323,6 +2342,8 @@ feed_table_block_tag(struct table *tbl, int offset; if (mode->indent_level <= 0 && indent == -1) return; + if (mode->indent_level >= CHAR_MAX && indent == 1) + return; setwidth(tbl, mode); feed_table_inline_tag(tbl, line, mode, -1); clearcontentssize(tbl, mode); @@ -2336,10 +2357,14 @@ feed_table_block_tag(struct table *tbl, if (mode->indent_level < MAX_INDENT_LEVEL) tbl->indent -= INDENT_INCR; } + if (tbl->indent < 0) + tbl->indent = 0; offset = tbl->indent; if (cmd == HTML_DT) { if (mode->indent_level > 0 && mode->indent_level <= MAX_INDENT_LEVEL) offset -= INDENT_INCR; + if (offset < 0) + offset = 0; } if (tbl->indent > 0) { check_minimum0(tbl, 0); @@ -2546,8 +2571,10 @@ feed_table_tag(struct table *tbl, char *line, struct table_mode *mode, } } #ifdef ID_EXT - if (parsedtag_get_value(tag, ATTR_ID, &p)) + if (parsedtag_get_value(tag, ATTR_ID, &p)) { + check_row(tbl, tbl->row); tbl->tridvalue[tbl->row] = Strnew_charp(p); + } #endif /* ID_EXT */ tbl->trattr = align | valign; break; @@ -2572,7 +2599,7 @@ feed_table_tag(struct table *tbl, char *line, struct table_mode *mode, } tbl->col++; check_row(tbl, tbl->row); - while (tbl->tabattr[tbl->row][tbl->col]) { + while (tbl->col < MAXCOL && tbl->tabattr[tbl->row][tbl->col]) { tbl->col++; } if (tbl->col > MAXCOL - 1) { @@ -2600,12 +2627,16 @@ feed_table_tag(struct table *tbl, char *line, struct table_mode *mode, if ((tbl->row + rowspan) >= tbl->max_rowsize) check_row(tbl, tbl->row + rowspan); } + if (rowspan < 1) + rowspan = 1; if (parsedtag_get_value(tag, ATTR_COLSPAN, &colspan)) { if ((tbl->col + colspan) >= MAXCOL) { /* Can't expand column */ colspan = MAXCOL - tbl->col; } } + if (colspan < 1) + colspan = 1; if (parsedtag_get_value(tag, ATTR_ALIGN, &i)) { switch (i) { case ALIGN_LEFT: @@ -2878,6 +2909,14 @@ feed_table_tag(struct table *tbl, char *line, struct table_mode *mode, tmp = process_input(tag); feed_table1(tbl, tmp, mode, width); break; + case HTML_BUTTON: + tmp = process_button(tag); + feed_table1(tbl, tmp, mode, width); + break; + case HTML_N_BUTTON: + tmp = process_n_button(); + feed_table1(tbl, tmp, mode, width); + break; case HTML_SELECT: tmp = process_select(tag); if (tmp) @@ -3010,7 +3049,6 @@ feed_table_tag(struct table *tbl, char *line, struct table_mode *mode, break; case HTML_TABLE_ALT: id = -1; - w = 0; parsedtag_get_value(tag, ATTR_TID, &id); if (id >= 0 && id < tbl->ntable) { struct table *tbl1 = tbl->tables[id].ptr; @@ -17,7 +17,7 @@ #define MAX_TABLE_N 20 /* maximum number of table in same level */ #define MAXROW 50 -#define MAXCOL 50 +#define MAXCOL 256 #define MAX_WIDTH 80 diff --git a/tagtable.tab b/tagtable.tab index f9b7b76..cc94942 100644 --- a/tagtable.tab +++ b/tagtable.tab @@ -176,6 +176,7 @@ bdo HTML_BDO big HTML_BIG /big HTML_N_BIG button HTML_BUTTON +/button HTML_N_BUTTON fieldset HTML_FIELDSET /fieldset HTML_N_FIELDSET iframe HTML_IFRAME @@ -191,11 +192,17 @@ optgroup HTML_OPTGROUP param HTML_PARAM small HTML_SMALL /small HTML_N_SMALL +figure HTML_FIGURE +/figure HTML_N_FIGURE +figcaption HTML_FIGCAPTION +/figcaption HTML_N_FIGCAPTION internal HTML_INTERNAL /internal HTML_N_INTERNAL select_int HTML_SELECT_INT /select_int HTML_N_SELECT_INT option_int HTML_OPTION_INT +section HTML_SECTION +/section HTML_N_SECTION textarea_int HTML_TEXTAREA_INT /textarea_int HTML_N_TEXTAREA_INT pre_plain HTML_PRE_PLAIN @@ -12,6 +12,7 @@ #include <unistd.h> #include "config.h" #include <string.h> +#include <sys/wait.h> #ifdef HAVE_SYS_SELECT_H #include <sys/select.h> #endif @@ -222,6 +223,7 @@ static void check_cygwin_console(void) { char *term = getenv("TERM"); + char *ctype; HANDLE hWnd; if (term == NULL) @@ -236,7 +238,9 @@ check_cygwin_console(void) isLocalConsole = 1; } } - if (strncmp(getenv("LANG"), "ja", 2) == 0) { + if (((ctype = getenv("LC_ALL")) || + (ctype = getenv("LC_CTYPE")) || + (ctype = getenv("LANG"))) && strncmp(ctype, "ja", 2) == 0) { isWinConsole = TERM_CYGWIN_RESERVE_IME; } #ifdef SUPPORT_WIN9X_CONSOLE_MBCS @@ -463,6 +467,262 @@ writestr(char *s) #define MOVE(line,column) writestr(tgoto(T_cm,column,line)); +#ifdef USE_IMAGE +void +put_image_osc5379(char *url, int x, int y, int w, int h, int sx, int sy, int sw, int sh, int n_terminal_image) +{ + Str buf; + char *size ; + + if (w > 0 && h > 0) + size = Sprintf("%dx%d",w,h)->ptr; + else + size = ""; + + MOVE(y,x); + buf = Sprintf("\x1b]5379;show_picture %s %s %dx%d+%d+%d\x07",url,size,sw,sh,sx,sy); + writestr(buf->ptr); + MOVE(Currentbuf->cursorY,Currentbuf->cursorX); +} + +static void +save_gif(const char *path, u_char *header, size_t header_size, u_char *body, size_t body_size) +{ + int fd; + + if ((fd = open(path, O_WRONLY|O_CREAT, 0600)) >= 0) { + write(fd, header, header_size) ; + write(fd, body, body_size) ; + write(fd, "\x3b" , 1) ; + close(fd) ; + } +} + +static u_char * +skip_gif_header(u_char *p) +{ + /* Header */ + p += 10; + + if (*(p) & 0x80) { + p += (3 * (2 << ((*p) & 0x7))); + } + p += 3; + + return p; +} + +static Str +save_first_animation_frame(const char *path) +{ + int fd; + struct stat st; + u_char *header; + size_t header_size; + u_char *body; + u_char *p; + ssize_t len; + Str new_path; + + new_path = Strnew_charp(path); + Strcat_charp(new_path, "-1"); + if (stat(new_path->ptr, &st) == 0) { + return new_path; + } + + if ((fd = open( path, O_RDONLY)) < 0) { + return NULL; + } + + if (fstat( fd, &st) != 0 || ! (header = GC_malloc( st.st_size))){ + close( fd); + return NULL; + } + + len = read(fd, header, st.st_size); + close(fd); + + /* Header */ + + if (len != st.st_size || strncmp(header, "GIF89a", 6) != 0) { + return NULL; + } + + p = skip_gif_header(header); + header_size = p - header; + + /* Application Extension */ + if (p[0] == 0x21 && p[1] == 0xff) { + p += 19; + } + + /* Other blocks */ + body = NULL; + while (p + 2 < header + st.st_size) { + if (*(p++) == 0x21 && *(p++) == 0xf9 && *(p++) == 0x04) { + if( body) { + /* Graphic Control Extension */ + save_gif(new_path->ptr, header, header_size, body, p - 3 - body); + return new_path; + } + else { + /* skip the first frame. */ + } + body = p - 3; + } + } + + return NULL; +} + +void ttymode_set(int mode, int imode); +void ttymode_reset(int mode, int imode); + +void +put_image_sixel(char *url, int x, int y, int w, int h, int sx, int sy, int sw, int sh, int n_terminal_image) +{ + pid_t pid; + int do_anim; + MySignalHandler(*volatile previntr) (SIGNAL_ARG); + MySignalHandler(*volatile prevquit) (SIGNAL_ARG); + MySignalHandler(*volatile prevstop) (SIGNAL_ARG); + + MOVE(y,x); + flush_tty(); + + do_anim = (n_terminal_image == 1 && x == 0 && y == 0 && sx == 0 && sy == 0); + + previntr = mySignal(SIGINT, SIG_IGN); + prevquit = mySignal(SIGQUIT, SIG_IGN); + prevstop = mySignal(SIGTSTP, SIG_IGN); + + if ((pid = fork()) == 0) { + char *env; + int n = 0; + char *argv[20]; + char digit[2][11+1]; + char clip[44+3+1]; + Str str_url; + + close(STDERR_FILENO); /* Don't output error message. */ + if (do_anim) { + writestr("\x1b[?80h"); + } + else if (!strstr(url, "://") && strcmp(url+strlen(url)-4, ".gif") == 0 && + (str_url = save_first_animation_frame(url))) { + url = str_url->ptr; + } + ttymode_set(ISIG, 0); + + if ((env = getenv("W3M_IMG2SIXEL"))) { + char *p; + env = Strnew_charp(env)->ptr; + while (n < 8 && (p = strchr(env, ' '))) { + *p = '\0'; + if (*env != '\0') { + argv[n++] = env; + } + env = p+1; + } + if (*env != '\0') { + argv[n++] = env; + } + } + else { + argv[n++] = "img2sixel"; + } + argv[n++] = "-l"; + argv[n++] = do_anim ? "auto" : "disable"; + argv[n++] = "-w"; + sprintf(digit[0], "%d", w*pixel_per_char_i); + argv[n++] = digit[0]; + argv[n++] = "-h"; + sprintf(digit[1], "%d", h*pixel_per_line_i); + argv[n++] = digit[1]; + argv[n++] = "-c"; + sprintf(clip, "%dx%d+%d+%d", sw*pixel_per_char_i, sh*pixel_per_line_i, + sx*pixel_per_char_i, sy*pixel_per_line_i); + argv[n++] = clip; + argv[n++] = url; + if (getenv("TERM") && strcmp(getenv("TERM"), "screen") == 0 && + (!getenv("SCREEN_VARIANT") || strcmp(getenv("SCREEN_VARIANT"), "sixel") != 0)) { + argv[n++] = "-P"; + } + argv[n++] = NULL; + execvp(argv[0],argv); + exit(0); + } + else if (pid > 0) { + int status; + waitpid(pid, &status, 0); + ttymode_reset(ISIG, 0); + mySignal(SIGINT, previntr); + mySignal(SIGQUIT, prevquit); + mySignal(SIGTSTP, prevstop); + if (do_anim) { + writestr("\x1b[?80l"); + } + } + + MOVE(Currentbuf->cursorY,Currentbuf->cursorX); +} + +int +get_pixel_per_cell(int *ppc, int *ppl) +{ + fd_set rfd; + struct timeval tval; + char buf[100]; + char *p; + ssize_t len; + ssize_t left; + int wp,hp,wc,hc; + int i; + +#ifdef TIOCGWINSZ + struct winsize ws; + if (ioctl(tty, TIOCGWINSZ, &ws) == 0 && ws.ws_ypixel > 0 && ws.ws_row > 0 && + ws.ws_xpixel > 0 && ws.ws_col > 0) { + *ppc = ws.ws_xpixel / ws.ws_col; + *ppl = ws.ws_ypixel / ws.ws_row; + return 1; + } +#endif + + fputs("\x1b[14t\x1b[18t",ttyf); flush_tty(); + + p = buf; + left = sizeof(buf) - 1; + for (i = 0; i < 10; i++) { + tval.tv_usec = 200000; /* 0.2 sec * 10 */ + tval.tv_sec = 0; + FD_ZERO(&rfd); + FD_SET(tty,&rfd); + if (select(tty+1,&rfd,NULL,NULL,&tval) <= 0 || ! FD_ISSET(tty,&rfd)) + continue; + + if ((len = read(tty,p,left)) <= 0) + continue; + p[len] = '\0'; + + if (sscanf(buf,"\x1b[4;%d;%dt\x1b[8;%d;%dt",&hp,&wp,&hc,&wc) == 4) { + if (wp > 0 && wc > 0 && hp > 0 && hc > 0) { + *ppc = wp / wc; + *ppl = hp / hc; + return 1; + } + else { + return 0; + } + } + p += len; + left -= len; + } + + return 0; +} +#endif /* USE_IMAGE */ + #ifdef USE_MOUSE #define W3M_TERM_INFO(name, title, mouse) name, title, mouse #define NEED_XTERM_ON (1) @@ -563,7 +823,7 @@ ttymode_set(int mode, int imode) while (TerminalSet(tty, &ioval) == -1) { if (errno == EINTR || errno == EAGAIN) continue; - printf("Error occured while set %x: errno=%d\n", mode, errno); + printf("Error occurred while set %x: errno=%d\n", mode, errno); reset_error_exit(SIGNAL_ARGLIST); } #endif @@ -584,7 +844,7 @@ ttymode_reset(int mode, int imode) while (TerminalSet(tty, &ioval) == -1) { if (errno == EINTR || errno == EAGAIN) continue; - printf("Error occured while reset %x: errno=%d\n", mode, errno); + printf("Error occurred while reset %x: errno=%d\n", mode, errno); reset_error_exit(SIGNAL_ARGLIST); } #endif /* __MINGW32_VERSION */ @@ -601,7 +861,7 @@ set_cc(int spec, int val) while (TerminalSet(tty, &ioval) == -1) { if (errno == EINTR || errno == EAGAIN) continue; - printf("Error occured: errno=%d\n", errno); + printf("Error occurred: errno=%d\n", errno); reset_error_exit(SIGNAL_ARGLIST); } } @@ -634,7 +894,8 @@ reset_tty(void) writestr(T_se); /* reset terminal */ flush_tty(); TerminalSet(tty, &d_ioval); - close_tty(); + if (tty != 2) + close_tty(); } static MySignalHandler @@ -953,7 +1214,6 @@ addch(char pc) { l_prop *pr; int dest, i; - short *dirty; #ifdef USE_M17N static Str tmp = NULL; char **p; @@ -975,7 +1235,6 @@ addch(char pc) return; p = ScreenImage[CurLine]->lineimage; pr = ScreenImage[CurLine]->lineprop; - dirty = &ScreenImage[CurLine]->isdirty; #ifndef USE_M17N /* Eliminate unprintables according to * iso-8859-*. @@ -1986,6 +2245,10 @@ skip_escseq(void) getch(); getch(); getch(); + } else if (is_xterm && c == '<') { + c = getch(); + while (IS_DIGIT(c) || c == ';') + c = getch(); } else #endif @@ -2019,7 +2282,7 @@ sleep_till_anykey(int sec, int purge) } er = TerminalSet(tty, &ioval); if (er == -1) { - printf("Error occured: errno=%d\n", errno); + printf("Error occurred: errno=%d\n", errno); reset_error_exit(SIGNAL_ARGLIST); } return ret; @@ -2027,8 +2290,8 @@ sleep_till_anykey(int sec, int purge) #ifdef USE_MOUSE -#define XTERM_ON {fputs("\033[?1001s\033[?1000h",ttyf); flush_tty();} -#define XTERM_OFF {fputs("\033[?1000l\033[?1001r",ttyf); flush_tty();} +#define XTERM_ON {fputs("\033[?1001s\033[?1000h\033[?1006h",ttyf); flush_tty();} +#define XTERM_OFF {fputs("\033[?1006l\033[?1000l\033[?1001r",ttyf); flush_tty();} #define CYGWIN_ON {fputs("\033[?1000h",ttyf); flush_tty();} #define CYGWIN_OFF {fputs("\033[?1000l",ttyf); flush_tty();} diff --git a/tests/a1.expected b/tests/a1.expected new file mode 100644 index 0000000..5812232 --- /dev/null +++ b/tests/a1.expected @@ -0,0 +1,2 @@ + +test diff --git a/tests/a1.html b/tests/a1.html new file mode 100644 index 0000000..7e89006 --- /dev/null +++ b/tests/a1.html @@ -0,0 +1 @@ +<a href="example"><div>test</div></a> diff --git a/tests/a2.expected b/tests/a2.expected new file mode 100644 index 0000000..9daeafb --- /dev/null +++ b/tests/a2.expected @@ -0,0 +1 @@ +test diff --git a/tests/a2.html b/tests/a2.html new file mode 100644 index 0000000..197b006 --- /dev/null +++ b/tests/a2.html @@ -0,0 +1,3 @@ +<!doctype html> +<meta charset=utf-8> +<a href="example"><div>test</div></a> diff --git a/tests/name_entity_1.expected b/tests/name_entity_1.expected new file mode 100644 index 0000000..2a6fd2c --- /dev/null +++ b/tests/name_entity_1.expected @@ -0,0 +1,2 @@ +This is an example sentence that contains some "quoted words" -- +punctuation that would be displayed as question marks but should not. diff --git a/tests/name_entity_1.html b/tests/name_entity_1.html new file mode 100644 index 0000000..f2e3633 --- /dev/null +++ b/tests/name_entity_1.html @@ -0,0 +1,2 @@ +This is an example sentence that contains some “quoted words” — +<br>punctuation that would be displayed as question marks but should not. diff --git a/tests/name_entity_1.opts b/tests/name_entity_1.opts new file mode 100644 index 0000000..f9ac4b0 --- /dev/null +++ b/tests/name_entity_1.opts @@ -0,0 +1,2 @@ +-O +us-ascii diff --git a/tests/name_entity_2.expected b/tests/name_entity_2.expected new file mode 100644 index 0000000..b287794 --- /dev/null +++ b/tests/name_entity_2.expected @@ -0,0 +1 @@ +2r diff --git a/tests/name_entity_2.html b/tests/name_entity_2.html new file mode 100644 index 0000000..9be30f0 --- /dev/null +++ b/tests/name_entity_2.html @@ -0,0 +1 @@ +2πr diff --git a/tests/q1.expected b/tests/q1.expected new file mode 100644 index 0000000..84b67a1 --- /dev/null +++ b/tests/q1.expected @@ -0,0 +1 @@ +`test' diff --git a/tests/q1.html b/tests/q1.html new file mode 100644 index 0000000..292b019 --- /dev/null +++ b/tests/q1.html @@ -0,0 +1,2 @@ +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<q>test</q> diff --git a/tests/q1.opts b/tests/q1.opts new file mode 100644 index 0000000..f9ac4b0 --- /dev/null +++ b/tests/q1.opts @@ -0,0 +1,2 @@ +-O +us-ascii diff --git a/tests/q2.expected b/tests/q2.expected new file mode 100644 index 0000000..bd72179 --- /dev/null +++ b/tests/q2.expected @@ -0,0 +1 @@ +test diff --git a/tests/q2.html b/tests/q2.html new file mode 100644 index 0000000..8f1e80b --- /dev/null +++ b/tests/q2.html @@ -0,0 +1,3 @@ +<!doctype html> +<meta charset=utf-8> +<q>test</q> diff --git a/tests/q3.expected b/tests/q3.expected new file mode 100644 index 0000000..c5e67df --- /dev/null +++ b/tests/q3.expected @@ -0,0 +1 @@ +test diff --git a/tests/q3.html b/tests/q3.html new file mode 100644 index 0000000..672a868 --- /dev/null +++ b/tests/q3.html @@ -0,0 +1,3 @@ +<!doctype html> +<meta charset=Big5> +<q>test</q> diff --git a/tests/q3.opts b/tests/q3.opts new file mode 100644 index 0000000..32d2b1a --- /dev/null +++ b/tests/q3.opts @@ -0,0 +1,4 @@ +-I +windows-1252 +-O +windows-1252 diff --git a/tests/q4.expected b/tests/q4.expected new file mode 100644 index 0000000..c5e67df --- /dev/null +++ b/tests/q4.expected @@ -0,0 +1 @@ +test diff --git a/tests/q4.html b/tests/q4.html new file mode 100644 index 0000000..672a868 --- /dev/null +++ b/tests/q4.html @@ -0,0 +1,3 @@ +<!doctype html> +<meta charset=Big5> +<q>test</q> diff --git a/tests/q4.opts b/tests/q4.opts new file mode 100644 index 0000000..074570d --- /dev/null +++ b/tests/q4.opts @@ -0,0 +1,2 @@ +-O +windows-1252 diff --git a/tests/q5.expected b/tests/q5.expected new file mode 100644 index 0000000..4f4614d --- /dev/null +++ b/tests/q5.expected @@ -0,0 +1 @@ +example of a nested quote diff --git a/tests/q5.html b/tests/q5.html new file mode 100644 index 0000000..f4fe761 --- /dev/null +++ b/tests/q5.html @@ -0,0 +1,3 @@ +<!doctype html> +<meta charset=utf-8> +<q>example of a <q>nested</q> quote</q> diff --git a/tests/q6.expected b/tests/q6.expected new file mode 100644 index 0000000..fc98f57 --- /dev/null +++ b/tests/q6.expected @@ -0,0 +1 @@ +"example of a 'nested' quote" diff --git a/tests/q6.html b/tests/q6.html new file mode 100644 index 0000000..e5f1de5 --- /dev/null +++ b/tests/q6.html @@ -0,0 +1,3 @@ +<!doctype html> +<meta charset=big5> +<q>example of a <q>nested</q> quote</q> diff --git a/tests/q6.opts b/tests/q6.opts new file mode 100644 index 0000000..1b59fbf --- /dev/null +++ b/tests/q6.opts @@ -0,0 +1 @@ +-O Big5 diff --git a/tests/run_tests b/tests/run_tests new file mode 100644 index 0000000..0ec3080 --- /dev/null +++ b/tests/run_tests @@ -0,0 +1,31 @@ +total=0 +pass=0 +fail=0 +w3m="../w3m +-config +/dev/null +-o +ignore_null_img_alt=false" +for i in *.html; do + cmd="$w3m +-I +utf-8 +-O +utf-8 +-T +text/html" + opts="`basename "$i" .html`.opts" + test -f "$opts" && cmd="$cmd +`grep -v '^#' $opts`" + if (set -x;IFS=' +';$cmd) < "$i" | diff -u - "`basename "$i" .html`.expected"; then + pass="`expr 1 + "$pass"`" + else + fail="`expr 1 + "$fail"`" + fi + total="`expr 1 + "$total"`" +done +echo "TOTAL: $total test(s)" +echo "PASS : $pass" +echo "FAIL : $fail" +test 0 -eq "$fail" @@ -1,6 +1,7 @@ /* $Id: url.c,v 1.100 2010/12/15 10:50:24 htrb Exp $ */ #include "fm.h" #ifndef __MINGW32_VERSION +#include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> @@ -40,6 +41,10 @@ #define close(fd) closesocket(fd) #endif +#ifndef HOST_NAME_MAX +#define HOST_NAME_MAX 64 +#endif + #ifdef INET6 /* see rc.c, "dns_order" and dnsorders[] */ int ai_family_order_table[7][3] = { @@ -121,6 +126,7 @@ static struct table2 DefaultGuess[] = { }; static void add_index_file(ParsedURL *pu, URLFile *uf); +static char * schemeNumToName(int scheme); /* #define HTTP_DEFAULT_FILE "/index.html" */ @@ -318,14 +324,21 @@ openSSLHandle(int sock, char *hostname, char **p_cert) #endif /* defined(USE_SSL_VERIFY) */ if (ssl_ctx == NULL) { int option; -#if SSLEAY_VERSION_NUMBER < 0x0800 +#if OPENSSL_VERSION_NUMBER < 0x0800 ssl_ctx = SSL_CTX_new(); X509_set_default_verify_paths(ssl_ctx->cert); #else /* SSLEAY_VERSION_NUMBER >= 0x0800 */ +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) SSLeay_add_ssl_algorithms(); SSL_load_error_strings(); +#else + OPENSSL_init_ssl(0, NULL); +#endif if (!(ssl_ctx = SSL_CTX_new(SSLv23_client_method()))) goto eend; +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) + SSL_CTX_set_cipher_list(ssl_ctx, "DEFAULT:!LOW:!RC4:!EXP"); +#endif option = SSL_OP_ALL; if (ssl_forbid_method) { if (strchr(ssl_forbid_method, '2')) @@ -336,8 +349,30 @@ openSSLHandle(int sock, char *hostname, char **p_cert) option |= SSL_OP_NO_TLSv1; if (strchr(ssl_forbid_method, 'T')) option |= SSL_OP_NO_TLSv1; + if (strchr(ssl_forbid_method, '4')) + option |= SSL_OP_NO_TLSv1; +#ifdef SSL_OP_NO_TLSv1_1 + if (strchr(ssl_forbid_method, '5')) + option |= SSL_OP_NO_TLSv1_1; +#endif +#ifdef SSL_OP_NO_TLSv1_2 + if (strchr(ssl_forbid_method, '6')) + option |= SSL_OP_NO_TLSv1_2; +#endif +#ifdef SSL_OP_NO_TLSv1_3 + if (strchr(ssl_forbid_method, '7')) + option |= SSL_OP_NO_TLSv1_3; +#endif } +#ifdef SSL_OP_NO_COMPRESSION + option |= SSL_OP_NO_COMPRESSION; +#endif SSL_CTX_set_options(ssl_ctx, option); + +#ifdef SSL_MODE_RELEASE_BUFFERS + SSL_CTX_set_mode (ssl_ctx, SSL_MODE_RELEASE_BUFFERS); +#endif + #ifdef USE_SSL_VERIFY /* derived from openssl-0.9.5/apps/s_{client,cb}.c */ #if 1 /* use SSL_get_verify_result() to verify cert */ @@ -444,6 +479,8 @@ baseURL(Buffer *buf) /* <BASE> tag is defined in the document */ return buf->baseURL; } + else if (IS_EMPTY_PARSED_URL(&buf->currentURL)) + return NULL; else return &buf->currentURL; } @@ -638,16 +675,21 @@ openSocket(char *const hostname, #define COPYPATH_SPC_ALLOW 0 #define COPYPATH_SPC_IGNORE 1 #define COPYPATH_SPC_REPLACE 2 +#define COPYPATH_SPC_MASK 3 +#define COPYPATH_LOWERCASE 4 static char * copyPath(char *orgpath, int length, int option) { Str tmp = Strnew(); - while (*orgpath && length != 0) { - if (IS_SPACE(*orgpath)) { - switch (option) { + char ch; + while ((ch = *orgpath) != 0 && length != 0) { + if (option & COPYPATH_LOWERCASE) + ch = TOLOWER(ch); + if (IS_SPACE(ch)) { + switch (option & COPYPATH_SPC_MASK) { case COPYPATH_SPC_ALLOW: - Strcat_char(tmp, *orgpath); + Strcat_char(tmp, ch); break; case COPYPATH_SPC_IGNORE: /* do nothing */ @@ -658,7 +700,7 @@ copyPath(char *orgpath, int length, int option) } } else - Strcat_char(tmp, *orgpath); + Strcat_char(tmp, ch); orgpath++; length--; } @@ -668,22 +710,14 @@ copyPath(char *orgpath, int length, int option) void parseURL(char *url, ParsedURL *p_url, ParsedURL *current) { - char *p, *q; + char *p, *q, *qq; Str tmp; url = url_quote(url); /* quote 0x01-0x20, 0x7F-0xFF */ p = url; + copyParsedURL(p_url, NULL); p_url->scheme = SCM_MISSING; - p_url->port = 0; - p_url->user = NULL; - p_url->pass = NULL; - p_url->host = NULL; - p_url->is_nocache = 0; - p_url->file = NULL; - p_url->real_file = NULL; - p_url->query = NULL; - p_url->label = NULL; /* RFC1808: Relative Uniform Resource Locators * 4. Resolving Relative URLs @@ -693,13 +727,34 @@ parseURL(char *url, ParsedURL *p_url, ParsedURL *current) copyParsedURL(p_url, current); goto do_label; } + if (!strncasecmp(url, "file://", 7)) { #if defined( __EMX__ ) || defined( __CYGWIN__ ) - if (!strncmp(url, "file://localhost/", 17)) { - p_url->scheme = SCM_LOCAL; - p += 17 - 1; - url += 17 - 1; - } + if (!strncasecmp(url + 7, "localhost/", 10)) { + p_url->scheme = SCM_LOCAL; + p += 7 + 10 - 1; + url += 7 + 10 - 1; + } else #endif + { + /* Recognize the machine's host name. This is necessary for URLs + * produced by 'ls --hyperlink' or similar. */ + char hostname[HOST_NAME_MAX + 2]; + if (gethostname (hostname, HOST_NAME_MAX + 2) == 0) { + size_t hostname_len; + /* Don't use hostname if it is truncated. */ + hostname[HOST_NAME_MAX + 1] = '\0'; + hostname_len = strlen (hostname); + if (hostname_len <= HOST_NAME_MAX) { + if (!strncasecmp(url + 7, hostname, hostname_len) + && *(url + 7 + hostname_len) == '/') { + p_url->scheme = SCM_LOCAL; + p += 7 + hostname_len; + url += 7 + hostname_len; + } + } + } + } + } #ifdef SUPPORT_DOS_DRIVE_PREFIX if (IS_ALPHA(*p) && (p[1] == ':' || p[1] == '|')) { p_url->scheme = SCM_LOCAL; @@ -802,19 +857,20 @@ parseURL(char *url, ParsedURL *p_url, ParsedURL *current) /* scheme://user:pass@host or * scheme://host:port */ - p_url->host = copyPath(q, p - q, COPYPATH_SPC_IGNORE); + qq = q; q = ++p; while (*p && strchr("@/?#", *p) == NULL) p++; if (*p == '@') { /* scheme://user:pass@... */ + p_url->user = copyPath(qq, q - 1 - qq, COPYPATH_SPC_IGNORE); p_url->pass = copyPath(q, p - q, COPYPATH_SPC_ALLOW); - q = ++p; - p_url->user = p_url->host; - p_url->host = NULL; + p++; goto analyze_url; } /* scheme://host:port/ */ + p_url->host = copyPath(qq, q - 1 - qq, + COPYPATH_SPC_IGNORE | COPYPATH_LOWERCASE); tmp = Strnew_charp_n(q, p - q); p_url->port = atoi(tmp->ptr); /* *p is one of ['\0', '/', '?', '#'] */ @@ -822,15 +878,19 @@ parseURL(char *url, ParsedURL *p_url, ParsedURL *current) case '@': /* scheme://user@... */ p_url->user = copyPath(q, p - q, COPYPATH_SPC_IGNORE); - q = ++p; + p++; goto analyze_url; case '\0': /* scheme://host */ case '/': case '?': case '#': - p_url->host = copyPath(q, p - q, COPYPATH_SPC_IGNORE); - p_url->port = DefaultPort[p_url->scheme]; + p_url->host = copyPath(q, p - q, + COPYPATH_SPC_IGNORE | COPYPATH_LOWERCASE); + if (p_url->scheme != SCM_UNKNOWN) + p_url->port = DefaultPort[p_url->scheme]; + else + p_url->port = 0; break; } analyze_file: @@ -956,12 +1016,16 @@ parseURL(char *url, ParsedURL *p_url, ParsedURL *current) p_url->label = NULL; } -#define initParsedURL(p) bzero(p,sizeof(ParsedURL)) #define ALLOC_STR(s) ((s)==NULL?NULL:allocStr(s,-1)) void -copyParsedURL(ParsedURL *p, ParsedURL *q) +copyParsedURL(ParsedURL *p, const ParsedURL *q) { + if (q == NULL) { + memset(p, 0, sizeof(ParsedURL)); + p->scheme = SCM_UNKNOWN; + return; + } p->scheme = q->scheme; p->port = q->port; p->is_nocache = q->is_nocache; @@ -1280,16 +1344,35 @@ getURLScheme(char **url) } static char * +schemeNumToName(int scheme) +{ + int i; + + for (i = 0; schemetable[i].cmdname != NULL; i++) { + if (schemetable[i].cmd == scheme) + return schemetable[i].cmdname; + } + return NULL; +} + +static char * otherinfo(ParsedURL *target, ParsedURL *current, char *referer) { Str s = Strnew(); + const int *no_referer_ptr; + int no_referer; + const char* url_user_agent = query_SCONF_USER_AGENT(target); - Strcat_charp(s, "User-Agent: "); - if (UserAgent == NULL || *UserAgent == '\0') - Strcat_charp(s, w3m_version); - else - Strcat_charp(s, UserAgent); - Strcat_charp(s, "\r\n"); + if (!override_user_agent) { + Strcat_charp(s, "User-Agent: "); + if (url_user_agent) + Strcat_charp(s, url_user_agent); + else if (UserAgent == NULL || *UserAgent == '\0') + Strcat_charp(s, w3m_version); + else + Strcat_charp(s, UserAgent); + Strcat_charp(s, "\r\n"); + } Strcat_m_charp(s, "Accept: ", AcceptMedia, "\r\n", NULL); Strcat_m_charp(s, "Accept-Encoding: ", AcceptEncoding, "\r\n", NULL); @@ -1306,7 +1389,12 @@ otherinfo(ParsedURL *target, ParsedURL *current, char *referer) Strcat_charp(s, "Pragma: no-cache\r\n"); Strcat_charp(s, "Cache-control: no-cache\r\n"); } - if (!NoSendReferer) { + no_referer = NoSendReferer; + no_referer_ptr = query_SCONF_NO_REFERER_FROM(current); + no_referer = no_referer || (no_referer_ptr && *no_referer_ptr); + no_referer_ptr = query_SCONF_NO_REFERER_TO(target); + no_referer = no_referer || (no_referer_ptr && *no_referer_ptr); + if (!no_referer) { #ifdef USE_SSL if (current && current->scheme == SCM_HTTPS && target->scheme != SCM_HTTPS) { /* Don't send Referer: if https:// -> http:// */ @@ -1314,6 +1402,7 @@ otherinfo(ParsedURL *target, ParsedURL *current, char *referer) else #endif if (referer == NULL && current && current->scheme != SCM_LOCAL && + current->scheme != SCM_LOCAL_CGI && (current->scheme != SCM_FTP || (current->user == NULL && current->pass == NULL))) { char *p = current->label; @@ -1384,7 +1473,6 @@ HTTPrequest(ParsedURL *pu, ParsedURL *current, HRequest *hr, TextList *extra) { Str tmp; TextListItem *i; - int seen_www_auth = 0; #ifdef USE_COOKIE Str cookie; #endif /* USE_COOKIE */ @@ -1400,7 +1488,6 @@ HTTPrequest(ParsedURL *pu, ParsedURL *current, HRequest *hr, TextList *extra) for (i = extra->first; i != NULL; i = i->next) { if (strncasecmp(i->ptr, "Authorization:", sizeof("Authorization:") - 1) == 0) { - seen_www_auth = 1; #ifdef USE_SSL if (hr->command == HR_COMMAND_CONNECT) continue; @@ -1430,20 +1517,20 @@ HTTPrequest(ParsedURL *pu, ParsedURL *current, HRequest *hr, TextList *extra) #endif /* USE_COOKIE */ if (hr->command == HR_COMMAND_POST) { if (hr->request->enctype == FORM_ENCTYPE_MULTIPART) { - Strcat_charp(tmp, "Content-type: multipart/form-data; boundary="); + Strcat_charp(tmp, "Content-Type: multipart/form-data; boundary="); Strcat_charp(tmp, hr->request->boundary); Strcat_charp(tmp, "\r\n"); Strcat(tmp, - Sprintf("Content-length: %ld\r\n", hr->request->length)); + Sprintf("Content-Length: %ld\r\n", hr->request->length)); Strcat_charp(tmp, "\r\n"); } else { if (!override_content_type) { Strcat_charp(tmp, - "Content-type: application/x-www-form-urlencoded\r\n"); + "Content-Type: application/x-www-form-urlencoded\r\n"); } Strcat(tmp, - Sprintf("Content-length: %ld\r\n", hr->request->length)); + Sprintf("Content-Length: %ld\r\n", hr->request->length)); if (header_string) Strcat(tmp, header_string); Strcat_charp(tmp, "\r\n"); @@ -1485,6 +1572,11 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, Str tmp; int sock, scheme; char *p, *q, *u; +#ifdef USE_GOPHER + Str gophertmp; + char type; + int n; +#endif URLFile uf; HRequest hr0; #ifdef USE_SSL @@ -1603,7 +1695,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, pu->host != NULL && !check_no_proxy(pu->host)) { hr->flag |= HR_FLAG_PROXY; sock = openSocket(FTP_proxy_parsed.host, - schemetable[FTP_proxy_parsed.scheme].cmdname, + schemeNumToName(FTP_proxy_parsed.scheme), FTP_proxy_parsed.port); if (sock < 0) return uf; @@ -1645,15 +1737,15 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, } else if (pu->scheme == SCM_HTTPS) { sock = openSocket(HTTPS_proxy_parsed.host, - schemetable[HTTPS_proxy_parsed.scheme]. - cmdname, HTTPS_proxy_parsed.port); + schemeNumToName(HTTPS_proxy_parsed.scheme), + HTTPS_proxy_parsed.port); sslh = NULL; } else { #endif /* USE_SSL */ sock = openSocket(HTTP_proxy_parsed.host, - schemetable[HTTP_proxy_parsed.scheme]. - cmdname, HTTP_proxy_parsed.port); + schemeNumToName(HTTP_proxy_parsed.scheme), + HTTP_proxy_parsed.port); #ifdef USE_SSL sslh = NULL; } @@ -1685,8 +1777,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, } } else { - sock = openSocket(pu->host, - schemetable[pu->scheme].cmdname, pu->port); + sock = openSocket(pu->host, schemeNumToName(pu->scheme), pu->port); if (sock < 0) { *status = HTST_MISSING; return uf; @@ -1713,6 +1804,8 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, write(sock, tmp->ptr, tmp->length); if(w3m_reqlog){ FILE *ff = fopen(w3m_reqlog, "a"); + if (ff == NULL) + return uf; if (sslh) fputs("HTTPS: request via SSL\n", ff); else @@ -1735,6 +1828,8 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, write(sock, tmp->ptr, tmp->length); if(w3m_reqlog){ FILE *ff = fopen(w3m_reqlog, "a"); + if (ff == NULL) + return uf; fwrite(tmp->ptr, sizeof(char), tmp->length, ff); fclose(ff); } @@ -1745,12 +1840,49 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, break; #ifdef USE_GOPHER case SCM_GOPHER: + p = pu->file; + n = 0; + while(*p == '/') { + ++p; + ++n; + } + if(*p != '\0') { + type = pu->file[n]; + switch(type) { + case '0': + case '1': + case 'm': + case 's': + case 'g': + case 'h': + case 'I': + case '5': + case '7': + case '9': + tmp = Strnew_charp(pu->file); + gophertmp = Strdup(tmp); + Strdelete(tmp, n, 1); + pu->file = tmp->ptr; + break; + default: + type = '\0'; + break; + } + } else { + type = '\0'; + } + if(pu->query != NULL) { + tmp = Strnew_charp(pu->file); + Strcat_char(tmp, '\t'); + Strcat_charp(tmp, pu->query); + pu->file = tmp->ptr; + } if (non_null(GOPHER_proxy) && !Do_not_use_proxy && pu->host != NULL && !check_no_proxy(pu->host)) { hr->flag |= HR_FLAG_PROXY; sock = openSocket(GOPHER_proxy_parsed.host, - schemetable[GOPHER_proxy_parsed.scheme].cmdname, + schemeNumToName(GOPHER_proxy_parsed.scheme), GOPHER_proxy_parsed.port); if (sock < 0) return uf; @@ -1758,8 +1890,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, tmp = HTTPrequest(pu, current, hr, extra_header); } else { - sock = openSocket(pu->host, - schemetable[pu->scheme].cmdname, pu->port); + sock = openSocket(pu->host, schemeNumToName(pu->scheme), pu->port); if (sock < 0) return uf; if (pu->file == NULL) @@ -1768,6 +1899,9 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, Strcat_char(tmp, '\n'); } write(sock, tmp->ptr, tmp->length); + if(type != '\0') { + pu->file = gophertmp->ptr; + } break; #endif /* USE_GOPHER */ #ifdef USE_NNTP @@ -2049,7 +2183,7 @@ filename_extension(char *path, int is_url) break; } if (*last_dot == '.') { - for (i = 1; last_dot[i] && i < 8; i++) { + for (i = 1; i < 8 && last_dot[i]; i++) { if (is_url && !IS_ALNUM(last_dot[i])) break; } @@ -2234,3 +2368,66 @@ schemeToProxy(int scheme) } return pu; } + +#ifdef USE_M17N +wc_ces +url_to_charset(const char *url, const ParsedURL *base, wc_ces doc_charset) +{ + const ParsedURL *pu; + ParsedURL pu_buf; + const wc_ces *csptr; + + if (url && *url && *url != '#') { + parseURL2((char *)url, &pu_buf, (ParsedURL *)base); + pu = &pu_buf; + } else { + pu = base; + } + if (pu && (pu->scheme == SCM_LOCAL || pu->scheme == SCM_LOCAL_CGI)) + return SystemCharset; + csptr = query_SCONF_URL_CHARSET(pu); + return (csptr && *csptr) ? *csptr : + doc_charset ? doc_charset : DocumentCharset; +} + +char * +url_encode(const char *url, const ParsedURL *base, wc_ces doc_charset) +{ + return url_quote_conv((char *)url, + url_to_charset(url, base, doc_charset)); +} + +#if 0 /* unused */ +char * +url_decode(const char *url, const ParsedURL *base, wc_ces doc_charset) +{ + if (!DecodeURL) + return (char *)url; + return url_unquote_conv((char *)url, + url_to_charset(url, base, doc_charset)); +} +#endif + +char * +url_decode2(const char *url, const Buffer *buf) +{ + wc_ces url_charset; + + if (!DecodeURL) + return (char *)url; + url_charset = buf ? + url_to_charset(url, baseURL((Buffer *)buf), buf->document_charset) : + url_to_charset(url, NULL, 0); + return url_unquote_conv((char *)url, url_charset); +} + +#else /* !defined(USE_M17N) */ + +char * +url_decode0(const char *url) +{ + if (!DecodeURL) + return (char *)url; + return url_unquote_conv((char *)url, 0); +} +#endif /* !defined(USE_M17N) */ diff --git a/version.c.in b/version.c.in index 27dab36..ab25163 100644 --- a/version.c.in +++ b/version.c.in @@ -1,5 +1,5 @@ -/* $Id: version.c.in,v 1.48 2011/01/15 07:52:48 inu Exp $ */ -#define CURRENT_VERSION "w3m/0.5.3" +/* $Id: version.c.in,v 1.49 2012/05/22 09:45:56 inu Exp $ */ +#define CURRENT_VERSION "w3m/0.5.3+gitYYYYMMDD" #ifndef FM_H char *w3m_version = CURRENT_VERSION; diff --git a/w3m-doc/CVS/Entries b/w3m-doc/CVS/Entries deleted file mode 100644 index f0a18f0..0000000 --- a/w3m-doc/CVS/Entries +++ /dev/null @@ -1,18 +0,0 @@ -/README.html/1.1.1.1/Thu Nov 8 05:18:53 2001// -/community.html.in/1.2/Tue Nov 27 03:54:49 2001// -/configuration.html.in/1.2/Tue Nov 27 03:54:49 2001// -/contain.wd/1.3/Tue Nov 27 03:54:49 2001// -/copyright.html.in/1.2/Tue Nov 27 03:54:49 2001// -/define.wd/1.2/Tue Nov 27 03:54:49 2001// -/detail.html.in/1.3/Tue Nov 27 03:54:49 2001// -/development.html.in/1.1/Fri Nov 9 04:59:18 2001// -/faq.html.in/1.2/Tue Nov 27 03:54:49 2001// -/function.html.in/1.2/Tue Nov 27 03:54:49 2001// -/index.html.in/1.3/Tue Nov 27 03:54:49 2001// -/install.html.in/1.3/Tue Jul 9 06:14:14 2002// -/mkdocs/1.2/Tue Nov 27 03:54:49 2001// -/operation.html.in/1.2/Tue Nov 27 03:54:49 2001// -/outline.html.in/1.2/Tue Nov 27 03:54:49 2001// -/prologue.html.in/1.3/Tue Oct 29 14:28:30 2002// -/w3mdoc.pl/1.1.1.1/Thu Nov 8 05:18:52 2001// -D/sample//// diff --git a/w3m-doc/CVS/Repository b/w3m-doc/CVS/Repository deleted file mode 100644 index 2dd7815..0000000 --- a/w3m-doc/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/w3m-doc diff --git a/w3m-doc/CVS/Root b/w3m-doc/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/w3m-doc/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/w3m-doc/README.html b/w3m-doc/README.html deleted file mode 100644 index 1caa3cd..0000000 --- a/w3m-doc/README.html +++ /dev/null @@ -1,75 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-
-<HTML>
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
-<TITLE>w3m $B%I%-%e%a%s%H@0Hw$NJ}?K(B</TITLE>
-</HEAD>
-
-<BODY>
-
-<DIV ALIGN="center">
-w3m $B%I%-%e%a%s%H@0Hw$NJ}?K(B
-</DIV>
-<DIV ALIGN="right">
-Yoshinobu Sakane February 15, 2001
-</DIV>
-
-<OL>
-<H1><LI>$BJ}?K(B</H1>
-<DIV>
- <P>
- w3m$B$K4X$9$k%I%-%e%a%s%HN`$r0J2<$NJ}?K$G@0Hw$7$?$$$H9M$($F$$$^$9!#(B
- <P>
- <UL>
- <LI>$B8=;~E@(B(w3m-0.1.11-pre)$B$G;6J8$7$F$$$k%I%-%e%a%s%H$r0lDj$N%k!<%k$N$b$H$K$^$H$a$k(B
- <LI>$BF~LgDxEY$N%I%-%e%a%s%H$H?<$_$K$O$a$k(B:-)$B$?$a$N%I%-%e%a%s%H$rMQ0U$9$k(B
- <LI>HTML$BHG$H%W%l%$%s%F%-%9%HHG$rMQ0U$9$k!#$?$@$7!"%=!<%9$H$J$k%I%-%e%a%s%H$O0l$D(B
- </UL>
-</DIV>
-<BR>
-
-<H1><LI>$B9|AH$_%I%-%e%a%s%H$N@bL@(B</H1>
-<DIV>
- <P>
- <TABLE BORDER>
- <CAPTION>$B!T%3%s%F%s%D!U(B</CAPTION>
- <TR>
- <TD><A HREF="w3mdoc.pl">w3mdoc.pl</A></TD>
- <TD><A HREF="http://www2u.biglobe.ne.jp/~hsaka/">$B:dK\$5$s(B</A>$B$46`@=$N(Bperl$B%9%/%j%W%H(B</TD>
- <TR>
- <TD><A HREF="mkdocs">mkdocs</A></TD>
- <TD>$B%I%-%e%a%s%H@07AMQ%7%'%k%9%/%j%W%H(B</TD>
- <TR>
- <TD>README.html</TD>
- <TD>$B$3$N%U%!%$%k(B</TD>
- <TR>
- <TD>*.html.in</TD>
- <TD>$B3F>O!?@aKh$N%I%-%e%a%s%H%=!<%9(B</TD>
- <TR>
- <TD>*.wd</TD>
- <TD>$B3F<oDj5A%U%!%$%k(B</TD>
- </TABLE>
- <P>
- w3mdoc.pl$B$N;H$$J}$K$D$$$F$O!":dK\$5$s$,=q$+$l$?(B<A HREF="sample/README">README</A>$B!"5Z$S!"%5%s%W%k%=!<%9$r;2>H$7$F$/$@$5$$!#(B<br>
-</DIV>
-<BR>
-
-<H1><LI>$B%I%-%e%a%s%H@0Hw$N?J$aJ}(B</H1>
-<DIV>
- <P>
- <UL>
- <LI>$BM-;V(B($B0J9_!"(B<B>w3m-doc$B%a%s%P(B</B>$B$H5-$9(B)$B$K$h$kJ,3d:n6H(B
- <LI>$BJ,3d$NC10L$O(Bw3m-doc$B%a%s%P4V$GD4@0(B
- <LI>$B:#2s<($99|AH$_$O$"$/$^$G;X?K!#>u67!?ET9g$K$h$j(Bw3m-doc$B%a%s%P4V$GD4@0$7JQ99$9$k(B
- <LI>$B$^$:$OF|K\8lHG$N%I%-%e%a%s%H$r:n$j!">u67$r8+$F1QLu$9$k(B
- <LI>$B$"$kDxEY$G$-$?$H$3$m$+$i!"C`<!!"(Bw3m-dev ML$B%a%s%P$N%l%S%e!<$r<u$1$k(B
- </UL>
- <P>
- $B$H!"9M$($F$$$^$9!#(B
-</DIV>
-
-</OL>
-
-</BODY>
-</HTML>
diff --git a/w3m-doc/community.html.in b/w3m-doc/community.html.in deleted file mode 100644 index 2868287..0000000 --- a/w3m-doc/community.html.in +++ /dev/null @@ -1,48 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-
-@include define.wd
-@include contain.wd
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
-<TITLE>W3M COMMUNITY - w3m $B%3%_%e%K%F%#(B -</TITLE>
-</HEAD>
-
-<BODY>
-
-<H1><A NAME="index">w3m $B%3%_%e%K%F%#(B</A></H1>
-<DIV>
-<!-- w3m$B%3%_%e%K%F%#$K4X$7$F(B -->
-</DIV>
- <UL>
- <LI><A HREF="#ML">$B%a!<%j%s%0%j%9%H(B</A>
- <LI><A HREF="#links">$B4XO"(B Web</A>
- </UL>
-
-<DIV>
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="ML">$B%a!<%j%s%0%j%9%H(B</A></H2>
-<!-- w3m-dev, w3m-dev-en ML$B$N>R2p(B -->
-<DIV>
-<P>w3m $B3+H/<TMQ%a!<%j%s%0%j%9%H(B
-</DIV>
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="links">$B4XO"(B Web</A></H2>
-<!-- w3m$B$K4X78$7$F$$$k(BWeb -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-
-</BODY>
-</HTML>
diff --git a/w3m-doc/configuration.html.in b/w3m-doc/configuration.html.in deleted file mode 100644 index 136768f..0000000 --- a/w3m-doc/configuration.html.in +++ /dev/null @@ -1,182 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-
-@include define.wd
-@include contain.wd
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
-<TITLE>CONFIGURATION - $B3F<o@_Dj(B -</TITLE>
-</HEAD>
-
-<BODY>
-
-<H1><A NAME="index">$B3F<o@_Dj(B</A></H1>
-<DIV>
-<!-- w3m$B$N3F<o@_Dj$N>\:Y$r5-$9(B -->
- <UL>
- <LI><A HREF="#option">$B5/F0%*%W%7%g%s(B</A>
- <LI><A HREF="#environment">$B4D6-JQ?t(B</A>
- <LI><A HREF="#bookmark">bookmark $B%U%!%$%k(B</A>
- <LI><A HREF="#option_panel">$B%*%W%7%g%s%Q%M%k(B</A>
- <UL>
- <LI><A HREF="#external_viewer">$B30It%S%e!<%"$NJT=8(B</A>
- </UL>
- <LI><A HREF="#other_customize">$B$=$NB>%+%9%?%^%$%:(B</A>
- <UL>
- <LI><A HREF="#keymap">keymap</A>
- <LI><A HREF="#menu">menu</A>
- </UL>
- </UL>
-</DIV>
-
-<DIV>
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="option">$B5/F0%*%W%7%g%s(B</A></H2>
-<!-- $B%*%W%7%g%s$K$D$$$F$N@bL@(B -->
-<DIV>
-<P>w3m $B$N5/F0%*%W%7%g%s$O0J2<$NDL$j$G$9!#(B
-<BLOCKQUOTE>
-<DL>
-<DT>-t $B%?%VI}(B
- <DD>$B%?%V$NI}$r;XDj$9$k!#%G%U%)%k%H$O(B<B>8</B>$B!#(B
-<DT>-r
- <DD>text/plain $B$NJ8>O$rI=<($9$k>l9g!"=E$MBG$A$K$h$k6/D4J8;z$rI=<($7$J$$!#$3$N0z?t$r;XDj$7$J$$>l9g!"(B``A^H_''$B$O(B A $B$N(B<U>$B%"%s%@!<%i%$%s(B</U>$B$H$7$FI=<($5$l!"(B``A^HA'' $B$O(B A $B$N(B<B>$B%\!<%k%I(B</B>$B$H$7$FI=<($5$l$k!#(B
-<DT>-l $B9T?t(B
- <DD>$BI8=`F~NO$NFbMF$rI=<($9$k;~$KJ]B8$5$l$k:GBg9T?t$r;XDj$9$k!#%G%U%)%k%H$O(B <B>10000</B>$B!#(B
-<DT>-s
- <DD>Shift_JIS $B%3!<%I$GI=<($9$k!#(B
-<DT>-j
- <DD>JIS(ISO-2022-JP) $B%3!<%I$GI=<($9$k!#(B
-<DT>-e
- <DD>EUC-JP $B%3!<%I$GI=<($9$k!#(B
-<DT>-O e|s|j|N|m|n
- <DD>$BI=<($9$k4A;z%3!<%I$r;XDj$9$k!#(B
-<DT>-I e|s
- <DD>$BF~NO%U%!%$%k$N4A;z%3!<%I$r;XDj$9$k!#(B
-<DT>-B
- <DD>Bookmark $B%U%!%$%k$r%m!<%I$9$k!#(B
-<DT>-bookmark $B%U%!%$%kL>(B
- <DD>Bookmark $B%U%!%$%k$r;XDj$N%U%!%$%k$K$9$k!#(B
-<DT>-T $B%?%$%W(B
- <DD>$BI=<($9$kJ8=q$N%?%$%W$r;XDj$9$k!#$3$N;XDj$,$J$$>l9g!"%U%!%$%kL>$N3HD%;R$K$h$C$F<+F0H=JL$5$l$k!#H=JL$G$-$J$$>l9g$O(B text/plain $B$H$_$J$5$l$k!#(B
- <P>
- $BNc(B:<BR>
- <U>$BI8=`F~NO$+$i(B HTML $B%U%!%$%k$rFI$s$GI=<($9$k(B</U>
-<PRE>
- cat hoge.html | w3m -T text/html
-</PRE><P>
- <U>HTML$B%U%!%$%k$N%=!<%9$rI=<($9$k(B</U>
-<PRE>
- w3m -T text/plain hoge.html
-</PRE>
-<DT>-m
- <DD>Internet message $B%b!<%I$GI=<($9$k!#(BInternet message $B%b!<%I$N>l9g!"%X%C%@$NFbMF$r8+$F!"(BContent-Type: $B$,$"$l$P$=$l$r;29M$K$9$k!#EE;R%a!<%k$d%M%C%H%K%e!<%9$N5-;v$rFI$`;~$KJXMx!#(B
-<DT>-v
- <DD>$B$3$N%*%W%7%g%s$r;XDj$9$k$H!"(Bw3m $B$N%9%?!<%H%"%C%W!&%Z!<%8$rI=<($9$k!#(B
-<DT>-M
- <DD>$B%+%i!<I=<($r$7$J$$(B($B%b%N%/%mI=<($9$k(B)$B!#(B
-<DT>-F
- <DD>$B%U%l!<%`$r<+F0I=<($9$k!#(B
-<DT>-cols $BI}(B
- <DD>-dump $B%*%W%7%g%s$r;H$&>l9g$K!"J8=q$NI}$r;XDj$9$k!#(B
-<DT>-ppc $B%T%/%;%k?t(B
- <DD>$BJ8;z$NI}$r;XDj$9$k!#%G%U%)%k%H$O(B<B>8.0</B>$B!#(B
-<DT>-dump
- <DD>URL $B$G;XDj$5$l$?(B WWW $B$NFbMF$rFI$_9~$_!"@07A$5$l$?%P%C%U%!$NFbMF$rI8=`=PNO$K=q$-=P$9!#J8=q$NI}$O(B 80 $B7e$H2>Dj$5$l$k!#$3$NI}$O(B -cols $B%*%W%7%g%s$GJQ992DG=!#(B
-<DT>-dump_head
- <DD>URL $B$G;XDj$5$l$?(B WWW $B$NFbMF$rFI$_9~$_!"$=$N%X%C%@>pJs$N$_$rI8=`=PNO$K=q$-=P$9!#(B
-<DT>-dump_source
- <DD>URL $B$G;XDj$5$l$?(B WWW $B$NFbMF$rFI$_9~$_!"@07A$;$:$KI8=`=PNO$K=q$-=P$9!#4A;z%3!<%I$NJQ49$b9T$o$J$$!#(B
-<DT>-dump_both
- <DD>-dump_head $B$H(B -dump_souce $B$NN>J}$N8z2L(B
-<DT>-dump_extra
- <DD>-dump_both $B$K2C$(!"3HD%>pJs(B(extra information)$B$rI8=`=PNO$K=q$-=P$9!#(B
-<DT>-post $B%U%!%$%kL>(B
- <DD>$B;XDj$7$?%U%!%$%k$NFbMF$G(B POST $B%a%=%C%I$rMQ$$$k!#(B
-<DT>-header $BJ8;zNs(B
- <DD>insert string as a header ($B$C$F2?!)(B)
-<DT>+$B9THV9f(B
- <DD>w3m $B5/F08e$K!";XDj$N9THV9f$K0\F0$9$k!#(B
-<DT>-num
- <DD>$B9THV9f$rI=<($9$k!#(B
-<DT>-no-proxy
- <DD>$B%W%m%-%7$rMxMQ$7$J$$!#(B
-<DT>-no-mouse
- <DD>$B%^%&%9$rMxMQ$7$J$$!#(B
-<DT>-cookie
- <DD>$B%/%C%-!<$r=hM}$9$k!#(B
-<DT>-no-cookie
- <DD>$B%/%C%-!<$r=hM}$7$J$$!#(B
-<DT>-S
- <DD>tet/plain $B$NJ8=q$rI=<($9$k>l9g!"J#?t$N6u9T$r(B 1$B$D$K$^$H$a$FI=<($9$k!#(B
-<DT>-W
- <DD>$BJ8;zNs8!:w;~!"@^$jJV$7%5!<%A$r;H$&$+$I$&$+$r@Z$j49$($k!#(B
-<DT>-X
- <DD>w3m $B=*N;;~$K!"(Bw3m $B5/F0A0$N2hLL$KLa$i$J$$!#(B
-<DT>-o option=value
- <DD>w3m $B$K4X$9$k$5$^$6$^$J(B option $B$KBP$7$F(B $BCM(B (value) $B$r%;%C%H$9$k!#(B``w3m -o''$B$H<B9T$7$?>l9g!"(Busage $B$KB3$$$F!";XDj2DG=$J(B option $B$H$=$N@bL@$rI=<($9$k!#(B
-<DT>-config $B%U%!%$%kL>(B
- <DD>w3m $B$N(B config $B%U%!%$%k$r;XDj$9$k!#(B
-<!--
-<DT>-debug
- <DD>$B%G%P%C%0MQ$J$N$G!";XDj$7$J$$$3$H!#(B
--->
-</DL>
-</BLOCKQUOTE>
-</DIV>
-
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="environment">$B4D6-JQ?t(B</A></H2>
-<!-- w3m $B$,;2>H$9$k4D6-JQ?t$K$D$$$F(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="bookmark">bookmark $B%U%!%$%k(B</A></H2>
-<!-- bookmark $B%U%!%$%k$K$D$$$F$N@bL@(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="option_panel">$B%*%W%7%g%s%Q%M%k(B</A></H2>
-<!-- $B%*%W%7%g%s%Q%M%k$K$D$$$F$N@bL@(B -->
-
-<H3><A NAME="external_viewer">$B30It%S%e!<%"$NJT=8(B</A></H3>
-<!-- $B30It%S%e!<%"$NJT=8$K$D$$$F$N@bL@(B -->
-
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="other_customize">$B$=$NB>%+%9%?%^%$%:(B</A></H2>
-<!-- $B$=$NB>$N%+%9%?%^%$%:9`L\$K$D$$$F$N@bL@(B -->
-
-<H3><A NAME="keymap">keymap</A></H3>
-<!-- keymap $B$N%+%9%?%^%$%:$K$D$$$F$N@bL@(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H3><A NAME="menu">menu</A></H3>
-<!-- menu $B$N%+%9%?%^%$%:$K$D$$$F$N@bL@(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-
-</BODY>
-</HTML>
diff --git a/w3m-doc/contain.wd b/w3m-doc/contain.wd deleted file mode 100644 index 8d48872..0000000 --- a/w3m-doc/contain.wd +++ /dev/null @@ -1,14 +0,0 @@ -@define -DOC.index index.html -DOC.prologue prologue.html -DOC.copyright copyright.html -DOC.outline outline.html -DOC.detail detail.html -DOC.install install.html -DOC.operation operation.html -DOC.configuration configuration.html -DOC.function function.html -DOC.FAQ faq.html -DOC.developement developement.html -DOC.community community.html -@end diff --git a/w3m-doc/copyright.html.in b/w3m-doc/copyright.html.in deleted file mode 100644 index 67c2ca1..0000000 --- a/w3m-doc/copyright.html.in +++ /dev/null @@ -1,45 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-
-@include define.wd
-@include contain.wd
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
-<TITLE>COPYRIGHT - Copyright -</TITLE>
-</HEAD>
-
-<BODY>
-
-<H1><A NAME="index">Copyright</A></H1>
-<DIV>
-<!-- w3m$B$N(BCopyright$B$K4X$7$F(B -->
-</DIV>
- <UL>
- <LI><A HREF="#copyright">$BCx:n8"!"%i%$%;%s%9(B</A>
- <LI><A HREF="#thanks">$B<U<-(B</A>
- </UL>
-
-<DIV>
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="copyright">$BCx:n8"!"%i%$%;%s%9(B</A></H2>
-<!-- w3m $B$NCx:n8"!"%i%$%;%s%9$K$D$$$F$N@bL@(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="thanks">$B<U<-(B</A></H2>
-<!-- $B<U<-(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-
-</BODY>
-</HTML>
diff --git a/w3m-doc/define.wd b/w3m-doc/define.wd deleted file mode 100644 index d2df71d..0000000 --- a/w3m-doc/define.wd +++ /dev/null @@ -1,9 +0,0 @@ -@define -W3M.version w3m-0.2.2 -W3M.author Akinori ITO -W3M.home http://w3m.sourceforge.net/ -AITO.mail aito@fw.ipsj.or.jp -W3M.bbs http://mi.med.tohoku.ac.jp/~satodai/w3m/bbs/spool/log.html -W3M.note http://www2u.biglobe.ne.jp/~hsaka/w3mnote.cgi -README.fm ../doc/ja/README.fm -@end diff --git a/w3m-doc/detail.html.in b/w3m-doc/detail.html.in deleted file mode 100644 index 6836657..0000000 --- a/w3m-doc/detail.html.in +++ /dev/null @@ -1,32 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-
-@include define.wd
-@include contain.wd
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
-<TITLE>DETAIL - $B>\:YJT(B -</TITLE>
-</HEAD>
-
-<BODY>
-
-<H1><A NAME="index">$B>\:YJT(B</A></H1>
-<DIV>
-<!-- w3m$B$N3F<o5!G=$K$D$$$F$N>\:Y$r5-$9(B -->
-</DIV>
- <UL>
- <LI><A HREF="@DOC.install@">$B%$%s%9%H!<%k$N>\:Y(B</A>
- <LI><A HREF="@DOC.operation@">w3m $BA`:nK!(B</A> <!-- $B%-!<A`:n@bL@(B -->
- <LI><A HREF="@DOC.configuration@">$B3F<o@_Dj(B</A>
- <LI><A HREF="@DOC.function@">$B5!G=>\:Y(B</A>
- <LI><A HREF="@DOC.FAQ@">FAQ</A>
- <LI><A HREF="@DOC.developement@">$B3+H/%I%-%e%a%s%H(B</A>
- <LI><A HREF="@DOC.community@">w3m $B%3%_%e%K%F%#(B</A>
- <LI><A HREF="@DOC.copyright@">Copiright</A>
- </UL>
-<HR>
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-
-</BODY>
-</HTML>
diff --git a/w3m-doc/development.html.in b/w3m-doc/development.html.in deleted file mode 100644 index 38b56fd..0000000 --- a/w3m-doc/development.html.in +++ /dev/null @@ -1,77 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-
-@include define.wd
-@include contain.wd
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
-<TITLE>DEVELOPMENT -$B3+H/%I%-%e%a%s%H(B-</TITLE>
-</HEAD>
-
-<BODY>
-
-<H1><A NAME="index">w3m$B3+H/%I%-%e%a%s%H(B</A></H1>
-<DIV>
-<!-- w3m$B$N3+H/$K4X$7$F$$$m$$$m$H5-$9(B -->
-</DIV>
- <UL>
- <LI><A HREF="#story">w3m$B$N3+H/$K$D$$$F(B</A>
- <LI><A HREF="#known_bugs">$B8=:_H=L@$7$F$$$k%P%0(B</A>
- <LI><A HREF="#ToDo">ToDo</A>
- <LI><A HREF="#history">$BMzNr(B</A>
- <LI><A HREF="#policy">$B3+H/%]%j%7!<(B</A>
- <LI><A HREF="#tips">$B3+H/<T8~$1(BTips</A>
- </UL>
-
-<DIV>
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="story">w3m$B$N3+H/$K$D$$$F(B</A></H2>
-<!-- doc-jp/STORY.html$B$+$i0zMQ(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="known_bugs">$B8=:_H=L@$7$F$$$k%P%0(B</A><H2>
-<!-- $B8=:_H=L@$7$F$$$k%P%0(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="ToDo">ToDo</A><H2>
-<!-- $B$d$i$M$P$J$i$s$3$H!?$d$m$&$+$J$!$J$3$H(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="history">$BMzNr(B</A><H2>
-<!-- w3m$B3+H/MzNr(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="policy">$B3+H/%]%j%7!<(B</A><H2>
-<!-- w3m$B$NL\;X$9$3$H!?3+H/>e$N$3$@$o$j(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="tips">$B3+H/<T8~$1(BTips</A><H2>
-<!-- w3m$B$r3+H/$9$k$&$($G$N>.5;(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-
-</BODY>
-</HTML>
diff --git a/w3m-doc/faq.html.in b/w3m-doc/faq.html.in deleted file mode 100644 index 7da0392..0000000 --- a/w3m-doc/faq.html.in +++ /dev/null @@ -1,45 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-
-@include define.wd
-@include contain.wd
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
-<TITLE>FAQ - FAQ -</TITLE>
-</HEAD>
-
-<BODY>
-
-<H1><A NAME="index">FAQ</A></H1>
-<DIV>
-<!-- w3m $B$K4X$7$FNI$/J9$+$l$k(B($B$G$"$m$&(B)$B<ALd$H$=$NEz$(!"$*$h$S!"(BTips $B$r5-$9(B -->
-</DIV>
- <UL>
- <LI><A HREF="#faq">$B$h$/J9$+$l$k<ALd$H$=$NEz$((B</A>
- <LI><A HREF="#tips">Tips</A>
- </UL>
-
-<DIV>
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="faq">$B$h$/J9$+$l$k<ALd$H$=$NEz$((B</A></H2>
-<!-- w3m $B$K4X$7$FNI$/J9$+$l$k<ALd$H$=$NEz$($K$D$$$F(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="tips">Tips</A></H2>
-<!-- Tips ($B>.5;(B) -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-
-</BODY>
-</HTML>
diff --git a/w3m-doc/function.html.in b/w3m-doc/function.html.in deleted file mode 100644 index 9590838..0000000 --- a/w3m-doc/function.html.in +++ /dev/null @@ -1,71 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-
-@include define.wd
-@include contain.wd
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
-<TITLE>FUNCTION - $B5!G=>\:Y(B -</TITLE>
-</HEAD>
-
-<BODY>
-
-<H1><A NAME="index">$B5!G=>\:Y(B</A></H1>
-<DIV>
-<!-- w3m $B$N3F5!G=$K$D$$$F$N>\:Y@bL@$r5-$9(B -->
-</DIV>
- <UL>
- <LI><A HREF="#url">$BBP1~$7$F$$$k(B URL</A>
- <LI><A HREF="#html">$BBP1~$7$F$$$k(B HTML</A>
- <LI><A HREF="#ssl">SSL</A>
- <LI><A HREF="#cookie">cookie</A>
- <LI><A HREF="#local_CGI">$B%m!<%+%k(B CGI $B5!G=(B</A>
- </UL>
-
-<DIV>
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="url">$BBP1~$7$F$$$k(B URL</A></H2>
-<!-- w3m $B$,2r<a2DG=$J(B URL $B$K$D$$$F$N@bL@(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="html">$BBP1~$7$F$$$k(B HTML</A></H2>
-<!-- w3m $B$,BP1~$7$F$$$k(B HTML $B$K$D$$$F(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="ssl">SSL</A></H2>
-<!-- SSL $B$K$D$$$F$N@bL@(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="cookie">cookie</A></H2>
-<!-- cookie $B$K$D$$$F$N@bL@(B -->
-
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="local_CGI">$B%m!<%+%k(B CGI $B5!G=(B</A></H2>
-<!-- $B%m!<%+%k(B CGI $B5!G=$K$D$$$F$N@bL@(B -->
-
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-
-</BODY>
-</HTML>
diff --git a/w3m-doc/index.html.in b/w3m-doc/index.html.in deleted file mode 100644 index 7871c48..0000000 --- a/w3m-doc/index.html.in +++ /dev/null @@ -1,113 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-
-@include define.wd
-@include contain.wd
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
-<TITLE>THE DOCUMENTS FOR W3M</TITLE>
-</HEAD>
-
-<BODY>
-
-<!-- $B$3$N$"$?$j$K(B w3m $B$N%m%4(B($B$C$F$J$$$+!)(B) $B$H$+(B -->
-<!-- w3m: WWW wo Miru Tool version @W3M.version@ $B$H$+(B -->
-<!-- (C) Copyright by @W3M.author@ March 23, 1999 $B$H$+(B -->
-<!-- $B$rF~$l$F$*$/$Y$-$+$J!)(B -->
-
-<H1><A NAME="index">$B:w0z(B</A></H1>
-<OL>
- <LI><A HREF="@DOC.prologue@" NAME="prologue">$B$O$8$a$K(B</A> <!-- README $B$N!H(B1. $B$O$8$a$K!I$NItJ,(B -->
- <UL>
- <LI><A HREF="@DOC.prologue@#summary">w3m $B$H$O(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- <LI><A HREF="@DOC.prologue@#glossary">$BMQ8l$N@bL@(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- <LI><A HREF="@DOC.prologue@#disclaimer">$BCm0U;v9`(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- <LI><A HREF="@DOC.copyright@">$BCx:n8"!"%i%$%;%s%9(B</A>
- <LI><A HREF="@DOC.prologue@#confirmation">$BF0:n3NG'(B OS</A><IMG SRC=dummy ALT="[$B:Q(B]">
- </UL>
- <LI><A HREF="@DOC.outline@" NAME="outline">$B35MWJT(B</A>
- <UL>
- <LI><A HREF="@DOC.outline@#install">$B%$%s%9%H!<%k$N35MW(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- <LI><A HREF="@DOC.outline@#operation">$BA`:nJ}K!$N35MW(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- <UL>
- <LI><A HREF="@DOC.outline@#display">$BI=<(FbMF$N@bL@(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- <LI><A HREF="@DOC.outline@#basic">$B4pK\E*$J;H$$J}(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- <LI><A HREF="@DOC.outline@#help">$B%X%k%W$N;2>H(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- </UL>
- </UL>
- <LI><A HREF="@DOC.detail@" NAME="detail">$B>\:YJT(B</A>
- <UL>
- <LI><A HREF="@DOC.install@" NAME="install">$B%$%s%9%H!<%k$N>\:Y(B</A>
- <UL>
- <LI><A HREF="@DOC.install@#get_w3m">w3m $BF~<jJ}K!(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- <UL>
- <LI><A HREF="@DOC.install@#w3m_home">w3m Homepage</A><IMG SRC=dummy ALT="[$B:Q(B]">
- <LI><A HREF="@DOC.install@#BBS">w3m $B$K4X$9$k7G<(HD(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- </UL>
- <LI><A HREF="@DOC.install@#require">$BI,MW$JJ*(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- <LI><A HREF="@DOC.install@#configure">configure $B$K$D$$$F(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- <LI><A HREF="@DOC.install@#config_h">config.h $B$K$D$$$F(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- <LI><A HREF="@DOC.install@#make">make $B$K$D$$$F(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- <LI><A HREF="@DOC.install@#tips">$BB>$N(B OS $B$G%$%s%9%H!<%k$9$k:]$N(B Tips</A><IMG SRC=dummy ALT="[$B:Q(B]">
- </UL>
- <LI><A HREF="@DOC.operation@" NAME="operation">w3m $BA`:nK!(B</A> <!-- $B%-!<A`:n@bL@(B -->
- <UL>
- <LI><A HREF="@DOC.operation@#buffer">$B%P%C%U%!A`:n(B</A>
- <LI><A HREF="@DOC.operation@#mouse">$B%^%&%9A`:n(B</A>
- <LI><A HREF="@DOC.operation@#line_edit">$B:G2<9TF~NO(B</A>
- <LI><A HREF="@DOC.operation@#menu">$B%a%K%e!<A`:n(B</A>
- </UL>
- <LI><A HREF="@DOC.configuration@" NAME="configuration">$B3F<o@_Dj(B</A>
- <UL>
- <LI><A HREF="@DOC.configuration@#option">$B5/F0%*%W%7%g%s(B</A><IMG SRC=dummy ALT="[$B:Q(B]">
- <LI><A HREF="@DOC.configuration@#environment">$B4D6-JQ?t(B</A>
- <LI><A HREF="@DOC.configuration@#bookmark">bookmark $B%U%!%$%k(B</A>
- <LI><A HREF="@DOC.configuration@#option_panel">$B%*%W%7%g%s%Q%M%k(B</A>
- <UL>
- <LI><A HREF="@DOC.configuration@#external_viewer">$B30It%S%e!<%"$NJT=8(B</A>
- </UL>
- <LI><A HREF="@DOC.configuration@#other_customize">$B$=$NB>%+%9%?%^%$%:(B</A>
- <UL>
- <LI><A HREF="@DOC.configuration@#keymap">keymap</A>
- <LI><A HREF="@DOC.configuration@#menu">menu</A>
- </UL>
- </UL>
- <LI><A HREF="@DOC.function@" NAME="function">$B5!G=>\:Y(B</A>
- <UL>
- <LI><A HREF="@DOC.function@#url">$BBP1~$7$F$$$k(B URL</A>
- <LI><A HREF="@DOC.function@#html">$BBP1~$7$F$$$k(B HTML</A>
- <LI><A HREF="@DOC.function@#ssl">SSL</A>
- <LI><A HREF="@DOC.function@#cookie">cookie</A>
- <LI><A HREF="@DOC.function@#local_CGI">$B%m!<%+%k(B CGI $B5!G=(B</A>
- </UL>
- <LI><A HREF="@DOC.FAQ@" NAME="faq">FAQ</A>
- <UL>
- <LI><A HREF="@DOC.FAQ@#faq">$B$h$/J9$+$l$k<ALd$H$=$NEz$((B</A>
- <LI><A HREF="@DOC.FAQ@#tips">Tips</A>
- </UL>
- <LI><A HREF="@DOC.developement@" NAME="developement">$B3+H/%I%-%e%a%s%H(B</A>
- <UL>
- <LI><A HREF="@DOC.developement@#story">w3m $B$N3+H/$K$D$$$F(B</A>
- <LI><A HREF="@DOC.developement@#known_bugs">$B8=:_H=L@$7$F$$$k%P%0(B</A>
- <LI><A HREF="@DOC.developement@#ToDo">ToDo</A>
- <LI><A HREF="@DOC.developement@#history">$BMzNr(B</A>
- <LI><A HREF="@DOC.developement@#policy">$B3+H/%]%j%7!<(B</A>
- <LI><A HREF="@DOC.developement@#tips">$B3+H/<T8~$1(BTips</A>
- </UL>
- <LI><A HREF="@DOC.community@" NAME="community">w3m $B%3%_%e%K%F%#(B</A>
- <UL>
- <LI><A HREF="@DOC.community@#ML">$B%a!<%j%s%0%j%9%H(B</A>
- <LI><A HREF="@DOC.community@#links">$B4XO"(B Web</A>
- </UL>
- <LI><A HREF="@DOC.copyright@" NAME="copyright">Copyright</A>
- <UL>
- <LI><A HREF="@DOC.copyright@#copyright">$BCx:n8"!"%i%$%;%s%9(B</A>
- <LI><A HREF="@DOC.copyright@#thanks">$B<U<-(B</A>
- </UL>
- </UL>
-</OL>
-
-</BODY>
-
-</HTML>
diff --git a/w3m-doc/install.html.in b/w3m-doc/install.html.in deleted file mode 100644 index 8e27f03..0000000 --- a/w3m-doc/install.html.in +++ /dev/null @@ -1,389 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-
-@include define.wd
-@include contain.wd
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
-<TITLE>INSTALL - $B%$%s%9%H!<%k$N>\:Y(B -</TITLE>
-</HEAD>
-
-<BODY>
-
-<H1><A NAME="index">$B%$%s%9%H!<%k$N>\:Y(B</A></H1>
-<DIV>
-<!-- w3m $B$N%$%s%9%H!<%k$N>\:Y$r5-$9(B -->
-</DIV>
- <UL>
- <LI><A HREF="#get_w3m">w3m $BF~<jJ}K!(B</A>
- <UL>
- <LI><A HREF="#w3m_home">w3m Homepage</A>
- <LI><A HREF="#BBS">w3m $B$K4X$9$k7G<(HD(B</A>
- </UL>
- <LI><A HREF="#require">$BI,MW$JJ*(B</A>
- <LI><A HREF="#configure">configure $B$K$D$$$F(B</A>
- <LI><A HREF="#config_h">config.h $B$K$D$$$F(B</A>
- <LI><A HREF="#make">make $B$K$D$$$F(B</A>
- <LI><A HREF="#tips">$BB>$N(B OS $B$G%$%s%9%H!<%k$9$k:]$N(B Tips</A>
- </UL>
-
-<DIV>
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="get_w3m">w3m $BF~<jJ}K!(B</A></H2>
-<!-- w3m $BF~<jJ}K!(B -->
-<DIV>
-<P>w3m $B$N:G?7HG$O!"0J2<$N(B<A HREF="#w3m_home">w3m home</A> $B$K$b<($7$F$"$k!"(B
-<BLOCKQUOTE>
-<A HREF="http://prdownloads.sourceforge.net/w3m/">http://prdownloads.sourceforge.net/w3m/</A>
-</BLOCKQUOTE>
-$B$+$i<j$KF~$j$^$9!#(B
-<P>$B$A$J$_$K!"8=:_$N:G?7%P!<%8%g%s$O!"(B<B>@W3M.version@</B> $B$G$9!#(B
-<P>$B$J$*!"(Bw3m $B$K4X$9$k>pJs(B($B:G?7HG$d%Q%C%AEy!9(B)$B$K$D$$$F$O!"(B<A HREF="@DOC.community@">w3m $B%3%_%e%K%F%#(B</A>$B$r;2>H$7!"%a!<%j%s%0%j%9%H!"(BWeb BBS $BEy$+$iF~<j$7$F$/$@$5$$!#(B
-</DIV>
-
-<H3><A NAME="w3m_home">w3m Homepage</A></H3>
-<!-- w3m Homepage$B$K$D$$$F(B -->
-<DIV>
-<P>w3m $B$N(B Homepage $B$O(B
-<BLOCKQUOTE>
-<TABLE BORDER="0">
-<TR><TD><A HREF="@W3M.home@">W3M Homepage</A></TD>
- <TD>@W3M.home@</TD>
-</TABLE>
-</BLOCKQUOTE>
-$B$G$9!#(B
-</DIV>
-
-<H3><A NAME="BBS">w3m $B$K4X$9$k7G<(HD(B</A></H3>
-<!-- $B7G<(HD(B -->
-<DIV>
-<P>w3m $B$K4X$9$k7G<(HD$K$O0J2<$NDL$j$G$9!#(B
-<BLOCKQUOTE>
-<TABLE BORDER="0">
-<TR><TD><A HREF="@W3M.bbs@">w3m $BO"MmD"(B</A></TD>
- <TD>@W3M.bbs@</TD>
- <TD> </TD>
-<TR><TD><A HREF="@W3M.note@">w3m $B$*$\$($,$-(B</A></TD>
- <TD>@W3M.note@</TD>
- <TD> </TD>
-</TABLE>
-</BLOCKQUOTE>
-</DIV>
-
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="require">$BI,MW$JJ*(B</A></H2>
-<!-- w3m $B$r(B make $B$9$k$&$($GI,MW$JJ*!?$"$l$PNI$$J*(B -->
-<DIV>
-<P>w3m $B$r(B make $B$9$k$&$($G!"I,?\$J$b$N!"$*$h$S!"$"$l$PNI$$$b$N$O0J2<$NDL$j$G$9!#(B
-<P>
-<UL><LI>$BI,?\$J$b$N(B
- <UL><LI>ANSI-C $B8_49(B C $B%3%s%Q%$%i(B
- </UL>
- <LI>$B$"$l$PNI$$$b$N(B
- <UL><LI>SSLeay/OpenSSL $B%i%$%V%i%j(B
- <UL><LI>Secure HTTP(https:$B!A(B) $B$r;HMQ$9$k>l9g(B
- </UL>
- <LI>GNU patch$B%3%^%s%I(B
- <UL><LI>w3m $B$K(B patch $B$rE,MQ$9$k>l9g(B
- </UL>
- <LI>Perl
- <UL><LI>w3m $B$G(B $B%G%#%l%/%H%j%j%9%H$rI=<($9$k>l9g$N%m!<%+%k(B CGI $B$G;HMQ$9$k(B
- </UL>
- </UL>
-</UL>
-
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="configure">configure $B$K$D$$$F(B</A></H2>
-<!-- configure $B<B9T;~$N@bL@(B -->
-<DIV>
-<P>w3m $B$N%"!<%+%$%V%U%!%$%k$rE83+$7$?%G%#%l%/%H%j$K$"$k(B <B>./configure</B> $B$r<B9T$7$^$9!#$$$/$D$+<ALd$5$l$k$N$G!"$=$l$KEz$($F$/$@$5$$!#(B
-<P>$B0J2<$O!"(B<B>./configure</B> $B<B9T;~$K!"<B:]$KJ9$+$l$k<ALd$N@bL@$G$9!#$J$*!"(B<B>./configure</B> $B$O3F<ALd$KBP$9$kEz$($N4{DjCM(B(default)$B$r;}$C$F$$$^$9!#J8;zNs$rF~NO$;$:$K%j%?!<%s!&%-!<$@$1$r2!$7$?>l9g$O!"$3$N4{DjCM$,;XDj$5$l$?;v$K$J$j$^$9!#(B
-<P><DL>
-<DT>Which directory do you want to put the binary?
- <DD>$B4{DjCM(B: <U>/usr/local/bin</U><BR>
- w3m $B$r$I$3$N%G%#%l%/%H%j$N2<$K%$%s%9%H!<%k$9$k$+$r;XDj$7$^$9!#(B
- </DD>
-<DT>Which directory do you want to put the support binary files?
- <DD>$B4{DjCM(B: <U>/usr/local/lib/w3m</U><BR>
- w3m $B$,;2>H$9$k%i%$%V%i%j$rCV$/>l=j$r;XDj$7$^$9!#(B
- </DD>
-<DT>Which directory do you want to put the helpfile?
- <DD>$B4{DjCM(B: <U>/usr/local/lib/w3m</U><BR>
- w3m $B$N%X%k%W%U%!%$%k$rCV$/>l=j$r;XDj$7$^$9!#(B
- </DD>
-<DT>Which language do you prefer?
- <DD>
- <TABLE BORDER="0">
- <TR><TD>1</TD><TD>-</TD><TD NOWRAP>Japanese (charset ISO-2022-JP, EUC-JP, Shift_JIS)</TD>
- <TR><TD>2</TD><TD>-</TD><TD NOWRAP>English (charset US_ASCII, ISO-8859-1, etc.)</TD>
- </TABLE>
- $B4{DjCM(B: <U>1</U><BR>
- w3m $B$G;HMQ$9$k8@8l$r;XDj$7$^$9!#(B
- </DD>
-<DT>Input your display kanji code.
- <DD>
- <TABLE BORDER="0">
- <TR><TD>S</TD><TD>-</TD><TD>Shift JIS</TD>
- <TR><TD>E</TD><TD>-</TD><TD>EUC-JP</TD>
- <TR><TD>j</TD><TD>-</TD><TD>JIS: ESC $@ - ESC (J</TD>
- <TR><TD>N</TD><TD>-</TD><TD>JIS: ESC $B - ESC (J</TD>
- <TR><TD>n</TD><TD>-</TD><TD>JIS: ESC $B - ESC (B</TD>
- <TR><TD>m</TD><TD>-</TD><TD>JIS: ESC $@ - ESC (B</TD>
- </TABLE>
- $B4{DjCM(B: $BL5$7(B<BR>
- $B$"$J$?$N%7%9%F%`$GI=<($KMQ$$$i$l$k4A;z%3!<%I$r;XDj$7$^$9!#(B
- </DD>
-<DT>Do you want to use Lynx-like key binding?
- <DD>$B4{DjCM(B: <U>n</U><BR>
- w3m $B$r(B Lynx $BIw$N%-!<%P%$%s%G%#%s%0$G;HMQ$9$k$+$I$&$+$r;XDj$7$^$9!#;HMQ$9$k>l9g$O(B``<B>y</B>''$B$r!";HMQ$7$J$$>l9g$O(B``<B>n</B>''$B$r;XDj$7$^$9!#(B
- </DD>
-<DT>Do you want to use 2-byte character for table border, item, etc.
- <DD>$B4{DjCM(B: <U>y</U><BR>
- $B%F!<%V%k$NOH$K7S@~$rMQ$$$?$j!"%"%$%F%`$K4A;z%7%s%\%k$r;HMQ$9$k$+$I$&$+$r;XDj$7$^$9!#;HMQ$9$k>l9g$O(B``<B>y</B>''$B$r!";HMQ$7$J$$>l9g$O(B``<B>n</B>''$B$r;XDj$7$^$9!#(B
- </DD>
-<DT>Do you want to automatically generate domain parts of passwords for anonymous FTP logins
- <DD>$B4{DjCM(B: <U>n</U><BR>
- $B%"%N%K%^%9(B ftp $B$G(B login $B$9$k:]$N%Q%9%o!<%I$r%m%0%$%sL>$H%I%a%$%sL>$+$i<+F0@8@.$9$k$+$I$&$+$r;XDj$7$^$9!#;HMQ$9$k>l9g$O(B``<B>y</B>''$B$r!";HMQ$7$J$$>l9g$O(B``<B>n</B>''$B$r;XDj$7$^$9!#(B
- </DD>
-<DT>Do you want listing of options
- <DD>$B4{DjCM(B: <U>n</U><BR>
- w3m $B$N(B usage $BI=<(;~$K!":Y$+$J%*%W%7%g%s$K$D$$$F$b%j%9%HI=<($9$k$+$I$&$+$r;XDj$7$^$9!#;HMQ$9$k>l9g$O(B``<B>y</B>''$B$r!";HMQ$7$J$$>l9g$O(B``<B>n</B>''$B$r;XDj$7$^$9!#(B
- </DD>
-<DT>Do you want NNTP support
- <DD>$B4{DjCM(B: <U>n</U><BR>
- w3m $B$G(B NNTP $B$r%5%]!<%H$9$k$+$I$&$+$r;XDj$7$^$9!#;HMQ$9$k>l9g$O(B``<B>y</B>''$B$r!";HMQ$7$J$$>l9g$O(B``<B>n</B>''$B$r;XDj$7$^$9!#(B``<B>y</B>''$B$r;XDj$7$?>l9g!"!H(B<U>news:$B!A(B</U>$B!I$N(B URI $B$,;HMQ$G$-$k$h$&$K$J$k!#(B
- </DD>
-<DT>Do you want ANSI color escape sequences supprot?
- <DD>$B4{DjCM(B: <U>n</U><BR>
- HTML$BJ8=q(B<U>$B0J30(B</U>$B$,!"(BANSI $B$N%+%i!<MQ%(%9%1!<%W!&%7!<%1%s%9$KBP1~$9$k$+$I$&$+$r;XDj$7$^$9!#;HMQ$9$k>l9g$O(B``<B>y</B>''$B$r!";HMQ$7$J$$>l9g$O(B``<B>n</B>''$B$r;XDj$7$^$9!#(B
- </DD>
-<DT>Let's do some configurations. Choose config option among the list.
- <DD>
- <TABLE BORDER="0">
- <TR><TD>1</TD><TD>-</TD><TD>Baby model</TD><TD>(no color, no menu, no mouse, no cookie, no SSL)</TD>
- <TR><TD>2</TD><TD>-</TD><TD>Little model</TD><TD>(color, menu, no mouse, no cookie, no SSL)</TD>
- <TR><TD>3</TD><TD>-</TD><TD>Mouse model</TD><TD>(color, menu, mouse, no cookie, no SSL)</TD>
- <TR><TD>4</TD><TD>-</TD><TD>Cookie model</TD><TD>(color, menu, mouse, cookie, no SSL)</TD>
- <TR><TD>5</TD><TD>-</TD><TD>Monster model</TD><TD>(with everything; you need openSSL library)</TD>
- <TR><TD>6</TD><TD>-</TD><TD>Customize</TD>
- </TABLE>
- $B4{DjCM(B: $BL5$7(B<BR>
- make $B$9$k(B w3m $B$N%b%G%k$r;XDj$7$^$9!#(B``<B>6</B>''$B$r;XDj$7$?>l9g!"8DJL$K%*%W%7%g%s$N;HMQ$rA*Br$7$^$9!#(B<BR>
- $BA*Br$9$k%*%W%7%g%s$O0J2<$NDL$j!#(B<BR>
- <BLOCKQUOTE>
- <TABLE BORDER="0">
- <TR><TD>color</TD><TD>-</TD><TD>$B%+%i!<I=<((B</TD>
- <TR><TD>menu</TD><TD>-</TD><TD>$B%a%K%e!<I=<((B</TD>
- <TR><TD>mouse</TD><TD>-</TD><TD>$B%^%&%9BP1~(B</TD>
- <TR><TD>cookie</TD><TD>-</TD><TD>cookie $BBP1~(B</TD>
- <TR><TD>SSL</TD><TD>-</TD><TD>SSL$BBP1~(B($BJLES!"(BopenSSL$B$,I,MW(B)</TD>
- </TABLE>
- </BLOCKQUOTE>
- </DD>
-<DT>Input your favorite editor program.
- <DD>$B4{DjCM(B: <U>/usr/bin/vi</U><BR>
- $B%(%G%#%?!&%W%m%0%i%`$r;XDj$7$^$9!#$3$N@_Dj$O8e$G(B<A HREF="@DOC.configuration@">$B8D?MKh$KJQ99!&@_Dj(B</A>$B$G$-$^$9(B
- </DD>
-<DT>Input your favorite mailer program.
- <DD>$B4{DjCM(B: <U>/usr/bin/mailx</U>$B!"$^$?$O!"(B<U>/usr/bin/mail</U><BR>
- $B%a%$%i!<!&%W%m%0%i%`$r;XDj$7$^$9!#$3$N@_Dj$O8e$G(B<A HREF="@DOC.configuration@">$B8D?MKh$KJQ99!&@_Dj(B</A>$B$G$-$^$9!#(B
- </DD>
-<DT>Input your favorite external browser program.
- <DD>$B4{DjCM(B: <U>netscape</U>$B!"$^$?$O!"(B<U>iexplore</U>$B!"$^$?$O!"(B<U>lynx</U><BR>
- $BBeBX%V%i%&%6!&%W%m%0%i%`$r;XDj$7$^$9!#$3$N@_Dj$O8e$G(B<A HREF="@DOC.configuration@">$B8D?MKh$KJQ99!&@_Dj(B</A>$B$G$-$^$9!#(B
- </DD>
-<DT>Input your favorite C-compiler.
- <DD>$B4{DjCM(B: <U>gcc</U>$B!"$^$?$O!"(B<U>cc</U><BR>
- $B;HMQ$9$k(B C $B%3%s%Q%$%i$r;XDj$7$^$9!#(B
- </DD>
-<DT>Input your favorite C flags.
- <DD>$B4{DjCM(B: <U>-O</U><BR>
- C $B%3%s%Q%$%i$G;HMQ$9$k%3%s%Q%$%k%*%W%7%g%s$r;XDj$7$^$9!#(B
- </DD>
-<DT>Which terminal library do you want to use? (type "none" if you do not need one)
- <DD>$BC<Kv@)8fMQ%i%$%V%i%j$r;XDj$7$^$9!#(B
- </DD>
-<DT>Input additional LD flags other than listed above, if any:
- <DD>$B%j%s%/;~$KDI2C$9$Y$-%i%$%V%i%j!"%U%i%0$,$"$l$P$=$l$r;XDj$7$^$9!#(B
- </DD>
-</DL>
-<P>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="config_h">config.h $B$K$D$$$F(B</A></H2>
-<!-- config.h $B$G(B define $B$9$k$b$NEy$K$D$$$F(B -->
-<DIV>
-<P><A HREF="#configure">configure</A> $B$G$O@_Dj$5$l$J$$$=$NB>$N5!G=$r;H$$$?$$>l9g$K$O!"(B<B>config.h</B> $B$rJQ99$9$kI,MW$,$"$j$^$9!#(B
-<P>$B0J2<$K(B config.h $B$G;XDj$G$-$k3F(B define $B$NL>>N$H35MW$r5-$7$^$9!#(B
-<P><DL>
-<DT>DICT
- <DD><B>$B<-=q0z$-5!G=(B</B>$B$rM-8z$K$7$^$9!#(B<BR>
- $BD4$Y$?$$C18l$K%+!<%=%k$r9g$o$;!"!H(B<B>ESC W</B>$B!I$G(B <B>w3mdict</B> $B%3%^%s%I$r8F$S=P$7$^$9!#(B<BR>
- <B>w3mdict</B> $B%3%^%s%I$O(B w3m $B$N%"!<%+%$%V$K$OF1:-$5$l$F$$$J$$$N$G!"<+?H$N4D6-$K9g$o$;$F:n@.$7$F$/$@$5$$!#(B<BR>
- $B$?$H$($P!"$b$C$H$b4JC1$JNc$H$7$F!"(B<B>man</B> $B%3%^%s%I$K(B wrap $B$9$k>l9g!"0J2<$N$h$&$K$7$^$9!#(B<BR>
- <BLOCKQUOTE>
- % cat w3mdict<BR>
- #!/bin/sh<BR>
- <BR>
- man $*<BR>
- </BLOCKQUOTE>
- $B4{DjCM$O(B <B>#undef</B> $B$G$9!#(B
- </DD>
-<DT>USE_MARK
- <DD><B>$B%^!<%/A`:n(B</B>$B$rM-8z$K$7$^$9!#$$$o$f$k(B vi $B$N%^!<%/A`:n$HF1Ey$N$b$N$G$9!#(B<BR>
- $B$3$l$r(B define $B$9$k$H!"0J2<$N5!G=$r;H$($k$h$&$K$J$j$^$9!#(B
- <UL>
- <LI>$B!H(B<B>CTRL-SPC</B>$B!I(B: $B%^!<%/$N@_Dj!?2r=|(B($B%H%0%k(B)
- <LI>$B!H(B<B>ESC p</B>$B!I(B: $BA0$N%^!<%/$X0\F0(B
- <LI>$B!H(B<B>ESC n</B>$B!I(B: $B<!$N%^!<%/$X0\F0(B
- <LI>$B!H(B<B>"</B>$B!I(B($B%@%V%k!&%/%)!<%F!<%7%g%s(B): $B@55,I=8=$K$h$k%^!<%/(B
- </UL>
- $B4{DjCM$O(B <B>#undef</B> $B$G$9!#(B
- </DD>
-<DT>USE_HISTORY
- <DD>URL $BMzNr$NJ]B8!"8F$S=P$7(B($B!H(B<B>CTRL-h</B>$B!I(B)$B$,$G$-$k$h$&$K$J$j$^$9!#(B<BR>
- $B4{DjCM$O(B <B>#define</B> $B$G$9!#(B
- </DD>
-<DT>BG_COLOR
- <DD>$BGX7J$N?'$N@_Dj$,2DG=$H$J$j$^$9(B($B%+%i!<I=<($G$-$k(B w3m $B$N>l9g$KM-8z(B)$B!#(B<BR>
- $B4{DjCM$O(B <B>#define</B> $B$G$9!#(B
- </DD>
-<DT>VIEW_UNSEENOBJECTS
- <DD>$BGX7J2hA|$X$N%j%s%/$J$I!"DL>o$O8+$($J$$%*%V%8%'%/%H$X$N%j%s%/$r8+$($k$h$&$K$7$^$9!#(B<BR>
- $B4{DjCM$O(B <B>#undef</B> $B$G$9!#(B
- </DD>
-<DT>VI_PREC_NUM
- <DD>$B%Z%$%80\F05!G=$,(B vi $B$N$h$&$K!X7+$jJV$72s?t!\5!G=!Y$K$J$k$h$&$K$7$^$9!#(B<BR>
- $B$?$H$($P!"!H(B<B>2 SPC</B>$B!I$@$H!V#2%Z%$%8?J$`!W$H$+!"!H(B<B>2 b</B>$B!I$@$H!V#2%Z%$%8La$k!W$N$h$&$K$J$j$^$9!#(B<BR>
- $B4{DjCM$O(B <B>#undef</B> $B$G$9!#(Bundef $B$N>l9g$O!"!H(B<B>2 SPC</B>$B!I$@$H!V#2(B<U>$B9T(B</U>$B?J$`!W$K$J$j$^$9!#(B
- </DD>
-<DT>FORMAT_NICE
- <DD>$B1QC18l$r(B fill $B$7$^$9!#(B<BR>
- $B4{DjCM$O(B <B>#undef</B> $B$G$9!#(B
- </DD>
-<DT>USE_GOPHER
- <DD>GOPHER $B%W%m%H%3%k$r%5%]!<%H$7$^$9!#(B<BR>
- $B4{DjCM$O(B <B>#undef</B> $B$G$9!#(B
- </DD>
-<DT>USE_NNTP
- <DD>NNTP $B$r%5%]!<%H$7$^$9!#(B<BR>
- $B$3$N(B define $B$O(B <A HREF="#configure">configure</A> $B$G@_Dj$5$l$^$9!#(B<BR>
- $B4{DjCM$O(B <B>#undef</B> $B$G$9!#(B
- </DD>
-<DT>ANSI_COLOR
- <DD>$B%Z!<%8%c%b!<%I$G(B ANSI color $B%(%9%1!<%W%7!<%1%s%9$KBP1~$7$^$9!#(B<BR>
- HTML $B$N;~$d!"%(%9%1!<%W%7!<%1%s%9$,L5$$>l9g$K$OBP1~$7$^$;$s!#(B<BR>
- $B$3$N(B define $B$O(B <A HREF="#configure">configure</A> $B$G@_Dj$5$l$^$9!#(B<BR>
- $B4{DjCM$O(B <B>#define</B> $B$G$9!#(B
- </DD>
-<DT>ID_EXT
- <DD>HTML4.0 $B$N(B ID $BB0@-$r%j%s%/$GC)$l$k$h$&$K$7$^$9!#(B<BR>
- $B4{DjCM$O(B <B>#define</B> $B$G$9!#(B
- </DD>
-<DT>BUFINFO
- <DD>$B%+%l%s%H$J%P%C%U%!$N(B URL $B$r(B ~/.w3m/bufinfo $B%U%!%$%k$K=q$-=P$9$h$&$K$7$^$9!#(B<BR>
- $B4{DjCM$O(B <B>#define</B> $B$G$9!#(B
- </DD>
-<DT>USE_EGD
- <DD>EGD(Entropy Gathering Daemon)$B$KBP1~$7Mp?t$N%7!<%I$rF@$^$9!#(B<BR>
- SSL $B$rAH$_9~$s$@(B w3m $B$N>l9g$KM-8z$G$9!#(B<BR>
- $B4{DjCM$O(B <B>#undef</B> $B$G$9!#(B
- </DD>
-<DT>EMACS_LIKE_LINEEDIT
- <DD>$B:G2<9T$G$NF~NO;~!"(BEmacs $B%i%$%/$J%-!<3d$jEv$F$K$J$j$^$9!#(B<BR>
- $B4{DjCM$O(B <B>#undef</B> $B$G$9!#(B
- </DD>
-<DT>ENABLE_REMOVE_TRAILINGSPACES
- <DD>$B9TKv$N6uGr$r<h$j=|$-$^$9!#(B<BR>
- $B4{DjCM$O(B <B>#undef</B> $B$G$9!#(B
- </DD>
-<DT>LABEL_TOPLINE
- <DD>$B%i%Y%k$KHt$s$@:]$N%+!<%=%k0LCV$r2hLL$N@hF,$K$7$^$9!#(B<BR>
- $B4{DjCM$O(B <B>#undef</B> $B$G$9!#(B
- </DD>
-<DT>NEXTPAGE_TOPLINE
- <DD>$B%Z%$%80\F0$G!"<!$N2hLL$K0\F0$7$?:]$N%+!<%=%k0LCV$rI,$:2hLL$N@hF,$K$7$^$9!#(B<BR>
- $B4{DjCM$O(B <B>#undef</B> $B$G$9!#(Bundef $B$N>l9g!"J8=q$NKvHx0J9_$K6u9T$,F~$i$J$$$h$&$KD4@0$5$l$k$?$a!"I,$:$7$b%+!<%=%k0LCV$O2hLL$N@hF,$KMh$^$;$s!#(B
- </DD>
-<P><DIV ALIGN="left"><B>### $B0J9_$N(B define $B$O(B @W3M.version@ $B$G$O(B unofficial $B$JJ*$G$9(B ###</B></DIV>
-<P>
-<DT>MENU_THIN_FRAME
- <DD>$B%a%K%e!<OH$K:Y$$7S@~$r;HMQ$7$^$9!#(B<BR>
- $B4{DjCM$O(B <B>#undef</B> $B$G$9!#(B
- </DD>
-</DL>
-
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="make">make $B$K$D$$$F(B</A></H2>
-<!-- make $B;~$N@bL@(B -->
-<DIV>
-<P><A HREF="#configure">configure</A> $B$r<B9T$7$F!"I,MW$K1~$8$F(B <A HREF="config_h">config.h $B$N=$@5(B</A>$B$r9T$C$?8e!"(B<B>make</B> $B$r<B9T$7$^$9!#(B
-<P>make $B;~$K%3%s%Q%$%k%(%i!<$,H/@8$9$k$h$&$G$"$l$P!"(B
-<BLOCKQUOTE>
- % make | & tee MAKE.log
-</BLOCKQUOTE>
-$B$r<B9T$7$F!"%m%0%U%!%$%k$r85$KLdBj$N2r7h$r9T$C$F$/$@$5$$!#(B
-<P>$B$^$?!";vA0$K3:Ev%P!<%8%g%s$G$N(B w3m $B$N%Q%C%A$rF~<j$7$F$$$k>l9g$K$O!"(B<B>patch</B> $B$r<B9T$7$F$+$i(B make $B$r9T$C$F$/$@$5$$!#(B
-<P>make $B$,40N;$7!"%$%s%9%H!<%k$9$k>l9g$K$O!"(Broot $B$K$J$C$F!"(B
-<BLOCKQUOTE>
- % make install
-</BLOCKQUOTE>
-$B$r<B9T$7$F$/$@$5$$!#(B
-<P>$B0J>e$G%$%s%9%H!<%k$O=*N;$G$9!#(B
-<P><A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="tips">$BB>$N(B OS $B$G%$%s%9%H!<%k$9$k:]$N(B Tips</A></H2>
-<!-- $B3F<o(B OS $B>e$G(B w3m $B$r%$%s%9%H!<%k$9$k:]$N(B Tips -->
-<DIV>
-<P><DL>
-<DT>HP-UX
- <DD>HP $B$N(B (gcc $B$G$O$J$$(B) C $B%3%s%Q%$%i$G%3%s%Q%$%k$9$k>l9g!"(B<A HREF="#configure">configure</A> $B$N(B
- <BLOCKQUOTE>
- Input your favorite C-compiler.<BR>
- (Default: cc)
- </BLOCKQUOTE>
- $B$K!"(B<B>cc -Aa -D_HPUX_SOURCE</B> $B$HEz$($F$/$@$5$$!#(B<B>cc</B> $B$@$1$@$H%3%s%Q%$%k$,DL$j$^$;$s!#(B<B>gcc</B> $B$J$i$PIaDL$K%3%s%Q%$%k$ODL$j$^$9$,!"(Bgcc $B$N%P!<%8%g%s$,8E$a$N>l9g$K$O(B <B>-g</B> $B$r(B<U>$BIU$1$J$$(B</U>$B$G$/$@$5$$!#(B
- </DD>
-<DT>OS/2
- <DD><B>emx</B> $B$r;H$&;v$G(B w3m $B$r%3%s%Q%$%k$9$k;v$,$G$-$^$9!#(B<BR>
- $B$^$::G=i$K!"(B
- <BLOCKQUOTE>
- % cd gc
- % make -f EMX_MAKEFILE
- </BLOCKQUOTE>
- $B$r<B9T$7$F(B GC $B%i%$%V%i%j$r%3%s%Q%$%k$7$F$*$$$F$+$i!"(Bw3m $BK\BN$r%3%s%Q%$%k$7$^$9!#$J$*!"%+%i!<I=<($,JQ$K$J$k$i$7$$$N$G!"%b%N%/%mMQ$K%3%s%Q%$%k$7$?J}$,NI$$$G$7$g$&!#(B
- </DD>
-<DT>Windows
- <DD><A HREF="README.cygwin">README.cygwin</A> $B$r$4Mw$/$@$5$$!#(B
- </DD>
-<DT>MS-DOS
- <DD><A HREF="README.dj">README.dj</A> $B$r$4Mw$/$@$5$$!#(B
- </DD>
-</DL>
-
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-
-</BODY>
-</HTML>
diff --git a/w3m-doc/mkdocs b/w3m-doc/mkdocs deleted file mode 100755 index 560c2dc..0000000 --- a/w3m-doc/mkdocs +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh - -convert() -{ - SRC=$1 - HTML=`echo ${SRC} | ${SED} 's/\.in$//p'` - DOC=`echo ${HTML} | ${SED} 's/\.html$//p' | ${TR} '[a-z]' '[A-Z]'` - echo "converting ${SRC} to ${HTML_TOP_DIR}/${_JA_DIR}/${HTML} ... \c" - ${NKF} -e ${SRC} | ${SED} -e 's/。/./gp' -e 's/、/,/gp' | ${NKF} -j | ${W3MDOC} > ${HTML_TOP_DIR}/${_JA_DIR}/${HTML} - echo "done.\nconverting ${HTML} to ${DOC_TOP_DIR}/${_JA_DIR}/${DOC} ... \c" - ${W3M} -dump -e ${HTML_TOP_DIR}/${_JA_DIR}/${HTML} > ${DOC_TOP_DIR}/${_JA_DIR}/${DOC} - echo "done." -} - -W3MDOC="./w3mdoc.pl" -W3M="w3m" -if [ -x ${HOME}/bin/pre_w3m ]; then - W3M=${HOME}/bin/pre_w3m -fi - -NKF="/usr/local/bin/nkf" -SED="/usr/bin/sed" -TR="/usr/bin/tr" - -HTML_TOP_DIR="html" -DOC_TOP_DIR="doc" -_JA_DIR="ja" -#HTML_DIR="html" -#DOC_DIR="doc" - -if [ ! -d ${HTML_TOP_DIR} ]; then - mkdir ${HTML_TOP_DIR} - if [ ! -d ${HTML_TOP_DIR}/${_JA_DIR} ]; then - mkdir ${HTML_TOP_DIR}/${_JA_DIR} - fi -fi -if [ ! -d ${DOC_TOP_DIR} ]; then - mkdir ${DOC_TOP_DIR} - if [ ! -d ${DOC_TOP_DIR}/${_JA_DIR} ]; then - mkdir ${DOC_TOP_DIR}/${_JA_DIR} - fi -fi - -if [ $# -eq 0 ]; then - for _IN in *.in - do - convert ${_IN} - done -else - for _IN in $* - do - case ${_IN} in - *.in) convert ${_IN};; - *) ;; - esac - done -fi diff --git a/w3m-doc/operation.html.in b/w3m-doc/operation.html.in deleted file mode 100644 index 7195159..0000000 --- a/w3m-doc/operation.html.in +++ /dev/null @@ -1,50 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-
-@include define.wd
-@include contain.wd
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
-<TITLE>OPERATION - w3m $BA`:nK!(B -</TITLE>
-</HEAD>
-
-<BODY>
-
-<H1><A NAME="index">w3m $BA`:nK!(B</A></H1>
-<DIV>
-<!-- w3m $B$rA`:n$9$k>e$G$N>\:Y$r5-$9(B -->
-</DIV>
- <UL>
- <LI><A HREF="#buffer">$B%P%C%U%!A`:n(B</A>
- <LI><A HREF="#mouse">$B%^%&%9A`:n(B</A>
- <LI><A HREF="#line_edit">$B:G2<9TF~NO(B</A>
- <LI><A HREF="#menu">$B%a%K%e!<(B</A>
- </UL>
-
-<DIV>
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="buffer">$B%P%C%U%!A`:n(B</A></H2>
-<!-- $B%P%C%U%!A`:n;~$N@bL@(B -->
-
-<H3><A NAME="mouse">$B%^%&%9A`:n(B</A></H3>
-<!-- $B%^%&%9A`:n;~$N@bL@(B -->
-
-<H3><A NAME="line_edit">$B:G2<9TF~NO(B</A></H3>
-<!-- $B:G2<9TF~NO;~$NA`:n$K$D$$$F$N@bL@(B -->
-
-<H3><A NAME="menu">$B%a%K%e!<A`:n(B</A></H3>
-<!-- $B%a%K%e!<A`:n;~$N@bL@(B -->
-
-<DIV>
-<A HREF="#index">$B$3$N%Z!<%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-
-</BODY>
-</HTML>
diff --git a/w3m-doc/outline.html.in b/w3m-doc/outline.html.in deleted file mode 100644 index 60bda47..0000000 --- a/w3m-doc/outline.html.in +++ /dev/null @@ -1,352 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-
-@include define.wd
-@include contain.wd
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
-<TITLE>OUTLINE - $B35MWJT(B -</TITLE>
-</HEAD>
-
-<BODY>
-
-<H1><A NAME="index">$B35MWJT(B</A></H1>
-<UL>
- <LI><A HREF="#install">$B%$%s%9%H!<%k$N35MW(B</A>
- <LI><A HREF="#operation">$BA`:nJ}K!$N35MW(B</A>
- <UL>
- <LI><A HREF="#display">$BI=<(FbMF$N@bL@(B</A>
- <LI><A HREF="#basic">$B4pK\E*$J;H$$J}(B</A>
- <LI><A HREF="#help">$B%X%k%W$N;2>H(B</A>
- <UL>
- <LI><A HREF="#w3m_original">w3m $B%*%j%8%J%k$N%-!<A`:n(B</A>
- <LI><A HREF="#like_lynx">Lynx $BIw$N%-!<A`:n(B</A>
- </UL>
- </UL>
-</UL>
-
-<DIV>
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-</DIV>
-
-<HR>
-
-<H2><A NAME="install">$B%$%s%9%H!<%k$N35MW(B</A></H2>
-<!-- $B%$%s%9%H!<%k$N35MW(B -->
-<DIV>
-<P>w3m$B$r%$%s%9%H!<%k$9$k$K$O!"<!$N$h$&$K$7$^$9!#$J$*!"$3$3$G$O35MW$r=R$Y$k$K;_$a$F$*$-$^$9!#>\:Y$K$D$$$F$O(B<A HREF="@DOC.install@">$B%$%s%9%H!<%k$N>\:Y(B</A>$B$r;2>H$7$F$/$@$5$$!#(B
-<P><OL>
- <LI>configure $B$r<B9T$9$k!#$$$/$D$+<ALd$5$l$k$N$G!"$=$l$KEz$($^$9!#(B
- <LI>make $B$r<B9T(B
- <LI>make install $B$r<B9T(B
- </OL>
-<P>$B0J>e$G%$%s%9%H!<%k$O=*$o$j$G$9!#(B<BR>
-<BR>
-<A HREF="index">$B$3$N%Z%$%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="operation">$BA`:nJ}K!$N35MW(B</A></H2>
-<!-- $BA`:nJ}K!$N35MW(B -->
-<P>
-w3m $B$N5/F0;~$N;XDj$O<!$NDL$j$G$9!#(B
-<P>
-<PRE>
- w3m [options] [file | URL]
-</PRE>
-<P>
-$B0z?t$K%m!<%+%k%U%!%$%kL>$r;XDj$9$l$P$=$N%U%!%$%k$rI=<($7!"(BURL $B$r;XDj$9$l$P$=$N(B URL $B$G<($5$l$k(B WWW $B$NFbMF$rI=<($7$^$9!#(B<BR>
-$B2?$b;XDj$7$J$1$l$P!"I8=`F~NO$NFbMF$rI=<($7$^$9!#$?$@$7!"I8=`F~NO$,(B tty $B$G$"$k>l9g$K$O!"(Busage$B$r=PNO$7$F=*N;$7$^$9!#(B
-<P>
-$B;XDj$G$-$k0z?t$K$D$$$F$O!"(B<A HREF="@DOC.configuration#option">$B5/F0%*%W%7%g%s(B</A> $B$r;2>H$7$F$/$@$5$$!#(B
-
-<HR>
-
-<H3><A NAME="display">$BI=<(FbMF$N@bL@(B</A></H3>
-<!-- $BI=<(FbMF$N@bL@(B -->
-<P>
-HTML$BJ8=q$rI=<($7$F$$$k$H$-$K$O!"<!$N$h$&$JI=<($K$J$j$^$9!#(B
-<P>
-<DIV ALIGN="center">
-<TABLE BORDER="1">
-<TR><TH> </TH><TH>$B%+%i!<I=<(;~(B</TH><TH>$B%b%N%/%mI=<(;~(B</TH>
-<TR><TD>$B%j%s%/(B</TD><TD ALIGN="center">$B@D?'(B</TD><TD ALIGN="center">$B2<@~(B</TD>
-<TR><TD>$B%$%s%i%$%s2hA|(B</TD><TD ALIGN="center">$BNP?'(B</TD><TD ALIGN="center">$BH?E>I=<((B</TD>
-<TR><TD>$B%U%)!<%`$NF~NOItJ,(B</TD><TD ALIGN="center">$B@V?'(B</TD><TD ALIGN="center">$BH?E>I=<((B</TD>
-</TABLE>
-</DIV>
-<P>
-$B%+%i!<I=<(;~$N?'$O!"%*%W%7%g%s@_Dj%Q%M%k$GJQ99$9$k;v$,$G$-$^$9!#(B
-
-<HR>
-
-<H3><A NAME="basic">$B4pK\E*$J;H$$J}(B</A></H3>
-<!-- $B4pK\E*$J;H$$J}(B -->
-<P>
-w3m $B$r5/F0$7$?8e$O!"(B1$BJ8;z$N%3%^%s%I$r%-!<%\!<%I$+$iF~NO$9$k;v$GA`:n$7$^$9!#4pK\E*$J;H$$J}$K$D$$$F$O!"(Bw3m $B$r5/F0$7$?8e$K(B``<B>H</B>''$B$rF~NO$7$F!"(B<A HREF="#help">$B%X%k%W(B</A>$B$r;2>H$7$F$/$@$5$$!#(B<BR>
-$B$J$*!"%X%k%W%Z!<%8$N5-=R$G$O!"(B<B>C-x</B> $B$O(B<U>$B%3%s%H%m!<%k(B + x</U>$B$rI=$7$^$9!#$^$?!"(B<B>SPC</B> $B$O(B<U>$B%9%Z!<%9%P!<(B</U>$B!"(B<B>RET</B> $B$O(B<U>$B%j%?!<%s%-!<(B</U>$B!"(B<B>ESC</B> $B$O(B<U>$B%(%9%1!<%W%-!<(B</U>$B$G$9!#(B
-<P>
-w3m $B$N%-!<A`:n$O!"(Bw3m $B$N(B make $B;~$K7h$a$i$l$k%-!<A`:n$H8D?MMQ$KDj5A$9$k%-!<A`:n$,$"$j$^$9!#$^$?!"(Bmake $B;~$K7h$a$i$l$k%-!<A`:n$K$O!"!H(Bw3m $B%*%j%8%J%k$N%-!<A`:n!I$H!H(BLynx $BIw$N%-!<A`:n!I$,$"$j$^$9!#%X%k%W$GI=<($9$kFbMF$O!"!H(Bw3m $B%*%j%8%J%k!I!"!H(BLynx $BIw!I$N$$$:$l$+$G$9!#(B
-<P>
-$B$^$?!"%^%&%95!G=$r(B ON $B$K$7$F(B w3m $B$r(B make $B$7$F$"$l$P!"%^%&%9$r;H$C$F(B w3m $B$rA`:n$9$k$3$H$,$G$-$^$9!#%^%&%9$,;H$($k$N$O!"(B<B>xterm</B>/<B>kterm</B>/<B>rxvt</B> $B$r;HMQ$7$F$$$k>l9g!"$^$?$O(B GPM $B$,F0$$$F$$$k4D6-$r;H$C$F$$$k>l9g$G$9!#(B<BR>
-$B%^%&%9$N>\$7$$A`:n$K$D$$$F$O(B<A HREF="@DOC.operation@#mouse">$B!X%^%&%9A`:n!Y(B</A>$B$r$4Mw$/$@$5$$!#(B
-<P>
-<HR>
-
-<H3><A NAME="help">$B%X%k%W$N;2>H(B</A></H3>
-<!-- $B%X%k%W$N;2>H(B -->
-<P>
-w3m $B$N(Bmake$B;~$K;XDj$7$?%-!<A`:n$K$h$C$F!"%X%k%W%U%!%$%k$,0[$J$j$^$9!#(B
-<UL>
- <LI><A HREF="#w3m_original">w3m $B%*%j%8%J%k$N%-!<A`:n(B</A>
- <LI><A HREF="#like_lynx">Lynx $BIw$N%-!<A`:n(B</A>
-</UL>
-<P>
-<HR>
-
-<P>
-<H4><A NAME="w3m_original">w3m $B%*%j%8%J%k$N%-!<A`:n(B</A></H4>
-
-<H5>$B%Z!<%8(B/$B%+!<%=%k0\F0(B</H5>
-<TABLE CELLPADDING=0>
- <TR> <TD WIDTH=100>SPC,C-v</TD> <TD>$B<!%Z!<%8(B</TD></TR>
- <TR> <TD>b,ESC v</TD> <TD>$BA0%Z!<%8(B</TD></TR>
- <TR> <TD>l,C-f</TD> <TD>$B%+!<%=%k$r1&$X0\F0(B</TD></TR>
- <TR> <TD>h,C-b</TD> <TD>$B%+!<%=%k$r:8$X0\F0(B</TD></TR>
- <TR> <TD>j,C-n</TD> <TD>$B%+!<%=%k$r2<$X0\F0(B</TD></TR>
- <TR> <TD>k,C-p</TD> <TD>$B%+!<%=%k$r>e$X0\F0(B</TD></TR>
- <TR> <TD>J</TD><TD>$B0l9T>e$K%9%/%m!<%k(B($B?J$`(B)</TD></TR>
- <TR> <TD>K</TD><TD>$B0l9T2<$K%9%/%m!<%k(B($BLa$k(B)</TD></TR>
- <TR> <TD>w</TD><TD>$B<!$NC18l$K0\F0(B</TD></TR>
- <TR> <TD>W</TD><TD>$BA0$NC18l$K0\F0(B</TD></TR>
- <TR> <TD>></TD> <TD>$B1&$K0l2hLLJ,%7%U%H(B</TD></TR>
- <TR> <TD><</TD> <TD>$B:8$K0l2hLLJ,%7%U%H(B</TD></TR>
- <TR> <TD>.</TD> <TD>$B1&$K0lJ8;zJ,%7%U%H(B</TD></TR>
- <TR> <TD>,</TD> <TD>$B:8$K0lJ8;zJ,%7%U%H(B</TD></TR>
- <TR> <TD>g</TD> <TD>$B%Z!<%8$N@hF,9T$K0\F0(B</TD></TR>
- <TR> <TD>G</TD> <TD>$B%Z!<%8$N:G=*9T$K0\F0(B</TD></TR>
- <TR> <TD>ESC g</TD> <TD>$B;XDj9T$K0\F0(B</TD></TR>
- <TR> <TD>TAB</TD> <TD>$B<!$N%O%$%Q!<%j%s%/$K0\F0(B</TD></TR>
- <TR> <TD>C-u, ESC TAB</TD> <TD>$BA0$N%O%$%Q!<%j%s%/$K0\F0(B</TD></TR>
- <TR> <TD>[</TD> <TD>$B:G=i$N%O%$%Q!<%j%s%/$K0\F0(B</TD></TR>
- <TR> <TD>]</TD> <TD>$B:G8e$N%O%$%Q!<%j%s%/$K0\F0(B</TD></TR>
-</TABLE>
-
-<H5>$B%O%$%Q!<%j%s%/A`:n(B</H5>
-
-<TABLE CELLPADDING=0>
- <TR> <TD WIDTH=100>RET</TD> <TD>$B%+!<%=%k2<$N%j%s%/$XHt$V(B</TD></TR>
- <TR> <TD>a, ESC RET</TD> <TD>$B%j%s%/@h$NJ8=q$r%U%!%$%k$KJ]B8(B</TD></TR>
- <TR> <TD>ESC I</TD> <TD>$B%j%s%/@h$N2hA|$r%U%!%$%k$KJ]B8(B</TD></TR>
- <TR> <TD>u</TD> <TD>$B%j%s%/@h(B URL $B$NI=<((B</TD></TR>
- <TR> <TD>I</TD> <TD>$B%$%s%i%$%s%$%a!<%8$NI=<((B</TD></TR>
- <TR> <TD>:</TD> <TD>URL$B$N$h$&$JJ8;z$r%"%s%+!<$H$7$F%^!<%/(B</TD></TR>
- <TR> <TD>ESC :</TD> <TD>Message-ID $B$N$h$&$JJ8;z$r%"%s%+!<$H$7$F%^!<%/(B</TD></TR>
- <TR> <TD>c</TD> <TD>$B8=%Z!<%8$N(B URL $B$rI=<((B</TD></TR>
- <TR> <TD>=</TD> <TD>$B8=%I%-%e%a%s%H$N>pJs$rI=<((B</TD></TR>
- <TR> <TD>F</TD> <TD>$B%U%l!<%`$rI=<($9$k(B</TD></TR>
- <TR> <TD>M</TD> <TD>$B8=%Z!<%8$r30It%V%i%&%6$GI=<($9$k(B(2M,3M $B$G(B2$BHVL\$H(B3$BHVL\$N%V%i%&%6$r8F$S$@$9(B)</TD></TR>
- <TR> <TD>ESC M</TD> <TD>$B%j%s%/@h$r30It%V%i%&%6$GI=<($9$k(B(2ESC M,3ESC M $B$G(B2$BHVL\$H(B3$BHVL\$N%V%i%&%6$r8F$S$@$9(B)</TD></TR>
-</TABLE>
-
-<H5>$B%U%!%$%k(B/$B%9%H%j!<%`A`:n(B</H5>
-<TABLE CELLPADDING=0>
- <TR> <TD WIDTH=100>U</TD> <TD>URL$B$r;XDj(B</TD></TR>
- <TR> <TD>V</TD> <TD>$B%U%!%$%k$r3+$/(B</TD></TR>
- <TR> <TD>@</TD> <TD>$B%7%'%k$r5/F0$7FI$_9~$`(B</TD></TR>
- <TR> <TD>#</TD> <TD>$B%7%'%k$r5/F0$7FI$_9~$`(B</TD></TR>
-</TABLE>
-
-<H5>$B%P%C%U%!A`:n(B</H5>
-<TABLE CELLPADDING=0>
- <TR> <TD WIDTH=100>B</TD> <TD>$BA0$N%P%C%U%!$K0\F0(B</TD></TR>
- <TR> <TD>v</TD> <TD>HTML$B%=!<%9$rI=<((B</TD></TR>
- <TR> <TD>s</TD> <TD>$B%P%C%U%!$rA*Br(B</TD></TR>
- <TR> <TD>E</TD> <TD>$B%P%C%U%!$N%=!<%9$rJT=8(B</TD></TR>
- <TR> <TD>R</TD> <TD>$B%P%C%U%!$r:FFI$_9~$_(B</TD></TR>
- <TR> <TD>S</TD> <TD>$B%P%C%U%!$rJ]B8(B</TD></TR>
- <TR> <TD>ESC s</TD> <TD>HTML $B%=!<%9$rJ]B8(B</TD></TR>
- <TR> <TD>ESC e</TD> <TD>$B%P%C%U%!$NI=<(%$%a!<%8$rJT=8(B</TD></TR>
-</TABLE>
-
-<H5>$B%V%C%/%^!<%/A`:n(B</H5>
-<TABLE CELLPADDING=0>
- <TR> <TD WIDTH=100>ESC b</TD> <TD>$B%V%C%/%^!<%/$rFI$_9~$`(B</TD></TR>
- <TR> <TD>ESC a</TD> <TD>$B8=%Z!<%8$r%V%C%/%^!<%/$KDI2C(B</TD></TR>
-</TABLE>
-
-<H5>$B8!:w(B</H5>
-<TABLE CELLPADDING=0>
- <TR> <TD WIDTH=100>/,C-s</TD> <TD>$BA0J}8!:w(B</TD></TR>
- <TR> <TD>?,C-r</TD> <TD>$B8eJ}8!:w(B</TD></TR>
- <TR> <TD>n</TD> <TD>$B<!$r8!:w(B</TD></TR>
- <TR> <TD>N</TD> <TD>$BA0$r8!:w(B</TD></TR>
-</TABLE>
-
-<H5>$B%^!<%/A`:n(B</H5>
-<TABLE CELLPADDING=0>
- <TR> <TD WIDTH=100>C-SPC</TD> <TD>$B%^!<%/$N@_Dj(B/$B>C5n(B</TD></TR>
- <TR> <TD>ESC p</TD> <TD>$BA0$N%^!<%/$X0\F0(B</TD></TR>
- <TR> <TD>ESC n</TD> <TD>$B<!$N%^!<%/$X0\F0(B</TD></TR>
- <TR> <TD>"</TD> <TD>$B@55,I=8=$K$h$k%^!<%/(B</TD></TR>
-</TABLE>
-
-<H5>$B$=$NB>(B</H5>
-<TABLE CELLPADDING=0>
- <TR> <TD WIDTH=100>!</TD> <TD>$B%7%'%k$N<B9T(B</TD></TR>
- <TR> <TD>H</TD> <TD>$B%X%k%W(B($B$3$N%U%!%$%k$rI=<((B)</TD></TR>
- <TR> <TD>o</TD> <TD>$B%*%W%7%g%s@_Dj(B</TD></TR>
- <TR> <TD>C-k</TD> <TD>$B%/%C%-!<0lMw$rI=<((B</TD></TR>
- <TR> <TD>C-c</TD> <TD>$BJ8=q$NFI$_9~$_$rCfCG(B</TD></TR>
- <TR> <TD>C-z</TD> <TD>$B%5%9%Z%s%I(B</TD></TR>
- <TR> <TD>q</TD> <TD>w3m $B$r=*N;(B($B3NG'$"$j(B)</TD></TR>
- <TR> <TD>Q</TD> <TD>w3m $B$r=*N;(B($B3NG'$J$7(B)</TD></TR>
-</TABLE>
-
-<H5>$B9TJT=8%b!<%I(B</H5>
-<TABLE CELLPADDING=0>
- <TR> <TD WIDTH=100>C-f</TD> <TD>$B%+!<%=%k$r1&$X0\F0(B</TD></TR>
- <TR> <TD>C-b</TD> <TD>$B%+!<%=%k$r:8$X0\F0(B</TD></TR>
- <TR> <TD>C-h</TD> <TD>$BA0$NJ8;z$r:o=|(B</TD></TR>
- <TR> <TD>C-d</TD> <TD>$B%+!<%=%k0LCV$NJ8;z$r:o=|(B</TD></TR>
- <TR> <TD>C-k</TD> <TD>$B%+!<%=%k$N8eJ}$rA4$F:o=|(B</TD></TR>
- <TR> <TD>C-u</TD> <TD>$B%+!<%=%k$NA0$^$G$rA4$F:o=|(B</TD></TR>
- <TR> <TD>C-a</TD> <TD>$B9TF,$K0\F0(B</TD></TR>
- <TR> <TD>C-e</TD> <TD>$B9TKv$X0\F0(B</TD></TR>
- <TR> <TD>C-p</TD> <TD>$B%R%9%H%j$+$i0l$DA0$NJ8;zNs$r<h$j=P$9(B</TD></TR>
- <TR> <TD>C-n</TD> <TD>$B%R%9%H%j$+$i<!$NJ8;zNs$r<h$j=P$9(B</TD></TR>
- <TR> <TD>TAB,SPC</TD> <TD>$B%U%!%$%kL>$NJd40(B</TD></TR>
- <TR> <TD>RETURN</TD> <TD>$BF~NO=*N;(B</TD></TR>
-</TABLE>
-<HR>
-
-<P>
-<H4><A NAME="like_lynx">Lynx $BIw$N%-!<A`:n(B</A></H4>
-
-<H5>$B%Z!<%8(B/$B%+!<%=%k0\F0(B</H5>
-<table cellpadding=0>
-<TR><TD>SPC,C-v<TD>$B<!$N%Z!<%8$rI=<($7$^$9!%(B
-<TR><TD>b,ESC v<TD>$BA0$N%Z!<%8$rI=<($7$^$9!%(B
-<TR><TD>l<TD>$B%+!<%=%k$r1&$K0\F0$7$^$9!%(B
-<TR><TD>h<TD>$B%+!<%=%k$r:8$K0\F0$7$^$9!%(B
-<TR><TD>j<TD>$B%+!<%=%k$r2<$K0\F0$7$^$9!%(B
-<TR><TD>k<TD>$B%+!<%=%k$r>e$K0\F0$7$^$9!%(B
-<TR><TD>J<TD>$B2hLL$r(B1$B9T>e$K%9%/%m!<%k$7$^$9!%(B
-<TR><TD>K<TD>$B2hLL$r(B1$B9T2<$K%9%/%m!<%k$7$^$9!%(B
-<TR><TD>><TD>$B2hLLA4BN$r1&$K$:$i$7$^$9!%(B($BI=<(FbMF$r:8$K$:$i$9(B)
-<TR><TD><<TD>$B2hLLA4BN$r:8$K$:$i$7$^$9!%(B($BI=<(FbMF$r1&$K$:$i$9(B)
-<TR><TD>C-a<TD>$BJ8=q$N$$$A$P$s>e$N9T$K0\F0$7$^$9!%(B
-<TR><TD>C-e<TD>$BJ8=q$N$$$A$P$s2<$N9T$K0\F0$7$^$9!%(B
-<TR><TD>G<TD>$B2hLL2<$G9THV9f$rF~NO$7!$$=$3$G;XDj$7$?9T$K0\F0$7$^$9!%(B
-$B$3$3$G(B $ $B$rF~NO$9$k$H!$:G=*9T$K0\F0$7$^$9!%(B
-<TR><TD>TAB, C-n, $B2<Lp0u(B<TD>$B<!$N%j%s%/$K0\F0$7$^$9!%(B
-<TR><TD>ESC TAB, C-p, $B>eLp0u(B<TD>$BA0$N%j%s%/$K0\F0$7$^$9!%(B
-</table>
-
-<H5>$B%O%$%Q!<%j%s%/A`:n(B</H5>
-<table cellpadding=0>
-<TR><TD WIDTH=100>RET, C-f, $B1&Lp0u(B<TD>$B8=:_%+!<%=%k$,$"$k%j%s%/$,;X$9@h$NJ8=q$rFI$_$3$_$^$9!%(B
-<TR><TD>d, ESC RET<TD>$B8=:_%+!<%=%k$,$"$k%j%s%/$,;X$9@h$NJ8=q$r%U%!%$%k$KJ]B8$7$^$9!%(B
-<TR><TD>u<TD>$B8=:_%+!<%=%k$,$"$k%j%s%/$,;X$9@h$N(BURL$B$rI=<($7$^$9!%(B
-<TR><TD>I<TD>$B8=:_%+!<%=%k$,$"$k%j%s%/$KBP1~$9$k2hA|$rI=<($7$^$9!%(B
-<TR><TD>ESC I<TD>$B8=:_%+!<%=%k$,$"$k%j%s%/$,;X$92hA|$r%U%!%$%k$KJ]B8$7$^$9!%(B
-<TR><TD>:<TD>URL $BIw$NJ8;zNs$r%j%s%/$K$7$^$9!%$3$N5!G=$O!$(BHTML $B$G$J$$J8=q$r(B
-$BFI$s$G$$$k$H$-$K$bM-8z$G$9!%(B
-<TR><TD>ESC :<TD>Message-ID $BIw$NJ8;zNs$r!$(Bnews: $B$N%j%s%/$K$7$^$9!%$3$N5!G=$O!$(BHTML $B$G$J$$J8=q$rFI$s$G$$$k$H$-$K$bM-8z$G$9!%(B
-<TR><TD>c<TD>$B8=:_$NJ8=q$N(B URL $B$rI=<($7$^$9!%(B
-<TR><TD>=<TD>$B8=:_$NJ8=q$K4X$9$k>pJs$rI=<($7$^$9!%(B
-<TR><TD>F<TD><FRAMESET> $B$r4^$`J8=q$rI=<($7$F$$$k$H$-$K!$(B<FRAME> $B%?%0$N;X$9J#?t$NJ8=q$r(B1$B$D$NJ8=q$KJQ49$7$FI=<($7$^$9!%(B
-<TR><TD>M<TD>$B8=:_8+$F$$$k%Z!<%8$r!$30It%V%i%&%6$r;H$C$FI=<($7$^$9!%(B 2M, 3M $B$G(B2$BHVL\$H(B3$BHVL\$N%V%i%&%6$r;H$$$^$9!%(B
-<TR><TD>ESC M<TD>$B8=:_$N%j%s%/@h$r!$30It%V%i%&%6$r;H$C$FI=<($7$^$9!%(B 2ESC M, 3ESC M $B$G(B2$BHVL\$H(B3$BHVL\$N%V%i%&%6$r;H$$$^$9!%(B
-</table>
-
-<H5>$B%U%!%$%k$H(B URL $B4X78$NA`:n(B</H5>
-<table cellpadding=0>
-<TR><TD WIDTH=100>g, U<TD>URL $B$r;XDj$7$F3+$-$^$9!%(B
-<TR><TD>V<TD>$B%m!<%+%k%U%!%$%k$r;XDj$7$F3+$-$^$9!%(B
-<TR><TD>@<TD>$B%3%^%s%I$r<B9T$7!$7k2L$rA4ItFI$s$G$+$iI=<($7$^$9!%(B
-<TR><TD>#<TD>$B%3%^%s%I$r<B9T$7!$7k2L$rFI$_$3$_$J$,$iI=<($7$^$9!%(B
-</table>
-
-<H5>$B%P%C%U%!A`:n(B</H5>
-<table cellpadding=0>
-<TR><TD WIDTH=100>B, C-b, $B:8Lp0u(B<TD>$B8=:_8+$F$$$k%P%C%U%!$r:o=|$7!$0l$DA0$N%P%C%U%!$rI=<($7$^$9!%(B
-<TR><TD>\<TD>HTML $B$N%=!<%9$rI=<($7$^$9!%(B
-<TR><TD>s, C-h<TD>$B%P%C%U%!A*Br%b!<%I$KF~$j$^$9!%(B
-<TR><TD>E<TD>$B8=:_8+$F$$$k%P%C%U%!$,%m!<%+%k%U%!%$%k$N>l9g!$$=$N%U%!%$%k$r%(%G%#%?$GJT=8$7$^$9!%%(%G%#%?$r=*N;$7$?8e!$$=$N%U%!%$%k$r:FEYFI$_9~$_$^$9!%(B
-<TR><TD>R, C-r<TD>$B%P%C%U%!$r:FEYFI$_9~$_$^$9!%(B
-<TR><TD>S, p<TD>$B%P%C%U%!$NI=<(FbMF$r%U%!%$%k$KJ]B8$7$^$9!%(B
-<TR><TD>ESC s<TD>HTML $B$N%=!<%9$r%U%!%$%k$KJ]B8$7$^$9!%(Bv $B$G%=!<%9$rI=<($7$F(B S $B$GJ]B8$9$k$N$H$[$\F1$8$G$9$,!$(BESC s $B$GJ]B8$7$?%U%!%$%k$O4A;z%3!<%I$,%*%j%8%J%k$N$^$^$G$"$k$N$KBP$7$F!$(Bv S $B$GJ]B8$9$k$H8=:_I=<($K;H$C$F$$$k4A;z%3!<%I$KJQ49$5$l$FJ]B8$5$l$^$9!%(B
-<TR><TD>ESC e<TD>$B8=:_I=<($5$l$F$$$k%P%C%U%!$r!$I=<($5$l$F$$$k7A<0$N$^$^%(%G%#%?$GJT=8$7$^$9!%(B
-</table>
-
-<H5>$B%P%C%U%!A*Br%b!<%I(B</H5>
-"s" $B$G%P%C%U%!A*Br%b!<%I$KF~$C$?$H$-$N%-!<A`:n$G$9!%(B
-<table cellpadding=0>
-<TR><TD WIDTH=100>k,C-p<TD>$B0l$D>e$N%P%C%U%!$rA*Br$7$^$9!%(B
-<TR><TD>j,C-n<TD>$B0l$D2<$N%P%C%U%!$rA*Br$7$^$9!%(B
-<TR><TD>D<TD>$B8=:_A*Br$7$F$$$k%P%C%U%!$r:o=|$7$^$9!%(B
-<TR><TD>RET<TD>$B8=:_A*Br$7$F$$$k%P%C%U%!$rI=<($7$^$9!%(B
-</table>
-
-<H5>$B%V%C%/%^!<%/A`:n(B</H5>
-<table cellpadding=0>
-<TR><TD WIDTH=100>v, ESC b<TD>$B%V%C%/%^!<%/$rFI$_9~$_$^$9!%(B
-<TR><TD>a, ESC a<TD>$B8=:_8+$F$$$k%Z!<%8$r%V%C%/%^!<%/$KDI2C$7$^$9!%(B
-</table>
-
-<H5>$B8!:w(B</H5>
-<table cellpadding=0>
-<TR><TD WIDTH=100>/<TD>$B8=:_$N%+!<%=%k0LCV$+$i%U%!%$%kKvHx$K8~$+$C$F@55,I=8=$r8!:w$7$^$9!%(B
-<TR><TD>?<TD>$B8=:_$N%+!<%=%k0LCV$+$i%U%!%$%k$N@hF,$K8~$+$C$F@55,I=8=$r8!:w$7$^$9!%(B
-<TR><TD>n<TD>$B<!$r8!:w$7$^$9!%(B
-</table>
-
-<H5>$B%^!<%/A`:n(B</H5>
-<table cellpadding=0>
-<TR><TD WIDTH=100>C-SPC<TD>$B%^!<%/$r@_Dj!?2r=|$7$^$9!%%^!<%/$OH?E>I=<($5$l$^$9!%(B
-<TR><TD>ESC p<TD>$B0l$DA0$N%^!<%/$K0\F0$7$^$9!%(B
-<TR><TD>ESC n<TD>$B0l$D8e$N%^!<%/$K0\F0$7$^$9!%(B
-<TR><TD>"<TD>$B@55,I=8=$G;XDj$5$l$?J8;zNs$rA4$F%^!<%/$7$^$9!%(B
-</table>
-
-<H5>$B$=$NB>(B</H5>
-<table cellpadding=0>
-<TR><TD WIDTH=100>!<TD>$B%7%'%k%3%^%s%I$r<B9T$7$^$9!%(B
-<TR><TD>H, ?<TD>$B%X%k%W%U%!%$%k$rI=<($7$^$9!%(B
-<TR><TD>o<TD>$B%*%W%7%g%s@_Dj%Q%M%k$rI=<($7$^$9!%(B
-<TR><TD>C-k</TD> <TD>$B%/%C%-!<0lMw$rI=<((B</TD></TR>
-<TR><TD>C-c<TD>$BJ8=q$NFI$_9~$_$rCfCG$7$^$9!%(B
-<TR><TD>C-z</TD><TD>$B%5%9%Z%s%I$7$^$9!%(B</TD></TR>
-<TR><TD>q<TD>w3m $B$r=*N;$7$^$9!%%*%W%7%g%s$N@_Dj$K$h$C$F!$=*N;$9$k$+$I$&$+3NG'$7$^$9!%(B
-<TR><TD>Q<TD>$B3NG'$;$:$K(B w3m $B$r=*N;$7$^$9!%(B
-</table>
-
-<H5>$B9TJT=8%b!<%I(B</H5>
-$B2hLL$N:G2<9T$GJ8;zNs$rF~NO$9$k>l9g$KM-8z$J%-!<A`:n$G$9!%(B
-<table cellpadding=0>
-<TR><TD WIDTH=100>C-f<TD>$B%+!<%=%k$r1&$K0\F0$7$^$9!%(B
-<TR><TD>C-b<TD>$B%+!<%=%k$r:8$K0\F0$7$^$9!%(B
-<TR><TD>C-h<TD>$B%+!<%=%k$ND>A0$NJ8;z$r:o=|$7$^$9!%(B
-<TR><TD>C-d<TD>$B%+!<%=%k0LCV$NJ8;z$r:o=|$7$^$9!%(B
-<TR><TD>C-k<TD>$B%+!<%=%k0LCV$+$i8e$r:o=|$7$^$9!%(B
-<TR><TD>C-u<TD>$B%+!<%=%k0LCV$+$iA0$r:o=|$7$^$9!%(B
-<TR><TD>C-a<TD>$BJ8;zNs$N@hF,$K0\F0$7$^$9!%(B
-<TR><TD>C-e<TD>$BJ8;zNs$N:G8e$K0\F0$7$^$9!%(B
-<TR><TD>SPC<TD>$B%U%!%$%kL>F~NO;~$K!$%U%!%$%kL>$rJd40$7$^$9!%(B
-<TR><TD>RETURN<TD>$BF~NO$r=*N;$7$^$9!%(B
-</table>
-
-<DIV>
-<A HREF="index">$B$3$N%Z%$%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<DIV>
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-</DIV>
-
-</BODY>
-</HTML>
-
diff --git a/w3m-doc/prologue.html.in b/w3m-doc/prologue.html.in deleted file mode 100644 index 922bc4b..0000000 --- a/w3m-doc/prologue.html.in +++ /dev/null @@ -1,99 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-
-@include define.wd
-@include contain.wd
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
-<TITLE>PROLOGUE - $B$O$8$a$K(B -</title>
-</HEAD>
-
-<BODY>
-
-<H1><A NAME="index">$B$O$8$a$K(B</A></H1>
-
-<UL>
- <LI><A HREF="#summary">w3m $B$H$O(B</A>
- <LI><A HREF="#glossary">$BMQ8l$N@bL@(B</A>
- <LI><A HREF="#disclaimer">$BCm0U;v9`(B</A>
- <LI><A HREF="@DOC.copyright@">$BCx:n8"!"%i%$%;%s%9(B</A>
- <LI><A HREF="#confirmation">$BF0:n3NG'(B OS</A>
-</UL>
-
-<DIV>
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="summary">w3m $B$H$O(B</A></H2>
-<!-- w3m $B$H$O(B -->
-<DIV>
-<P>$B!!(Bw3m $B$O!"(BWorld Wide Web $B$KBP1~$7$?%F%-%9%H%Y!<%9$N%Z!<%8%c$G$9!#(Bkterm $B$J$I$N%-%c%i%/%?C<Kv>e$G!"%m!<%+%k%U%!%$%k$r8+$?$j!"(BWWW $B$NFbMF$r8+$?$j$9$k$3$H$,$G$-$^$9!#(B<BR>
-<P>$B!!(Bw3m $B$O!"(Bfm $B$H$$$&%Z!<%8%c$r%Y!<%9$H$7$F:n$i$l$^$7$?!#(Bfm $B$K$D$$$F$N>\:Y$O!"(B<A HREF="@README.fm@">README.fm</A> $B$r$*FI$_$/$@$5$$!#(Bw3m $B$N%Z!<%8%c$H$7$F$N4pK\E*$JFCD'$O!"(Bfm $B$H$[$H$s$IF1$8$G$9!#(B<BR>
-<P>$B!!(Bw3m $BFH<+$NFCD'$H$7$F$O!"<!$N$h$&$J$b$N$,$"$j$^$9!#(B<BR>
-<P><UL>
- <LI>WWW $BBP1~$J$N$G!"(BHTML $B$NJ8>O$rFI$s$G$$$k;~$K$O!"$=$NCf$N%j%s%/$rC)$C$?$j2hA|$r8+$k;v$,$G$-$k!#(B
- <LI>Internet message $BI=<($N$?$a$N%b!<%I$,$"$k!#$3$N;~!"(BContent-Type: $B$,(B text/html $B$N>l9g$O!"<+F0E*$K(B HTML $B$NJ8=q$H$7$FI=<($9$k!#$^$?!"<+NO$G(B MIME header $B$N%G%3!<%I$r$9$k!#(B
- <LI>$B8+$F$$$k(B plain text $BJ8=qCf$K(B URL $BI=5-$,$"$C$?>l9g!"$=$NItJ,$+$i%j%s%/$r$?$I$k;v$,$G$-$k!#(B
- </UL>
-<BR>
-<A HREF="#index">$B$3$N%Z%$%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="glossary">$BMQ8l$N@bL@(B</A></H2>
-<!-- $B@bL@$NET9g>e$KI,MW$JMQ8l@bL@(B -->
-<DIV>
-<A HREF="#index">$B$3$N%Z%$%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="disclaimer">$BCm0U;v9`(B</A></H2>
-<!-- $BCm0U;v9`(B -->
-<DIV>
-<P>$B$3$N%=%U%H%&%'%"$K$h$C$FMxMQ<T$^$?$OBh;0<T$,2?$i$+$NHo32$r<u$1$?>l9g!":n<T$O$=$N@UG$$r0l@Z$*$$$^$;$s!#$3$N;v$r>5Bz$9$k8B$j$K$*$$$F!"$3$N%=%U%H%&%'%"$O!"C/$G$b:n<T$KCG$j$J$/MxMQ!&2~JQ!&G[I[$G$-$^$9!#(B<BR>
-<P>
-<A HREF="#index">$B$3$N%Z%$%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2>$BCx:n8"!"%i%$%;%s%9(B</H2>
-<DIV>
-<P>$B!!(B<A HREF="@DOC.copyright@">$BCx:n8"!"%i%$%;%s%9(B</A>$B$r;2>H$/$@$5$$!#(B
-</DIV>
-<DIV>
-<A HREF="#index">$B$3$N%Z%$%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<H2><A NAME="confirmation">$BF0:n3NG'(BOS</A></H2>
-<!-- $BF0:n3NG'(BOS -->
-<DIV>
-<P>$B!!8=:_!"F0:n$,3NG'$5$l$F$$$k(B OS $B$O0J2<$NDL$j$G$9!#(B
-<BLOCKQUOTE>
- <TABLE BORDER="0">
- <TR><TD ALIGN="left">SunOS4.1.x</TD>
- <TR><TD ALIGN="left">HP-UX 9.x, 10.x</TD>
- <TR><TD ALIGN="left">Soraris2.5.x</TD>
- <TR><TD ALIGN="left">Linux 2.0.30</TD>
- <TR><TD ALIGN="left">FreeBSD 2.2.8, 3.1, 3.2, 4.6</TD>
- <TR><TD ALIGN="left">NetBSD/macppc, m68k</TD>
- <TR><TD ALIGN="left">EWS4800 Release12.2 Rev.A</TD>
- <TR><TD ALIGN="left">Digital UNIX: v3.2D, v4.0D</TD>
- <TR><TD ALIGN="left">IRIX 5.3, IRIX 6.5</TD>
- <TR><TD ALIGN="left">OS/2 with emx</TD>
- <TR><TD ALIGN="left">Windows 9x/NT with Cygwin32 b20.1</TD>
- <TR><TD ALIGN="left">MS-DOS with DJGPP and WATT32 packet drive</TD>
- <TR><TD ALIGN="left">MacOS X Server</TD>
- <TR><TD ALIGN="left">MacOS X 10.1, 10.2</TD>
- </TABLE>
-</BLOCKQUOTE>
-<A HREF="#index">$B$3$N%Z%$%8$N@hF,$KLa$k(B</A>
-</DIV>
-<HR>
-
-<A HREF="@DOC.index@">$B%H%C%W%Z%$%8$KLa$k(B</A>
-
-</BODY>
-</HTML>
diff --git a/w3m-doc/sample/CVS/Entries b/w3m-doc/sample/CVS/Entries deleted file mode 100644 index 1207c1a..0000000 --- a/w3m-doc/sample/CVS/Entries +++ /dev/null @@ -1,9 +0,0 @@ -/README/1.1.1.1/Thu Nov 8 05:18:53 2001// -/define.wd/1.1.1.1/Thu Nov 8 05:18:53 2001// -/html.wd/1.1.1.1/Thu Nov 8 05:18:53 2001// -/keymap.cgi/1.1.1.1/Thu Nov 8 05:18:54 2001// -/s.wd/1.1.1.1/Thu Nov 8 05:18:54 2001// -/sample.html/1.1.1.1/Thu Nov 8 05:18:54 2001// -/sample.wd/1.1.1.1/Thu Nov 8 05:18:53 2001// -/w3mdoc.pl/1.1.1.1/Thu Nov 8 05:18:53 2001// -D diff --git a/w3m-doc/sample/CVS/Repository b/w3m-doc/sample/CVS/Repository deleted file mode 100644 index d328633..0000000 --- a/w3m-doc/sample/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/w3m-doc/sample diff --git a/w3m-doc/sample/CVS/Root b/w3m-doc/sample/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/w3m-doc/sample/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/w3m-doc/sample/README b/w3m-doc/sample/README deleted file mode 100644 index 7bb9dab..0000000 --- a/w3m-doc/sample/README +++ /dev/null @@ -1,41 +0,0 @@ - -使い方 - perl w3mdoc.pl sample.wd > sample.html - -展開されるもの - -* @xxx.yyy@ - - @define 〜 @end 内で定義された値に展開される。 - -* @YYY(xxx)@ - - @code 〜 @end 内で定義された関数を呼び出して展開される。 - - 例) - URL(xxx) xxx.url - LINK(xxx) <A HREF="xxx.url">xxx.title</A> - MAILTO(xxx) <A HREF="mailto:xxx.address">xxx.name</A> - -コマンド一覧 - -* 定義 - @define - xxx.yyy zzz - @end - - xxx.yyy を zzz と定義する。xxx は以下の関数の引数にもなる。 - 例は define.wd を参照。 - -* コード(関数定義) - @code - コード - @end - - w3mdoc を実装している言語のコードを直接書く。とりあえず perl5。 - 例は html.wd を参照。 - -* インクルード - @include file - - ファイルを include する。 diff --git a/w3m-doc/sample/define.wd b/w3m-doc/sample/define.wd deleted file mode 100644 index f588f4c..0000000 --- a/w3m-doc/sample/define.wd +++ /dev/null @@ -1,4 +0,0 @@ -@define -hsaka.url http://www2u.biglobe.ne.jp/~hsaka/ -hsaka.title 坂本浩則のホームページ -@end diff --git a/w3m-doc/sample/html.wd b/w3m-doc/sample/html.wd deleted file mode 100644 index 1b1d7f2..0000000 --- a/w3m-doc/sample/html.wd +++ /dev/null @@ -1,18 +0,0 @@ -@code -sub URL { - $_[0]->CHECK(qw(url)); - $_[0]->{url}; -} -sub LINK { - $_[0]->CHECK(qw(url title)); - "<A HREF=\"$_[0]->{url}\">$_[0]->{title}</A>"; -} -sub LINK_SEC { - $_[0]->CHECK(qw(url section title)); - "<A HREF=\"$_[0]->{url}\">$_[0]->{section} $_[0]->{title}</A>"; -} -sub MAILTO { - $_[0]->CHECK(qw(address name)); - "<A HREF=\"mailto:$_[0]->{address}\">$_[0]->{name}</A>"; -} -@end diff --git a/w3m-doc/sample/keymap.cgi b/w3m-doc/sample/keymap.cgi deleted file mode 100755 index f68f5fb..0000000 --- a/w3m-doc/sample/keymap.cgi +++ /dev/null @@ -1,268 +0,0 @@ -#!/usr/local/bin/perl - -$QUERY = $ENV{'QUERY_STRING'}; -$KEYMAP = "$ENV{'HOME'}/.w3m/keymap"; - -if ($QUERY) { - # &write_keymap($QUERY); - print <<EOF; -Content-Type: text/html -w3m-control: DELETE_PREVBUF -w3m-control: BACK - -EOF - exit; -} -&init_func(); -@key = (); -@func = (); -@data = (); -open(KEYMAP, $KEYMAP); -while (<KEYMAP>) { - s/^keymap\s+// || next; - (($k, $_) = &getQWord($_)) || next; - (($f, $_) = &getWord($_)) || next; - $FUNC_EXIST{$f} || next; - ($d, $_) = &getQWord($_); - push(@key, $k); - push(@func, $f); - push(@data, $d); -} -close(KEYMAP); - -$N = @key; - -print <<EOF; -Content-Type: text/html - -<head><title>Keymap Setting</title></head> -<h1>Keymap Setting</h1> -<form action="file:///\$LIB/keymap.cgi"> -<table> -<tr><td> Key<td> Command<td> Argument -<tr><td><input name=k_$N size=6> -<td><select name=f_$N> -EOF -&print_func(); -print <<EOF; -</select> -<td><input name=d_$N> -<td><input type=submit name=ok value=Ok> -<tr><td colspan=4><hr> -EOF -$i = 0; -while(@key) { - $k = &Q(shift @key); - $f = shift @func; - $d = &Q(shift @data); - print <<EOF; -<tr><td><input type=hidden name=k_$i value=\"$k\"> $k -<td><select name=f_$i> -EOF - &print_func($f); - print <<EOF; -</select> -<td><input name=d_$i value=\"$d\"> -<td><input type=checkbox name=del_$i>Delete -EOF - $i++; -} -print <<EOF; -</table> -</form> -EOF - -sub write_keymap { - local($query) = @_; - @key = (); - @func = (); - @data = (); - - for $q (split('&', $query)) { - ($_, $d) = split('=', $q); - if (s/^k_//) { - $key[$_] = $d; - } elsif (s/^f_//) { - $func[$_] = $d; - } elsif (s/^d_//) { - $data[$_] = $d; - } elsif (s/^del_//) { - $del[$_] = 1; - } - } - open(KEYMAP, "> ${KEYMAP}") || next; - while(@key) { - $k = &UQ(shift @key); - $f = shift @func; - $d = &UQ(shift @data); - ($f =~ /^\w/) || next; - (shift @del) && next; - print KEYMAP "keymap\t$k\t$f"; - if ($d ne '') { - if ($d =~ /[\"\'\\\s]/) { - $d =~ s/([\"\\])/\\$1/g; - print KEYMAP "\t\t\"$d\""; - } else { - $d =~ s/([\"\\])/\\$1/g; - print KEYMAP "\t\t$d"; - } - } - print KEYMAP "\n"; - } - close(KEYMAP); -} - -sub UQ { - local($_) = @_; - s/\+/ /g; - s/%([\da-f][\da-f])/pack('c', hex($1))/egi; - return $_; -} - -sub Q { - local($_) = @_; - s/\&/\&/g; - s/\</\</g; - s/\>/\>/g; - s/\"/\"/g; - return $_; -} - -sub getQWord { - local($_) = @_; - local($x) = ''; - s/^\s+//; - while($_ ne '') { - if (s/^\'(([^\'\\]|\\.)*)\'// || - s/^\"(([^\"\\]|\\.)*)\"// || - s/^([^\'\"\\\s]+)// || s/^\\(.)//) { - $x .= $1; - } else { - last; - } - } - return ($x, $_); -} - -sub getWord { - local($_) = @_; - s/^\s+//; - s/^(\S+)// || return (); - return ($1, $_); -} - -sub print_func { - local($f) = @_; - for(@FUNC_LIST) { - if ($f eq $_) { - print "<option selected>$_\n"; - } else { - print "<option>$_\n"; - } - } -} - -sub init_func { - @FUNC_LIST = (); - %FUNC_EXIST = (); - while(<DATA>) { - chop; - push(@FUNC_LIST, $_); - $FUNC_EXIST{$_} = 1; - } -} - -__END__ -- - - - - - - -ABORT -ADD_BOOKMARK -BACK -BEGIN -BOOKMARK -CENTER_H -CENTER_V -COOKIE -DELETE_PREVBUF -DICT_WORD -DICT_WORD_AT -DOWN -DOWNLOAD -EDIT -EDIT_SCREEN -END -ESCBMAP -ESCMAP -EXEC_SHELL -EXIT -EXTERN -EXTERN_LINK -FRAME -GOTO -GOTO_LINE -GOTO_LINK -HELP -HISTORY -INFO -INIT_MAILCAP -INTERRUPT -LEFT -LINE_BEGIN -LINE_END -LINE_INFO -LINK_BEGIN -LINK_END -LOAD -MAIN_MENU -MARK -MARK_MID -MARK_URL -MENU -MOUSE -MOUSE_TOGGLE -MOVE_DOWN -MOVE_LEFT -MOVE_RIGHT -MOVE_UP -NEXT_LINK -NEXT_MARK -NEXT_PAGE -NEXT_WORD -NOTHING -NULL -OPTIONS -PCMAP -PEEK -PEEK_LINK -PIPE_SHELL -PREV_LINK -PREV_MARK -PREV_PAGE -PREV_WORD -PRINT -QUIT -READ_SHELL -REDRAW -REG_MARK -RELOAD -RIGHT -SAVE -SAVE_IMAGE -SAVE_LINK -SAVE_SCREEN -SEARCH -SEARCH_BACK -SEARCH_FORE -SEARCH_NEXT -SEARCH_PREV -SELECT -SHELL -SHIFT_LEFT -SHIFT_RIGHT -SOURCE -SUSPEND -UP -VIEW -VIEW_BOOKMARK -VIEW_IMAGE -WHEREIS -WRAP_TOGGLE diff --git a/w3m-doc/sample/s.wd b/w3m-doc/sample/s.wd deleted file mode 100644 index 02ae4ce..0000000 --- a/w3m-doc/sample/s.wd +++ /dev/null @@ -1,8 +0,0 @@ -@include html.wd -@include define.wd - -これはサンプルです。 -<P> -\@hsaka.url\@ = @hsaka.url@ -<BR> -\@LINK(hsaka)\@ = @LINK(hsaka)@ diff --git a/w3m-doc/sample/sample.html b/w3m-doc/sample/sample.html deleted file mode 100644 index b58b0c7..0000000 --- a/w3m-doc/sample/sample.html +++ /dev/null @@ -1,6 +0,0 @@ - -これはサンプルです。 -<P> -@hsaka.url@ = http://www2u.biglobe.ne.jp/~hsaka/ -<BR> -@LINK(hsaka)@ = <A HREF="http://www2u.biglobe.ne.jp/~hsaka/">坂本浩則のホームページ</A> diff --git a/w3m-doc/sample/sample.wd b/w3m-doc/sample/sample.wd deleted file mode 100644 index 0edfd0c..0000000 --- a/w3m-doc/sample/sample.wd +++ /dev/null @@ -1,11 +0,0 @@ -@include html.wd -@define -hsaka.url http://www2u.biglobe.ne.jp/~hsaka/ -hsaka.title 坂本浩則のホームページ -@end - -これはサンプルです。 -<P> -\@hsaka.url\@ = @hsaka.url@ -<BR> -\@LINK(hsaka)\@ = @LINK(hsaka)@ diff --git a/w3m-doc/sample/w3mdoc.pl b/w3m-doc/sample/w3mdoc.pl deleted file mode 100755 index 6097926..0000000 --- a/w3m-doc/sample/w3mdoc.pl +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/local/bin/perl - -package w3mdoc; - -sub CHECK { - my($a, @b) = @_; - for(@b) { - defined($a->{$_}) || die("\"$a->{id}.$_\" is not defined.\n"); - } -} - -sub DEF { - my($a, $b, $c) = @_; - - if (! defined($data->{$a})) { - $data->{$a} = bless { id => $a }; - } - $data->{$a}{$b} = $c; -} - -sub SUB { - local($_) = @_; - my($a, $b); - - if (/^\@(\w+)\.(\w+)\@$/) { - ($a, $b) = ($1, $2); - defined($data->{$a}) || die("\"$a.$b\" is not defined.\n"); - $data->{$a}->CHECK($b); - return $data->{$a}{$b}; - } - if (/^\@(\w+)\((\w+)\)\@$/) { - ($a, $b) = ($1, $2); - defined(&{$a}) || die("\"$a()\" is not defined.\n"); - defined($data->{$b}) || die("\"$a($b)\" is not defined.\n"); - return $data->{$b}->$a(); - } - return '@'; -} - -package main; - -@ARGV || unshift(@ARGV, "-"); -while(@ARGV) { - $file = shift @ARGV; - &make_doc($file); -} - -sub make_doc { - my($file) = @_; - my($in_def, $in_code, $code, $a, $b); - local(*F); - local($_); - - open(F, $file) || die("$file: $!\n"); - $in_def = 0; - $in_code = 0; - while(<F>) { - if ($in_def) { - if (/^\@end/) { - $in_def = 0; - next; - } - s/^\s+//; - s/^(\w+)\.(\w+)// || next; - ($a, $b) = ($1, $2); - s/^\s+//; - s/\s+$//; - &w3mdoc::DEF($a, $b, $_); - next; - } - if ($in_code) { - if (/^\@end/) { - eval "package w3mdoc; $code"; - $in_code = 0; - next; - } - $code .= $_; - next; - } - if (/^\@define/) { - $in_def = 1; - next; - } - if (/^\@code/) { - $in_code = 1; - $code = ""; - next; - } - if (s/^\@include\s+//) { - s/\s+$//; - &make_doc($_); - next; - } - if (/^\@/) { - die("unknown command: $_"); - } - s/(\\@|\@(\w+(\.\w+|\(\w+\)))\@)/&w3mdoc::SUB($1)/eg; - print; - } - close(F); -} - diff --git a/w3m-doc/w3mdoc.pl b/w3m-doc/w3mdoc.pl deleted file mode 100755 index 6097926..0000000 --- a/w3m-doc/w3mdoc.pl +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/local/bin/perl - -package w3mdoc; - -sub CHECK { - my($a, @b) = @_; - for(@b) { - defined($a->{$_}) || die("\"$a->{id}.$_\" is not defined.\n"); - } -} - -sub DEF { - my($a, $b, $c) = @_; - - if (! defined($data->{$a})) { - $data->{$a} = bless { id => $a }; - } - $data->{$a}{$b} = $c; -} - -sub SUB { - local($_) = @_; - my($a, $b); - - if (/^\@(\w+)\.(\w+)\@$/) { - ($a, $b) = ($1, $2); - defined($data->{$a}) || die("\"$a.$b\" is not defined.\n"); - $data->{$a}->CHECK($b); - return $data->{$a}{$b}; - } - if (/^\@(\w+)\((\w+)\)\@$/) { - ($a, $b) = ($1, $2); - defined(&{$a}) || die("\"$a()\" is not defined.\n"); - defined($data->{$b}) || die("\"$a($b)\" is not defined.\n"); - return $data->{$b}->$a(); - } - return '@'; -} - -package main; - -@ARGV || unshift(@ARGV, "-"); -while(@ARGV) { - $file = shift @ARGV; - &make_doc($file); -} - -sub make_doc { - my($file) = @_; - my($in_def, $in_code, $code, $a, $b); - local(*F); - local($_); - - open(F, $file) || die("$file: $!\n"); - $in_def = 0; - $in_code = 0; - while(<F>) { - if ($in_def) { - if (/^\@end/) { - $in_def = 0; - next; - } - s/^\s+//; - s/^(\w+)\.(\w+)// || next; - ($a, $b) = ($1, $2); - s/^\s+//; - s/\s+$//; - &w3mdoc::DEF($a, $b, $_); - next; - } - if ($in_code) { - if (/^\@end/) { - eval "package w3mdoc; $code"; - $in_code = 0; - next; - } - $code .= $_; - next; - } - if (/^\@define/) { - $in_def = 1; - next; - } - if (/^\@code/) { - $in_code = 1; - $code = ""; - next; - } - if (s/^\@include\s+//) { - s/\s+$//; - &make_doc($_); - next; - } - if (/^\@/) { - die("unknown command: $_"); - } - s/(\\@|\@(\w+(\.\w+|\(\w+\)))\@)/&w3mdoc::SUB($1)/eg; - print; - } - close(F); -} - diff --git a/w3mbookmark.c b/w3mbookmark.c index 4355536..a306f26 100644 --- a/w3mbookmark.c +++ b/w3mbookmark.c @@ -79,6 +79,7 @@ print_bookmark_panel(char *bmark, char *url, char *title, char *charset) } } printf("</select>\n"); + fclose(f); } printf(bkmark_src2, html_quote(url), html_quote(title)); } @@ -99,7 +100,7 @@ create_new_bookmark(char *bmark, char *section, char *title, char *url, fprintf(f, "<body>\n<h1>Bookmarks</h1>\n"); fprintf(f, "<h2>%s</h2>\n<ul>\n", section); fprintf(f, "<li><a href=\"%s\">%s</a>\n", url, title); - fprintf(f, end_section); + fprintf(f, "%s", end_section); fprintf(f, "</ul>\n</body>\n</html>\n"); fclose(f); } @@ -168,7 +169,10 @@ insert_bookmark(char *bmark, struct parsed_tagarg *data) /* In this case, a new bookmark is appeneded after the bookmark file */ return create_new_bookmark(bmark, section, title, url, "a"); } - f = fopen(bmark, "w"); + if ((f = fopen(bmark, "w")) == NULL) { + printf("\nCannot open bookmark %s\n", bmark); + return FALSE; + } while (tl->nitem) { fputs(popText(tl), f); } diff --git a/w3mhelp-lynx_en.html.in b/w3mhelp-lynx_en.html.in index 7448877..d073b0f 100644 --- a/w3mhelp-lynx_en.html.in +++ b/w3mhelp-lynx_en.html.in @@ -43,20 +43,20 @@ w3m</A> <table cellpadding=0> <TR><TD WIDTH=100>RET, C-f, Right arrow<TD>Follow hyperlink <TR><TD>d, ESC RET<TD>Save link to file -<TR><TD>u<TD>Peek link URL -<TR><TD>i<TD>Peek image URL +<TR><TD>u<TD>Peek at link URL +<TR><TD>i<TD>Peek at image URL <TR><TD>I<TD>View inline image <TR><TD>ESC I<TD>Save inline image to file -<TR><TD>:<TD>Mark URL-like strings as anchors -<TR><TD>ESC :<TD>Mark Message-ID-like strings as news anchors -<TR><TD>c<TD>Peek current URL +<TR><TD>:<TD>Mark URL-like strings as links +<TR><TD>ESC :<TD>Mark Message-ID-like strings as links +<TR><TD>c<TD>Peek at current URL <TR><TD>=<TD>Display information about current document -<TR><TD>C-h<TD>View history of URL -<TR><TD>F<TD>Render frame +<TR><TD>C-h<TD>View browser history +<TR><TD>F<TD>Render frames <TR><TD>M<TD>Browse current document using external browser -(use 2M and 3M to invoke second and third browser) +(prefix 2, 3, ..., or 9 to invoke alternate configured browsers, e.g. 3 M) <TR><TD>ESC M<TD>Browse link using external browser -(use 2ESC M and 3ESC M to invoke second and third browser) +(prefixed as above, e.g. 3ESC M) </table> <H2>File/Stream operation</H2> @@ -98,7 +98,7 @@ w3m</A> <table cellpadding=0> <TR><TD WIDTH=100>/, C-s<TD>Search forward <TR><TD>n<TD>Search next -<TR><TD>w<TD>Toggle wrap search mode +<TR><TD>w<TD>Toggle search wrap mode </table> <H2>Mark operation</H2> @@ -121,7 +121,7 @@ w3m</A> <TR><TD>Q<TD>Quit without confirmation </table> -<H2>Line-edit mode</H2> +<H2>Line-editing mode</H2> <table cellpadding=0> <TR><TD WIDTH=100>C-f<TD>Move cursor forward <TR><TD>C-b<TD>Move cursor backward diff --git a/w3mhelp-lynx_ja.html.in b/w3mhelp-lynx_ja.html.in index d160984..708a09a 100644 --- a/w3mhelp-lynx_ja.html.in +++ b/w3mhelp-lynx_ja.html.in @@ -1,6 +1,6 @@ <HTML> <HEAD> -<TITLE>w3m ヘルプページ</TITLE> +<TITLE>w3m 若</TITLE> </HEAD> <BODY> @@ -8,141 +8,141 @@ ******* <A HREF="http://w3m.sourceforge.net/">w3m</A> (WWW-wo-Miru) Version @CURRENT_VERSION@ by - <A HREF="mailto:aito@fw.ipsj.or.jp">A.ITO(伊藤彰則)</A> + <A HREF="mailto:aito@fw.ipsj.or.jp">A.ITO(篌ゅ衆)</A> ******** <BR> - ***** lynx-like キー割り当て ***** + ***** lynx-like 弱蚊綵 ***** </CENTER> <A HREF="w3mhelp-lynx_en.html">English</A> -<H3>ページ/カーソル移動</H3> +<H3>若/若純腱糸</H3> <table cellpadding=0> -<TR><TD>SPC,C-v,+<TD>次のページを表示します. -<TR><TD>b,ESC v,-<TD>前のページを表示します. -<TR><TD>l<TD>カーソルを右に移動します. -<TR><TD>h<TD>カーソルを左に移動します. -<TR><TD>j<TD>カーソルを下に移動します. -<TR><TD>k<TD>カーソルを上に移動します. -<TR><TD>J<TD>画面を1行上にスクロールします. -<TR><TD>K<TD>画面を1行下にスクロールします. -<TR><TD>^<TD>行頭に移動します. -<TR><TD>$<TD>行末に移動します. -<TR><TD>><TD>画面全体を右にずらします.(表示内容を左にずらす) -<TR><TD><<TD>画面全体を左にずらします.(表示内容を右にずらす) -<TR><TD>C-a<TD>文書のいちばん上の行に移動します. -<TR><TD>C-e<TD>文書のいちばん下の行に移動します. -<TR><TD>G<TD>画面下で行番号を入力し,そこで指定した行に移動します. -ここで $ を入力すると,最終行に移動します. -<TR><TD>Z<TD>カーソルのある位置を行の中央に移動します. -<TR><TD>z<TD>カーソルのある行を画面の中央に移動します. -<TR><TD>TAB, C-n, 下矢印<TD>次のリンクに移動します. -<TR><TD>ESC TAB, C-p, 上矢印<TD>前のリンクに移動します. -<TR><TD>C-g<TD>ページ中での現在位置を表示します. +<TR><TD>SPC,C-v,+<TD>罨<若吾茵腓冴障鐚 +<TR><TD>b,ESC v,-<TD>若吾茵腓冴障鐚 +<TR><TD>l<TD>若純劻腱糸障鐚 +<TR><TD>h<TD>若純綏腱糸障鐚 +<TR><TD>j<TD>若純筝腱糸障鐚 +<TR><TD>k<TD>若純筝腱糸障鐚 +<TR><TD>J<TD>脂≪1茵筝鴻若障鐚 +<TR><TD>K<TD>脂≪1茵筝鴻若障鐚 +<TR><TD>^<TD>茵腱糸障鐚 +<TR><TD>$<TD>茵腱糸障鐚 +<TR><TD>><TD>脂√篏劻障鐚(茵腓阪絎鴻綏) +<TR><TD><<TD>脂√篏綏障鐚(茵腓阪絎鴻劻) +<TR><TD>C-a<TD>吾<違筝茵腱糸障鐚 +<TR><TD>C-e<TD>吾<違筝茵腱糸障鐚 +<TR><TD>G<TD>脂≫ц垩ュ鐚ф絎茵腱糸障鐚 + $ ュ鐚腟茵腱糸障鐚 +<TR><TD>Z<TD>若純篏臀茵筝紊腱糸障鐚 +<TR><TD>z<TD>若純茵脂≪筝紊腱糸障鐚 +<TR><TD>TAB, C-n, 筝√<TD>罨<潟腱糸障鐚 +<TR><TD>ESC TAB, C-p, 筝√<TD>潟腱糸障鐚 +<TR><TD>C-g<TD>若娯賢с憜篏臀茵腓冴障鐚 </table> -<H3>ハイパーリンク操作</H3> +<H3>ゃ若潟篏</H3> <table cellpadding=0> -<TR><TD WIDTH=100>RET, C-f, 右矢印<TD>現在カーソルがあるリンクが指す先の文書を読みこみます. -<TR><TD>d, ESC RET<TD>現在カーソルがあるリンクが指す先の文書をファイルに保存します. -<TR><TD>u<TD>現在カーソルがあるリンクが指す先のURLを表示します. -<TR><TD>i<TD>リンクに関連付けられた画像へのURLを表示します. -<TR><TD>I<TD>現在カーソルがあるリンクに対応する画像を表示します. -<TR><TD>ESC I<TD>現在カーソルがあるリンクが指す画像をファイルに保存します. -<TR><TD>:<TD>URL風の文字列をリンクにします.この機能は,HTMLでない文書を -読んでいるときにも有効です. -<TR><TD>ESC :<TD>Message-ID風の文字列を,news: のリンクにします.この機能は,HTMLでない文書を読んでいるときにも有効です. -<TR><TD>c<TD>現在の文書のURLを表示します. -<TR><TD>=<TD>現在の文書に関する情報を表示します. -<TR><TD>C-h<TD>URL履歴を表示します. -<TR><TD>F<TD><FRAMESET>を含む文書を表示しているときに,<FRAME> -タグの指す複数の文書を1つの文書に変換して表示します. -<TR><TD>M<TD>現在見ているページを,外部ブラウザを使って表示します. -2M, 3M で2番目と3番目のブラウザを使います. -<TR><TD>ESC M<TD>現在のリンク先を,外部ブラウザを使って表示します. -2ESC M, 3ESC M で2番目と3番目のブラウザを使います. +<TR><TD WIDTH=100>RET, C-f, 勆√<TD>憜若純潟吾茯帥帥障鐚 +<TR><TD>d, ESC RET<TD>憜若純潟吾<ゃ篆絖障鐚 +<TR><TD>u<TD>憜若純潟URL茵腓冴障鐚 +<TR><TD>i<TD>潟∫d糸吾URL茵腓冴障鐚 +<TR><TD>I<TD>憜若純潟絲上糸茵腓冴障鐚 +<TR><TD>ESC I<TD>憜若純潟糸<ゃ篆絖障鐚 +<TR><TD>:<TD>URL蘂絖潟障鐚罘純鐚HTMLс吾 +茯с鴻с鐚 +<TR><TD>ESC :<TD>Message-ID蘂絖鐚news: 潟障鐚罘純鐚HTMLс吾茯с鴻с鐚 +<TR><TD>c<TD>憜吾URL茵腓冴障鐚 +<TR><TD>=<TD>憜吾≪宴茵腓冴障鐚 +<TR><TD>C-h<TD>URL絮ユ眼茵腓冴障鐚 +<TR><TD>F<TD><FRAMESET>吾茵腓冴鐚<FRAME> +帥違茲違吾1ゃ吾紊茵腓冴障鐚 +<TR><TD>M<TD>憜荀若吾鐚紊吟篏帥c茵腓冴障鐚 +2M, 3M, ..., 9M 2鐚3鐚9吟篏帥障鐚 +<TR><TD>ESC M<TD>憜潟鐚紊吟篏帥c茵腓冴障鐚 +2ESC M, 3ESC M, ..., 9ESC M 2鐚3鐚9吟篏帥障鐚 </table> -<H3>ファイルとURL関係の操作</H3> +<H3><ゃURL≫篏</H3> <table cellpadding=0> -<TR><TD WIDTH=100>g, U<TD>URLを指定して開きます. -<TR><TD>V<TD>ローカルファイルを指定して開きます. -<TR><TD>@<TD>コマンドを実行し,結果を全部読んでから表示します. -<TR><TD>#<TD>コマンドを実行し,結果を読みこみながら表示します. +<TR><TD WIDTH=100>g, U<TD>URL絎障鐚 +<TR><TD>V<TD>若<ゃ絎障鐚 +<TR><TD>@<TD>潟潟絎茵鐚腟茯с茵腓冴障鐚 +<TR><TD>#<TD>潟潟絎茵鐚腟茯帥帥茵腓冴障鐚 </table> -<H3>バッファ操作</H3> +<H3>≧篏</H3> <table cellpadding=0> -<TR><TD WIDTH=100>B, C-b, 左矢印<TD>現在見ているバッファを削除し,一つ前のバッファを表示します. -<TR><TD>\<TD>HTMLのソースを表示します. -<TR><TD>s<TD>バッファ選択モードに入ります. -<TR><TD>E<TD>現在見ているバッファがローカルファイルの場合,そのファイルをエディタで編集します.エディタを終了した後,そのファイルを再度読み込みます. -<TR><TD>C-l, C-w<TD>画面を再描画します. -<TR><TD>R, C-r<TD>バッファを再度読み込みます. -<TR><TD>S, p<TD>バッファの表示内容をファイルに保存します. -<TR><TD>ESC s<TD>HTMLのソースをファイルに保存します.v でソースを表示して S で -保存するのとほぼ同じですが,ESC s で保存したファイルは漢字コードがオリジナルの -ままであるのに対して,v S で保存すると現在表示に使っている漢字コードに変換され -て保存されます. -<TR><TD>ESC e<TD>現在表示されているバッファを,表示されている形式のまま -エディタで編集します. +<TR><TD WIDTH=100>B, C-b, 綏√<TD>憜荀<ゃ鐚筝ゅ<茵腓冴障鐚 +<TR><TD>\<TD>HTML純若鴻茵腓冴障鐚 +<TR><TD>s<TD>♂御≪若ャ障鐚 +<TR><TD>E<TD>憜荀<若<ゃ翫鐚<ゃc帥х隈障鐚c帥腟篋緇鐚<ゃ綺茯粋昭帥障鐚 +<TR><TD>C-l, C-w<TD>脂≪祉障鐚 +<TR><TD>R, C-r<TD><綺茯粋昭帥障鐚 +<TR><TD>S, p<TD><茵腓阪絎鴻<ゃ篆絖障鐚 +<TR><TD>ESC s<TD>HTML純若鴻<ゃ篆絖障鐚v с純若鴻茵腓冴 S +篆絖祉弱с鐚ESC s т絖<ゃ羲√潟若吾 +障障с絲障鐚v S т絖憜茵腓冴篏帥c羲√潟若紊 +篆絖障鐚 +<TR><TD>ESC e<TD>憜茵腓冴<鐚茵腓冴綵√障 +c帥х隈障鐚 </table> -<H3>バッファ選択モード</H3> -"s" でバッファ選択モードに入ったときのキー操作です. +<H3>♂御≪若</H3> +"s" с♂御≪若ャc惹篏с鐚 <table cellpadding=0> -<TR><TD WIDTH=100>k,C-p<TD>一つ上のバッファを選択します. -<TR><TD>j,C-n<TD>一つ下のバッファを選択します. -<TR><TD>D<TD>現在選択しているバッファを削除します. -<TR><TD>RET<TD>現在選択しているバッファを表示します. +<TR><TD WIDTH=100>k,C-p<TD>筝や<御障鐚 +<TR><TD>j,C-n<TD>筝や<御障鐚 +<TR><TD>D<TD>憜御<ゃ障鐚 +<TR><TD>RET<TD>憜御<茵腓冴障鐚 </table> -<H3>ブックマーク操作</H3> +<H3>若篏</H3> <table cellpadding=0> -<TR><TD WIDTH=100>v, ESC b<TD>ブックマークを読み込みます. -<TR><TD>a, ESC a<TD>現在見ているページをブックマークに追加します. +<TR><TD WIDTH=100>v, ESC b<TD>若茯粋昭帥障鐚 +<TR><TD>a, ESC a<TD>憜荀若吾若菴遵障鐚 </table> -<H3>検索</H3> +<H3>罎膣</H3> <table cellpadding=0> -<TR><TD WIDTH=100>/,C-s<TD>現在のカーソル位置からファイル末尾に向かって正規表現を検索します. -<TR><TD>n<TD>次を検索します. -<TR><TD>w<TD>折り返し検索モードを切り換えます. +<TR><TD WIDTH=100>/,C-s<TD>憜若純篏臀<ゃ絨障c罩h頫憗罎膣≪障鐚 +<TR><TD>n<TD>罨<罎膣≪障鐚 +<TR><TD>w<TD>菴罎膣≪≪若障鐚 </table> -<H3>マーク操作</H3> +<H3>若篏</H3> <table cellpadding=0> -<TR><TD WIDTH=100>C-SPC<TD>マークを設定/解除します.マークは反転表示されます. -<TR><TD>P<TD>一つ前のマークに移動します. -<TR><TD>N<TD>一つ後のマークに移動します. -<TR><TD>"<TD>正規表現で指定された文字列を全てマークします. +<TR><TD WIDTH=100>C-SPC<TD>若荐絎鐚頵iゃ障鐚若荵∵;腓冴障鐚 +<TR><TD>P<TD>筝ゅ若腱糸障鐚 +<TR><TD>N<TD>筝ゅ若腱糸障鐚 +<TR><TD>"<TD>罩h頫憗ф絎絖若障鐚 </table> -<H3>その他</H3> +<H3>篁</H3> <table cellpadding=0> -<TR><TD WIDTH=100>!<TD>シェルコマンドを実行します. -<TR><TD>H, ?<TD>ヘルプファイルを表示します. -<TR><TD>o<TD>オプション設定パネルを表示します. -<TR><TD>C-k</TD> <TD>クッキー一覧を表示</TD></TR> -<TR><TD>C-c<TD>文書の読み込みを中断します. -<TR><TD>C-z</TD><TD>サスペンドします.</TD></TR> -<TR><TD>q<TD>w3mを終了します.オプションの設定によって,終了するかどうか確認します. -<TR><TD>Q<TD>確認せずにw3mを終了します. +<TR><TD WIDTH=100>!<TD>激с潟潟絎茵障鐚 +<TR><TD>H, ?<TD><ゃ茵腓冴障鐚 +<TR><TD>o<TD>激с活┃絎茵腓冴障鐚 +<TR><TD>C-k</TD> <TD>寂荀с茵腓</TD></TR> +<TR><TD>C-c<TD>吾茯粋昭帥筝障鐚 +<TR><TD>C-z</TD><TD>泣鴻潟障鐚</TD></TR> +<TR><TD>q<TD>w3m腟篋障鐚激с潟荐絎c鐚腟篋腆肴障鐚 +<TR><TD>Q<TD>腆肴w3m腟篋障鐚 </table> -<H3>行編集モード</H3> -画面の最下行で文字列を入力する場合に有効なキー操作です. +<H3>茵膩≪若</H3> +脂≪筝茵ф絖ュ翫鴻惹篏с鐚 <table cellpadding=0> -<TR><TD WIDTH=100>C-f<TD>カーソルを右に移動します. -<TR><TD>C-b<TD>カーソルを左に移動します. -<TR><TD>C-h<TD>カーソルの直前の文字を削除します. -<TR><TD>C-d<TD>カーソル位置の文字を削除します. -<TR><TD>C-k<TD>カーソル位置から後を削除します. -<TR><TD>C-u<TD>カーソル位置から前を削除します. -<TR><TD>C-a<TD>文字列の先頭に移動します. -<TR><TD>C-e<TD>文字列の最後に移動します. -<TR><TD>SPC<TD>ファイル名入力時に,ファイル名を補完します. -<TR><TD>RETURN<TD>入力を終了します. +<TR><TD WIDTH=100>C-f<TD>若純劻腱糸障鐚 +<TR><TD>C-b<TD>若純綏腱糸障鐚 +<TR><TD>C-h<TD>若純翫絖ゃ障鐚 +<TR><TD>C-d<TD>若純篏臀絖ゃ障鐚 +<TR><TD>C-k<TD>若純篏臀緇ゃ障鐚 +<TR><TD>C-u<TD>若純篏臀ゃ障鐚 +<TR><TD>C-a<TD>絖腱糸障鐚 +<TR><TD>C-e<TD>絖緇腱糸障鐚 +<TR><TD>SPC<TD><ゃュ鐚<ゃ茖絎障鐚 +<TR><TD>RETURN<TD>ュ腟篋障鐚 </table> diff --git a/w3mhelp-w3m_en.html.in b/w3mhelp-w3m_en.html.in index eb46e8a..a692142 100644 --- a/w3mhelp-w3m_en.html.in +++ b/w3mhelp-w3m_en.html.in @@ -47,21 +47,21 @@ w3m</A> <table cellpadding=0> <TR><TD WIDTH=100>RET<TD>Follow hyperlink <TR><TD>a, ESC RET<TD>Save link to file -<TR><TD>u<TD>Peek link URL -<TR><TD>i<TD>Peek image URL +<TR><TD>u<TD>Peek at link URL +<TR><TD>i<TD>Peek at image URL <TR><TD>I<TD>View inline image <TR><TD>ESC I<TD>Save inline image to file -<TR><TD>:<TD>Mark URL-like strings as anchors -<TR><TD>ESC :<TD>Mark Message-ID-like strings as news anchors -<TR><TD>c<TD>Peek current URL +<TR><TD>:<TD>Mark URL-like strings as links +<TR><TD>ESC :<TD>Mark Message-ID-like strings as links +<TR><TD>c<TD>Peek at current URL <TR><TD>=<TD>Display information about current document <TR><TD>C-g<TD>Show current line number -<TR><TD>C-h<TD>View history of URL -<TR><TD>F<TD>Render frame +<TR><TD>C-h<TD>View browser history +<TR><TD>F<TD>Render frames <TR><TD>M<TD>Browse current document using external browser -(use 2M and 3M to invoke second and third browser) +(prefix 2, 3, ..., or 9 to invoke alternate configured browsers, e.g. 3 M) <TR><TD>ESC M<TD>Browse link using external browser -(use 2ESC M and 3ESC M to invoke second and third browser) +(prefixed as above, e.g. 3ESC M) </table> <H2>File/Stream operation</H2> @@ -105,7 +105,7 @@ w3m</A> <TR><TD>?,C-r<TD>Search backward <TR><TD>n<TD>Search next <TR><TD>N<TD>Search previous -<TR><TD>C-w<TD>Toggle wrap search mode +<TR><TD>C-w<TD>Toggle search wrap mode </table> <H2>Dictionary look-up</H2> @@ -134,7 +134,7 @@ w3m</A> <TR><TD>Q<TD>Quit without confirmation </table> -<H2>Line-edit mode</H2> +<H2>Line-editing mode</H2> <table cellpadding=0> <TR><TD WIDTH=100>C-f<TD>Move cursor forward <TR><TD>C-b<TD>Move cursor backward diff --git a/w3mhelp-w3m_ja.html.in b/w3mhelp-w3m_ja.html.in index 95464ab..95947ca 100644 --- a/w3mhelp-w3m_ja.html.in +++ b/w3mhelp-w3m_ja.html.in @@ -1,6 +1,6 @@ <HTML> <HEAD> -<TITLE>w3m ヘルプ ページ</TITLE> +<TITLE>w3m 若</TITLE> </HEAD> <BODY> @@ -8,148 +8,148 @@ ******* <A HREF="http://w3m.sourceforge.net/">w3m</A> (WWW-wo-Miru) Version @CURRENT_VERSION@ by - <A HREF="mailto:aito@fw.ipsj.or.jp">A.ITO(伊藤彰則)</A> + <A HREF="mailto:aito@fw.ipsj.or.jp">A.ITO(篌ゅ衆)</A> ******** <BR> - ***** キー割り当て ***** + ***** 弱蚊綵 ***** </CENTER> <A HREF="w3mhelp-w3m_en.html">English</A> -<H2>ページ/カーソル移動</H2> +<H2>若/若純腱糸</H2> <TABLE CELLPADDING=0> - <TR> <TD WIDTH=100>SPC,C-v</TD> <TD>次ページ</TD></TR> - <TR> <TD>b,ESC v</TD> <TD>前ページ</TD></TR> - <TR> <TD>l,C-f</TD> <TD>カーソルを右へ移動</TD></TR> - <TR> <TD>h,C-b</TD> <TD>カーソルを左へ移動</TD></TR> - <TR> <TD>j,C-n</TD> <TD>カーソルを下へ移動</TD></TR> - <TR> <TD>k,C-p</TD> <TD>カーソルを上へ移動</TD></TR> - <TR> <TD>J</TD><TD>一行上にスクロール(進む)</TD></TR> - <TR> <TD>K</TD><TD>一行下にスクロール(戻る)</TD></TR> - <TR> <TD>^,C-a</TD><TD>行頭に移動</TD></TR> - <TR> <TD>$,C-e</TD><TD>行末に移動</TD></TR> - <TR> <TD>w</TD><TD>次の単語に移動</TD></TR> - <TR> <TD>W</TD><TD>前の単語に移動</TD></TR> - <TR> <TD>></TD> <TD>右に一画面分シフト</TD></TR> - <TR> <TD><</TD> <TD>左に一画面分シフト</TD></TR> - <TR> <TD>.</TD> <TD>右に一文字分シフト</TD></TR> - <TR> <TD>,</TD> <TD>左に一文字分シフト</TD></TR> - <TR> <TD>g,M-<</TD> <TD>ページの先頭行に移動</TD></TR> - <TR> <TD>G,M-></TD> <TD>ページの最終行に移動</TD></TR> - <TR> <TD>ESC g</TD> <TD>指定行に移動</TD></TR> - <TR> <TD>Z</TD> <TD>カーソルのある位置を行の中央に移動</TD></TR> - <TR> <TD>z</TD> <TD>カーソルのある行を画面の中央に移動</TD></TR> - <TR> <TD>TAB</TD> <TD>次のハイパーリンクに移動</TD></TR> - <TR> <TD>C-u, ESC TAB</TD> <TD>前のハイパーリンクに移動</TD></TR> - <TR> <TD>[</TD> <TD>最初のハイパーリンクに移動</TD></TR> - <TR> <TD>]</TD> <TD>最後のハイパーリンクに移動</TD></TR> + <TR> <TD WIDTH=100>SPC,C-v</TD> <TD>罨<若</TD></TR> + <TR> <TD>b,ESC v</TD> <TD>若</TD></TR> + <TR> <TD>l,C-f</TD> <TD>若純劻悟Щ</TD></TR> + <TR> <TD>h,C-b</TD> <TD>若純綏悟Щ</TD></TR> + <TR> <TD>j,C-n</TD> <TD>若純筝悟Щ</TD></TR> + <TR> <TD>k,C-p</TD> <TD>若純筝悟Щ</TD></TR> + <TR> <TD>J</TD><TD>筝茵筝鴻若(蚊)</TD></TR> + <TR> <TD>K</TD><TD>筝茵筝鴻若(祉)</TD></TR> + <TR> <TD>^,C-a</TD><TD>茵腱糸</TD></TR> + <TR> <TD>$,C-e</TD><TD>茵腱糸</TD></TR> + <TR> <TD>w</TD><TD>罨<茯腱糸</TD></TR> + <TR> <TD>W</TD><TD>茯腱糸</TD></TR> + <TR> <TD>></TD> <TD>劻筝脂√激</TD></TR> + <TR> <TD><</TD> <TD>綏筝脂√激</TD></TR> + <TR> <TD>.</TD> <TD>劻筝絖激</TD></TR> + <TR> <TD>,</TD> <TD>綏筝絖激</TD></TR> + <TR> <TD>g,M-<</TD> <TD>若吾茵腱糸</TD></TR> + <TR> <TD>G,M-></TD> <TD>若吾腟茵腱糸</TD></TR> + <TR> <TD>ESC g</TD> <TD>絎茵腱糸</TD></TR> + <TR> <TD>Z</TD> <TD>若純篏臀茵筝紊腱糸</TD></TR> + <TR> <TD>z</TD> <TD>若純茵脂≪筝紊腱糸</TD></TR> + <TR> <TD>TAB</TD> <TD>罨<ゃ若潟腱糸</TD></TR> + <TR> <TD>C-u, ESC TAB</TD> <TD>ゃ若潟腱糸</TD></TR> + <TR> <TD>[</TD> <TD>ゃ若潟腱糸</TD></TR> + <TR> <TD>]</TD> <TD>緇ゃ若潟腱糸</TD></TR> </TABLE> -<H2>ハイパーリンク操作</H2> +<H2>ゃ若潟篏</H2> <TABLE CELLPADDING=0> - <TR> <TD WIDTH=100>RET</TD> <TD>カーソル下のリンクへ飛ぶ</TD></TR> - <TR> <TD>a, ESC RET</TD> <TD>リンク先の文書をファイルに保存</TD></TR> - <TR> <TD>ESC I</TD> <TD>リンク先の画像をファイルに保存</TD></TR> - <TR> <TD>u</TD> <TD>リンク先URLの表示</TD></TR> - <TR> <TD>i</TD> <TD>リンクに関連付けられた画像へのURLの表示</TD></TR> - <TR> <TD>I</TD> <TD>インラインイメージの表示</TD></TR> - <TR> <TD>:</TD> <TD>URLのような文字をアンカーとしてマーク</TD></TR> - <TR> <TD>ESC :</TD> <TD>Message-IDのような文字をアンカーとしてマーク</TD></TR> - <TR> <TD>c</TD> <TD>現ページのURLを表示</TD></TR> - <TR> <TD>=</TD> <TD>現ドキュメントの情報を表示</TD></TR> - <TR> <TD>C-g</TD> <TD>ページ中での現在位置を表示</TD></TR> - <TR> <TD>C-h</TD> <TD>URL履歴を表示</TD></TR> - <TR> <TD>F</TD> <TD>フレームを表示する</TD></TR> - <TR> <TD>M</TD> <TD>現ページを外部ブラウザで表示する(2M,3Mで2番目と3番目のブラウザを呼びだす)</TD></TR> - <TR> <TD>ESC M</TD> <TD>リンク先を外部ブラウザで表示する(2ESC M,3ESC Mで2番目と3番目のブラウザを呼びだす)</TD></TR> + <TR> <TD WIDTH=100>RET</TD> <TD>若純筝潟檎</TD></TR> + <TR> <TD>a, ESC RET</TD> <TD>潟吾<ゃ篆絖</TD></TR> + <TR> <TD>ESC I</TD> <TD>潟糸<ゃ篆絖</TD></TR> + <TR> <TD>u</TD> <TD>潟URL茵腓</TD></TR> + <TR> <TD>i</TD> <TD>潟∫d糸吾URL茵腓</TD></TR> + <TR> <TD>I</TD> <TD>ゃ潟ゃ潟ゃ<若吾茵腓</TD></TR> + <TR> <TD>:</TD> <TD>URL絖≪潟若若</TD></TR> + <TR> <TD>ESC :</TD> <TD>Message-ID絖≪潟若若</TD></TR> + <TR> <TD>c</TD> <TD>憗若吾URL茵腓</TD></TR> + <TR> <TD>=</TD> <TD>憗ャ<潟宴茵腓</TD></TR> + <TR> <TD>C-g</TD> <TD>若娯賢с憜篏臀茵腓</TD></TR> + <TR> <TD>C-h</TD> <TD>URL絮ユ眼茵腓</TD></TR> + <TR> <TD>F</TD> <TD>若茵腓冴</TD></TR> + <TR> <TD>M</TD> <TD>憗若吾紊吟ц;腓冴(2M, 3M, ..., 9M 2鐚3鐚9吟若潟)</TD></TR> + <TR> <TD>ESC M</TD> <TD>潟紊吟ц;腓冴(2ESC M, 3ESC M, ..., 9ESC M 2鐚3鐚9吟若潟)</TD></TR> </TABLE> -<H2>ファイル/ストリーム操作</H2> +<H2><ゃ/鴻若篏</H2> <TABLE CELLPADDING=0> - <TR> <TD WIDTH=100>U</TD> <TD>URLを指定</TD></TR> - <TR> <TD>V</TD> <TD>ファイルを開く</TD></TR> - <TR> <TD>@</TD> <TD>シェルを起動し読み込む</TD></TR> - <TR> <TD>#</TD> <TD>シェルを起動し読み込む</TD></TR> + <TR> <TD WIDTH=100>U</TD> <TD>URL絎</TD></TR> + <TR> <TD>V</TD> <TD><ゃ</TD></TR> + <TR> <TD>@</TD> <TD>激с莎桁茯粋昭</TD></TR> + <TR> <TD>#</TD> <TD>激с莎桁茯粋昭</TD></TR> </TABLE> -<H2>バッファ操作</H2> +<H2>≧篏</H2> <TABLE CELLPADDING=0> - <TR> <TD WIDTH=100>B</TD> <TD>前のバッファに移動</TD></TR> - <TR> <TD>v</TD> <TD>HTMLソースを表示</TD></TR> - <TR> <TD>s</TD> <TD>バッファを選択</TD></TR> - <TR> <TD>E</TD> <TD>バッファのソースを編集</TD></TR> - <TR> <TD>C-l</TD> <TD>画面の再描画</TD></TR> - <TR> <TD>R</TD> <TD>バッファを再読み込み</TD></TR> - <TR> <TD>S</TD> <TD>バッファを保存</TD></TR> - <TR> <TD>ESC s</TD> <TD>HTMLソースを保存</TD></TR> - <TR> <TD>ESC e</TD> <TD>バッファの表示イメージを編集</TD></TR> + <TR> <TD WIDTH=100>B</TD> <TD><腱糸</TD></TR> + <TR> <TD>v</TD> <TD>HTML純若鴻茵腓</TD></TR> + <TR> <TD>s</TD> <TD><御</TD></TR> + <TR> <TD>E</TD> <TD><純若鴻膩</TD></TR> + <TR> <TD>C-l</TD> <TD>脂≪</TD></TR> + <TR> <TD>R</TD> <TD><茯粋昭</TD></TR> + <TR> <TD>S</TD> <TD><篆絖</TD></TR> + <TR> <TD>ESC s</TD> <TD>HTML純若鴻篆絖</TD></TR> + <TR> <TD>ESC e</TD> <TD><茵腓冴ゃ<若吾膩</TD></TR> </TABLE> -<H2>バッファ選択モード</H2> -"s" でバッファ選択モードに入ったときのキー操作 +<H2>♂御≪若</H2> +"s" с♂御≪若ャc惹篏 <TABLE CELLPADDING=0> - <TR> <TD WIDTH=100>k,C-p</TD> <TD>一つ上のバッファを選択</TD></TR> - <TR> <TD>j,C-n</TD> <TD>一つ下のバッファを選択</TD></TR> - <TR> <TD>D</TD> <TD>現在選択しているバッファを削除</TD></TR> - <TR> <TD>RET</TD> <TD>現在選択しているバッファを表示</TD></TR> + <TR> <TD WIDTH=100>k,C-p</TD> <TD>筝や<御</TD></TR> + <TR> <TD>j,C-n</TD> <TD>筝や<御</TD></TR> + <TR> <TD>D</TD> <TD>憜御<</TD></TR> + <TR> <TD>RET</TD> <TD>憜御<茵腓</TD></TR> </TABLE> -<H2>ブックマーク操作</H2> +<H2>若篏</H2> <TABLE CELLPADDING=0> - <TR> <TD WIDTH=100>ESC b</TD> <TD>ブックマークを読み込む</TD></TR> - <TR> <TD>ESC a</TD> <TD>現ページをブックマークに追加</TD></TR> + <TR> <TD WIDTH=100>ESC b</TD> <TD>若茯粋昭</TD></TR> + <TR> <TD>ESC a</TD> <TD>憗若吾若菴遵</TD></TR> </TABLE> -<H2>検索</H2> +<H2>罎膣</H2> <TABLE CELLPADDING=0> - <TR> <TD WIDTH=100>/,C-s</TD> <TD>前方検索</TD></TR> - <TR> <TD>?,C-r</TD> <TD>後方検索</TD></TR> - <TR> <TD>n</TD> <TD>次を検索</TD></TR> - <TR> <TD>N</TD> <TD>前を検索</TD></TR> - <TR> <TD>C-w</TD> <TD>折り返し検索モードの切り換え</TD></TR> + <TR> <TD WIDTH=100>/,C-s</TD> <TD>号膣</TD></TR> + <TR> <TD>?,C-r</TD> <TD>緇号膣</TD></TR> + <TR> <TD>n</TD> <TD>罨<罎膣</TD></TR> + <TR> <TD>N</TD> <TD>罎膣</TD></TR> + <TR> <TD>C-w</TD> <TD>菴罎膣≪≪若</TD></TR> </TABLE> -<H2>辞書検索</H2> +<H2>莨御膣</H2> <TABLE CELLPADDING=0> - <TR> <TD WIDTH=100>M-w</TD> <TD>入力した単語を辞書コマンドで検索</TD></TR> - <TR> <TD>M-W</TD> <TD>カーソル位置の単語を辞書コマンドで検索</TD></TR> + <TR> <TD WIDTH=100>M-w</TD> <TD>ュ茯莨吾潟潟ф膣</TD></TR> + <TR> <TD>M-W</TD> <TD>若純篏臀茯莨吾潟潟ф膣</TD></TR> </TABLE> -<H2>マーク操作</H2> +<H2>若篏</H2> <TABLE CELLPADDING=0> - <TR> <TD WIDTH=100>C-SPC</TD> <TD>マークの設定/消去</TD></TR> - <TR> <TD>ESC p</TD> <TD>前のマークへ移動</TD></TR> - <TR> <TD>ESC n</TD> <TD>次のマークへ移動</TD></TR> - <TR> <TD>"</TD> <TD>正規表現によるマーク</TD></TR> + <TR> <TD WIDTH=100>C-SPC</TD> <TD>若荐絎/羔サ</TD></TR> + <TR> <TD>ESC p</TD> <TD>若悟Щ</TD></TR> + <TR> <TD>ESC n</TD> <TD>罨<若悟Щ</TD></TR> + <TR> <TD>"</TD> <TD>罩h頫憗若</TD></TR> </TABLE> -<H2>その他</H2> +<H2>篁</H2> <TABLE CELLPADDING=0> - <TR> <TD WIDTH=100>!</TD> <TD>シェルの実行</TD></TR> - <TR> <TD>H</TD> <TD>ヘルプ(このファイルを表示)</TD></TR> - <TR> <TD>o</TD> <TD>オプション設定</TD></TR> - <TR> <TD>C-k</TD> <TD>クッキー一覧を表示</TD></TR> - <TR> <TD>C-c</TD> <TD>文書の読み込みを中断</TD></TR> - <TR> <TD>C-z</TD> <TD>サスペンド</TD></TR> - <TR> <TD>q</TD> <TD>w3mを終了(確認あり)</TD></TR> - <TR> <TD>Q</TD> <TD>w3mを終了(確認なし)</TD></TR> + <TR> <TD WIDTH=100>!</TD> <TD>激с絎茵</TD></TR> + <TR> <TD>H</TD> <TD>(<ゃ茵腓)</TD></TR> + <TR> <TD>o</TD> <TD>激с活┃絎</TD></TR> + <TR> <TD>C-k</TD> <TD>寂荀с茵腓</TD></TR> + <TR> <TD>C-c</TD> <TD>吾茯粋昭帥筝</TD></TR> + <TR> <TD>C-z</TD> <TD>泣鴻潟</TD></TR> + <TR> <TD>q</TD> <TD>w3m腟篋(腆肴)</TD></TR> + <TR> <TD>Q</TD> <TD>w3m腟篋(腆肴)</TD></TR> </TABLE> -<H2>行編集モード</H2> +<H2>茵膩≪若</H2> <TABLE CELLPADDING=0> - <TR> <TD WIDTH=100>C-f</TD> <TD>カーソルを右へ移動</TD></TR> - <TR> <TD>C-b</TD> <TD>カーソルを左へ移動</TD></TR> - <TR> <TD>C-h</TD> <TD>前の文字を削除</TD></TR> - <TR> <TD>C-d</TD> <TD>カーソル位置の文字を削除</TD></TR> - <TR> <TD>C-k</TD> <TD>カーソルの後方を全て削除</TD></TR> - <TR> <TD>C-u</TD> <TD>カーソルの前までを全て削除</TD></TR> - <TR> <TD>C-a</TD> <TD>行頭に移動</TD></TR> - <TR> <TD>C-e</TD> <TD>行末へ移動</TD></TR> - <TR> <TD>C-p</TD> <TD>ヒストリから一つ前の文字列を取り出す</TD></TR> - <TR> <TD>C-n</TD> <TD>ヒストリから次の文字列を取り出す</TD></TR> - <TR> <TD>TAB,SPC</TD> <TD>ファイル名の補完</TD></TR> - <TR> <TD>RETURN</TD> <TD>入力終了</TD></TR> + <TR> <TD WIDTH=100>C-f</TD> <TD>若純劻悟Щ</TD></TR> + <TR> <TD>C-b</TD> <TD>若純綏悟Щ</TD></TR> + <TR> <TD>C-h</TD> <TD>絖</TD></TR> + <TR> <TD>C-d</TD> <TD>若純篏臀絖</TD></TR> + <TR> <TD>C-k</TD> <TD>若純緇鴻</TD></TR> + <TR> <TD>C-u</TD> <TD>若純障с</TD></TR> + <TR> <TD>C-a</TD> <TD>茵腱糸</TD></TR> + <TR> <TD>C-e</TD> <TD>茵悟Щ</TD></TR> + <TR> <TD>C-p</TD> <TD>鴻筝ゅ絖冴</TD></TR> + <TR> <TD>C-n</TD> <TD>鴻罨<絖冴</TD></TR> + <TR> <TD>TAB,SPC</TD> <TD><ゃ茖絎</TD></TR> + <TR> <TD>RETURN</TD> <TD>ュ腟篋</TD></TR> </TABLE> <HR> </BODY> diff --git a/w3mhelperpanel.c b/w3mhelperpanel.c index 110794b..96b60a0 100644 --- a/w3mhelperpanel.c +++ b/w3mhelperpanel.c @@ -115,6 +115,7 @@ printMailcapPanel(char *mailcap) printf("</table>\n<input type=submit name=submit value=\"%s\">\n</form>\n\ </body>\n</html>\n", MSG_DOIT); + fclose(f); } void diff --git a/w3mimg/.cvsignore b/w3mimg/.cvsignore deleted file mode 100644 index f3c7a7c..0000000 --- a/w3mimg/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile diff --git a/w3mimg/CVS/Entries b/w3mimg/CVS/Entries deleted file mode 100644 index ad83b16..0000000 --- a/w3mimg/CVS/Entries +++ /dev/null @@ -1,7 +0,0 @@ -/.cvsignore/1.1/Mon Sep 22 22:53:53 2003// -D/fb//// -D/x11//// -/Makefile.in/1.11/Tue Jan 4 09:22:28 2011// -/w3mimg.c/1.6/Tue Jan 4 09:22:28 2011// -/w3mimg.h/1.9/Tue Jan 4 09:22:28 2011// -D/win//// diff --git a/w3mimg/CVS/Repository b/w3mimg/CVS/Repository deleted file mode 100644 index d59666d..0000000 --- a/w3mimg/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/w3mimg diff --git a/w3mimg/CVS/Root b/w3mimg/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/w3mimg/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/w3mimg/Makefile.in b/w3mimg/Makefile.in index dfc550c..8e2ad73 100644 --- a/w3mimg/Makefile.in +++ b/w3mimg/Makefile.in @@ -16,9 +16,9 @@ IMGCFLAGS=@IMGX11CFLAGS@ @IMGFBCFLAGS@ @IMGWINCFLAGS@ IMGOBJS=@IMGOBJS@ .PHONY: $(SUBDIRS) -all: @IMGTARGETS@ w3mimg.a +all: w3mimg.a -w3mimg.a: $(IMGOBJS) +w3mimg.a: w3mimg.o @IMGTARGETS@ $(AR) rv $@ $(IMGOBJS) $(RANLIB) $@ diff --git a/w3mimg/fb/.cvsignore b/w3mimg/fb/.cvsignore deleted file mode 100644 index f3c7a7c..0000000 --- a/w3mimg/fb/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile diff --git a/w3mimg/fb/CVS/Entries b/w3mimg/fb/CVS/Entries deleted file mode 100644 index 549e962..0000000 --- a/w3mimg/fb/CVS/Entries +++ /dev/null @@ -1,11 +0,0 @@ -/.cvsignore/1.1/Mon Sep 22 22:53:53 2003// -/Makefile.in/1.4/Mon Apr 26 17:00:38 2004// -/fb.c/1.16/Sun Jul 13 16:19:10 2003// -/fb.h/1.7/Mon Jul 7 15:48:17 2003// -/fb_gdkpixbuf.c/1.21/Mon Nov 8 17:14:06 2004// -/fb_img.c/1.6/Mon Jul 7 15:48:17 2003// -/fb_img.h/1.9/Wed Aug 4 17:32:28 2004// -/fb_imlib2.c/1.10/Wed Aug 4 17:32:28 2004// -/fb_w3mimg.c/1.14/Wed Aug 4 17:32:28 2004// -/readme.txt/1.2/Mon Jul 22 16:17:32 2002// -D diff --git a/w3mimg/fb/CVS/Repository b/w3mimg/fb/CVS/Repository deleted file mode 100644 index 336666e..0000000 --- a/w3mimg/fb/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/w3mimg/fb diff --git a/w3mimg/fb/CVS/Root b/w3mimg/fb/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/w3mimg/fb/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/w3mimg/fb/fb.c b/w3mimg/fb/fb.c index cd11128..7960584 100644 --- a/w3mimg/fb/fb.c +++ b/w3mimg/fb/fb.c @@ -12,12 +12,24 @@ #include <errno.h> #include <sys/ioctl.h> #include <sys/mman.h> +#if defined(__linux__) #include <linux/fb.h> +#elif defined(__FreeBSD__) +#include <sys/fbio.h> +#endif +#if defined(__FreeBSD__) +#include <sys/types.h> +#include <machine/param.h> +#endif #include "fb.h" #define FB_ENV "FRAMEBUFFER" +#if defined(__linux__) #define FB_DEFDEV "/dev/fb0" +#elif defined(__FreeBSD__) +#define FB_DEFDEV "/dev/ttyv0" +#endif #define MONO_OFFSET_8BIT 0x40 #define COLORS_MONO_8BIT 0x40 @@ -38,22 +50,65 @@ #define IMAGE_SIZE_MAX 10000 +#if defined(__linux__) static struct fb_cmap *fb_cmap_create(struct fb_fix_screeninfo *, struct fb_var_screeninfo *); +#elif defined(__FreeBSD__) +static video_color_palette_t *fb_cmap_create(video_info_t *video_info, + video_adapter_info_t *video_adapter_info); +#endif +#if defined(__linux__) static void fb_cmap_destroy(struct fb_cmap *cmap); +#elif defined(__FreeBSD__) +static void fb_cmap_destroy(video_color_palette_t *cmap); +#endif +#if defined(__linux__) static int fb_fscrn_get(int fbfp, struct fb_fix_screeninfo *scinfo); +#endif +#if defined(__linux__) static void *fb_mmap(int fbfp, struct fb_fix_screeninfo *scinfo); +#elif defined(__FreeBSD__) +static void *fb_mmap(int fbfp, video_adapter_info_t *video_adapter_info); +#endif +#if defined(__linux__) static int fb_munmap(void *buf, struct fb_fix_screeninfo *scinfo); +#elif defined(__FreeBSD__) +static int fb_munmap(void *buf, video_adapter_info_t *video_adapter_info); +#endif +#if defined(__linux__) static int fb_vscrn_get(int fbfp, struct fb_var_screeninfo *scinfo); +#endif +#if defined(__linux__) static int fb_cmap_set(int fbfp, struct fb_cmap *cmap); +#elif defined(__FreeBSD__) +static int fb_cmap_set(int fbfp, video_color_palette_t *cmap); +#endif +#if defined(__linux__) static int fb_cmap_get(int fbfp, struct fb_cmap *cmap); +#elif defined(__FreeBSD__) +static int fb_cmap_get(int fbfp, video_color_palette_t *cmap); +#endif static int fb_cmap_init(void); static int fb_get_cmap_index(int r, int g, int b); static unsigned long fb_get_packed_color(int r, int g, int b); +#if defined(__FreeBSD__) +static int fb_video_mode_get(int fbfp, int *video_mode); +static int fb_video_info_get(int fbfp, video_info_t *video_info); +static int fb_video_adapter_info_get(int fbfp, video_adapter_info_t *video_adapter_info); +#endif +#if defined(__linux__) static struct fb_fix_screeninfo fscinfo; static struct fb_var_screeninfo vscinfo; +#elif defined(__FreeBSD__) +static video_info_t video_info; +static video_adapter_info_t video_adapter_info; +#endif +#if defined(__linux__) static struct fb_cmap *cmap = NULL, *cmap_org = NULL; +#elif defined(__FreeBSD__) +static video_color_palette_t *cmap = NULL, *cmap_org = NULL; +#endif static int is_open = FALSE; static int fbfp = -1; static size_t pixel_size = 0; @@ -63,6 +118,9 @@ int fb_open(void) { char *fbdev = { FB_DEFDEV }; +#if defined(__FreeBSD__) + int video_mode; +#endif if (is_open == TRUE) return 1; @@ -76,6 +134,7 @@ fb_open(void) goto ERR_END; } +#if defined(__linux__) if (fb_fscrn_get(fbfp, &fscinfo)) { goto ERR_END; } @@ -83,22 +142,69 @@ fb_open(void) if (fb_vscrn_get(fbfp, &vscinfo)) { goto ERR_END; } +#elif defined(__FreeBSD__) + if (fb_video_mode_get(fbfp, &video_mode)) { + goto ERR_END; + } + video_info.vi_mode = video_mode; + + if (fb_video_info_get(fbfp, &video_info)) { + goto ERR_END; + } + if (fb_video_adapter_info_get(fbfp, &video_adapter_info)) { + goto ERR_END; + } + if (!(video_info.vi_flags & V_INFO_GRAPHICS) || + !(video_info.vi_flags & V_INFO_LINEAR)) { + goto ERR_END; + } +#endif + +#if defined(__linux__) if ((cmap = fb_cmap_create(&fscinfo, &vscinfo)) == (struct fb_cmap *)-1) { goto ERR_END; } +#elif defined(__FreeBSD__) + if ((cmap = fb_cmap_create(&video_info, &video_adapter_info)) == (video_color_palette_t *)-1) { + goto ERR_END; + } +#endif +#if defined(__linux__) if (!(buf = fb_mmap(fbfp, &fscinfo))) { fprintf(stderr, "Can't allocate memory.\n"); goto ERR_END; } +#elif defined(__FreeBSD__) + if (!(buf = fb_mmap(fbfp, &video_adapter_info))) { + fprintf(stderr, "Can't allocate memory.\n"); + goto ERR_END; + } +#endif +#if defined(__linux__) if (fscinfo.type != FB_TYPE_PACKED_PIXELS) { fprintf(stderr, "This type of framebuffer is not supported.\n"); goto ERR_END; } +#elif defined(__FreeBSD__) + if (!(video_info.vi_mem_model == V_INFO_MM_PACKED || + video_info.vi_mem_model == V_INFO_MM_DIRECT)) { + fprintf(stderr, "This type of framebuffer is not supported.\n"); + goto ERR_END; + } +#endif +#if defined(__linux__) if (fscinfo.visual == FB_VISUAL_PSEUDOCOLOR && vscinfo.bits_per_pixel == 8) { +#elif defined(__FreeBSD__) + if (video_adapter_info.va_flags & V_ADP_PALETTE && + video_info.vi_mem_model == V_INFO_MM_PACKED && + video_info.vi_depth == 8) { +#else + if (0) { +#endif if (fb_cmap_get(fbfp, cmap)) { fprintf(stderr, "Can't get color map.\n"); fb_cmap_destroy(cmap); @@ -111,6 +217,7 @@ fb_open(void) pixel_size = 1; } +#if defined(__linux__) else if ((fscinfo.visual == FB_VISUAL_TRUECOLOR || fscinfo.visual == FB_VISUAL_DIRECTCOLOR) && (vscinfo.bits_per_pixel == 15 || @@ -118,6 +225,14 @@ fb_open(void) vscinfo.bits_per_pixel == 24 || vscinfo.bits_per_pixel == 32)) { pixel_size = (vscinfo.bits_per_pixel + 7) / CHAR_BIT; } +#elif defined(__FreeBSD__) + else if (video_info.vi_mem_model == V_INFO_MM_DIRECT && + (video_info.vi_depth == 15 || + video_info.vi_depth == 16 || + video_info.vi_depth == 24 || video_info.vi_depth == 32)) { + pixel_size = (video_info.vi_depth + 7) / CHAR_BIT; + } +#endif else { fprintf(stderr, "This type of framebuffer is not supported.\n"); goto ERR_END; @@ -147,7 +262,11 @@ fb_close(void) cmap = NULL; } if (buf != NULL) { +#if defined(__linux__) fb_munmap(buf, &fscinfo); +#elif defined(__FreeBSD__) + fb_munmap(buf, &video_adapter_info); +#endif buf = NULL; } @@ -259,11 +378,19 @@ fb_image_draw(FB_IMAGE * image, int x, int y, int sx, int sy, int width, if (y + height > fb_height()) height = fb_height() - y; +#if defined(__linux__) offset_fb = fscinfo.line_length * y + pixel_size * x; +#elif defined(__FreeBSD__) + offset_fb = video_adapter_info.va_line_width * y + pixel_size * x; +#endif offset_img = image->rowstride * sy + pixel_size * sx; for (i = 0; i < height; i++) { memcpy(buf + offset_fb, image->data + offset_img, pixel_size * width); +#if defined(__linux__) offset_fb += fscinfo.line_length; +#elif defined(__FreeBSD__) + offset_fb += video_adapter_info.va_line_width; +#endif offset_img += image->rowstride; } @@ -336,7 +463,11 @@ fb_width(void) if (is_open != TRUE) return 0; +#if defined(__linux__) return vscinfo.xres; +#elif defined(__FreeBSD__) + return video_info.vi_width; +#endif } int @@ -345,7 +476,11 @@ fb_height(void) if (is_open != TRUE) return 0; +#if defined(__linux__) return vscinfo.yres; +#elif defined(__FreeBSD__) + return video_info.vi_height; +#endif } int @@ -369,7 +504,11 @@ fb_clear(int x, int y, int w, int h, int r, int g, int b) h = fb_height() - y; if (tmp == NULL) { +#if defined(__linux__) tmp = malloc(fscinfo.line_length); +#elif defined(__FreeBSD__) + tmp = malloc(video_adapter_info.va_line_width); +#endif if (tmp == NULL) return 1; } @@ -384,10 +523,18 @@ fb_clear(int x, int y, int w, int h, int r, int g, int b) gg = g; bb = b; } +#if defined(__linux__) offset_fb = fscinfo.line_length * y + pixel_size * x; +#elif defined(__FreeBSD__) + offset_fb = video_adapter_info.va_line_width * y + pixel_size * x; +#endif for (i = 0; i < h; i++) { memcpy(buf + offset_fb, tmp, pixel_size * w); +#if defined(__linux__) offset_fb += fscinfo.line_length; +#elif defined(__FreeBSD__) + offset_fb += video_adapter_info.va_line_width; +#endif } return 0; } @@ -400,11 +547,21 @@ fb_get_packed_color(int r, int g, int b) return fb_get_cmap_index(r, g, b); } else { +#if defined(__linux__) return ((r >> (CHAR_BIT - vscinfo.red.length)) << vscinfo.red.offset) + ((g >> (CHAR_BIT - vscinfo.green.length)) << vscinfo.green. offset) + ((b >> (CHAR_BIT - vscinfo.blue.length)) << vscinfo.blue.offset); +#elif defined(__FreeBSD__) + return + ((r >> (CHAR_BIT - video_info.vi_pixel_fsizes[0])) << + video_info.vi_pixel_fields[0]) + + ((g >> (CHAR_BIT - video_info.vi_pixel_fsizes[1])) << + video_info.vi_pixel_fields[1]) + + ((b >> (CHAR_BIT - video_info.vi_pixel_fsizes[2])) << + video_info.vi_pixel_fields[2]); +#endif } } @@ -433,16 +590,31 @@ fb_cmap_init(void) if (cmap == NULL) return 1; +#if defined(__linux__) if (cmap->len < COLOR_OFFSET_8BIT + COLORS_8BIT) { fprintf(stderr, "Can't allocate enough color.\n"); return 1; } +#elif defined(__FreeBSD__) + if (cmap->count < COLOR_OFFSET_8BIT + COLORS_8BIT) { + fprintf(stderr, "Can't allocate enough color.\n"); + return 1; + } +#endif if (cmap_org == NULL) { +#if defined(__linux__) if ((cmap_org = fb_cmap_create(&fscinfo, &vscinfo)) == (struct fb_cmap *)-1) { return 1; } +#elif defined(__FreeBSD__) + if ((cmap_org = + fb_cmap_create(&video_info, &video_adapter_info)) == + (video_color_palette_t *)-1) { + return 1; + } +#endif if (fb_cmap_get(fbfp, cmap_org)) { fprintf(stderr, "Can't get color map.\n"); @@ -452,8 +624,13 @@ fb_cmap_init(void) } } +#if defined(__linux__) cmap->start = MONO_OFFSET_8BIT; cmap->len = COLORS_8BIT + COLORS_MONO_8BIT; +#elif defined(__FreeBSD__) + cmap->index = MONO_OFFSET_8BIT; + cmap->count = COLORS_8BIT + COLORS_MONO_8BIT; +#endif for (lp = 0; lp < COLORS_MONO_8BIT; lp++) { int c; @@ -506,73 +683,223 @@ fb_cmap_init(void) #define LUT_MAX (256) +#if defined(__linux__) static struct fb_cmap * fb_cmap_create(struct fb_fix_screeninfo *fscinfo, struct fb_var_screeninfo *vscinfo) +#elif defined(__FreeBSD__) +static video_color_palette_t * +fb_cmap_create(video_info_t *video_info, + video_adapter_info_t *video_adapter_info) +#endif { +#if defined(__linux__) struct fb_cmap *cmap; +#elif defined(__FreeBSD__) + video_color_palette_t *cmap; +#endif int cmaplen = LUT_MAX; /* check the existence of colormap */ +#if defined(__linux__) if (fscinfo->visual == FB_VISUAL_MONO01 || fscinfo->visual == FB_VISUAL_MONO10 || fscinfo->visual == FB_VISUAL_TRUECOLOR) return NULL; +#elif defined(__FreeBSD__) + if (!(video_adapter_info->va_flags & V_ADP_PALETTE)) + return NULL; +#endif +#if defined(__linux__) cmap = (struct fb_cmap *)malloc(sizeof(struct fb_cmap)); +#elif defined(__FreeBSD__) + cmap = (video_color_palette_t *)malloc(sizeof(video_color_palette_t)); +#endif if (!cmap) { perror("cmap malloc error\n"); +#if defined(__linux__) return (struct fb_cmap *)-1; +#elif defined(__FreeBSD__) + return (video_color_palette_t *)-1; +#endif } +#if defined(__linux__) memset(cmap, 0, sizeof(struct fb_cmap)); +#elif defined(__FreeBSD__) + memset(cmap, 0, sizeof(video_color_palette_t)); +#endif + +#if defined(__FreeBSD__) + if (video_info->vi_mem_model == V_INFO_MM_PACKED) { + cmap->red = (u_char *) malloc(sizeof(u_char) * cmaplen); + if (!cmap->red) { + perror("red lut malloc error\n"); + return (video_color_palette_t *)-1; + } + cmap->green = (u_char *) malloc(sizeof(u_char) * cmaplen); + if (!cmap->green) { + perror("green lut malloc error\n"); + free(cmap->red); + return (video_color_palette_t *)-1; + } + cmap->blue = (u_char *) malloc(sizeof(u_char) * cmaplen); + if (!cmap->blue) { + perror("blue lut malloc error\n"); + free(cmap->red); + free(cmap->green); + return (video_color_palette_t *)-1; + } + cmap->transparent = (u_char *) malloc(sizeof(u_char) * cmaplen); + if (!cmap->transparent) { + perror("transparent lut malloc error\n"); + free(cmap->red); + free(cmap->green); + free(cmap->blue); + return (video_color_palette_t *)-1; + } + cmap->count = cmaplen; + return cmap; + } +#endif /* Allocates memory for a colormap */ +#if defined(__linux__) if (vscinfo->red.length) { cmap->red = (__u16 *) malloc(sizeof(__u16) * cmaplen); +#elif defined(__FreeBSD__) + if (video_info->vi_pixel_fsizes[0]) { + cmap->red = (u_char *) malloc(sizeof(u_char) * cmaplen); +#else + if (0) { +#endif if (!cmap->red) { perror("red lut malloc error\n"); +#if defined(__linux__) return (struct fb_cmap *)-1; +#elif defined(__FreeBSD__) + return (video_color_palette_t *)-1; +#endif } } +#if defined(__linux__) if (vscinfo->green.length) { cmap->green = (__u16 *) malloc(sizeof(__u16) * cmaplen); +#elif defined(__FreeBSD__) + if (video_info->vi_pixel_fsizes[1]) { + cmap->green = (u_char *) malloc(sizeof(u_char) * cmaplen); +#else + if (0) { +#endif if (!cmap->green) { +#if defined(__linux__) if (vscinfo->red.length) free(cmap->red); +#elif defined(__FreeBSD__) + if (video_info->vi_pixel_fsizes[0]) + free(cmap->red); +#endif perror("green lut malloc error\n"); +#if defined(__linux__) return (struct fb_cmap *)-1; +#elif defined(__FreeBSD__) + return (video_color_palette_t *)-1; +#endif } } +#if defined(__linux__) if (vscinfo->blue.length) { cmap->blue = (__u16 *) malloc(sizeof(__u16) * cmaplen); +#elif defined(__FreeBSD__) + if (video_info->vi_pixel_fsizes[2]) { + cmap->blue = (u_char *) malloc(sizeof(u_char) * cmaplen); +#else + if (0) { +#endif if (!cmap->blue) { +#if defined(__linux__) if (vscinfo->red.length) free(cmap->red); +#elif defined(__FreeBSD__) + if (video_info->vi_pixel_fsizes[0]) + free(cmap->red); +#endif +#if defined(__linux__) if (vscinfo->green.length) free(cmap->green); +#elif defined(__FreeBSD__) + if (video_info->vi_pixel_fsizes[1]) + free(cmap->green); +#endif perror("blue lut malloc error\n"); +#if defined(__linux__) return (struct fb_cmap *)-1; +#elif defined(__FreeBSD__) + return (video_color_palette_t *)-1; +#endif } } +#if defined(__linux__) if (vscinfo->transp.length) { cmap->transp = (__u16 *) malloc(sizeof(__u16) * cmaplen); +#elif defined(__FreeBSD__) + if (video_info->vi_pixel_fsizes[3]) { + cmap->transparent = (u_char *) malloc(sizeof(u_char) * cmaplen); +#else + if (0) { +#endif +#if defined(__linux__) if (!cmap->transp) { +#elif defined(__FreeBSD__) + if (!cmap->transparent) { +#else + if (0) { +#endif +#if defined(__linux__) if (vscinfo->red.length) free(cmap->red); +#elif defined(__FreeBSD__) + if (video_info->vi_pixel_fsizes[0]) + free(cmap->red); +#endif +#if defined(__linux__) if (vscinfo->green.length) free(cmap->green); +#elif defined(__FreeBSD__) + if (video_info->vi_pixel_fsizes[1]) + free(cmap->green); +#endif +#if defined(__linux__) if (vscinfo->blue.length) free(cmap->blue); perror("transp lut malloc error\n"); +#elif defined(__FreeBSD__) + if (video_info->vi_pixel_fsizes[2]) + free(cmap->blue); + perror("transparent lut malloc error\n"); +#endif +#if defined(__linux__) return (struct fb_cmap *)-1; +#elif defined(__FreeBSD__) + return (video_color_palette_t *)-1; +#endif } } +#if defined(__linux__) cmap->len = cmaplen; +#elif defined(__FreeBSD__) + cmap->count = cmaplen; +#endif return cmap; } +#if defined(__linux__) static void fb_cmap_destroy(struct fb_cmap *cmap) +#elif defined(__FreeBSD__) +static void +fb_cmap_destroy(video_color_palette_t *cmap) +#endif { if (cmap->red) free(cmap->red); @@ -580,28 +907,57 @@ fb_cmap_destroy(struct fb_cmap *cmap) free(cmap->green); if (cmap->blue) free(cmap->blue); +#if defined(__linux__) if (cmap->transp) free(cmap->transp); +#elif defined(__FreeBSD__) + if (cmap->transparent) + free(cmap->transparent); +#endif free(cmap); } +#if defined(__linux__) static int fb_cmap_get(int fbfp, struct fb_cmap *cmap) +#elif defined(__FreeBSD__) +static int +fb_cmap_get(int fbfp, video_color_palette_t *cmap) +#endif { +#if defined(__linux__) if (ioctl(fbfp, FBIOGETCMAP, cmap)) { perror("ioctl FBIOGETCMAP error\n"); return -1; } +#elif defined(__FreeBSD__) + if (ioctl(fbfp, FBIO_GETPALETTE, cmap) == -1) { + perror("ioctl FBIO_GETPALETTE error\n"); + return -1; + } +#endif return 0; } +#if defined(__linux__) static int fb_cmap_set(int fbfp, struct fb_cmap *cmap) +#elif defined(__FreeBSD__) +static int +fb_cmap_set(int fbfp, video_color_palette_t *cmap) +#endif { +#if defined(__linux__) if (ioctl(fbfp, FBIOPUTCMAP, cmap)) { perror("ioctl FBIOPUTCMAP error\n"); return -1; } +#elif defined(__FreeBSD__) + if (ioctl(fbfp, FBIO_SETPALETTE, cmap) == -1) { + perror("ioctl FBIO_SETPALETTE error\n"); + return -1; + } +#endif return 0; } @@ -612,10 +968,16 @@ fb_cmap_set(int fbfp, struct fb_cmap *cmap) * fb_munmap() deletes the mappings */ +#if defined(__linux__) static void * fb_mmap(int fbfp, struct fb_fix_screeninfo *scinfo) +#elif defined(__FreeBSD__) +static void * +fb_mmap(int fbfp, video_adapter_info_t *video_adapter_info) +#endif { void *buf; +#if defined(__linux__) if ((buf = (unsigned char *) mmap(NULL, scinfo->smem_len, PROT_READ | PROT_WRITE, MAP_SHARED, fbfp, (off_t) 0)) @@ -623,13 +985,41 @@ fb_mmap(int fbfp, struct fb_fix_screeninfo *scinfo) perror("mmap error"); return NULL; } +#elif defined(__FreeBSD__) + size_t mmap_offset; + size_t mmap_length; + mmap_offset = (size_t)(video_adapter_info->va_window) & (PAGE_MASK); + mmap_length = (size_t)(video_adapter_info->va_window_size + + mmap_offset + PAGE_MASK) & (~PAGE_MASK); + if ((buf = (unsigned char *) + mmap(NULL, mmap_length, PROT_READ | PROT_WRITE, MAP_SHARED, fbfp, + (off_t) 0)) + == MAP_FAILED) { + perror("mmap error"); + return NULL; + } +#endif return buf; } +#if defined(__linux__) static int fb_munmap(void *buf, struct fb_fix_screeninfo *scinfo) +#elif defined(__FreeBSD__) +static int +fb_munmap(void *buf, video_adapter_info_t *video_adapter_info) +#endif { +#if defined(__linux__) return munmap(buf, scinfo->smem_len); +#elif defined(__FreeBSD__) + size_t mmap_offset; + size_t mmap_length; + mmap_offset = (size_t)(video_adapter_info->va_window) & (PAGE_MASK); + mmap_length = (size_t)(video_adapter_info->va_window_size + + mmap_offset + PAGE_MASK) & (~PAGE_MASK); + return munmap((void *)((u_long)buf & (~PAGE_MASK)), mmap_length); +#endif } /* @@ -637,6 +1027,7 @@ fb_munmap(void *buf, struct fb_fix_screeninfo *scinfo) * * fb_fscrn_get() get information */ +#if defined(__linux__) static int fb_fscrn_get(int fbfp, struct fb_fix_screeninfo *scinfo) { @@ -646,12 +1037,14 @@ fb_fscrn_get(int fbfp, struct fb_fix_screeninfo *scinfo) } return 0; } +#endif /* * (struct fb_var_screeninfo) device independent variable information * * fb_vscrn_get() get information */ +#if defined(__linux__) static int fb_vscrn_get(int fbfp, struct fb_var_screeninfo *scinfo) { @@ -661,3 +1054,41 @@ fb_vscrn_get(int fbfp, struct fb_var_screeninfo *scinfo) } return 0; } +#endif + +#if defined(__FreeBSD__) +static int +fb_video_mode_get(int fbfp, int *video_mode) +{ + if (ioctl(fbfp, FBIO_GETMODE, video_mode) == -1) { + perror("ioctl FBIO_GETMODE error\n"); + return -1; + } + return 0; +} +#endif + +#if defined(__FreeBSD__) +static int +fb_video_info_get(int fbfp, video_info_t *video_info) +{ + if (ioctl(fbfp, FBIO_MODEINFO, video_info) == -1) { + perror("ioctl FBIO_MODEINFO error\n"); + return -1; + } + return 0; +} +#endif + +#if defined(__FreeBSD__) +static int +fb_video_adapter_info_get(int fbfp, video_adapter_info_t *video_adapter_info) +{ + if (ioctl(fbfp, FBIO_ADPINFO, video_adapter_info) == -1) { + perror("ioctl FBIO_ADPINFO error\n"); + return -1; + } + return 0; +} +#endif + diff --git a/w3mimg/fb/fb.h b/w3mimg/fb/fb.h index 1138bb0..5d86454 100644 --- a/w3mimg/fb/fb.h +++ b/w3mimg/fb/fb.h @@ -1,7 +1,11 @@ /* $Id: fb.h,v 1.7 2003/07/07 15:48:17 ukai Exp $ */ #ifndef fb_header #define fb_header +#if defined(__linux__) #include <linux/fb.h> +#elif defined(__FreeBSD__) +#include <sys/fbio.h> +#endif typedef struct { int num; diff --git a/w3mimg/fb/fb_gdkpixbuf.c b/w3mimg/fb/fb_gdkpixbuf.c index 36e3b62..f1e8d97 100644 --- a/w3mimg/fb/fb_gdkpixbuf.c +++ b/w3mimg/fb/fb_gdkpixbuf.c @@ -6,7 +6,7 @@ #include "config.h" #if defined(USE_GTK2) #include <glib-object.h> -#include <gdk/gdk.h> +#include <gdk-pixbuf/gdk-pixbuf.h> #endif #include <gdk-pixbuf/gdk-pixbuf.h> #include "fb.h" diff --git a/w3mimg/fb/fb_imlib2.c b/w3mimg/fb/fb_imlib2.c index ea36637..1a5151c 100644 --- a/w3mimg/fb/fb_imlib2.c +++ b/w3mimg/fb/fb_imlib2.c @@ -3,7 +3,6 @@ fb_imlib2.c 0.3 Copyright (C) 2002, hito **************************************************************************/ -#include <X11/Xlib.h> #include <Imlib2.h> #include "fb.h" #include "fb_img.h" diff --git a/w3mimg/fb/fb_w3mimg.c b/w3mimg/fb/fb_w3mimg.c index d3ae5a9..62511f0 100644 --- a/w3mimg/fb/fb_w3mimg.c +++ b/w3mimg/fb/fb_w3mimg.c @@ -153,10 +153,15 @@ check_tty_console(char *tty) return 0; if (strncmp(tty, "/dev/", 5) == 0) tty += 5; +#if defined(__linux__) if (strncmp(tty, "tty", 3) == 0 && isdigit(*(tty + 3))) return 1; if (strncmp(tty, "vc/", 3) == 0 && isdigit(*(tty + 3))) return 1; +#elif defined(__FreeBSD__) + if (strncmp(tty, "ttyv", 4) == 0 && isxdigit(*(tty + 4))) + return 1; +#endif return 0; } #else @@ -172,7 +177,9 @@ w3mimg_fbopen() return NULL; memset(wop, 0, sizeof(w3mimg_op)); - if (!check_tty_console(getenv("W3M_TTY")) && strcmp("jfbterm", getenv("TERM")) != 0) { + if (!check_tty_console(getenv("W3M_TTY")) && + strncmp("fbterm", getenv("TERM"), 6) != 0 && + strncmp("jfbterm", getenv("TERM"), 7) != 0) { fprintf(stderr, "w3mimgdisplay/fb: tty is not console\n"); goto error; } diff --git a/w3mimg/fb/readme.txt b/w3mimg/fb/readme.txt index 92e71a5..c3c43cd 100644 --- a/w3mimg/fb/readme.txt +++ b/w3mimg/fb/readme.txt @@ -1,73 +1,73 @@ Source: http://homepage3.nifty.com/slokar/fb/ original readme.txt -■提供するもの - ・w3mimgdisplayfb w3mimgdisplay (ほぼ)互換の framebuffer 用画像ビューア - ・w3mimgsizefb w3mimgsize 互換の画像サイズ報告プログラム +箴 + w3mimgdisplayfb w3mimgdisplay (祉)篋 framebuffer 糸ャ若 + w3mimgsizefb w3mimgsize 篋糸泣ゃ阪怨違 -■必要なもの - ・GdkPixbuf or Imlib2 - ・TRUE-COLOR の framebuffer を利用できる環境 +綽荀 + GdkPixbuf or Imlib2 + TRUE-COLOR framebuffer с医 -■コンパイル - ・Makefile の CFLAGS, LDFLAGS を Imlib2, GdkPixbuf のどちらか利用する - 方を有効にしてから make してださい。 +潟潟ゃ + Makefile CFLAGS, LDFLAGS Imlib2, GdkPixbuf < + 鴻鴻 make -■利用法 - ・w3mimgdisplay, w3mimgsize と同様 +羈 + w3mimgdisplay, w3mimgsize 罕 -■制限等 - ・framebuffer は 15,16,24,32bpp PACKED-PIXELS TRUE-COLOR - にしか対応していません。 - ・現在 w3mimgdisplayfb は -bg オプションを使用しない場合の背景色は黒 - (#000000)と仮定しています。 +狗膈 + framebuffer 15,16,24,32bpp PACKED-PIXELS TRUE-COLOR + 絲上障 + 紫憜 w3mimgdisplayfb -bg 激с潟篏睡翫蚊藥 + (#000000)篁絎障 -■開発環境 - ・ w3m version w3m/0.3+cvs-1.353-m17n-20020316 - ・ linux 2.4.18 (Vine Linux 2.5) - ・ gcc 2.95.3 - ・ GdkPixbuf 0.16.0 - ・ Imlib2 1.0.6 - ・ $ dmesg |grep vesafb +榊医 + w3m version w3m/0.3+cvs-1.353-m17n-20020316 + linux 2.4.18 (Vine Linux 2.5) + gcc 2.95.3 + GdkPixbuf 0.16.0 + Imlib2 1.0.6 + $ dmesg |grep vesafb vesafb: framebuffer at 0xe2000000, mapped to 0xc880d000, size 8192k vesafb: mode is 1024x768x16, linelength=2048, pages=4 vesafb: protected mode interface info at c000:4785 vesafb: scrolling: redraw vesafb: directcolor: size=0:5:6:5, shift=0:11:5:0 - ・ ビデオカード + 若 VGA compatible controller: ATI Technologies Inc 3D Rage Pro AGP 1X/2X (rev 92). Master Capable. Latency=64. Min Gnt=8. Non-prefetchable 32 bit memory at 0xe2000000 [0xe2ffffff]. I/O at 0xd800 [0xd8ff]. Non-prefetchable 32 bit memory at 0xe1800000 [0xe1800fff]. -■その他 - ・w3mimgsizefb, w3mimgdisplayfb は坂本浩則さんの w3mimgsize, - w3mimgdisplay をもとにしています(というかほとんどそのままです)。 - ・framebuffer 描画関係のコードは、やまさきしんじさんのサンプルプログ - ラムをもとにしています(というかほとんどそのままです)。 - ・まだ開発途上であり、動作確認も不十分です。使用される際はご自身の責任 - でお願いします。 - ・この配布物に含まれるコードは変更済み BSD ライセンスに従うものとしま - す。詳細は license.txt を参照してください。 +篁 + w3mimgsizefb, w3mimgdisplayfb 羌 w3mimgsize, + w3mimgdisplay 障(祉障障с) + framebuffer 脂≫潟若障泣潟 + 障(祉障障с) + 祉障咲筝с篏腆肴筝с篏睡荳莢篁 + с蕁障 + 祉絽障潟若紊贋 BSD ゃ祉潟鴻緇 + 荅括完 license.txt с -■関連 URI - ・ W3M Homepage http://w3m.sourceforge.net/ - ・ w3m-img http://www2u.biglobe.ne.jp/~hsaka/w3m/index-ja.html - ・ Linux Kernel Hack Japan http://www.sainet.or.jp/~yamasaki/ - ・ Imlib2 http://www.enlightenment.org/pages/main.html - ・ GdkPixbuf http://developer.gnome.org/arch/imaging/gdkpixbuf.html +∫ URI + W3M Homepage http://w3m.sourceforge.net/ + w3m-img http://www2u.biglobe.ne.jp/~hsaka/w3m/index-ja.html + Linux Kernel Hack Japan http://www.sainet.or.jp/~yamasaki/ + Imlib2 http://www.enlightenment.org/pages/main.html + GdkPixbuf http://developer.gnome.org/arch/imaging/gdkpixbuf.html -■履歴 - ・2002/07/05 開発開始 - ・2002/07/07 ImageMagick 版動作確認 - ・2002/07/10 GdkPixbuf 版動作確認 - ・2002/07/11 Imlib2 版動作確認 - ・2002/07/15 Version 0.1 - 公開 - ・2002/07/22 Version 0.2 - 描画の高速化 +絮ユ + 2002/07/05 咲紮 + 2002/07/07 ImageMagick 篏腆肴 + 2002/07/10 GdkPixbuf 篏腆肴 + 2002/07/11 Imlib2 篏腆肴 + 2002/07/15 Version 0.1 + + 2002/07/22 Version 0.2 + 祉蕭 -■連絡先 +g機 ZXB01226@nifty.com http://homepage3.nifty.com/slokar/ diff --git a/w3mimg/win/.cvsignore b/w3mimg/win/.cvsignore deleted file mode 100644 index f3c7a7c..0000000 --- a/w3mimg/win/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile diff --git a/w3mimg/win/CVS/Entries b/w3mimg/win/CVS/Entries deleted file mode 100644 index 5025b4b..0000000 --- a/w3mimg/win/CVS/Entries +++ /dev/null @@ -1,4 +0,0 @@ -/Makefile.in/1.1/Tue Dec 21 10:13:55 2010// -/win_w3mimg.cpp/1.2/Fri Dec 24 09:52:06 2010// -/.cvsignore/1.1/Wed Jan 5 09:52:10 2011// -D diff --git a/w3mimg/win/CVS/Repository b/w3mimg/win/CVS/Repository deleted file mode 100644 index 06901a3..0000000 --- a/w3mimg/win/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/w3mimg/win diff --git a/w3mimg/win/CVS/Root b/w3mimg/win/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/w3mimg/win/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/w3mimg/x11/.cvsignore b/w3mimg/x11/.cvsignore deleted file mode 100644 index f3c7a7c..0000000 --- a/w3mimg/x11/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile diff --git a/w3mimg/x11/CVS/Entries b/w3mimg/x11/CVS/Entries deleted file mode 100644 index a3cf134..0000000 --- a/w3mimg/x11/CVS/Entries +++ /dev/null @@ -1,4 +0,0 @@ -/.cvsignore/1.1/Mon Sep 22 22:53:53 2003// -/Makefile.in/1.4/Mon Apr 26 17:00:38 2004// -/x11_w3mimg.c/1.29/Mon Nov 8 17:14:06 2004// -D diff --git a/w3mimg/x11/CVS/Repository b/w3mimg/x11/CVS/Repository deleted file mode 100644 index 1268050..0000000 --- a/w3mimg/x11/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -w3m/w3mimg/x11 diff --git a/w3mimg/x11/CVS/Root b/w3mimg/x11/CVS/Root deleted file mode 100644 index 121fa06..0000000 --- a/w3mimg/x11/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m diff --git a/w3mimg/x11/x11_w3mimg.c b/w3mimg/x11/x11_w3mimg.c index f5be4a8..9a539de 100644 --- a/w3mimg/x11/x11_w3mimg.c +++ b/w3mimg/x11/x11_w3mimg.c @@ -14,7 +14,7 @@ #elif defined(USE_GDKPIXBUF) #if defined(USE_GTK2) #include <glib-object.h> -#include <gdk/gdk.h> +#include <gdk-pixbuf/gdk-pixbuf.h> #include <gdk-pixbuf-xlib/gdk-pixbuf-xlib.h> #else #include <gdk-pixbuf/gdk-pixbuf-xlib.h> @@ -121,24 +121,32 @@ x11_init(w3mimg_op * self) if (self == NULL) return 0; xi = (struct x11_info *)self->priv; +#if defined(USE_IMLIB) if (xi == NULL) return 0; -#if defined(USE_IMLIB) if (!xi->id) { xi->id = Imlib_init(xi->display); if (!xi->id) return 0; } #elif defined(USE_GDKPIXBUF) - if (!xi->init_flag) { + if (!xi) { +#if defined(USE_GTK2) + g_type_init(); +#endif + } + else if (!xi->init_flag) { + XWindowAttributes attr; #if defined(USE_GTK2) g_type_init(); #endif - gdk_pixbuf_xlib_init(xi->display, 0); + XGetWindowAttributes(xi->display, xi->parent, &attr); + /* gdk_pixbuf_xlib_init_with_depth() ignores depth, sigh... */ + gdk_pixbuf_xlib_init_with_depth(xi->display, 0, attr.depth); xi->init_flag = TRUE; } #endif - if (!xi->imageGC) { + if (xi && !xi->imageGC) { xi->imageGC = XCreateGC(xi->display, xi->parent, 0, NULL); if (!xi->imageGC) return 0; @@ -200,14 +208,16 @@ x11_set_background(w3mimg_op * self, char *background) { XColor screen_def, exact_def; struct x11_info *xi; + XWindowAttributes attr; if (self == NULL) return; xi = (struct x11_info *)self->priv; if (xi == NULL) return; + XGetWindowAttributes(xi->display, xi->window, &attr); if (background && - XAllocNamedColor(xi->display, DefaultColormap(xi->display, 0), + XAllocNamedColor(xi->display, attr.colormap, background, &screen_def, &exact_def)) xi->background_pixel = screen_def.pixel; else { @@ -216,7 +226,7 @@ x11_set_background(w3mimg_op * self, char *background) XImage *i; p = XCreatePixmap(xi->display, xi->window, 1, 1, - DefaultDepth(xi->display, 0)); + attr.depth); gc = XCreateGC(xi->display, xi->window, 0, NULL); if (!p || !gc) exit(1); /* XXX */ @@ -258,6 +268,7 @@ x11_img_new(struct x11_info *xi, int w, int h, int n) { struct x11_image *img = NULL; int i; + XWindowAttributes attr; img = malloc(sizeof(*img)); if (!img) @@ -267,9 +278,10 @@ x11_img_new(struct x11_info *xi, int w, int h, int n) if (!img->pixmap) goto ERROR; + XGetWindowAttributes(xi->display, xi->window, &attr); for (i = 0; i < n; i++) { img->pixmap[i] = XCreatePixmap(xi->display, xi->parent, w, h, - DefaultDepth(xi->display, 0)); + attr.depth); if (!img->pixmap[i]) goto ERROR; @@ -318,6 +330,41 @@ resize_image(GdkPixbuf * pixbuf, int width, int height) return NULL; return resized_pixbuf; } + +#if defined(USE_GTK2) +static void +render_pixbuf_to_pixmap_32(Display *display, GC gc, Pixmap pixmap, GdkPixbuf * pixbuf) +{ + unsigned int x, y, width, height, rowstride, bytes_per_pixel; + unsigned char *line; + XImage *image; + + width = gdk_pixbuf_get_width(pixbuf) ; + height = gdk_pixbuf_get_height(pixbuf) ; + + if (!(image = XGetImage(display, pixmap, 0, 0, width, height, AllPlanes, ZPixmap))) + return ; + + bytes_per_pixel = (gdk_pixbuf_get_has_alpha(pixbuf)) ? 4 : 3; + rowstride = gdk_pixbuf_get_rowstride(pixbuf); + line = gdk_pixbuf_get_pixels(pixbuf); + + for (y = 0; y < height; y++) { + u_char *pixel; + + pixel = line; + for (x = 0; x < width; x++) { + XPutPixel(image, x, y, + (pixel[0] <<16) | (pixel[1] <<8) | pixel[2] | 0xff000000); + pixel += bytes_per_pixel; + } + line += rowstride; + } + + XPutImage(display, pixmap, gc, image, 0, 0, 0, 0, width, height); + XDestroyImage(image); +} +#endif #endif static int @@ -342,6 +389,7 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char *fname, int w, int h) GList *frames; #endif #endif + XWindowAttributes attr; if (self == NULL) return 0; @@ -349,6 +397,7 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char *fname, int w, int h) if (xi == NULL) return 0; + XGetWindowAttributes(xi->display, xi->window, &attr); #if defined(USE_IMLIB) im = Imlib_load_image(xi->id, fname); if (!im) @@ -358,7 +407,7 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char *fname, int w, int h) if (h <= 0) h = im->rgb_height; img->pixmap = (void *)XCreatePixmap(xi->display, xi->parent, w, h, - DefaultDepth(xi->display, 0)); + attr.depth); if (!img->pixmap) return 0; XSetForeground(xi->display, xi->imageGC, xi->background_pixel); @@ -374,17 +423,21 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char *fname, int w, int h) w = imlib_image_get_width(); if (h <= 0) h = imlib_image_get_height(); + + im = imlib_create_cropped_scaled_image(0, 0, imlib_image_get_width(), imlib_image_get_height(), w, h); + imlib_context_set_image(im); + img->pixmap = (void *)XCreatePixmap(xi->display, xi->parent, w, h, - DefaultDepth(xi->display, 0)); + attr.depth); if (!img->pixmap) return 0; XSetForeground(xi->display, xi->imageGC, xi->background_pixel); XFillRectangle(xi->display, (Pixmap) img->pixmap, xi->imageGC, 0, 0, w, h); imlib_context_set_display(xi->display); - imlib_context_set_visual(DefaultVisual(xi->display, 0)); - imlib_context_set_colormap(DefaultColormap(xi->display, 0)); + imlib_context_set_visual(attr.visual); + imlib_context_set_colormap(attr.colormap); imlib_context_set_drawable((Drawable) img->pixmap); - imlib_render_image_on_drawable_at_size(0, 0, w, h); + imlib_render_image_on_drawable(0, 0); imlib_free_image(); #elif defined(USE_GDKPIXBUF) max_anim = self->max_anim; @@ -416,7 +469,7 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char *fname, int w, int h) ratio_h = 1.0 * h / ih; } tmp_pixmap = XCreatePixmap(xi->display, xi->parent, w, h, - DefaultDepth(xi->display, 0)); + attr.depth); XSetForeground(xi->display, xi->imageGC, xi->background_pixel); XFillRectangle(xi->display, (Pixmap) tmp_pixmap, xi->imageGC, 0, 0, w, h); if (!tmp_pixmap) { @@ -459,7 +512,10 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char *fname, int w, int h) if (delay > ximg->delay) ximg->delay = delay; - gdk_pixbuf_xlib_render_to_drawable_alpha(pixbuf, + if (attr.depth == 32) + render_pixbuf_to_pixmap_32(xi->display, xi->imageGC, ximg->pixmap[j], pixbuf); + else + gdk_pixbuf_xlib_render_to_drawable_alpha(pixbuf, (Drawable) ximg->pixmap[j], 0, 0, 0, 0, w, h, GDK_PIXBUF_ALPHA_BILEVEL, 1, @@ -653,9 +709,11 @@ x11_get_image_size(w3mimg_op * self, W3MImage * img, char *fname, int *w, if (self == NULL) return 0; +#if defined(USE_IMLIB) && defined(USE_IMLIB2) xi = (struct x11_info *)self->priv; if (xi == NULL) return 0; +#endif #if defined(USE_IMLIB) im = Imlib_load_image(xi->id, fname); @@ -755,6 +813,9 @@ w3mimg_x11open() return NULL; memset(wop, 0, sizeof(w3mimg_op)); + if (getenv("W3M_USE_REMOTE_IMAGE")) + goto end; + xi = (struct x11_info *)malloc(sizeof(struct x11_info)); if (xi == NULL) goto error; @@ -807,6 +868,7 @@ w3mimg_x11open() wop->priv = xi; + end: wop->init = x11_init; wop->finish = x11_finish; wop->active = x11_active; diff --git a/w3mimgdisplay.c b/w3mimgdisplay.c index 5486a47..ccfa373 100644 --- a/w3mimgdisplay.c +++ b/w3mimgdisplay.c @@ -281,6 +281,10 @@ DrawImage(char *buf, int redraw) maxImage = n + 1; imageBuf = (W3MImage *) realloc((void *)imageBuf, sizeof(W3MImage) * maxImage); + if (imageBuf == NULL) { + fprintf(stderr, "Out of memory\n"); + exit(1); + } for (; i < maxImage; i++) imageBuf[i].pixmap = NULL; } |