aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog (follow)
Commit message (Collapse)AuthorAgeFilesLines
* [w3m-dev 03717] print newline before exec shell command.Fumitoshi UKAI2003-01-301-1/+6
| | | | | * main.c (execsh): print newline From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03715] initial currentLine when pager mode.Fumitoshi UKAI2003-01-301-1/+6
| | | | | * file.c (getNextPage): fix cur From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03714] -cols 1 -dump -o fold_line=1Fumitoshi UKAI2003-01-301-1/+8
| | | | | | | * file.c (addnewline): check i == 0, i == l->len * fm.h (_INIT_BUFFER_WIDTH): added (INIT_BUFFER_WIDTH): use _INIT_BUFFER_WIDTH From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03713] search with "$"Fumitoshi UKAI2003-01-301-1/+7
| | | | | | * search.c (forwardSearch): check l->next && l->next->bpos (backwardSearch): check l->size, l->next && l->next->bpos From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03712] buf fix of LINE_INFOFumitoshi UKAI2003-01-301-1/+6
| | | | | * main.c (curlno): rewrite From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03709] Re: view source, edit sourceFumitoshi UKAI2003-01-291-1/+11
| | | | | | | | | | * display.c (displayBuffer): INIT_BUFFER_WIDTH * file.c (_saveBuffer): added (saveBuffer): use _saveBuffer (saveBufferBody): added * main.c (vmSrc): saveBufferBody * proto.h (saveBufferBody): added From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev-en 00852] Re: Enhancement: content type detection of filesFumitoshi UKAI2003-01-291-1/+7
| | | | | | * url.c (DefaultGuess): remove upppercases (guessContentTypeFromTable): rewrite, strcasecmp From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03708] Re: Don't stop loading image when moving to next page.Fumitoshi UKAI2003-01-291-3/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03707] Don't stop loading image when moving to next page.Fumitoshi UKAI2003-01-281-1/+8
| | | | | | | * display.c (save_current_buf): required when defined USE_IMAGE (displayBuffer): stop only buffer changed * image.c (loadImage): IMG_FLAG_START load from maxLoadImage From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03706] X-Image-URL: support, bug fix of reshapeBuffer()Fumitoshi UKAI2003-01-281-1/+7
| | | | | | * buffer.c (reshapeBuffer): rewrite * file.c (readHeader): rewrite From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03705] goodict.cgi (was: Re: google.cgi (was: Re: keymap key SEARCH ↵Fumitoshi UKAI2003-01-281-1/+6
| | | | | | | string)) * Bonus/goodict.cgi: added From: NAKAJIMA Mikio <minakaji@osaka.email.ne.jp>
* [w3m-dev 03700] Re: google.cgi (was: Re: keymap key SEARCH string)Fumitoshi UKAI2003-01-281-1/+6
| | | | | * main.c (goURL0): check relative or *url == '#' From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03689] Re: fold patchFumitoshi UKAI2003-01-271-1/+8
| | | | | | | * fm.h (BufferPos): add bpos * main.c (save_buffer_position): bpos initialize (resetPos): reset bpos From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03686] Re: fold patchFumitoshi UKAI2003-01-251-1/+17
| | | | | | | | | | | | | | | | * 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 From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03684] Re: fold patchFumitoshi UKAI2003-01-241-1/+8
| | | | | | | * file.c (PSIZE): added (HTMLlineproc2body): outc,outp is created by NewAtom_N use PSIZE From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* file.c (getNextPage): no need volatile for codeFumitoshi UKAI2003-01-241-1/+5
| | | | From: Fumitoshi UKAI <ukai@debian.or.jp>
* [w3m-dev 03683] interrupt in getNextPage()Fumitoshi UKAI2003-01-241-1/+6
| | | | | * file.c (getNextPage): trap SIGINT From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03682] open null file on tabFumitoshi UKAI2003-01-241-1/+6
| | | | | * display.c (displayBuffer): if empty, clear() From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03681] Re: fold patchFumitoshi UKAI2003-01-241-1/+9
| | | | | | | | * buffer.c (reshapeBuffer): buf->pos, sbuf.currentLine fix FoldLine * display.c (arrangeCursor): buf->pos fix (restorePosition): buf->pos fix From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* NEWS: func: RESHAPEFumitoshi UKAI2003-01-231-1/+6
| | | | | rc: fold_line From: Fumitoshi UKAI <ukai@debian.or.jp>
* fix compiler warningsFumitoshi UKAI2003-01-231-1/+5
| | | | | * display.c (displayBuffer): fix suggest parentheses around && within || From: Fumitoshi UKAI <ukai@debian.or.jp>
* [w3m-dev 03667] fold patchFumitoshi UKAI2003-01-231-1/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* * etc.c (next_status): after = is R_ST_VALUEFumitoshi UKAI2003-01-231-1/+18
| | | | | | | | | | | | | | | | | 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 From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03680] showProgress() on fast systemFumitoshi UKAI2003-01-231-1/+6
| | | | | * file.c (showProgress): check line len, time From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03679] Re: cleanup for pipeFumitoshi UKAI2003-01-231-1/+7
| | | | | | * etc.c (open_pipe_rw): check stdin, stdout * file.c (uncompress_stream): rewrite From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03678] Re: config.param is clear when configure -helpFumitoshi UKAI2003-01-221-1/+6
| | | | | * configure: don't override config.param From: Fumitoshi UKAI <ukai@debian.or.jp>
* [w3m-dev 03677] view source, edit sourceFumitoshi UKAI2003-01-221-1/+11
| | | | | | | | | | * buffer.c (discardBuffer): unlink header source * file.c (loadFile): delete skip header * fm.h (BP_SOURCE): deleted (SkipHeader): deleted * main (editBf): cleanup (vmSrc): cleanup From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03676] cleanup for pipeFumitoshi UKAI2003-01-221-1/+15
| | | | | | | | | | | | | | * 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 From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03675] x-faceFumitoshi UKAI2003-01-221-1/+9
| | | | | | | | * file.c (xface2xpm): use getImage() (readHeader): check same file (loadImageBuffer): rewrite (lessopen_stream): shell_quote() From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03674] -dump problemFumitoshi UKAI2003-01-221-1/+11
| | | | | | | | | | * 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 From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03671] Re: config.param is clear when configure -helpFumitoshi UKAI2003-01-221-1/+6
| | | | | * configure: test -f config.param From: Yoshinobu Sakane <sakane@d4.bsd.nes.nec.co.jp>
* [w3m-dev 03665] imlib2 support (on X11)Fumitoshi UKAI2003-01-211-1/+12
| | | | | | | | | | | * 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 From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03664] config.param is clear when configure -helpFumitoshi UKAI2003-01-211-1/+6
| | | | | * configure: config.param created after arg parsing From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* * map.c (follow_map_menu): if USE_IMAGE or MENU_MAPFumitoshi UKAI2003-01-201-1/+6
| | | | | * proto.h (follow_map_menu): ditto From: Fumitoshi UKAI <ukai@debian.or.jp>
* [w3m-dev 03660] Re: fputs -> StrfputsFumitoshi UKAI2003-01-201-1/+17
| | | | | | | | | | | | | | | | * 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 From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03659] Can't download from SSL.Fumitoshi UKAI2003-01-201-1/+6
| | | | | * istream.c (ISfileno): case IST_SSL From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03658] Re: Other user can see local cookie.Fumitoshi UKAI2003-01-201-1/+8
| | | | | | | * fm.h (rc_dir): init(NULL) * rc.c (config_file): deleted (init_rc): use rc_dir From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03657] fputs -> StrfputsFumitoshi UKAI2003-01-201-1/+6
| | | | | * form.c (form_fputs_decode): use Strfputs() From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03655] Re: file.c:image_source when undef USE_IMAGEFumitoshi UKAI2003-01-191-1/+6
| | | | | * map.c (follow_map_menu): fix warnings From: Fumitoshi UKAI <ukai@debian.or.jp>
* [w3m-dev 03654] file.c:image_source when undef USE_IMAGEFumitoshi UKAI2003-01-191-1/+8
| | | | | | | * file.c (readHeader): image_source ifdef USE_IMAGE (loadGeneralFile): ditto (uncompress_stream): ditto From: WATANABE Katsuyuki <knabe@sannet.ne.jp>
* [w3m-dev 03653] SourceForge.net: 576032 w3m https crashes with OpenSSL-0.9.7Fumitoshi UKAI2003-01-181-1/+6
| | | | | * istream.c (ssl_check_cert_ident): use sk_GENERAL_NAME_free() From: Fumitoshi UKAI <ukai@debian.or.jp>
* [w3m-dev 03652] Re: Debian bug #176981Fumitoshi UKAI2003-01-171-1/+7
| | | | | | * file.c (checkHeader): always remove_space (loadGeneralFile): no need remove_space From: Fumitoshi UKAI <ukai@debian.or.jp>
* [w3m-dev 03651] Debian bug #176981Fumitoshi UKAI2003-01-171-1/+9
| | | | | | | | * file.c (checkRedirection): added (loadGeneralFile): check redirection t_buf only is created when it is NULL remove_space From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03647] expandName() and expandPath()Fumitoshi UKAI2003-01-171-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | | * 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 From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03646] setup child process, local CGIFumitoshi UKAI2003-01-171-1/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03644] Re: Other user can see local cookie.Fumitoshi UKAI2003-01-151-1/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* * file.c (loadGopherDir): convertLine RAW_MODEFumitoshi UKAI2003-01-151-1/+6
| | | | | | * ftp.c (loadFTPDir): ditto * fix indent From: Fumitoshi UKAI <ukai@debian.or.jp>
* [w3m-dev 03642] Re: cleanup (don't close connection of news server)Fumitoshi UKAI2003-01-151-1/+6
| | | | | * local.c (localcgi_post): localcgi_popen_r first From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03641] Re: cleanup (don't close connection of news server)Fumitoshi UKAI2003-01-151-1/+7
| | | | | | * ftp.c (ftp_command): fix fwrite arg * news.c (news_command): fix fwrite arg From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03640] Re: cleanup (don't close connection of news server)Fumitoshi UKAI2003-01-151-1/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>