summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2008-04-13 01:20:08 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2008-04-13 01:20:08 +0800
commitba7d0724d84952fd0989b99ba5e9ef42d8b8f262 (patch)
tree4c8cfec674e0a163289835ed19d50d62de5b4a5e
parent050df9b137cf1be6876e551a5a98c1038be73b50 (diff)
downloadpttbbs-ba7d0724d84952fd0989b99ba5e9ef42d8b8f262.tar
pttbbs-ba7d0724d84952fd0989b99ba5e9ef42d8b8f262.tar.gz
pttbbs-ba7d0724d84952fd0989b99ba5e9ef42d8b8f262.tar.bz2
pttbbs-ba7d0724d84952fd0989b99ba5e9ef42d8b8f262.tar.lz
pttbbs-ba7d0724d84952fd0989b99ba5e9ef42d8b8f262.tar.xz
pttbbs-ba7d0724d84952fd0989b99ba5e9ef42d8b8f262.tar.zst
pttbbs-ba7d0724d84952fd0989b99ba5e9ef42d8b8f262.zip
- board: move cursor when leaving same board.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4149 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--include/proto.h2
-rw-r--r--mbbsd/bbs.c7
-rw-r--r--mbbsd/board.c8
3 files changed, 12 insertions, 5 deletions
diff --git a/include/proto.h b/include/proto.h
index 166c3fd2..7115a87d 100644
--- a/include/proto.h
+++ b/include/proto.h
@@ -79,7 +79,7 @@ int edit_title(int ent, fileheader_t *fhdr, const char *direct);
int whereami(void);
void set_board(void);
int do_post(void);
-void ReadSelect(void);
+int ReadSelect(void);
int save_violatelaw(void);
int board_select(void);
int board_digest(void);
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c
index 5baf189e..40c70a89 100644
--- a/mbbsd/bbs.c
+++ b/mbbsd/bbs.c
@@ -4046,19 +4046,24 @@ Read(void)
return 0;
}
-void
+int
ReadSelect(void)
{
int mode0 = currutmp->mode;
int stat0 = currstat;
+ int changed = 0;
currstat = SELECT;
if (do_select() == NEWDIRECT)
+ {
Read();
+ changed = 1;
+ }
// no need to set utmpbid here...
// setutmpbid(0);
currutmp->mode = mode0;
currstat = stat0;
+ return changed;
}
#ifdef LOG_BOARD
diff --git a/mbbsd/board.c b/mbbsd/board.c
index d6816ff0..b9fcdbf7 100644
--- a/mbbsd/board.c
+++ b/mbbsd/board.c
@@ -1548,15 +1548,17 @@ choose_board(int newflag)
break;
case 's':
{
- int cbid = currbid;
+ // XXX TODO
+ // 現在這樣搜不到群組...
+ //
// try global search instead.
- ReadSelect();
+ int trysearch = ReadSelect();
// restore my mode
setutmpmode(newflag ? READNEW : READBRD);
// force refresh
head = -1;
// try to match cursor if we can.
- if (cbid != currbid && currbid && currboard)
+ if (trysearch && currboard)
{
if ((tmp = search_board(currboard)) != -1)
num = tmp;