summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvictor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-08-24 12:11:53 +0800
committervictor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-08-24 12:11:53 +0800
commitd13ca369037c5cec62c5f2af1f71b764438849a0 (patch)
tree21e9c8658ef793b72ca4e6898d7f19bd89dcc1bf
parenta7a964cdbf2ff45a2ade435e0dbb64638f7daf3c (diff)
downloadpttbbs-d13ca369037c5cec62c5f2af1f71b764438849a0.tar
pttbbs-d13ca369037c5cec62c5f2af1f71b764438849a0.tar.gz
pttbbs-d13ca369037c5cec62c5f2af1f71b764438849a0.tar.bz2
pttbbs-d13ca369037c5cec62c5f2af1f71b764438849a0.tar.lz
pttbbs-d13ca369037c5cec62c5f2af1f71b764438849a0.tar.xz
pttbbs-d13ca369037c5cec62c5f2af1f71b764438849a0.tar.zst
pttbbs-d13ca369037c5cec62c5f2af1f71b764438849a0.zip
missing the type checking
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3077 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--mbbsd/fav.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/mbbsd/fav.c b/mbbsd/fav.c
index 66175de1..5c3ee44a 100644
--- a/mbbsd/fav.c
+++ b/mbbsd/fav.c
@@ -961,12 +961,16 @@ static void fav_dosomething_tagged_item(fav_t *fp, int (*act)(fav_t *, fav_type_
static int remove_tagged_item(fav_t *fp, fav_type_t *ft)
{
- int i;
- for(i = 0; i < FAV_MAXDEPTH && fav_stack[i] != NULL; i++)
- if (fav_stack[i] == get_fav_folder(ft)){
- set_attr(ft, FAVH_TAG, FALSE);
- return 0;
+ // do not remove the folder if it's on the stack
+ if (get_item_type(ft) == FAVT_FOLDER) {
+ int i;
+ for(i = 0; i < FAV_MAXDEPTH && fav_stack[i] != NULL; i++) {
+ if (fav_stack[i] == get_fav_folder(ft)){
+ set_attr(ft, FAVH_TAG, FALSE);
+ return 0;
+ }
}
+ }
return fav_remove(fp, ft);
}
@@ -980,13 +984,17 @@ inline static int fav_remove_tagged_item(fav_t *fp){
*/
static int add_and_remove_tag(fav_t *fp, fav_type_t *ft)
{
- int i;
fav_type_t *tmp;
- for(i = 0; i < FAV_MAXDEPTH && fav_stack[i] != NULL; i++)
- if (fav_stack[i] == get_fav_folder(ft)){
- set_attr(ft, FAVH_TAG, FALSE);
- return 0;
+ // do not remove the folder if it's on the stack
+ if (get_item_type(ft) == FAVT_FOLDER) {
+ int i;
+ for(i = 0; i < FAV_MAXDEPTH && fav_stack[i] != NULL; i++) {
+ if (fav_stack[i] == get_fav_folder(ft)){
+ set_attr(ft, FAVH_TAG, FALSE);
+ return 0;
+ }
}
+ }
tmp = fav_malloc(sizeof(fav_type_t));
fav_item_copy(tmp, ft);
/* since fav_item_copy is symbolic link, we disable removed link to