X-Git-Url: https://git.llucax.com/software/mutt-debian.git/blobdiff_plain/3799c7942e787a60a5b990d87f7f58208d5ec08e..c5b192a33a305c26dfc056daa813c9a5d435da43:/debian/patches/features/sensible_browser_position?ds=inline diff --git a/debian/patches/features/sensible_browser_position b/debian/patches/features/sensible_browser_position index fd34e32..fe487b1 100644 --- a/debian/patches/features/sensible_browser_position +++ b/debian/patches/features/sensible_browser_position @@ -5,37 +5,38 @@ This is the sensible browser position patch by Haakon Riiser. http://lists.df7cb.de/mutt/message/20050309.162127.a244a894.en.html == END PATCH -Index: debian-mutt/menu.c -=================================================================== ---- debian-mutt.orig/menu.c 2007-03-24 18:45:30.000000000 +0100 -+++ debian-mutt/menu.c 2007-06-28 21:48:47.000000000 +0200 -@@ -840,8 +840,12 @@ int menu_redraw (MUTTMENU *menu) +--- a/menu.c ++++ b/menu.c +@@ -852,8 +852,17 @@ int mutt_menuLoop (MUTTMENU *menu) { + static int last_position = -1; int i = OP_NULL; -+ if (menu->is_mailbox_list && last_position >= 0) -+ menu->current = last_position; ++ if ( menu->max && menu->is_mailbox_list ) { ++ if ( last_position > (menu->max-1) ) { ++ last_position = -1; ++ } else if (last_position >= 0) { ++ menu->current = last_position; ++ } ++ } + FOREVER { if (option (OPTMENUCALLER)) -@@ -1073,6 +1077,8 @@ int mutt_menuLoop (MUTTMENU *menu) +@@ -1081,6 +1090,8 @@ break; default: -+ if (menu->is_mailbox_list) -+ last_position = menu->current; ++ if (menu->is_mailbox_list) ++ last_position = menu->current; return (i); } } -Index: debian-mutt/browser.c -=================================================================== ---- debian-mutt.orig/browser.c 2007-06-28 21:41:27.000000000 +0200 -+++ debian-mutt/browser.c 2007-06-28 21:48:47.000000000 +0200 -@@ -56,6 +56,7 @@ typedef struct folder_t +--- a/browser.c ++++ b/browser.c +@@ -56,6 +56,7 @@ int num; } FOLDER; @@ -43,7 +44,7 @@ Index: debian-mutt/browser.c static char LastDir[_POSIX_PATH_MAX] = ""; static char LastDirBackup[_POSIX_PATH_MAX] = ""; -@@ -510,19 +511,38 @@ static void init_menu (struct browser_st +@@ -536,9 +537,13 @@ menu->tagged = 0; if (buffy) @@ -55,40 +56,34 @@ Index: debian-mutt/browser.c { + menu->is_mailbox_list = 0; strfcpy (path, LastDir, sizeof (path)); - mutt_pretty_mailbox (path); + mutt_pretty_mailbox (path, sizeof (path)); #ifdef USE_IMAP -- if (state->imap_browse && option (OPTIMAPLSUB)) -- snprintf (title, titlelen, _("Subscribed [%s], File mask: %s"), -- path, NONULL (Mask.pattern)); -- else -+ if (state->imap_browse && option (OPTIMAPLSUB)) -+ snprintf (title, titlelen, _("Subscribed [%s], File mask: %s"), -+ path, NONULL (Mask.pattern)); -+ else +@@ -547,8 +552,22 @@ + path, NONULL (Mask.pattern)); + else #endif - snprintf (title, titlelen, _("Directory [%s], File mask: %s"), - path, NONULL(Mask.pattern)); -+ { -+ char *p = strrchr (OldLastDir, '/'); -+ if (p && p - OldLastDir == mutt_strlen (LastDir) && -+ mutt_strncmp (LastDir, OldLastDir, p - OldLastDir) == 0) -+ { -+ /* If we get here, it means that LastDir is the parent directory of -+ * OldLastDir. I.e., we're returning from a subdirectory, and we want -+ * to position the cursor on the directory we're returning from. */ -+ int i; -+ for (i = 0; i < state->entrymax; i++) -+ if (mutt_strcmp (state->entry[i].name, p + 1) == 0) -+ menu->current = i; -+ } -+ snprintf (title, titlelen, _("Directory [%s], File mask: %s"), -+ path, NONULL(Mask.pattern)); -+ } -+ ++ { ++ char *p = strrchr (OldLastDir, '/'); ++ if (p && p - OldLastDir == mutt_strlen (LastDir) && ++ mutt_strncmp (LastDir, OldLastDir, p - OldLastDir) == 0) ++ { ++ /* If we get here, it means that LastDir is the parent directory of ++ * OldLastDir. I.e., we're returning from a subdirectory, and we want ++ * to position the cursor on the directory we're returning from. */ ++ int i; ++ for (i = 0; i < state->entrymax; i++) ++ if (mutt_strcmp (state->entry[i].name, p + 1) == 0) ++ menu->current = i; ++ } ++ snprintf (title, titlelen, _("Directory [%s], File mask: %s"), ++ path, NONULL(Mask.pattern)); ++ } } menu->redraw = REDRAW_FULL; } -@@ -706,7 +726,6 @@ void _mutt_select_file (char *f, size_t +@@ -731,7 +750,6 @@ #endif ) { @@ -96,11 +91,9 @@ Index: debian-mutt/browser.c /* save the old directory */ strfcpy (OldLastDir, LastDir, sizeof (OldLastDir)); -Index: debian-mutt/mutt_menu.h -=================================================================== ---- debian-mutt.orig/mutt_menu.h 2007-03-20 20:42:04.000000000 +0100 -+++ debian-mutt/mutt_menu.h 2007-06-28 21:48:47.000000000 +0200 -@@ -49,6 +49,7 @@ typedef struct menu_t +--- a/mutt_menu.h ++++ b/mutt_menu.h +@@ -49,6 +49,7 @@ int offset; /* which screen row to start the index */ int pagelen; /* number of entries per screen */ int tagprefix; @@ -108,12 +101,3 @@ Index: debian-mutt/mutt_menu.h /* Setting dialog != NULL overrides normal menu behaviour. * In dialog mode menubar is hidden and prompt keys are checked before -Index: debian-mutt/PATCHES -=================================================================== ---- debian-mutt.orig/PATCHES 2007-06-28 21:49:06.000000000 +0200 -+++ debian-mutt/PATCHES 2007-06-28 21:49:20.000000000 +0200 -@@ -4,3 +4,4 @@ patch-1.5.13.nt+ab.xtitles.4 - patch-1.5.6.dw.maildir-mtime.1 - patch-1.5.13.cd.ifdef.2 - patch-1.5.16.rr.compressed.1 -+patch-1.5.8.hr.sensible_browser_position.3