荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (pq), 信区: InstallBBS
标  题: SMTH_003  阅读精华区时直接跳转到相邻的一页
发信站: 荔园晨风BBS站 (Thu Nov 29 11:21:43 2001), 转信

【 以下文字转载自 jjk 的信箱 】
【 原文由 jjk.bbs@bbs.pku.edu.cn 所发表 】
发信人: Admin (新的一天从零开始), 信区: BBSDev
标  题: SMTH_003  阅读精华区时直接跳转到相邻的一页
发信站: 北大未名站 (2001年05月24日11:19:20 星期四), 站内信件

发信人: Leeward (5% completed★Y2K:PP), 信区: BBSMan_Dev
标  题: SMTH_003  阅读精华区时直接跳转到相邻的一页
发信站: BBS 水木清华站 (Mon Jan 25 05:50:33 1999)

本文描述的修改在 FireBird 2.5 和 2.6 上均可使用.

FireBird 原始代码在阅读版面文章时, 阅读完毕可以不退回文章列表画面,
而直接阅读相邻的上一篇或者下一篇文章. 但是阅读精华区文章时没有这个功能.

考虑到阅读精华区的系列文章(比如小说连载)时, 很需要直接阅读"下一篇"的功能,
特修改代码增添了这个功能:
        在精华区阅读文章到末尾时,用上/下箭头直接跳转到前/后一项

需要特别说明的是,如果上/下一项是 "目录" 而非 "文件" ,
则按跳转键后也将直接跳转到该目录中去,显示目录列表.

此外,跳转支持在第一篇文章和最后一篇文章处的卷绕.

修改代码于 Sun Sep 13 18:28:43 1998 由 Leeward 在水木清华站开发并运行.

=========================================================================

程序修改:
bbs_src/announce.c 的 a_menu 函数中:
        if( ch == 'Q' || ch == 'q' || ch == KEY_LEFT || ch == EOF )
            break;
        switch( ch ) {
>两句中间添加一个标号,成为:
        if( ch == 'Q' || ch == 'q' || ch == KEY_LEFT || ch == EOF )
            break;
EXPRESS: /* Leeward 98.09.13 */
        switch( ch ) {

然后在这个 switch 块内的 case KEY_RIGHT: 块内下列代码处:
                    if( dashf( fname ) ) {
                        ansimore( fname, YEA );
                    }
>修改并添加成为:
                    if( dashf( fname ) ) {
                        /*ansimore( fname, YEA );*/
                        /* Leeward 98.09.13 新添功能∶
在精华区阅读文章到末尾时,用上/下箭头直接跳转到前/后一项 */
                        ansimore( fname, NA );
                        prints("^[[1m^[[44m^[[31m[阅读精华区资料]  ^[[33m结束
Q, ← │ 上一项资料 U,↑│ 下一项资料 <Enter>,<Space>,↓ ^[[m");
                         switch( ch = egetch() )
                         {
                           case KEY_DOWN: case ' ': case '\n':
                             if ( ++ me.now >= me.num )  me.now = 0;
                             ch = KEY_RIGHT; goto EXPRESS;
                           case KEY_UP: case 'u': case'U':
                             if (-- me.now < 0 )  me.now = me.num - 1;
                             ch = KEY_RIGHT; goto EXPRESS;
                           case 'h':
                             goto EXPRESS;
                           default: break;
                         }
                    }

特别说明两点:
1. ^[[1m 的输入方式是(在 vi 中):Esc i Ctrl-V Ctrl-[ [ 1 m 一共七次击键
2.上面的 prints 一句中的字符串应该是写在一行内的,本文是为了好看才折行的.
--
        我 们 的 一 切 追 求 和 作 为, 都 有 一 个 令 人 厌 倦 的 过 程

   作 为 一 个 不 识 厌 倦 为 何 物 的 人, 便 掌 握 了 生 命 的 全 部 秘 密

※ 修改:·Leeward 於 Jan 25 06:16:58 修改本文·[FROM:  202.112.58.200]

--

     目前正在搜集整理内存管理相关资料
            欢迎提供

     泛一叶轻舟,漂流海上,逍遥有过于斯乎?


※ 来源:·北大未名站 bbs.pku.edu.cn·[FROM: 162.105.203.8]
--
※ 转寄:·北大未名站 bbs.pku.edu.cn·[FROM: 210.39.3.50]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店