From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Karl Fogel Newsgroups: gmane.emacs.bugs Subject: bug#5975: Base patch for bug #5975 (bookmarking from Gnus Article buffer). Date: Tue, 13 Jul 2010 17:31:40 -0400 Message-ID: <87k4ozdq6b.fsf_-___46332.116254098$1279058454$gmane$org@red-bean.com> References: <87y6dydn6q.fsf@tux.homenetwork> <201006292126.15409.tassilo@member.fsf.org> <87iq51ehnv.fsf@tux.homenetwork> <201006292210.43121.tassilo@member.fsf.org> <87eifpegqx.fsf@tux.homenetwork> Reply-To: Karl Fogel NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1279058454 3178 80.91.229.12 (13 Jul 2010 22:00:54 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 13 Jul 2010 22:00:54 +0000 (UTC) Cc: 5975@debbugs.gnu.org, Thierry Volpiatto To: emacs-devel@gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Jul 14 00:00:51 2010 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OYnWz-0003hq-Rp for geb-bug-gnu-emacs@m.gmane.org; Wed, 14 Jul 2010 00:00:50 +0200 Original-Received: from localhost ([127.0.0.1]:58809 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OYnWz-0001aR-Bu for geb-bug-gnu-emacs@m.gmane.org; Tue, 13 Jul 2010 18:00:49 -0400 Original-Received: from [140.186.70.92] (port=45766 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OYnWV-0001Lk-Cs for bug-gnu-emacs@gnu.org; Tue, 13 Jul 2010 18:00:23 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OYnWR-0007oD-Fg for bug-gnu-emacs@gnu.org; Tue, 13 Jul 2010 18:00:19 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:55186) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OYnWR-0007o8-Dz for bug-gnu-emacs@gnu.org; Tue, 13 Jul 2010 18:00:15 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1OYn58-00054T-8P; Tue, 13 Jul 2010 17:32:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Karl Fogel Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 13 Jul 2010 21:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 5975 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 5975-submit@debbugs.gnu.org id=B5975.127905669819430 (code B ref 5975); Tue, 13 Jul 2010 21:32:02 +0000 Original-Received: (at 5975) by debbugs.gnu.org; 13 Jul 2010 21:31:38 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OYn4j-00053J-HR for submit@debbugs.gnu.org; Tue, 13 Jul 2010 17:31:38 -0400 Original-Received: from osh-net-219-98.onshore.net ([66.146.219.98] helo=sanpietro.red-bean.com) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OYn4g-00052x-FH for 5975@debbugs.gnu.org; Tue, 13 Jul 2010 17:31:35 -0400 Original-Received: from localhost ([127.0.0.1]:56019 helo=floss ident=kfogel) by sanpietro.red-bean.com with esmtp (Exim 4.72) (envelope-from ) id 1OYn4m-0005h5-FT; Tue, 13 Jul 2010 16:31:40 -0500 In-Reply-To: <87eifpegqx.fsf@tux.homenetwork> (Thierry Volpiatto's message of "Tue, 29 Jun 2010 22:16:54 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Tue, 13 Jul 2010 17:32:02 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:38495 Archived-At: I have a branch that prepares the way for setting bookmarks in Gnus Article buffers, based on Thierry's patch in bug #5975. I'm not sure where to apply this. Is pushing changes to trunk is okay right now? Starting from [1] and [2], I didn't find any notice that we are in feature freeze, but I'm pretty sure last time I pushed it turned out to be a mistake and that I should not have pushed to trunk. Independently of the above, Thierry, note I made some changes to your patch. You used (or kept) parameter names `point-only' and `read-only'; I changed those to `no-file' and `no-context', to describe what they are actually doing (whether the buffer is read-only or not is irrelevant to whether one wants the front/rear context strings in bookmark record). I also fixed up the doc string to mention your new POSN parameter, which I moved to the end of the parameter list. (Don't worry, I will adjust the gnus-sum.el patch as needed when the time comes.) I have not (yet) included your changes to gnus/gnus-art.el and gnus/gnus-sum.el, which finish the new functionality. Two reasons: 1. You said in the bug that you fixed C-w later. Could you provide that patch, please? 2. I'm not sure whether it's okay to commit significant code changes under gnus/, since the master is maintained outside the Emacs tree. If it is okay, then I am happy to apply your change (plus the C-w fix). I did test it, and it worked, except for C-w of course. Anyone who has comments or answers re the above, please chime in. Just for reference, the current (preparatory) patch is below. I will follow up separately with the gnus/* patch, so it's in the archives. Thanks for the patch, Thierry. We're getting close. -Karl [1] http://www.gnu.org/software/emacs/ [2] http://savannah.gnu.org/projects/emacs === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-07-13 10:41:49 +0000 +++ lisp/ChangeLog 2010-07-13 21:19:42 +0000 @@ -1,3 +1,26 @@ +2010-07-13 Karl Fogel + + Prepare the way for setting bookmarks in Gnus article buffers. + + * lisp/bookmark.el (bookmark-make-record-default): Allow unneeded + information to be omitted from the record. Based on part of a + patch by Thierry Volpiatto (Bug#5975). + + Adjust declarations and calls: + + * info.el (bookmark-make-record-default): Adjust declaration. + (Info-bookmark-make-record): Adjust call. + + * woman.el (bookmark-make-record-default): Adjust declaration. + (woman-bookmark-make-record): Adjust call. + + * man.el (bookmark-make-record-default): Adjust declaration. + (Man-bookmark-make-record): Adjust call. + + * image-mode.el (bookmark-make-record-default): Adjust declaration. + + * doc-view.el (bookmark-make-record-default): Adjust declaration. + 2010-07-13 Adrian Robert * term/ns-win.el: Bind M-~ to 'ns-prev-frame (due to Matthew === modified file 'lisp/bookmark.el' --- lisp/bookmark.el 2010-07-10 18:52:53 +0000 +++ lisp/bookmark.el 2010-07-13 21:19:42 +0000 @@ -528,26 +528,36 @@ (setq bookmark-current-bookmark stripped-name) (bookmark-bmenu-surreptitiously-rebuild-list))) -(defun bookmark-make-record-default (&optional point-only) +(defun bookmark-make-record-default (&optional no-file no-context posn) "Return the record describing the location of a new bookmark. -Must be at the correct position in the buffer in which the bookmark is -being set. -If POINT-ONLY is non-nil, then only return the subset of the -record that pertains to the location within the buffer." - `(,@(unless point-only `((filename . ,(bookmark-buffer-file-name)))) - (front-context-string - . ,(if (>= (- (point-max) (point)) bookmark-search-size) - (buffer-substring-no-properties - (point) - (+ (point) bookmark-search-size)) - nil)) - (rear-context-string - . ,(if (>= (- (point) (point-min)) bookmark-search-size) - (buffer-substring-no-properties - (point) - (- (point) bookmark-search-size)) - nil)) - (position . ,(point)))) +Point should be at the buffer in which the bookmark is being set, +and normally should be at the position where the bookmark is desired, +but see the optional arguments for other possibilities. + +If NO-FILE is non-nil, then only return the subset of the +record that pertains to the location within the buffer, leaving off +the part that records the filename. + +If NO-CONTEXT is non-nil, do not include the front- and rear-context +strings in the record -- the position is enough. + +If POSN is non-nil, record POSN as the point instead of `(point)'." + `(,@(unless no-file `((filename . ,(bookmark-buffer-file-name)))) + ,@(unless no-context `((front-context-string + . ,(if (>= (- (point-max) (point)) + bookmark-search-size) + (buffer-substring-no-properties + (point) + (+ (point) bookmark-search-size)) + nil)))) + ,@(unless no-context `((rear-context-string + . ,(if (>= (- (point) (point-min)) + bookmark-search-size) + (buffer-substring-no-properties + (point) + (- (point) bookmark-search-size)) + nil)))) + (position . ,(or posn (point))))) ;;; File format stuff === modified file 'lisp/doc-view.el' --- lisp/doc-view.el 2010-02-16 14:35:45 +0000 +++ lisp/doc-view.el 2010-07-13 21:19:42 +0000 @@ -1349,8 +1349,8 @@ ;;;; Bookmark integration -(declare-function bookmark-make-record-default "bookmark" - (&optional point-only)) +(declare-function bookmark-make-record-default + "bookmark" (&optional no-file no-context posn)) (declare-function bookmark-prop-get "bookmark" (bookmark prop)) (declare-function bookmark-default-handler "bookmark" (bmk)) === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2010-06-22 16:48:53 +0000 +++ lisp/gnus/ChangeLog 2010-07-13 21:19:42 +0000 @@ -1,3 +1,8 @@ +2010-07-13 Karl Fogel + + * gnus/gnus-sum.el (bookmark-make-record-default): Adjust + declaration, based on changes in bookmark.el. + 2010-06-22 Mark A. Hershberger * mm-url.el (mm-url-encode-multipart-form-data): New function to handle === modified file 'lisp/gnus/gnus-sum.el' --- lisp/gnus/gnus-sum.el 2010-06-10 00:30:13 +0000 +++ lisp/gnus/gnus-sum.el 2010-07-13 21:19:42 +0000 @@ -12621,7 +12621,8 @@ (gnus-summary-position-point))) ;;; Bookmark support for Gnus. -(declare-function bookmark-make-record-default "bookmark" (&optional pos-only)) +(declare-function bookmark-make-record-default + "bookmark" (&optional no-file no-context posn)) (declare-function bookmark-prop-get "bookmark" (bookmark prop)) (declare-function bookmark-default-handler "bookmark" (bmk)) (declare-function bookmark-get-bookmark-record "bookmark" (bmk)) === modified file 'lisp/image-mode.el' --- lisp/image-mode.el 2010-06-14 03:19:46 +0000 +++ lisp/image-mode.el 2010-07-13 21:19:42 +0000 @@ -516,8 +516,8 @@ ;;; Support for bookmark.el -(declare-function bookmark-make-record-default "bookmark" - (&optional point-only)) +(declare-function bookmark-make-record-default + "bookmark" (&optional no-file no-context posn)) (declare-function bookmark-prop-get "bookmark" (bookmark prop)) (declare-function bookmark-default-handler "bookmark" (bmk)) === modified file 'lisp/info.el' --- lisp/info.el 2010-06-17 20:56:17 +0000 +++ lisp/info.el 2010-07-13 21:19:42 +0000 @@ -4901,7 +4901,8 @@ '(Info-mode . Info-restore-desktop-buffer)) ;;;; Bookmark support -(declare-function bookmark-make-record-default "bookmark" (&optional pos-only)) +(declare-function bookmark-make-record-default + "bookmark" (&optional no-file no-context posn)) (declare-function bookmark-prop-get "bookmark" (bookmark prop)) (declare-function bookmark-default-handler "bookmark" (bmk)) (declare-function bookmark-get-bookmark-record "bookmark" (bmk)) @@ -4910,7 +4911,7 @@ "This implements the `bookmark-make-record-function' type (which see) for Info nodes." `(,Info-current-node - ,@(bookmark-make-record-default 'point-only) + ,@(bookmark-make-record-default 'no-file) (filename . ,Info-current-file) (info-node . ,Info-current-node) (handler . Info-bookmark-jump))) === modified file 'lisp/man.el' --- lisp/man.el 2010-06-01 02:34:49 +0000 +++ lisp/man.el 2010-07-13 21:19:42 +0000 @@ -1674,7 +1674,8 @@ complete-path)) ;;; Bookmark Man Support -(declare-function bookmark-make-record-default "bookmark" (&optional pos-only)) +(declare-function bookmark-make-record-default + "bookmark" (&optional no-file no-context posn)) (declare-function bookmark-prop-get "bookmark" (bookmark prop)) (declare-function bookmark-default-handler "bookmark" (bmk)) (declare-function bookmark-get-bookmark-record "bookmark" (bmk)) @@ -1691,7 +1692,7 @@ (defun Man-bookmark-make-record () "Make a bookmark entry for a Man buffer." `(,(Man-default-bookmark-title) - ,@(bookmark-make-record-default 'point-only) + ,@(bookmark-make-record-default 'no-file) (location . ,(concat "man " Man-arguments)) (man-args . ,Man-arguments) (handler . Man-bookmark-jump))) === modified file 'lisp/woman.el' --- lisp/woman.el 2010-05-25 02:11:08 +0000 +++ lisp/woman.el 2010-07-13 21:19:42 +0000 @@ -4521,7 +4521,8 @@ nil) ; for woman-file-readable-p etc. ;;; Bookmark Woman support. -(declare-function bookmark-make-record-default "bookmark" (&optional pos-only)) +(declare-function bookmark-make-record-default + "bookmark" (&optional no-file no-context posn)) (declare-function bookmark-prop-get "bookmark" (bookmark prop)) (declare-function bookmark-default-handler "bookmark" (bmk)) (declare-function bookmark-get-bookmark-record "bookmark" (bmk)) @@ -4532,7 +4533,7 @@ (defun woman-bookmark-make-record () "Make a bookmark entry for a Woman buffer." `(,(Man-default-bookmark-title) - ,@(bookmark-make-record-default 'point-only) + ,@(bookmark-make-record-default 'no-file) (location . ,(concat "woman " woman-last-file-name)) ;; Use the same form as man's bookmarks, as much as possible. (man-args . ,woman-last-file-name)