]> git.lyx.org Git - features.git/commitdiff
Fix bug 3062, bookmark-goto x crashes lyx for invalid bookmark
authorBo Peng <bpeng@lyx.org>
Sun, 7 Jan 2007 22:41:54 +0000 (22:41 +0000)
committerBo Peng <bpeng@lyx.org>
Sun, 7 Jan 2007 22:41:54 +0000 (22:41 +0000)
* src/session.C: check validity of temp bookmark
* src/lyxfunc.C: check validity of bookmark in GOTO_BOOKMARK
* lib/bind/*.bind: remove shortcuts to bookmark-save 2/3/4/5

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16589 a592a061-630c-0410-9148-cb99ea01b6c8

lib/bind/cua.bind
lib/bind/emacs.bind
lib/bind/mac.bind
lib/bind/xemacs.bind
src/lyxfunc.C
src/session.C

index 78498fd7d2fbbfbfc7d8f1a805b15d133bbe988d..e0c0b5b31350f1708863f1768b091f8da45ed384 100644 (file)
 \bind "C-~S-4"                 "bookmark-goto 4"
 \bind "C-~S-5"                 "bookmark-goto 5"
 \bind "C-M-~S-1"               "bookmark-save 1"
-\bind "C-M-~S-2"               "bookmark-save 2"
-\bind "C-M-~S-3"               "bookmark-save 3"
-\bind "C-M-~S-4"               "bookmark-save 4"
-\bind "C-M-~S-5"               "bookmark-save 5"
 
 
 #
index cd7a0fac137b199cd90ee0f9285513f14e74868c..da23e8902637c53bc50a9c58b67517b19590d8f7 100644 (file)
 \bind "C-~S-4"                 "bookmark-goto 4"
 \bind "C-~S-5"                 "bookmark-goto 5"
 \bind "C-M-~S-1"               "bookmark-save 1"
-\bind "C-M-~S-2"               "bookmark-save 2"
-\bind "C-M-~S-3"               "bookmark-save 3"
-\bind "C-M-~S-4"               "bookmark-save 4"
-\bind "C-M-~S-5"               "bookmark-save 5"
 
 # The below are xemacs bindings
 #\bind "Home"                   "line-begin"
index 9781eff770d473449dd7fc82e2e60407891ef9bb..9d1f3ebd06c1a0d585169c107ed92fbefb825209 100644 (file)
 \bind "C-~S-4"                 "bookmark-goto 4"
 \bind "C-~S-5"                 "bookmark-goto 5"
 \bind "C-M-~S-1"               "bookmark-save 1"
-\bind "C-M-~S-2"               "bookmark-save 2"
-\bind "C-M-~S-3"               "bookmark-save 3"
-\bind "C-M-~S-4"               "bookmark-save 4"
-\bind "C-M-~S-5"               "bookmark-save 5"
 
 
 #
index 03c54cfe48896dc18325e28d4ad4bef3380364b8..6af4a100829313e4ec7ee47db63dd17057d5d5d9 100644 (file)
 \bind "C-~S-4"                 "bookmark-goto 4"
 \bind "C-~S-5"                 "bookmark-goto 5"
 \bind "C-M-~S-1"               "bookmark-save 1"
-\bind "C-M-~S-2"               "bookmark-save 2"
-\bind "C-M-~S-3"               "bookmark-save 3"
-\bind "C-M-~S-4"               "bookmark-save 4"
-\bind "C-M-~S-5"               "bookmark-save 5"
 
 #
 # Motion + select group
index a631c42d356c095f792f983eb5dff2f30f06a154..09307e9366595e6833d0242619a2c054168c4f95 100644 (file)
@@ -1673,6 +1673,8 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                case LFUN_BOOKMARK_GOTO: {
                        BOOST_ASSERT(lyx_view_);
                        unsigned int idx = convert<unsigned int>(to_utf8(cmd.argument()));
+                       if (!LyX::ref().session().bookmarks().isValid(idx))
+                               break;
                        BookmarksSection::Bookmark const bm = LyX::ref().session().bookmarks().bookmark(idx);
                        BOOST_ASSERT(!bm.filename.empty());
                        string const file = bm.filename.absFilename();
index 8ecbb5255dae7cfd18195a89f38556040971d619..7078a2a7342a29721e3656197860d0ca0b944d8e 100644 (file)
@@ -296,8 +296,10 @@ void BookmarksSection::save(FileName const & fname, int par_id, pos_type par_pos
 
 bool BookmarksSection::isValid(unsigned int i) const
 {
-       // i == 0, or in the queue
-       return i <= bookmarks.size();
+       if (i == 0)
+               return !temp_bookmark.filename.empty();
+       else
+               return i <= bookmarks.size() && !bookmarks[i-1].filename.empty();
 }