all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article buffer
@ 2010-04-19 17:07             ` Thierry Volpiatto
  2010-05-17 14:14               ` Thierry Volpiatto
                                 ` (3 more replies)
  0 siblings, 4 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-04-19 17:07 UTC (permalink / raw)
  To: 5975

[-- Attachment #1: Type: text/plain, Size: 11995 bytes --]

Hi,
actually we can bookmark a gnus mail/news only from summary buffer.
It is useful to be able to bookmark from article buffer and retrieve
position.
Find here a patch attached that fix that.
It is tested i already use it here.


In GNU Emacs 24.0.50.1 (i686-pc-linux-gnu, GTK+ Version 2.18.9)
 of 2010-04-17 on tux
Windowing system distributor `The X.Org Foundation', version 11.0.10706000
configured using `configure  '--prefix=/usr' '--build=i686-pc-linux-gnu' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--program-suffix=-emacs-24' '--infodir=/usr/share/info/emacs-24' '--with-sound' '--with-x' '--without-gconf' '--without-toolkit-scroll-bars' '--with-gif' '--with-jpeg' '--with-png' '--with-rsvg' '--with-tiff' '--with-xpm' '--with-xft' '--without-libotf' '--without-m17n-flt' '--with-x-toolkit=gtk' '--without-hesiod' '--without-kerberos' '--without-kerberos5' '--with-gpm' '--with-dbus' 'build_alias=i686-pc-linux-gnu' 'host_alias=i686-pc-linux-gnu' 'CFLAGS=-march=i686 -pipe -O2' 'LDFLAGS=-Wl,-O1''

Important settings:
  value of $LC_ALL: C
  value of $LC_COLLATE: C
  value of $LC_CTYPE: fr_FR.UTF-8
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: fr_FR.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  global-undo-tree-mode: t
  undo-tree-mode: t
  eldoc-mode: t
  delete-selection-mode: t
  minibuffer-depth-indicate-mode: t
  auto-image-file-mode: t
  shell-dirtrack-mode: t
  show-paren-mode: t
  display-battery-mode: t
  display-time-mode: t
  diff-auto-refine-mode: t
  savehist-mode: t
  desktop-save-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> C-z p <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <down> 
<down> <down> <down> <down> <left> <left> <left> C-z 
n <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <f5> a q <tab> <down> <down> 
<down> <down> <return> <down> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> <backspace> p a t c h - 1 0 7 9 6 3 <left> 
<left> <left> <left> <left> <left> r <right> <right> 
<right> <right> <right> <right> . p a t c h <return> 
C-z 5 <up> <up> <up> C-z n <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> M-x r e p o r t <ret
urn>

Recent messages:
 [2 times]
Mark set
Quit [2 times]
 [2 times]
qpush -> applying Initial-patch
now at: Initial-patch
Revert buffer from file /home/thierry/labo/emacs-hg-qp/lisp/gnus/gnus-sum.el? (y or n) 

Exported revision 107963 to /home/thierry/labo/emacs-hg-qp/patch-r107963.patch.


Load-path shadows:
/home/thierry/elisp/lua-mode/lua-mode hides /usr/share/emacs/site-lisp/lua-mode/lua-mode
~/elisp/g-client/json hides /usr/share/emacs/24.0.50/lisp/json
/usr/share/emacs/site-lisp/flim/hex-util hides /usr/share/emacs/24.0.50/lisp/hex-util
/usr/share/emacs/site-lisp/flim/sha1 hides /usr/share/emacs/24.0.50/lisp/sha1
/usr/share/emacs/site-lisp/flim/md4 hides /usr/share/emacs/24.0.50/lisp/md4
/usr/share/emacs/site-lisp/flim/ntlm hides /usr/share/emacs/24.0.50/lisp/net/ntlm
/usr/share/emacs/site-lisp/flim/hmac-def hides /usr/share/emacs/24.0.50/lisp/net/hmac-def
/usr/share/emacs/site-lisp/flim/sasl-digest hides /usr/share/emacs/24.0.50/lisp/net/sasl-digest
/usr/share/emacs/site-lisp/flim/sasl hides /usr/share/emacs/24.0.50/lisp/net/sasl
/usr/share/emacs/site-lisp/flim/hmac-md5 hides /usr/share/emacs/24.0.50/lisp/net/hmac-md5
/usr/share/emacs/site-lisp/flim/sasl-cram hides /usr/share/emacs/24.0.50/lisp/net/sasl-cram
/usr/share/emacs/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/24.0.50/lisp/net/sasl-ntlm
/home/thierry/elisp/emms/lisp/tq hides /usr/share/emacs/24.0.50/lisp/emacs-lisp/tq

Features:
(shadow emacsbug xgit-dvc xgit xgit-annotate dvc-annotate xgit-log
dvc-bookmarks canlock sha1 sha1-el hex-util em-unix em-script em-prompt
em-ls em-hist em-pred em-glob em-dirs em-cmpl em-basic esh-opt em-banner
em-alias esh-var esh-io esh-cmd esh-ext esh-proc esh-groups eshell
esh-module esh-mode help-mode view hl-line flyspell ispell epa-mail
gnus-fun smiley gnus-ml w3m-cookie sb-emacswiki sb-rss url-cache
url-handlers nnrss parse-time nnfolder nndraft nnmh bbdb-gnus bbdb-snarf
nnml starttls mailalias smtpmail qp gnus-agent gnus-srvr gnus-score
score-mode nnvirtual gnus-cache gnus-cite gnus-demon gnus-namazu
gnus-dired nnshimbun shimbun luna eword-encode eword-decode std11 mel
path-util mime-def mcharset mcs-20 mcs-e20 pces pces-e20 pces-20 broken
pcustom poe gnus-bcklg spam spam-stat gnus-uu yenc gnus-alias mail-extr
gnus-msg align conf-mode newcomment vc-rcs xhg-dvc xhg xhg-annotate
xhg-mq xhg-log bzr-core cg-core xdarcs-core xgit-core xhg-core
xmtn-minimal tla smerge-mode dvc-state dvc-config dvc-diff dvc-fileinfo
diff dvc-cmenu dvc-about dvc-version dvc-revlist uniquify align-let
server el-expectations el-mock csv2org iedit eieio zop-to-char wave-list
wave-display wave-client json netrc g g-cus-load elscreen-server
elscreen-dired elscreen-w3m mule-util alist pym static apel-ver product
elscreen undo-tree smallurl mm-url xml-weather rectangle-utils windmove
sdcv woof screenshot auto-document eiv tv-utils eldoc pcvs pcvs-parse
pcvs-info pcvs-defs showtip delsel init-anything-thierry
descbinds-anything anything-ipython ipython executable anything-grep
grep anything-dabbrev-expand dabbrev shell-history anything-complete
anything-show-completion anything-etags anything-match-plugin etags
anything-traverse anything-delicious anything-mercurial anything-config
w3m-bookmark rx anything firefox-protocol bookmark-firefox-handler
bookmark-extensions bookmark install-elisp find-func mb-depth autodoc
ioccur traverselisp thumb-page moz stumpwm-mode cl-info slime-banner
slime-tramp slime-asdf slime-fancy slime-fontifying-fu slime-package-fu
slime-references slime-xref-browser slime-scratch slime-presentations
slime-highlight-edits slime-fuzzy slime-fancy-inspector slime-c-p-c
slime-editing-commands slime-autodoc slime-parse slime-repl slime
apropos hideshow hyperspec thingatpt slime-autoloads bbdb-autoloads
bbdb-gui bbdb-com bbdb boxquote rect image-file tramp-imap tramp-gw
tramp-fish tramp-smb tramp-cache tramp-ftp tramp-cmds tramp shell
tramp-compat trampver newsticker newst-treeview tree-widget
newst-plainview newst-reader newst-ticker newst-backend ledger pcomplete
esh-arg esh-util extview lpr woman man assoc two-column shell-command
em-term term ehelp electric esh-toggle em-xtra dirtrack flymake pdbtrack
pycomplete python-mode info-look ansi-color pymacs no-word regex-tool
whitespace htmlfontify text-translator-load paren battery time dired-tar
compile comint dired-extension image-dired dired-details yaoddmuse
skeleton sgml-mode emms-mpd-config emms-playlist-limit emms-volume
emms-volume-amixer emms-i18n emms-history emms-score emms-stream-info
emms-metaplaylist-mode emms-bookmarks emms-lastfm-client emms-cue
emms-mode-line-icon emms-browser sort emms-playlist-sort
emms-last-played emms-player-xine emms-player-mpd tq emms-playing-time
emms-lyrics emms-url emms-tag-editor emms-mark emms-mode-line emms-cache
emms-info-ogginfo emms-info-mp3info emms-playlist-mode emms-player-vlc
emms-player-mplayer emms-info emms-streams later-do emms-source-playlist
emms-source-file emms-player-simple emms-setup emms emms-compat winner
dvc-init bzr-gnus tla-gnus xgit-gnus xhg-gnus gnus-art mm-uu mml2015
mm-view smime password-cache dig dvc-gnus tla-core pp tla-autoconf
tla-defs dvc-log vc vc-dispatcher dvc-unified dvc-tips dired-x dired-aux
ffap ediff-merg ediff-diff ediff-wind ediff-help ediff-util ediff-mult
ediff-init ediff dvc-autoloads dvc-core dvc-lisp dvc-buffers dvc-ui
dvc-register dvc-utils dvc-emacs ewoc dvc-defs dvc-site psvn log-edit
ring pcvs-util add-log diff-mode lisppaste-extension lisppaste xml-rpc
url-http tls url-auth url-gw xml htmlize-hack htmlize muse-colors
muse-docbook muse-texinfo texnfo-upd texinfo muse-latex muse-html
muse-xml-common muse-wiki cus-edit cus-start cus-load muse-publish
muse-project muse-protocols muse-regexps muse muse-nested-tags muse-mode
muse-autoloads org-config-thierry cal-china lunar solar cal-dst
cal-bahai cal-islam cal-hebrew holidays hol-loaddefs vc-hg org-wl
org-w3m org-vm org-rmail org-mhe org-mew org-irc org-jsinfo org-infojs
org-html org-exp org-exp-blocks org-info org-gnus org-docview org-bibtex
org-bbdb org-agenda appt diary-lib diary-loaddefs cal-menu calendar
cal-loaddefs org-annotation-helper url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-util url-parse url-vars mailcap
remember org-remember org-datetree org byte-opt bytecomp byte-compile
org-footnote org-src org-list org-faces org-compat org-entities org-macs
noutline outline config-w3m w3m browse-url doc-view jka-compr image-mode
timezone w3m-hist w3m-fb w3m-ems w3m-ccl ccl w3m-favicon w3m-image
w3m-proc w3m-util mime-w3m w3m-load savehist epa-file epa derived epg
epg-config auth-source dired gnus-async nntp gnus-sum nnoo gnus-group
time-date gnus-undo nnmail mail-source format-spec gnus-start gnus-spec
gnus-int gnus-range message sendmail regexp-opt rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus gnus-ems
nnheader gnus-util mail-utils mm-util mail-prsvr wid-edit info easymenu
usage-memo desktop midnight punycode idna mybest-theme edmacro kmacro
eev-thierry iterator eev-all eev-mini-steps eev-browse-url eev-langs
eev-compose eev-glyphs disp-table eev-insert eev-steps eev-bounded eev
easy-mmode advice help-fns advice-preload cl cl-19 site-gentoo w3m-wget
preview-latex tex-site auto-loads tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd font-setting tool-bar dnd fontset
image fringe lisp-mode register page menu-bar rfn-eshadow timer select
scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help
simple abbrev loaddefs button minibuffer faces cus-face files
text-properties overlay md5 base64 format env code-pages mule custom
widget hashtable-print-readable backquote make-network-process dbusbind
font-render-setting gtk x-toolkit x multi-tty emacs)

-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: patch-r107963.patch --]
[-- Type: text/x-patch, Size: 6253 bytes --]

# HG changeset patch
# User Thierry Volpiatto <thierry.volpiatto@gmail.com>
# Date 1271696126 -7200
# Node ID 450b24a81b9dd4f91e50b2f82cb0fcc81503f70f
# Parent  00b16f9f52adab5048a905c78953c49bdfa2e9a2
Allow to bookmark a mail from a Gnus article buffer and retrieve position.

* lisp/bookmark.el (bookmark-make-record-default) Avoid recording *-context-string when not needed.

* lisp/gnus/gnus-art.el set `bookmark-make-record-function' local.

* lisp/gnus/gnus-sum.el (gnus-summary-bookmark-make-record) allow recording from article buffer.
                        (gnus-summary-bookmark-jump) maybe jump to article buffer.

diff --git a/lisp/bookmark.el b/lisp/bookmark.el
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -528,26 +528,30 @@
     (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 point-only pos read-only)
   "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."
+record that pertains to the location within the buffer.
+If READ-ONLY is non-nil that's mean buffer is read-only and
+there is no need to record front/rear-context-string, position is enough."
   `(,@(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))))
+    ,@(unless read-only `((front-context-string
+                           . ,(if (>= (- (point-max) (point))
+                                      bookmark-search-size)
+                                  (buffer-substring-no-properties
+                                   (point)
+                                   (+ (point) bookmark-search-size))
+                                  nil))))
+    ,@(unless read-only `((rear-context-string
+                           . ,(if (>= (- (point) (point-min))
+                                      bookmark-search-size)
+                                  (buffer-substring-no-properties
+                                   (point)
+                                   (- (point) bookmark-search-size))
+                                  nil))))
+    (position . ,(or pos (point)))))
 
 \f
 ;;; File format stuff
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -4446,6 +4446,8 @@
   (make-local-variable 'gnus-article-image-alist)
   (make-local-variable 'gnus-article-charset)
   (make-local-variable 'gnus-article-ignored-charsets)
+  (set (make-local-variable 'bookmark-make-record-function)
+       'gnus-summary-bookmark-make-record)
   ;; Prevent Emacs 22 from displaying non-break space with `nobreak-space'
   ;; face.
   (set (make-local-variable 'nobreak-char-display) nil)
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -12648,18 +12648,24 @@
 
 (defun gnus-summary-bookmark-make-record ()
   "Make a bookmark entry for a Gnus summary buffer."
-  (unless (and (derived-mode-p 'gnus-summary-mode) gnus-article-current)
-    (error "Please retry from the Gnus summary buffer")) ;[1]
-  (let* ((subject (elt (gnus-summary-article-header) 1))
-         (grp     (car gnus-article-current))
-         (art     (cdr gnus-article-current))
-         (head    (gnus-summary-article-header art))
-         (id      (mail-header-id head)))
-    `(,subject
-      ,@(bookmark-make-record-default 'point-only)
-      (location . ,(format "Gnus %s:%d:%s" grp art id))
-      (group . ,grp) (article . ,art)
-      (message-id . ,id) (handler . gnus-summary-bookmark-jump))))
+  (let (pos buf)
+    (unless (and (derived-mode-p 'gnus-summary-mode) gnus-article-current)
+      (save-restriction ; FIXME is it necessary to widen?
+        (widen) (setq pos (point))) ; Set position in gnus-article buffer.
+      (setq buf "art") ; We are recording bookmark from article buffer.
+      (gnus-article-show-summary)) ; Go back in summary buffer.
+    ;; We are now recording bookmark from summary buffer.
+    (unless buf (setq buf "sum"))
+    (let* ((subject (elt (gnus-summary-article-header) 1))
+           (grp     (car gnus-article-current))
+           (art     (cdr gnus-article-current))
+           (head    (gnus-summary-article-header art))
+           (id      (mail-header-id head)))
+      `(,subject
+        ,@(bookmark-make-record-default 'point-only pos 'read-only)
+        (location . ,(format "Gnus-%s %s:%d:%s" buf grp art id))
+        (group . ,grp) (article . ,art)
+        (message-id . ,id) (handler . gnus-summary-bookmark-jump)))))
 
 ;;;###autoload
 (defun gnus-summary-bookmark-jump (bookmark)
@@ -12667,10 +12673,18 @@
 BOOKMARK is a bookmark name or a bookmark record."
   (let ((group    (bookmark-prop-get bookmark 'group))
         (article  (bookmark-prop-get bookmark 'article))
-        (id       (bookmark-prop-get bookmark 'message-id)))
+        (id       (bookmark-prop-get bookmark 'message-id))
+        (buf      (car (split-string (bookmark-prop-get bookmark 'location)))))
     (gnus-fetch-group group (list article))
     (gnus-summary-insert-cached-articles)
     (gnus-summary-goto-article id nil 'force)
+    ;; FIXME we have to wait article buffer is ready (only large buffer)
+    ;; Is there a better solution to know that?
+    ;; If we don't wait `bookmark-default-handler' will have no chance
+    ;; to set position. However there is no error, just wrong pos.
+    (sit-for 1)
+    (when (string= buf "Gnus-art")
+      (other-window 1))
     (bookmark-default-handler
      `(""
        (buffer . ,(current-buffer))

^ permalink raw reply	[flat|nested] 75+ messages in thread

* bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article buffer
  2010-04-19 17:07             ` bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article buffer Thierry Volpiatto
@ 2010-05-17 14:14               ` Thierry Volpiatto
  2010-07-13 21:46               ` bug#5975: Bazaar branch where this is being fixed Karl Fogel
                                 ` (2 subsequent siblings)
  3 siblings, 0 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-05-17 14:14 UTC (permalink / raw)
  To: bug-gnu-emacs

In the patch sent here, C-w is not working, i have fixed that here.
See bookmark-extensions.el
http://mercurial.intuxication.org/hg/emacs-bookmark-extension/

I can send another patch if somebody is interested, in this case contact
me.

Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:

> Hi,
> actually we can bookmark a gnus mail/news only from summary buffer.
> It is useful to be able to bookmark from article buffer and retrieve
> position.
> Find here a patch attached that fix that.
> It is tested i already use it here.
>
>
> In GNU Emacs 24.0.50.1 (i686-pc-linux-gnu, GTK+ Version 2.18.9)
>  of 2010-04-17 on tux
> Windowing system distributor `The X.Org Foundation', version 11.0.10706000
> configured using `configure  '--prefix=/usr' '--build=i686-pc-linux-gnu' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--program-suffix=-emacs-24' '--infodir=/usr/share/info/emacs-24' '--with-sound' '--with-x' '--without-gconf' '--without-toolkit-scroll-bars' '--with-gif' '--with-jpeg' '--with-png' '--with-rsvg' '--with-tiff' '--with-xpm' '--with-xft' '--without-libotf' '--without-m17n-flt' '--with-x-toolkit=gtk' '--without-hesiod' '--without-kerberos' '--without-kerberos5' '--with-gpm' '--with-dbus' 'build_alias=i686-pc-linux-gnu' 'host_alias=i686-pc-linux-gnu' 'CFLAGS=-march=i686 -pipe -O2' 'LDFLAGS=-Wl,-O1''
>
> Important settings:
>   value of $LC_ALL: C
>   value of $LC_COLLATE: C
>   value of $LC_CTYPE: fr_FR.UTF-8
>   value of $LC_MESSAGES: nil
>   value of $LC_MONETARY: nil
>   value of $LC_NUMERIC: nil
>   value of $LC_TIME: nil
>   value of $LANG: fr_FR.UTF-8
>   value of $XMODIFIERS: nil
>   locale-coding-system: utf-8-unix
>   default enable-multibyte-characters: t
>
> Major mode: Emacs-Lisp
>
> Minor modes in effect:
>   global-undo-tree-mode: t
>   undo-tree-mode: t
>   eldoc-mode: t
>   delete-selection-mode: t
>   minibuffer-depth-indicate-mode: t
>   auto-image-file-mode: t
>   shell-dirtrack-mode: t
>   show-paren-mode: t
>   display-battery-mode: t
>   display-time-mode: t
>   diff-auto-refine-mode: t
>   savehist-mode: t
>   desktop-save-mode: t
>   tooltip-mode: t
>   mouse-wheel-mode: t
>   file-name-shadow-mode: t
>   global-font-lock-mode: t
>   font-lock-mode: t
>   auto-encryption-mode: t
>   auto-compression-mode: t
>   line-number-mode: t
>   transient-mark-mode: t
>
> Recent input:
> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
> <up> <up> <up> C-z p <up> <up> <up> <up> <up> <up> 
> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <down> 
> <down> <down> <down> <down> <left> <left> <left> C-z 
> n <down> <down> <down> <down> <down> <down> <down> 
> <down> <down> <down> <down> <down> <down> <down> <down> 
> <down> <down> <down> <down> <down> <down> <down> <down> 
> <down> <down> <down> <down> <down> <down> <down> <down> 
> <down> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
> <up> <up> <up> <up> <up> <f5> a q <tab> <down> <down> 
> <down> <down> <return> <down> <right> <right> <right> 
> <right> <right> <right> <right> <right> <right> <right> 
> <right> <right> <right> <right> <right> <right> <right> 
> <right> <right> <right> <right> <right> <right> <right> 
> <right> <right> <right> <right> <right> <right> <right> 
> <right> <right> <right> <right> <right> <right> <right> 
> <right> <right> <right> <right> <right> <right> <backspace> 
> <backspace> <backspace> <backspace> <backspace> <backspace> 
> <backspace> <backspace> <backspace> <backspace> <backspace> 
> <backspace> <backspace> p a t c h - 1 0 7 9 6 3 <left> 
> <left> <left> <left> <left> <left> r <right> <right> 
> <right> <right> <right> <right> . p a t c h <return> 
> C-z 5 <up> <up> <up> C-z n <down> <down> <down> <down> 
> <down> <down> <down> <down> <down> <down> <down> <down> 
> <down> <down> <down> <down> <down> <down> <down> <down> 
> <down> <down> <down> <down> <down> <down> <down> <down> 
> <down> <down> <down> <down> <down> <up> <up> <up> <up> 
> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
> <up> <up> <up> <up> <up> <up> M-x r e p o r t <ret
> urn>
>
> Recent messages:
>  [2 times]
> Mark set
> Quit [2 times]
>  [2 times]
> qpush -> applying Initial-patch
> now at: Initial-patch
> Revert buffer from file /home/thierry/labo/emacs-hg-qp/lisp/gnus/gnus-sum.el? (y or n) 
>
> Exported revision 107963 to /home/thierry/labo/emacs-hg-qp/patch-r107963.patch.
>
>
> Load-path shadows:
> /home/thierry/elisp/lua-mode/lua-mode hides /usr/share/emacs/site-lisp/lua-mode/lua-mode
> ~/elisp/g-client/json hides /usr/share/emacs/24.0.50/lisp/json
> /usr/share/emacs/site-lisp/flim/hex-util hides /usr/share/emacs/24.0.50/lisp/hex-util
> /usr/share/emacs/site-lisp/flim/sha1 hides /usr/share/emacs/24.0.50/lisp/sha1
> /usr/share/emacs/site-lisp/flim/md4 hides /usr/share/emacs/24.0.50/lisp/md4
> /usr/share/emacs/site-lisp/flim/ntlm hides /usr/share/emacs/24.0.50/lisp/net/ntlm
> /usr/share/emacs/site-lisp/flim/hmac-def hides /usr/share/emacs/24.0.50/lisp/net/hmac-def
> /usr/share/emacs/site-lisp/flim/sasl-digest hides /usr/share/emacs/24.0.50/lisp/net/sasl-digest
> /usr/share/emacs/site-lisp/flim/sasl hides /usr/share/emacs/24.0.50/lisp/net/sasl
> /usr/share/emacs/site-lisp/flim/hmac-md5 hides /usr/share/emacs/24.0.50/lisp/net/hmac-md5
> /usr/share/emacs/site-lisp/flim/sasl-cram hides /usr/share/emacs/24.0.50/lisp/net/sasl-cram
> /usr/share/emacs/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/24.0.50/lisp/net/sasl-ntlm
> /home/thierry/elisp/emms/lisp/tq hides /usr/share/emacs/24.0.50/lisp/emacs-lisp/tq
>
> Features:
> (shadow emacsbug xgit-dvc xgit xgit-annotate dvc-annotate xgit-log
> dvc-bookmarks canlock sha1 sha1-el hex-util em-unix em-script em-prompt
> em-ls em-hist em-pred em-glob em-dirs em-cmpl em-basic esh-opt em-banner
> em-alias esh-var esh-io esh-cmd esh-ext esh-proc esh-groups eshell
> esh-module esh-mode help-mode view hl-line flyspell ispell epa-mail
> gnus-fun smiley gnus-ml w3m-cookie sb-emacswiki sb-rss url-cache
> url-handlers nnrss parse-time nnfolder nndraft nnmh bbdb-gnus bbdb-snarf
> nnml starttls mailalias smtpmail qp gnus-agent gnus-srvr gnus-score
> score-mode nnvirtual gnus-cache gnus-cite gnus-demon gnus-namazu
> gnus-dired nnshimbun shimbun luna eword-encode eword-decode std11 mel
> path-util mime-def mcharset mcs-20 mcs-e20 pces pces-e20 pces-20 broken
> pcustom poe gnus-bcklg spam spam-stat gnus-uu yenc gnus-alias mail-extr
> gnus-msg align conf-mode newcomment vc-rcs xhg-dvc xhg xhg-annotate
> xhg-mq xhg-log bzr-core cg-core xdarcs-core xgit-core xhg-core
> xmtn-minimal tla smerge-mode dvc-state dvc-config dvc-diff dvc-fileinfo
> diff dvc-cmenu dvc-about dvc-version dvc-revlist uniquify align-let
> server el-expectations el-mock csv2org iedit eieio zop-to-char wave-list
> wave-display wave-client json netrc g g-cus-load elscreen-server
> elscreen-dired elscreen-w3m mule-util alist pym static apel-ver product
> elscreen undo-tree smallurl mm-url xml-weather rectangle-utils windmove
> sdcv woof screenshot auto-document eiv tv-utils eldoc pcvs pcvs-parse
> pcvs-info pcvs-defs showtip delsel init-anything-thierry
> descbinds-anything anything-ipython ipython executable anything-grep
> grep anything-dabbrev-expand dabbrev shell-history anything-complete
> anything-show-completion anything-etags anything-match-plugin etags
> anything-traverse anything-delicious anything-mercurial anything-config
> w3m-bookmark rx anything firefox-protocol bookmark-firefox-handler
> bookmark-extensions bookmark install-elisp find-func mb-depth autodoc
> ioccur traverselisp thumb-page moz stumpwm-mode cl-info slime-banner
> slime-tramp slime-asdf slime-fancy slime-fontifying-fu slime-package-fu
> slime-references slime-xref-browser slime-scratch slime-presentations
> slime-highlight-edits slime-fuzzy slime-fancy-inspector slime-c-p-c
> slime-editing-commands slime-autodoc slime-parse slime-repl slime
> apropos hideshow hyperspec thingatpt slime-autoloads bbdb-autoloads
> bbdb-gui bbdb-com bbdb boxquote rect image-file tramp-imap tramp-gw
> tramp-fish tramp-smb tramp-cache tramp-ftp tramp-cmds tramp shell
> tramp-compat trampver newsticker newst-treeview tree-widget
> newst-plainview newst-reader newst-ticker newst-backend ledger pcomplete
> esh-arg esh-util extview lpr woman man assoc two-column shell-command
> em-term term ehelp electric esh-toggle em-xtra dirtrack flymake pdbtrack
> pycomplete python-mode info-look ansi-color pymacs no-word regex-tool
> whitespace htmlfontify text-translator-load paren battery time dired-tar
> compile comint dired-extension image-dired dired-details yaoddmuse
> skeleton sgml-mode emms-mpd-config emms-playlist-limit emms-volume
> emms-volume-amixer emms-i18n emms-history emms-score emms-stream-info
> emms-metaplaylist-mode emms-bookmarks emms-lastfm-client emms-cue
> emms-mode-line-icon emms-browser sort emms-playlist-sort
> emms-last-played emms-player-xine emms-player-mpd tq emms-playing-time
> emms-lyrics emms-url emms-tag-editor emms-mark emms-mode-line emms-cache
> emms-info-ogginfo emms-info-mp3info emms-playlist-mode emms-player-vlc
> emms-player-mplayer emms-info emms-streams later-do emms-source-playlist
> emms-source-file emms-player-simple emms-setup emms emms-compat winner
> dvc-init bzr-gnus tla-gnus xgit-gnus xhg-gnus gnus-art mm-uu mml2015
> mm-view smime password-cache dig dvc-gnus tla-core pp tla-autoconf
> tla-defs dvc-log vc vc-dispatcher dvc-unified dvc-tips dired-x dired-aux
> ffap ediff-merg ediff-diff ediff-wind ediff-help ediff-util ediff-mult
> ediff-init ediff dvc-autoloads dvc-core dvc-lisp dvc-buffers dvc-ui
> dvc-register dvc-utils dvc-emacs ewoc dvc-defs dvc-site psvn log-edit
> ring pcvs-util add-log diff-mode lisppaste-extension lisppaste xml-rpc
> url-http tls url-auth url-gw xml htmlize-hack htmlize muse-colors
> muse-docbook muse-texinfo texnfo-upd texinfo muse-latex muse-html
> muse-xml-common muse-wiki cus-edit cus-start cus-load muse-publish
> muse-project muse-protocols muse-regexps muse muse-nested-tags muse-mode
> muse-autoloads org-config-thierry cal-china lunar solar cal-dst
> cal-bahai cal-islam cal-hebrew holidays hol-loaddefs vc-hg org-wl
> org-w3m org-vm org-rmail org-mhe org-mew org-irc org-jsinfo org-infojs
> org-html org-exp org-exp-blocks org-info org-gnus org-docview org-bibtex
> org-bbdb org-agenda appt diary-lib diary-loaddefs cal-menu calendar
> cal-loaddefs org-annotation-helper url url-proxy url-privacy url-expand
> url-methods url-history url-cookie url-util url-parse url-vars mailcap
> remember org-remember org-datetree org byte-opt bytecomp byte-compile
> org-footnote org-src org-list org-faces org-compat org-entities org-macs
> noutline outline config-w3m w3m browse-url doc-view jka-compr image-mode
> timezone w3m-hist w3m-fb w3m-ems w3m-ccl ccl w3m-favicon w3m-image
> w3m-proc w3m-util mime-w3m w3m-load savehist epa-file epa derived epg
> epg-config auth-source dired gnus-async nntp gnus-sum nnoo gnus-group
> time-date gnus-undo nnmail mail-source format-spec gnus-start gnus-spec
> gnus-int gnus-range message sendmail regexp-opt rfc822 mml mml-sec
> mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
> ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus gnus-ems
> nnheader gnus-util mail-utils mm-util mail-prsvr wid-edit info easymenu
> usage-memo desktop midnight punycode idna mybest-theme edmacro kmacro
> eev-thierry iterator eev-all eev-mini-steps eev-browse-url eev-langs
> eev-compose eev-glyphs disp-table eev-insert eev-steps eev-bounded eev
> easy-mmode advice help-fns advice-preload cl cl-19 site-gentoo w3m-wget
> preview-latex tex-site auto-loads tooltip ediff-hook vc-hooks
> lisp-float-type mwheel x-win x-dnd font-setting tool-bar dnd fontset
> image fringe lisp-mode register page menu-bar rfn-eshadow timer select
> scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core
> frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
> tai-viet lao korean japanese hebrew greek romanian slovak czech european
> ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help
> simple abbrev loaddefs button minibuffer faces cus-face files
> text-properties overlay md5 base64 format env code-pages mule custom
> widget hashtable-print-readable backquote make-network-process dbusbind
> font-render-setting gtk x-toolkit x multi-tty emacs)

-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/






^ permalink raw reply	[flat|nested] 75+ messages in thread

* No answer on bugs
@ 2010-06-29 12:43 Thierry Volpiatto
  2010-06-29 13:12 ` Lennart Borgman
                   ` (2 more replies)
  0 siblings, 3 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-06-29 12:43 UTC (permalink / raw)
  To: emacs-devel

Hi,
Here state of some bugs i sent:

- bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article
  buffer

No one answer, not fixed.

- 24.0.50; bookmark don't jump to annotation buffer

No one answer, Not fixed.(fixed in bookmark-extensions.el)

- 24.0.50; C-d in ielm doesn't work as expected.

No answer since long time, abandoned?

- Re: bug#6302: 24.0.50; Unable to use su in term.

No answer since long time, abandoned?

- 24.0.50; Feature request:winner-boring-buffer-regexp

No one answer, not fixed.

- Re: anything.el inclusion

No answer since long time, abandoned?

- 23.1.92; info-lookup-symbol doesn't show CL package documentation.

No answer since (very) long time, abandoned? (not fixed)

- Redefine `insert-directory' to showup size available when -h arg of ls used.

No one answer, not fixed.



-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/





^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: No answer on bugs
  2010-06-29 12:43 No answer on bugs Thierry Volpiatto
@ 2010-06-29 13:12 ` Lennart Borgman
  2010-06-29 13:54 ` Karl Fogel
  2010-06-30 18:16 ` No answer on bugs Ted Zlatanov
  2 siblings, 0 replies; 75+ messages in thread
From: Lennart Borgman @ 2010-06-29 13:12 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: emacs-devel

On Tue, Jun 29, 2010 at 2:43 PM, Thierry Volpiatto
<thierry.volpiatto@gmail.com> wrote:
>
> - 23.1.92; info-lookup-symbol doesn't show CL package documentation.
>
> No answer since (very) long time, abandoned? (not fixed)


I sent a fix for this long ago to the devel list and I think I still
have it in my patched version of Emas+EmacsW32 (if not some merge has
erased it).



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: No answer on bugs
  2010-06-29 12:43 No answer on bugs Thierry Volpiatto
  2010-06-29 13:12 ` Lennart Borgman
@ 2010-06-29 13:54 ` Karl Fogel
  2010-06-29 14:14   ` Thierry Volpiatto
  2010-06-29 19:26   ` Tassilo Horn
  2010-06-30 18:16 ` No answer on bugs Ted Zlatanov
  2 siblings, 2 replies; 75+ messages in thread
From: Karl Fogel @ 2010-06-29 13:54 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: emacs-devel

Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>- bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article
>  buffer
>
>No one answer, not fixed.

I'll take a look at this.

It would be great if there were some way to subscribe to get emails for
bug reports that match a certain regexp.  I'd do that for "bookmark".
(I suppose I could just subscribe to all bugs and then arrange the
appropriate client-side filtering, but life is short.)

>- 24.0.50; bookmark don't jump to annotation buffer
>
>No one answer, Not fixed.(fixed in bookmark-extensions.el)

I'll take a look at this too.

-Karl



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: No answer on bugs
  2010-06-29 13:54 ` Karl Fogel
@ 2010-06-29 14:14   ` Thierry Volpiatto
  2010-06-29 19:26   ` Tassilo Horn
  1 sibling, 0 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-06-29 14:14 UTC (permalink / raw)
  To: Karl Fogel; +Cc: emacs-devel

Hi Karl,
thanks for answer.

Karl Fogel <kfogel@red-bean.com> writes:

> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>>- bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article
>>  buffer
>>
>>No one answer, not fixed.
>
> I'll take a look at this.
This affect also some gnus files (gnus-sum.el, gnus-article.el).
I use this in bookmark-extensions.el since some months now with success.
http://mercurial.intuxication.org/hg/emacs-bookmark-extension

> It would be great if there were some way to subscribe to get emails for
> bug reports that match a certain regexp.  I'd do that for "bookmark".
> (I suppose I could just subscribe to all bugs and then arrange the
> appropriate client-side filtering, but life is short.)

Yes it would be great, don't know how to do that unfortunately.

>>- 24.0.50; bookmark don't jump to annotation buffer
>>
>>No one answer, Not fixed.(fixed in bookmark-extensions.el)
>
> I'll take a look at this too.

Thanks, this is trivial change is i remember well.

> -Karl
>

-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: No answer on bugs
  2010-06-29 13:54 ` Karl Fogel
  2010-06-29 14:14   ` Thierry Volpiatto
@ 2010-06-29 19:26   ` Tassilo Horn
  2010-06-29 19:57     ` Thierry Volpiatto
  1 sibling, 1 reply; 75+ messages in thread
From: Tassilo Horn @ 2010-06-29 19:26 UTC (permalink / raw)
  To: emacs-devel, Karl Fogel; +Cc: Thierry Volpiatto

On Tuesday 29 June 2010 15:54:53 Karl Fogel wrote:

Hi!

> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
> >- bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article
> >  buffer
> >
> >No one answer, not fixed.
> 
> I'll take a look at this.

Karl, you might want to have a look at org-gnus.el, which provides
linking support to gnus articles and groups for org-mode.  Maybe you can
either borrow some code from me or even better, use those few functions.

Bye,
Tassilo



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: No answer on bugs
  2010-06-29 19:26   ` Tassilo Horn
@ 2010-06-29 19:57     ` Thierry Volpiatto
  2010-06-29 20:10       ` Tassilo Horn
  0 siblings, 1 reply; 75+ messages in thread
From: Thierry Volpiatto @ 2010-06-29 19:57 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Karl Fogel, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 934 bytes --]

Tassilo Horn <tassilo@member.fsf.org> writes:

> On Tuesday 29 June 2010 15:54:53 Karl Fogel wrote:
>
> Hi!
>
>> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>> >- bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article
>> >  buffer
>> >
>> >No one answer, not fixed.
>> 
>> I'll take a look at this.
>
> Karl, you might want to have a look at org-gnus.el, which provides
> linking support to gnus articles and groups for org-mode.  Maybe you can
> either borrow some code from me or even better, use those few functions.

FYI bookmarking from gnus(summary) is now provided in Emacs(24).
What is missing is bookmarking from gnus-article buffer.
The patch i propose apply on my precedent work.
If you want to reuse org code, you will have much more work to enable it
for bookmark (rewrite all), as the things are differents.
I attach here my patch again.

-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: patch-109087.patch --]
[-- Type: text/x-patch, Size: 6253 bytes --]

# HG changeset patch
# User Thierry Volpiatto <thierry.volpiatto@gmail.com>
# Date 1277840529 -7200
# Node ID dc2c984058cf101132a55fcf22bf85e173f6482e
# Parent  20190537be1cd79ad83375df1f70ff0ec3dc60fd
Allow to bookmark a mail from a Gnus article buffer and retrieve position.

* lisp/bookmark.el (bookmark-make-record-default) Avoid recording *-context-string when not needed.

* lisp/gnus/gnus-art.el set `bookmark-make-record-function' local.

* lisp/gnus/gnus-sum.el (gnus-summary-bookmark-make-record) allow recording from article buffer.
                        (gnus-summary-bookmark-jump) maybe jump to article buffer.

diff --git a/lisp/bookmark.el b/lisp/bookmark.el
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -528,26 +528,30 @@
     (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 point-only pos read-only)
   "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."
+record that pertains to the location within the buffer.
+If READ-ONLY is non-nil that's mean buffer is read-only and
+there is no need to record front/rear-context-string, position is enough."
   `(,@(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))))
+    ,@(unless read-only `((front-context-string
+                           . ,(if (>= (- (point-max) (point))
+                                      bookmark-search-size)
+                                  (buffer-substring-no-properties
+                                   (point)
+                                   (+ (point) bookmark-search-size))
+                                  nil))))
+    ,@(unless read-only `((rear-context-string
+                           . ,(if (>= (- (point) (point-min))
+                                      bookmark-search-size)
+                                  (buffer-substring-no-properties
+                                   (point)
+                                   (- (point) bookmark-search-size))
+                                  nil))))
+    (position . ,(or pos (point)))))
 
 \f
 ;;; File format stuff
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -4452,6 +4452,8 @@
   (make-local-variable 'gnus-article-image-alist)
   (make-local-variable 'gnus-article-charset)
   (make-local-variable 'gnus-article-ignored-charsets)
+  (set (make-local-variable 'bookmark-make-record-function)
+       'gnus-summary-bookmark-make-record)
   ;; Prevent Emacs 22 from displaying non-break space with `nobreak-space'
   ;; face.
   (set (make-local-variable 'nobreak-char-display) nil)
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -12628,18 +12628,24 @@
 
 (defun gnus-summary-bookmark-make-record ()
   "Make a bookmark entry for a Gnus summary buffer."
-  (unless (and (derived-mode-p 'gnus-summary-mode) gnus-article-current)
-    (error "Please retry from the Gnus summary buffer")) ;[1]
-  (let* ((subject (elt (gnus-summary-article-header) 1))
-         (grp     (car gnus-article-current))
-         (art     (cdr gnus-article-current))
-         (head    (gnus-summary-article-header art))
-         (id      (mail-header-id head)))
-    `(,subject
-      ,@(bookmark-make-record-default 'point-only)
-      (location . ,(format "Gnus %s:%d:%s" grp art id))
-      (group . ,grp) (article . ,art)
-      (message-id . ,id) (handler . gnus-summary-bookmark-jump))))
+  (let (pos buf)
+    (unless (and (derived-mode-p 'gnus-summary-mode) gnus-article-current)
+      (save-restriction ; FIXME is it necessary to widen?
+        (widen) (setq pos (point))) ; Set position in gnus-article buffer.
+      (setq buf "art") ; We are recording bookmark from article buffer.
+      (gnus-article-show-summary)) ; Go back in summary buffer.
+    ;; We are now recording bookmark from summary buffer.
+    (unless buf (setq buf "sum"))
+    (let* ((subject (elt (gnus-summary-article-header) 1))
+           (grp     (car gnus-article-current))
+           (art     (cdr gnus-article-current))
+           (head    (gnus-summary-article-header art))
+           (id      (mail-header-id head)))
+      `(,subject
+        ,@(bookmark-make-record-default 'point-only pos 'read-only)
+        (location . ,(format "Gnus-%s %s:%d:%s" buf grp art id))
+        (group . ,grp) (article . ,art)
+        (message-id . ,id) (handler . gnus-summary-bookmark-jump)))))
 
 ;;;###autoload
 (defun gnus-summary-bookmark-jump (bookmark)
@@ -12647,10 +12653,18 @@
 BOOKMARK is a bookmark name or a bookmark record."
   (let ((group    (bookmark-prop-get bookmark 'group))
         (article  (bookmark-prop-get bookmark 'article))
-        (id       (bookmark-prop-get bookmark 'message-id)))
+        (id       (bookmark-prop-get bookmark 'message-id))
+        (buf      (car (split-string (bookmark-prop-get bookmark 'location)))))
     (gnus-fetch-group group (list article))
     (gnus-summary-insert-cached-articles)
     (gnus-summary-goto-article id nil 'force)
+    ;; FIXME we have to wait article buffer is ready (only large buffer)
+    ;; Is there a better solution to know that?
+    ;; If we don't wait `bookmark-default-handler' will have no chance
+    ;; to set position. However there is no error, just wrong pos.
+    (sit-for 1)
+    (when (string= buf "Gnus-art")
+      (other-window 1))
     (bookmark-default-handler
      `(""
        (buffer . ,(current-buffer))

^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: No answer on bugs
  2010-06-29 19:57     ` Thierry Volpiatto
@ 2010-06-29 20:10       ` Tassilo Horn
  2010-06-29 20:16         ` Thierry Volpiatto
  0 siblings, 1 reply; 75+ messages in thread
From: Tassilo Horn @ 2010-06-29 20:10 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: Karl Fogel, emacs-devel

On Tuesday 29 June 2010 21:57:08 Thierry Volpiatto wrote:
> >> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
> >> >- bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article
> >> >  buffer
> >> >
> >> >No one answer, not fixed.
> >> 
> >> I'll take a look at this.
> >
> > Karl, you might want to have a look at org-gnus.el, which provides
> > linking support to gnus articles and groups for org-mode.  Maybe you
> > can either borrow some code from me or even better, use those few
> > functions.
> 
> FYI bookmarking from gnus(summary) is now provided in Emacs(24).  What
> is missing is bookmarking from gnus-article buffer.  The patch i
> propose apply on my precedent work.  If you want to reuse org code,
> you will have much more work to enable it for bookmark (rewrite all),
> as the things are differents.  I attach here my patch again.

I didn't know there's already a patch for that. :-)

Bye,
Tassilo



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: No answer on bugs
  2010-06-29 20:10       ` Tassilo Horn
@ 2010-06-29 20:16         ` Thierry Volpiatto
  2010-07-13 21:31           ` Base patch for bug #5975 (bookmarking from Gnus Article buffer) Karl Fogel
  2010-07-13 21:31           ` bug#5975: " Karl Fogel
  0 siblings, 2 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-06-29 20:16 UTC (permalink / raw)
  To: emacs-devel

Tassilo Horn <tassilo@member.fsf.org> writes:

> On Tuesday 29 June 2010 21:57:08 Thierry Volpiatto wrote:
>> >> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>> >> >- bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article
>> >> >  buffer
>> >> >
>> >> >No one answer, not fixed.
>> >> 
>> >> I'll take a look at this.
>> >
>> > Karl, you might want to have a look at org-gnus.el, which provides
>> > linking support to gnus articles and groups for org-mode.  Maybe you
>> > can either borrow some code from me or even better, use those few
>> > functions.
>> 
>> FYI bookmarking from gnus(summary) is now provided in Emacs(24).  What
>> is missing is bookmarking from gnus-article buffer.  The patch i
>> propose apply on my precedent work.  If you want to reuse org code,
>> you will have much more work to enable it for bookmark (rewrite all),
>> as the things are differents.  I attach here my patch again.
>
> I didn't know there's already a patch for that. :-)
If you are using emacs24, just jump to summary buffer from this mail 
and C-x r m ;-)
(arrow down for default title).

-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: No answer on bugs
  2010-06-29 12:43 No answer on bugs Thierry Volpiatto
  2010-06-29 13:12 ` Lennart Borgman
  2010-06-29 13:54 ` Karl Fogel
@ 2010-06-30 18:16 ` Ted Zlatanov
  2010-06-30 18:36   ` Thierry Volpiatto
  2 siblings, 1 reply; 75+ messages in thread
From: Ted Zlatanov @ 2010-06-30 18:16 UTC (permalink / raw)
  To: emacs-devel

On Tue, 29 Jun 2010 14:43:09 +0200 Thierry Volpiatto <thierry.volpiatto@gmail.com> wrote: 

TV> - Re: anything.el inclusion

TV> No answer since long time, abandoned?

Sorry if I missed something, but if you'll look at the thread:

http://thread.gmane.org/gmane.emacs.devel/122139/focus=123121

you'll see that Stefan had some questions for you, and that a version of
anything.el for inclusion in Emacs was never proposed by you, rubikitch,
or any of the other anything.el/anything-config.el developers (AFAIK).
But answering Stefan's questions about the anything.el behavior is
probably the best first step.

Ted




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: No answer on bugs
  2010-06-30 18:16 ` No answer on bugs Ted Zlatanov
@ 2010-06-30 18:36   ` Thierry Volpiatto
  2010-06-30 19:23     ` more on anything.el inclusion (was: No answer on bugs) Ted Zlatanov
  0 siblings, 1 reply; 75+ messages in thread
From: Thierry Volpiatto @ 2010-06-30 18:36 UTC (permalink / raw)
  To: emacs-devel; +Cc: rubikitch

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Tue, 29 Jun 2010 14:43:09 +0200 Thierry Volpiatto <thierry.volpiatto@gmail.com> wrote: 
>
> TV> - Re: anything.el inclusion
>
> TV> No answer since long time, abandoned?
>
> Sorry if I missed something, but if you'll look at the thread:
>
> http://thread.gmane.org/gmane.emacs.devel/122139/focus=123121
>
> you'll see that Stefan had some questions for you, and that a version of
> anything.el for inclusion in Emacs was never proposed by you, rubikitch,
> or any of the other anything.el/anything-config.el developers (AFAIK).
> But answering Stefan's questions about the anything.el behavior is
> probably the best first step.

I have already answered questions in private, but i have no more news.
We did lot of work on anything since this time, anyone can see, try and
use anything on http://repo.or.cz/w/anything-config.git
If you like it, then we could include in emacs.
-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/




^ permalink raw reply	[flat|nested] 75+ messages in thread

* more on anything.el inclusion (was: No answer on bugs)
  2010-06-30 18:36   ` Thierry Volpiatto
@ 2010-06-30 19:23     ` Ted Zlatanov
  2010-06-30 20:10       ` more on anything.el inclusion Thierry Volpiatto
  0 siblings, 1 reply; 75+ messages in thread
From: Ted Zlatanov @ 2010-06-30 19:23 UTC (permalink / raw)
  To: emacs-devel

On Wed, 30 Jun 2010 20:36:31 +0200 Thierry Volpiatto <thierry.volpiatto@gmail.com> wrote: 

TV> We did lot of work on anything since this time, anyone can see, try
TV> and use anything on http://repo.or.cz/w/anything-config.git If you
TV> like it, then we could include in emacs.

Strangely, I can't check it out over HTTP:

% git clone http://repo.or.cz/w/anything-config.git
Initialized empty Git repository in /home/tzz/source/anything-config/.git/
warning: remote HEAD refers to nonexistent ref, unable to checkout.

(and nice warning, the checkout fails completely!)

but it works with the git://repo.or.cz/anything-config.git URL.

I think the revision history should be cut out of anything.el.

It's pretty hard for a novice to get started customizing the sources.
There is almost no Customize support AFAICT for anything-sources.  The
existing anything.el docs assume good knowledge of Emacs Lisp.  I don't
know if that is a problem, but a real manual would be very helpful for
beginners.

What sources should be on by default for Emacs users of anything.el?

I'm sure there are a lot of style and behavior issues I'm missing.  I'm
so used to anything.el that I'm probably not a good test case of how it
looks to an Emacs user.

Ted




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-06-30 19:23     ` more on anything.el inclusion (was: No answer on bugs) Ted Zlatanov
@ 2010-06-30 20:10       ` Thierry Volpiatto
  2010-06-30 22:59         ` Dan Nicolaescu
  0 siblings, 1 reply; 75+ messages in thread
From: Thierry Volpiatto @ 2010-06-30 20:10 UTC (permalink / raw)
  To: emacs-devel; +Cc: rubikitch

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Wed, 30 Jun 2010 20:36:31 +0200 Thierry Volpiatto <thierry.volpiatto@gmail.com> wrote: 
>
> TV> We did lot of work on anything since this time, anyone can see, try
> TV> and use anything on http://repo.or.cz/w/anything-config.git If you
> TV> like it, then we could include in emacs.
>
> Strangely, I can't check it out over HTTP:
>
> % git clone http://repo.or.cz/w/anything-config.git
> Initialized empty Git repository in /home/tzz/source/anything-config/.git/
> warning: remote HEAD refers to nonexistent ref, unable to checkout.
>
> (and nice warning, the checkout fails completely!)


> but it works with the git://repo.or.cz/anything-config.git URL.

Yes sorry, clone with:
git clone git://repo.or.cz/anything-config.git

> I think the revision history should be cut out of anything.el.
>
> It's pretty hard for a novice to get started customizing the sources.
> There is almost no Customize support AFAICT for anything-sources.  The
> existing anything.el docs assume good knowledge of Emacs Lisp.  I don't
> know if that is a problem, but a real manual would be very helpful for
> beginners.

anything-sources is deprecated and should be used with care with only
few sources, the one provided by default with anything.el are enough.

So the use of M-x anything is deprecated, you should use now commands
provided in anything-config.el.

Setting up a function for commands not provided is simple as:

(defun anything-buffers-only ()
  (interactive)
  (anything-other-buffer 'anything-c-source-buffers+ "*anything buffers*"))

Actually installing anything is easy and work out of the box with only:

(require 'anything-config)
(require 'anything-match-plugin) ; facultatif

Anything is now self documented both in mode-line and with C-h m or your
usual help command, but yes a manual would be nice.

> What sources should be on by default for Emacs users of anything.el?

Only the one that are already set in anything.el.


> I'm sure there are a lot of style and behavior issues I'm missing.  I'm
> so used to anything.el that I'm probably not a good test case of how it
> looks to an Emacs user.
>
> Ted
>
>
>

-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-06-30 20:10       ` more on anything.el inclusion Thierry Volpiatto
@ 2010-06-30 22:59         ` Dan Nicolaescu
  2010-07-01  5:53           ` Thierry Volpiatto
  0 siblings, 1 reply; 75+ messages in thread
From: Dan Nicolaescu @ 2010-06-30 22:59 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: rubikitch, emacs-devel

Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:

> Ted Zlatanov <tzz@lifelogs.com> writes:
>
>> On Wed, 30 Jun 2010 20:36:31 +0200 Thierry Volpiatto <thierry.volpiatto@gmail.com> wrote: 
>>
>> TV> We did lot of work on anything since this time, anyone can see, try
>> TV> and use anything on http://repo.or.cz/w/anything-config.git If you
>> TV> like it, then we could include in emacs.
>>
>> Strangely, I can't check it out over HTTP:
>>
>> % git clone http://repo.or.cz/w/anything-config.git
>> Initialized empty Git repository in /home/tzz/source/anything-config/.git/
>> warning: remote HEAD refers to nonexistent ref, unable to checkout.
>>
>> (and nice warning, the checkout fails completely!)
>
>
>> but it works with the git://repo.or.cz/anything-config.git URL.
>
> Yes sorry, clone with:
> git clone git://repo.or.cz/anything-config.git
>
>> I think the revision history should be cut out of anything.el.
>>
>> It's pretty hard for a novice to get started customizing the sources.
>> There is almost no Customize support AFAICT for anything-sources.  The
>> existing anything.el docs assume good knowledge of Emacs Lisp.  I don't
>> know if that is a problem, but a real manual would be very helpful for
>> beginners.
>
> anything-sources is deprecated and should be used with care with only
> few sources, the one provided by default with anything.el are enough.
>
> So the use of M-x anything is deprecated, you should use now commands
> provided in anything-config.el.
>
> Setting up a function for commands not provided is simple as:
>
> (defun anything-buffers-only ()
>   (interactive)
>   (anything-other-buffer 'anything-c-source-buffers+ "*anything buffers*"))
>
> Actually installing anything is easy and work out of the box with only:
>
> (require 'anything-config)
> (require 'anything-match-plugin) ; facultatif

For packages included in emacs we try to avoid using require to
activate the package.  [I don't know anything about this particular
package, so...]


> Anything is now self documented both in mode-line and with C-h m or your
> usual help command, but yes a manual would be nice.

Can you please add some brief description of what it actually does?

;;;; anything.el --- open anything / QuickSilver-like candidate-selection framework

does not tell much...

>
>> What sources should be on by default for Emacs users of anything.el?
>
> Only the one that are already set in anything.el.
>
>
>> I'm sure there are a lot of style and behavior issues I'm missing.  I'm
>> so used to anything.el that I'm probably not a good test case of how it
>> looks to an Emacs user.
>>
>> Ted
>>
>>
>>
>
> -- 
> Thierry Volpiatto
> Gpg key: http://pgp.mit.edu/



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-06-30 22:59         ` Dan Nicolaescu
@ 2010-07-01  5:53           ` Thierry Volpiatto
  2010-07-01  6:48             ` Dan Nicolaescu
  0 siblings, 1 reply; 75+ messages in thread
From: Thierry Volpiatto @ 2010-07-01  5:53 UTC (permalink / raw)
  To: emacs-devel; +Cc: rubikitch

Dan Nicolaescu <dann@gnu.org> writes:

>> Actually installing anything is easy and work out of the box with only:
>>
>> (require 'anything-config)
>> (require 'anything-match-plugin) ; facultatif
>
> For packages included in emacs we try to avoid using require to
> activate the package.  [I don't know anything about this particular
> package, so...]

A lot of autoload cookies are missing in anything-config, however, 

(autoload 'anything-find-files "anything-config.el" "" t)

is enough to enable anything.

>
>> Anything is now self documented both in mode-line and with C-h m or your
>> usual help command, but yes a manual would be nice.
>
> Can you please add some brief description of what it actually does?
>
> ;;;; anything.el --- open anything / QuickSilver-like candidate-selection framework
>
> does not tell much...

anything is a framework that allow to setup an interactive and
incremental display to select candidate and provide diverses actions on
it or many of them.

Basically, you can see that as a big completing-read, but incremental
with nice display, and providing differents action on candidate selected
in collection.

-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01  5:53           ` Thierry Volpiatto
@ 2010-07-01  6:48             ` Dan Nicolaescu
  2010-07-01  7:50               ` Thierry Volpiatto
  2010-07-04 22:02               ` Stefan Monnier
  0 siblings, 2 replies; 75+ messages in thread
From: Dan Nicolaescu @ 2010-07-01  6:48 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: rubikitch, emacs-devel

Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:

> Dan Nicolaescu <dann@gnu.org> writes:
>
>>> Actually installing anything is easy and work out of the box with only:
>>>
>>> (require 'anything-config)
>>> (require 'anything-match-plugin) ; facultatif
>>
>> For packages included in emacs we try to avoid using require to
>> activate the package.  [I don't know anything about this particular
>> package, so...]
>
> A lot of autoload cookies are missing in anything-config, however, 
>
> (autoload 'anything-find-files "anything-config.el" "" t)
>
> is enough to enable anything.

That's the same as using require.  The preferred way is to do it with
a function call, or a mode.

>>> Anything is now self documented both in mode-line and with C-h m or your
>>> usual help command, but yes a manual would be nice.
>>
>> Can you please add some brief description of what it actually does?
>>
>> ;;;; anything.el --- open anything / QuickSilver-like candidate-selection framework
>>
>> does not tell much...
>
> anything is a framework that allow to setup an interactive and
> incremental display to select candidate and provide diverses actions on
> it or many of them.
>
> Basically, you can see that as a big completing-read, but incremental
> with nice display, and providing differents action on candidate selected
> in collection.

And how do you use it?

BTW, this might be obvious to you, but for people that have not used
the package is not.  Adding a few lines of describing what it does and
how to use it is very helpful.  [Please note that this has no relation
to getting this package included in emacs, this is just what a
potential user would like].



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01  6:48             ` Dan Nicolaescu
@ 2010-07-01  7:50               ` Thierry Volpiatto
  2010-07-01  8:36                 ` Dan Nicolaescu
  2010-07-01 13:18                 ` more on anything.el inclusion Ted Zlatanov
  2010-07-04 22:02               ` Stefan Monnier
  1 sibling, 2 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-07-01  7:50 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: rubikitch, emacs-devel

Dan Nicolaescu <dann@gnu.org> writes:

> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>
>> Dan Nicolaescu <dann@gnu.org> writes:
>>
>>>> Actually installing anything is easy and work out of the box with only:
>>>>
>>>> (require 'anything-config)
>>>> (require 'anything-match-plugin) ; facultatif
>>>
>>> For packages included in emacs we try to avoid using require to
>>> activate the package.  [I don't know anything about this particular
>>> package, so...]
>>
>> A lot of autoload cookies are missing in anything-config, however, 
>>
>> (autoload 'anything-find-files "anything-config.el" "" t)
>>
>> is enough to enable anything.
>
> That's the same as using require.  The preferred way is to do it with
> a function call, or a mode.
>
>>>> Anything is now self documented both in mode-line and with C-h m or your
>>>> usual help command, but yes a manual would be nice.
>>>
>>> Can you please add some brief description of what it actually does?
>>>
>>> ;;;; anything.el --- open anything / QuickSilver-like candidate-selection framework
>>>
>>> does not tell much...
>>
>> anything is a framework that allow to setup an interactive and
>> incremental display to select candidate and provide diverses actions on
>> it or many of them.
>>
>> Basically, you can see that as a big completing-read, but incremental
>> with nice display, and providing differents action on candidate selected
>> in collection.
>
> And how do you use it?

On the user side, if you use anything-config.el, there is already build
in sources ready for use, so you can use provided functions like any
other emacs one (e.g M-x anything-xfonts).

For the developper who want to write his own anything source the best
actually is to look at the sources wrote in anything-config.el.

Basically, you run anything like that:

(anything 'source)

source is an alist that you can write like that:
(Where name, candidates, action are anything attributes.
You have a lot of attributes, for full info, use:
M-x anything-describe-anything-attribute)

(defvar mysource
  '((name . "A simple example that open all file with extension .el")
    (candidates . (lambda ()
                   (loop for i in (directory-files default-directory)
                      when (string= (file-name-extension i) "el")
                      collect i)))
    (action . (("Open file" . find-file)
               ("Do something else" . (lambda (candidate)
                                        ;; Write here something more
                                        ;; useful than nil
                                        nil))))))

;; [EVAL] (anything 'mysource)

After evaluating line above to see if your new source work as expected,
you can now define your new anything command:

(defun my-new-anything-command ()
  (interactive)
  (anything 'mysource))


> BTW, this might be obvious to you, but for people that have not used
> the package is not.  Adding a few lines of describing what it does and
> how to use it is very helpful.  [Please note that this has no relation
> to getting this package included in emacs, this is just what a
> potential user would like].
>

-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01  7:50               ` Thierry Volpiatto
@ 2010-07-01  8:36                 ` Dan Nicolaescu
  2010-07-01  8:53                   ` Thierry Volpiatto
  2010-07-01 15:20                   ` Anything Use Case (was: more on anything.el inclusion) Memnon Anon
  2010-07-01 13:18                 ` more on anything.el inclusion Ted Zlatanov
  1 sibling, 2 replies; 75+ messages in thread
From: Dan Nicolaescu @ 2010-07-01  8:36 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: rubikitch, emacs-devel

Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:

> Dan Nicolaescu <dann@gnu.org> writes:
>
>> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>>
>>> Dan Nicolaescu <dann@gnu.org> writes:
>>>
>>>>> Actually installing anything is easy and work out of the box with only:
>>>>>
>>>>> (require 'anything-config)
>>>>> (require 'anything-match-plugin) ; facultatif
>>>>
>>>> For packages included in emacs we try to avoid using require to
>>>> activate the package.  [I don't know anything about this particular
>>>> package, so...]
>>>
>>> A lot of autoload cookies are missing in anything-config, however, 
>>>
>>> (autoload 'anything-find-files "anything-config.el" "" t)
>>>
>>> is enough to enable anything.
>>
>> That's the same as using require.  The preferred way is to do it with
>> a function call, or a mode.
>>
>>>>> Anything is now self documented both in mode-line and with C-h m or your
>>>>> usual help command, but yes a manual would be nice.
>>>>
>>>> Can you please add some brief description of what it actually does?
>>>>
>>>> ;;;; anything.el --- open anything / QuickSilver-like candidate-selection framework
>>>>
>>>> does not tell much...
>>>
>>> anything is a framework that allow to setup an interactive and
>>> incremental display to select candidate and provide diverses actions on
>>> it or many of them.
>>>
>>> Basically, you can see that as a big completing-read, but incremental
>>> with nice display, and providing differents action on candidate selected
>>> in collection.
>>
>> And how do you use it?
>
> On the user side, if you use anything-config.el, there is already build
> in sources ready for use, so you can use provided functions like any
> other emacs one (e.g M-x anything-xfonts).

This is still hard to grasp...
Can you provide concrete examples of typical problems and how
anything.el solves them?



>
> For the developper who want to write his own anything source the best
> actually is to look at the sources wrote in anything-config.el.
>
> Basically, you run anything like that:
>
> (anything 'source)
>
> source is an alist that you can write like that:
> (Where name, candidates, action are anything attributes.
> You have a lot of attributes, for full info, use:
> M-x anything-describe-anything-attribute)
>
> (defvar mysource
>   '((name . "A simple example that open all file with extension .el")
>     (candidates . (lambda ()
>                    (loop for i in (directory-files default-directory)
>                       when (string= (file-name-extension i) "el")
>                       collect i)))
>     (action . (("Open file" . find-file)
>                ("Do something else" . (lambda (candidate)
>                                         ;; Write here something more
>                                         ;; useful than nil
>                                         nil))))))
>
> ;; [EVAL] (anything 'mysource)
>
> After evaluating line above to see if your new source work as expected,
> you can now define your new anything command:
>
> (defun my-new-anything-command ()
>   (interactive)
>   (anything 'mysource))
>
>
>> BTW, this might be obvious to you, but for people that have not used
>> the package is not.  Adding a few lines of describing what it does and
>> how to use it is very helpful.  [Please note that this has no relation
>> to getting this package included in emacs, this is just what a
>> potential user would like].
>>
>
> -- 
> Thierry Volpiatto
> Gpg key: http://pgp.mit.edu/



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01  8:36                 ` Dan Nicolaescu
@ 2010-07-01  8:53                   ` Thierry Volpiatto
  2010-07-01 16:02                     ` Dan Nicolaescu
  2010-07-01 15:20                   ` Anything Use Case (was: more on anything.el inclusion) Memnon Anon
  1 sibling, 1 reply; 75+ messages in thread
From: Thierry Volpiatto @ 2010-07-01  8:53 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: rubikitch, emacs-devel

Dan Nicolaescu <dann@gnu.org> writes:

> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>
>> Dan Nicolaescu <dann@gnu.org> writes:
>>
>>> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>>>
>>>> Dan Nicolaescu <dann@gnu.org> writes:
>>>>
>>>>>> Actually installing anything is easy and work out of the box with only:
>>>>>>
>>>>>> (require 'anything-config)
>>>>>> (require 'anything-match-plugin) ; facultatif
>>>>>
>>>>> For packages included in emacs we try to avoid using require to
>>>>> activate the package.  [I don't know anything about this particular
>>>>> package, so...]
>>>>
>>>> A lot of autoload cookies are missing in anything-config, however, 
>>>>
>>>> (autoload 'anything-find-files "anything-config.el" "" t)
>>>>
>>>> is enough to enable anything.
>>>
>>> That's the same as using require.  The preferred way is to do it with
>>> a function call, or a mode.
>>>
>>>>>> Anything is now self documented both in mode-line and with C-h m or your
>>>>>> usual help command, but yes a manual would be nice.
>>>>>
>>>>> Can you please add some brief description of what it actually does?
>>>>>
>>>>> ;;;; anything.el --- open anything / QuickSilver-like candidate-selection framework
>>>>>
>>>>> does not tell much...
>>>>
>>>> anything is a framework that allow to setup an interactive and
>>>> incremental display to select candidate and provide diverses actions on
>>>> it or many of them.
>>>>
>>>> Basically, you can see that as a big completing-read, but incremental
>>>> with nice display, and providing differents action on candidate selected
>>>> in collection.
>>>
>>> And how do you use it?
>>
>> On the user side, if you use anything-config.el, there is already build
>> in sources ready for use, so you can use provided functions like any
>> other emacs one (e.g M-x anything-xfonts).
>
> This is still hard to grasp...
> Can you provide concrete examples of typical problems and how
> anything.el solves them?

Say you want to see how look dejavu fonts in emacs:
M-x anything-xfonts RET

enter in prompt: deja

Move anything overlay with C-n/p or down/up
Hit C-z
Hit TAB to see provided actions
Hit C-g to exit doing nothing
Hit RET to exit doing the default action.

Did you read example i provide under here?

>
>
>
>>
>> For the developper who want to write his own anything source the best
>> actually is to look at the sources wrote in anything-config.el.
>>
>> Basically, you run anything like that:
>>
>> (anything 'source)
>>
>> source is an alist that you can write like that:
>> (Where name, candidates, action are anything attributes.
>> You have a lot of attributes, for full info, use:
>> M-x anything-describe-anything-attribute)
>>
>> (defvar mysource
>>   '((name . "A simple example that open all file with extension .el")
>>     (candidates . (lambda ()
>>                    (loop for i in (directory-files default-directory)
>>                       when (string= (file-name-extension i) "el")
>>                       collect i)))
>>     (action . (("Open file" . find-file)
>>                ("Do something else" . (lambda (candidate)
>>                                         ;; Write here something more
>>                                         ;; useful than nil
>>                                         nil))))))
>>
>> ;; [EVAL] (anything 'mysource)
>>
>> After evaluating line above to see if your new source work as expected,
>> you can now define your new anything command:
>>
>> (defun my-new-anything-command ()
>>   (interactive)
>>   (anything 'mysource))
>>
>>
>>> BTW, this might be obvious to you, but for people that have not used
>>> the package is not.  Adding a few lines of describing what it does and
>>> how to use it is very helpful.  [Please note that this has no relation
>>> to getting this package included in emacs, this is just what a
>>> potential user would like].
>>>
>>
>> -- 
>> Thierry Volpiatto
>> Gpg key: http://pgp.mit.edu/
>

-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01  7:50               ` Thierry Volpiatto
  2010-07-01  8:36                 ` Dan Nicolaescu
@ 2010-07-01 13:18                 ` Ted Zlatanov
  2010-07-01 14:15                   ` Thierry Volpiatto
  2010-07-17 13:37                   ` rubikitch
  1 sibling, 2 replies; 75+ messages in thread
From: Ted Zlatanov @ 2010-07-01 13:18 UTC (permalink / raw)
  To: emacs-devel

On Thu, 01 Jul 2010 09:50:30 +0200 Thierry Volpiatto <thierry.volpiatto@gmail.com> wrote: 

TV> On the user side, if you use anything-config.el, there is already build
TV> in sources ready for use, so you can use provided functions like any
TV> other emacs one (e.g M-x anything-xfonts).

OK.  Thanks for explaining.  So from the user's viewpoint, it should be
enough to autoload all the front-end anything-* functions (from
anything.el ideally, so users don't have to know about
anything-config.el as you had it in your autoload example).  Can you
make the necessary changes?  Or will that require major work?

Is there a list of the standard front-end functions (a subset of the
autoloads below) that should always be exposed (through keyboard
mappings, possibly in a menu) to Emacs users?  The xfonts and file
selection ones should be in that list for sure.

TV> For the developper who want to write his own anything source the best
TV> actually is to look at the sources wrote in anything-config.el.

I don't think you need to explain too much about developer support in
this thread; I would assume anyone interested in extending it is capable
of reading the docs.

Thanks
Ted




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 13:18                 ` more on anything.el inclusion Ted Zlatanov
@ 2010-07-01 14:15                   ` Thierry Volpiatto
  2010-07-01 14:48                     ` Lennart Borgman
  2010-07-01 15:55                     ` Ted Zlatanov
  2010-07-17 13:37                   ` rubikitch
  1 sibling, 2 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-07-01 14:15 UTC (permalink / raw)
  To: emacs-devel; +Cc: rubikitch

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Thu, 01 Jul 2010 09:50:30 +0200 Thierry Volpiatto <thierry.volpiatto@gmail.com> wrote: 
>
> TV> On the user side, if you use anything-config.el, there is already build
> TV> in sources ready for use, so you can use provided functions like any
> TV> other emacs one (e.g M-x anything-xfonts).
>
> OK.  Thanks for explaining.  So from the user's viewpoint, it should be
> enough to autoload all the front-end anything-* functions (from
> anything.el ideally, so users don't have to know about
> anything-config.el as you had it in your autoload example).  Can you
> make the necessary changes?  Or will that require major work?

Maybe a function that autoload all as suggested by Dan?
Would not need major work, but need to discuss it with Rubikitch.

> Is there a list of the standard front-end functions (a subset of the
> autoloads below) that should always be exposed (through keyboard
> mappings, possibly in a menu) to Emacs users?  The xfonts and file
> selection ones should be in that list for sure.

In which menu should we add anything commands?
I mean this kind of menu:

(easy-menu-define nil global-map
  "`anything' menu"
  `("Anything commands"
    ["Find files" anything-find-files t]
    ["Show xfonts" anything-xfonts t]))

Here it is in global menu, but maybe that should go in tools or don't
know where.(i never used menus in emacs, toolbar is disabled here).


> TV> For the developper who want to write his own anything source the best
> TV> actually is to look at the sources wrote in anything-config.el.
>
> I don't think you need to explain too much about developer support in
> this thread; I would assume anyone interested in extending it is capable
> of reading the docs.

Ok

-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 14:15                   ` Thierry Volpiatto
@ 2010-07-01 14:48                     ` Lennart Borgman
  2010-07-01 15:55                     ` Ted Zlatanov
  1 sibling, 0 replies; 75+ messages in thread
From: Lennart Borgman @ 2010-07-01 14:48 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: rubikitch, emacs-devel

On Thu, Jul 1, 2010 at 4:15 PM, Thierry Volpiatto
<thierry.volpiatto@gmail.com> wrote:
>
> In which menu should we add anything commands?

I have suggested long ago to create a top level menu for all minor
modes. That would make decisions like this easier.



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Anything Use Case (was: more on anything.el inclusion)
  2010-07-01  8:36                 ` Dan Nicolaescu
  2010-07-01  8:53                   ` Thierry Volpiatto
@ 2010-07-01 15:20                   ` Memnon Anon
  1 sibling, 0 replies; 75+ messages in thread
From: Memnon Anon @ 2010-07-01 15:20 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: rubikitch, emacs-devel, Thierry Volpiatto

Anything is just great!

Dan Nicolaescu <dann@gnu.org> writes:

>>> And how do you use it?
>>
>> On the user side, if you use anything-config.el, there is already build
>> in sources ready for use, so you can use provided functions like any
>> other emacs one (e.g M-x anything-xfonts).
>
> This is still hard to grasp...
> Can you provide concrete examples of typical problems and how
> anything.el solves them?

One of my typical use cases:

- I need to use `grep', but I do not use it that often.
- F11 takes me to anything in my setup.
- "Pattern:" grep
- Anything shows me lots of startig points, e.g.:

,----
| Emacs Commands
| find-grep
| find-grep-dired
| grep
| ...
`----
,----
| Info Pages
| grep: (grep)
| ...
`----
,----
| Manual Pages
| bzegrep
| bzfgrep
| bzgrep
| ...
`----
,----
| Locate
| /bin/bzegrep
| /bin/bzfgrep
| /bin/bzgrep
| ...
`----

- I can use the primary action on each item pressing RET or
        get a list of actions apropriate for the specific item.

For Emacs Command `find-grep', I get:
,----
| Call interactively
| Describe command
| Add command to kill ring
| Go to command's definition
`----

The list of sources to integrate is vast!
Your bbdb database, kill ring, buffers, locate database, w3m bookmarks,
info and man, apt and much more, all from a single slick interface.

It might not be a solution to a single "problem", but it grows on you. 
Now, I consider it a vital part of my emacs experience :).




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 14:15                   ` Thierry Volpiatto
  2010-07-01 14:48                     ` Lennart Borgman
@ 2010-07-01 15:55                     ` Ted Zlatanov
  2010-07-01 16:43                       ` Lennart Borgman
  2010-07-09 14:46                       ` Thierry Volpiatto
  1 sibling, 2 replies; 75+ messages in thread
From: Ted Zlatanov @ 2010-07-01 15:55 UTC (permalink / raw)
  To: emacs-devel

On Thu, 01 Jul 2010 16:15:38 +0200 Thierry Volpiatto <thierry.volpiatto@gmail.com> wrote: 

TV> Ted Zlatanov <tzz@lifelogs.com> writes:

>> OK.  Thanks for explaining.  So from the user's viewpoint, it should be
>> enough to autoload all the front-end anything-* functions (from
>> anything.el ideally, so users don't have to know about
>> anything-config.el as you had it in your autoload example).  Can you
>> make the necessary changes?  Or will that require major work?

TV> Maybe a function that autoload all as suggested by Dan?
TV> Would not need major work, but need to discuss it with Rubikitch.

Wonderful, thank you.

>> Is there a list of the standard front-end functions (a subset of the
>> autoloads below) that should always be exposed (through keyboard
>> mappings, possibly in a menu) to Emacs users?  The xfonts and file
>> selection ones should be in that list for sure.

TV> In which menu should we add anything commands?
TV> I mean this kind of menu:

TV> (easy-menu-define nil global-map
TV>   "`anything' menu"
TV>   `("Anything commands"
TV>     ["Find files" anything-find-files t]
TV>     ["Show xfonts" anything-xfonts t]))

TV> Here it is in global menu, but maybe that should go in tools or don't
TV> know where.(i never used menus in emacs, toolbar is disabled here).

The menu location is not so important.  The point is to make a list of
"important" front-end functions that users should really know about.
The keyboard mappings are IMO much more important because anything-*
functions tend to be important while editing, not as an interactive
exploration (which menus do well).  So when we have the list we can
propose a list of mappings and depending on whether the list has 10 or
100 entries we can anticipate the mapping complexity.

On Thu, 1 Jul 2010 16:48:48 +0200 Lennart Borgman <lennart.borgman@gmail.com> wrote: 

LB> On Thu, Jul 1, 2010 at 4:15 PM, Thierry Volpiatto
LB> <thierry.volpiatto@gmail.com> wrote:
>> 
>> In which menu should we add anything commands?

LB> I have suggested long ago to create a top level menu for all minor
LB> modes. That would make decisions like this easier.

Exposing functionality creates UI complexity; Emacs is already really
complex both in UI terms and in scope.  So I don't think adding a
general menu like that (have you seen how many minor modes Emacs has?)
would benefit the users.

OTOH it would be very nifty if there was a anything-minor-mode function
that let you browse (with some help text) and activate minor modes.

Ted




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01  8:53                   ` Thierry Volpiatto
@ 2010-07-01 16:02                     ` Dan Nicolaescu
  2010-07-01 16:33                       ` Harald Hanche-Olsen
                                         ` (2 more replies)
  0 siblings, 3 replies; 75+ messages in thread
From: Dan Nicolaescu @ 2010-07-01 16:02 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: rubikitch, emacs-devel

Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:

> Dan Nicolaescu <dann@gnu.org> writes:
>
>> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>>
>>> Dan Nicolaescu <dann@gnu.org> writes:
>>>
>>>> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>>>>
>>>>> Dan Nicolaescu <dann@gnu.org> writes:
>>>>>
>>>>>>> Actually installing anything is easy and work out of the box with only:
>>>>>>>
>>>>>>> (require 'anything-config)
>>>>>>> (require 'anything-match-plugin) ; facultatif
>>>>>>
>>>>>> For packages included in emacs we try to avoid using require to
>>>>>> activate the package.  [I don't know anything about this particular
>>>>>> package, so...]
>>>>>
>>>>> A lot of autoload cookies are missing in anything-config, however, 
>>>>>
>>>>> (autoload 'anything-find-files "anything-config.el" "" t)
>>>>>
>>>>> is enough to enable anything.
>>>>
>>>> That's the same as using require.  The preferred way is to do it with
>>>> a function call, or a mode.
>>>>
>>>>>>> Anything is now self documented both in mode-line and with C-h m or your
>>>>>>> usual help command, but yes a manual would be nice.
>>>>>>
>>>>>> Can you please add some brief description of what it actually does?
>>>>>>
>>>>>> ;;;; anything.el --- open anything / QuickSilver-like candidate-selection framework
>>>>>>
>>>>>> does not tell much...
>>>>>
>>>>> anything is a framework that allow to setup an interactive and
>>>>> incremental display to select candidate and provide diverses actions on
>>>>> it or many of them.
>>>>>
>>>>> Basically, you can see that as a big completing-read, but incremental
>>>>> with nice display, and providing differents action on candidate selected
>>>>> in collection.
>>>>
>>>> And how do you use it?
>>>
>>> On the user side, if you use anything-config.el, there is already build
>>> in sources ready for use, so you can use provided functions like any
>>> other emacs one (e.g M-x anything-xfonts).
>>
>> This is still hard to grasp...
>> Can you provide concrete examples of typical problems and how
>> anything.el solves them?
>
> Say you want to see how look dejavu fonts in emacs:
> M-x anything-xfonts RET

Does this happen automatically when you do x-choose-font?

As a user do I need to know a lot of anything-* function names, or
this happens automatically when I use completion?

> enter in prompt: deja
>
> Move anything overlay with C-n/p or down/up
> Hit C-z
> Hit TAB to see provided actions
> Hit C-g to exit doing nothing
> Hit RET to exit doing the default action.
>
> Did you read example i provide under here?

No, I am looking at this from the point of view of a user, not a programmer.

You might want to step back, and think about how to present this to
someone that has not idea what anything.el is, and what it can do.
(I still don't know after a few emails...)

>
>>
>>
>>
>>>
>>> For the developper who want to write his own anything source the best
>>> actually is to look at the sources wrote in anything-config.el.
>>>
>>> Basically, you run anything like that:
>>>
>>> (anything 'source)
>>>
>>> source is an alist that you can write like that:
>>> (Where name, candidates, action are anything attributes.
>>> You have a lot of attributes, for full info, use:
>>> M-x anything-describe-anything-attribute)
>>>
>>> (defvar mysource
>>>   '((name . "A simple example that open all file with extension .el")
>>>     (candidates . (lambda ()
>>>                    (loop for i in (directory-files default-directory)
>>>                       when (string= (file-name-extension i) "el")
>>>                       collect i)))
>>>     (action . (("Open file" . find-file)
>>>                ("Do something else" . (lambda (candidate)
>>>                                         ;; Write here something more
>>>                                         ;; useful than nil
>>>                                         nil))))))
>>>
>>> ;; [EVAL] (anything 'mysource)
>>>
>>> After evaluating line above to see if your new source work as expected,
>>> you can now define your new anything command:
>>>
>>> (defun my-new-anything-command ()
>>>   (interactive)
>>>   (anything 'mysource))
>>>
>>>
>>>> BTW, this might be obvious to you, but for people that have not used
>>>> the package is not.  Adding a few lines of describing what it does and
>>>> how to use it is very helpful.  [Please note that this has no relation
>>>> to getting this package included in emacs, this is just what a
>>>> potential user would like].
>>>>
>>>
>>> -- 
>>> Thierry Volpiatto
>>> Gpg key: http://pgp.mit.edu/
>>
>
> -- 
> Thierry Volpiatto
> Gpg key: http://pgp.mit.edu/



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 16:02                     ` Dan Nicolaescu
@ 2010-07-01 16:33                       ` Harald Hanche-Olsen
  2010-07-01 16:43                         ` Ted Zlatanov
  2010-07-01 17:18                       ` Thierry Volpiatto
  2010-07-01 17:36                       ` Harald Hanche-Olsen
  2 siblings, 1 reply; 75+ messages in thread
From: Harald Hanche-Olsen @ 2010-07-01 16:33 UTC (permalink / raw)
  To: emacs-devel

+ Dan Nicolaescu <dann@gnu.org>:

> You might want to step back, and think about how to present this to
> someone that has not idea what anything.el is, and what it can do.
> (I still don't know after a few emails...)

I can't help explain anything (*), but it has been compared to
quicksilver on the Mac, which I do use. And the problem with
explaining that is that it is (in some ways) so totally different from
traditional computer interfaces that it's almost impossible to
describe it meaningfully. You just have to see it in action. That
doesn't mean you cannot and should not try, but it explains why the
explanations this far fall short.

(Imagine explaining computers and what you can do with them to your
great-great-grandfather.)

(*) I love being able to say that.

- Harald (who is now willing to try anything for himself)



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 16:33                       ` Harald Hanche-Olsen
@ 2010-07-01 16:43                         ` Ted Zlatanov
  0 siblings, 0 replies; 75+ messages in thread
From: Ted Zlatanov @ 2010-07-01 16:43 UTC (permalink / raw)
  To: emacs-devel

On Thu, 01 Jul 2010 11:33:19 -0500 (CDT) Harald Hanche-Olsen <hanche@math.ntnu.no> wrote: 

HH> + Dan Nicolaescu <dann@gnu.org>:
>> You might want to step back, and think about how to present this to
>> someone that has not idea what anything.el is, and what it can do.
>> (I still don't know after a few emails...)

HH> I can't help explain anything (*), but it has been compared to
HH> quicksilver on the Mac, which I do use. 

It's similar to Gnome Do as well (or you can say Do is like
QuickSilver), for those who don't have a Mac.

HH> And the problem with explaining that is that it is (in some ways) so
HH> totally different from traditional computer interfaces that it's
HH> almost impossible to describe it meaningfully. You just have to see
HH> it in action. That doesn't mean you cannot and should not try, but
HH> it explains why the explanations this far fall short.

We've had interactive completion in Emacs for a while and it actually
does a lot of cool things like anything.el.  Icicles also addresses
similar needs, although I personally did not like it.  So I don't think
it's necessarily a radical interface you'd have trouble explaining to
the Emacs crowd :)

Ted




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 15:55                     ` Ted Zlatanov
@ 2010-07-01 16:43                       ` Lennart Borgman
  2010-07-01 18:55                         ` Ted Zlatanov
  2010-07-09 14:46                       ` Thierry Volpiatto
  1 sibling, 1 reply; 75+ messages in thread
From: Lennart Borgman @ 2010-07-01 16:43 UTC (permalink / raw)
  To: Ted Zlatanov; +Cc: emacs-devel

2010/7/1 Ted Zlatanov <tzz@lifelogs.com>:
>>>
>>> In which menu should we add anything commands?
>
> LB> I have suggested long ago to create a top level menu for all minor
> LB> modes. That would make decisions like this easier.
>
> Exposing functionality creates UI complexity; Emacs is already really
> complex both in UI terms and in scope.  So I don't think adding a
> general menu like that (have you seen how many minor modes Emacs has?)
> would benefit the users.


A misunderstanding. The problem today is that all minor mode menus
goes into the top level menu, i.e. the menu bar. So every minor mode
you turn on takes space in the menu bar, but the space in the menu bar
is limited.

What I suggested is that minor mode menus should not go into the menu
bar. They should go into a submenu for minor modes instead. (Perhaps
that should be customized per minor mode.)

Normally minor modes are not in the menus unless they are turned on.


> OTOH it would be very nifty if there was a anything-minor-mode function
> that let you browse (with some help text) and activate minor modes.


The menus are also used for this. Functionality are sometimes put in
the menus so that it is easier to find it. I think that is a good
idea.



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 16:02                     ` Dan Nicolaescu
  2010-07-01 16:33                       ` Harald Hanche-Olsen
@ 2010-07-01 17:18                       ` Thierry Volpiatto
  2010-07-01 17:43                         ` Dan Nicolaescu
  2010-07-01 17:36                       ` Harald Hanche-Olsen
  2 siblings, 1 reply; 75+ messages in thread
From: Thierry Volpiatto @ 2010-07-01 17:18 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: rubikitch, emacs-devel

Dan Nicolaescu <dann@gnu.org> writes:

>> Say you want to see how look dejavu fonts in emacs:
>> M-x anything-xfonts RET
>
> Does this happen automatically when you do x-choose-font?

Don't know what is x-choose-font, i have not such command.

> As a user do I need to know a lot of anything-* function names, or
> this happens automatically when I use completion?

AFAIK M-x provide completion on all emacs commands, why not for anything
commands?
You can use anything-M-x or anything-emacs-commands as a replacement of
M-x.

>> enter in prompt: deja
>>
>> Move anything overlay with C-n/p or down/up
>> Hit C-z
>> Hit TAB to see provided actions
>> Hit C-g to exit doing nothing
>> Hit RET to exit doing the default action.
>>
>> Did you read example i provide under here?
>
> No, I am looking at this from the point of view of a user, not a programmer.

Ok.

> You might want to step back, and think about how to present this to
> someone that has not idea what anything.el is, and what it can do.
On the user point of view, there is nothing to understand, anything
provide emacs commands like any other emacs package.

So you do M-x anything- TAB and try differents commands.

> (I still don't know after a few emails...)
I assume you are joking. ;-)


-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 16:02                     ` Dan Nicolaescu
  2010-07-01 16:33                       ` Harald Hanche-Olsen
  2010-07-01 17:18                       ` Thierry Volpiatto
@ 2010-07-01 17:36                       ` Harald Hanche-Olsen
  2 siblings, 0 replies; 75+ messages in thread
From: Harald Hanche-Olsen @ 2010-07-01 17:36 UTC (permalink / raw)
  To: emacs-devel

+ Dan Nicolaescu <dann@gnu.org>:

> (I still don't know after a few emails...)

Does  http://www.emacswiki.org/cgi-bin/emacs/Anything  help at all?

- Harald



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 17:18                       ` Thierry Volpiatto
@ 2010-07-01 17:43                         ` Dan Nicolaescu
  2010-07-01 18:14                           ` Thierry Volpiatto
                                             ` (2 more replies)
  0 siblings, 3 replies; 75+ messages in thread
From: Dan Nicolaescu @ 2010-07-01 17:43 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: rubikitch, emacs-devel

Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:

> Dan Nicolaescu <dann@gnu.org> writes:
>
>>> Say you want to see how look dejavu fonts in emacs:
>>> M-x anything-xfonts RET
>>
>> Does this happen automatically when you do x-choose-font?
>
> Don't know what is x-choose-font, i have not such command.

Sorry, x-select-font

BTW, anything-xfonts is not the best example, looking at fonts is not
a very frequent action.  Can you give an example of a more frequent
operation / mode of operation.

>> As a user do I need to know a lot of anything-* function names, or
>> this happens automatically when I use completion?
>
> AFAIK M-x provide completion on all emacs commands, why not for anything
> commands?
> You can use anything-M-x or anything-emacs-commands as a replacement of
> M-x.

So are you saying that instead of using M-x SOMETHING one would use
M-x anything-SOMETHING?

Normally users don't do M-x find-file, they to C-x C-f, so if you do C-x C-f do you get 
M-x anything-find-file ? (and similar for other key bindings)

>> You might want to step back, and think about how to present this to
>> someone that has not idea what anything.el is, and what it can do.
> On the user point of view, there is nothing to understand, anything
> provide emacs commands like any other emacs package.
>
> So you do M-x anything- TAB and try differents commands.

As a user, if the package does not quite tell me why would I want to
try it, I won't do it.  That's why I am asking from some simple, easy
to understand, significant examples.

>> (I still don't know after a few emails...)
> I assume you are joking. ;-)

I am not.  All I know that it's a package that does some kind of
completion that is activated after you do (require 'anything).  But
it's unclear what type of completion, and why would I want to use it.
Please don't get this wrong, many people are saying it's a great
package, but the description can use some improvement.



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 17:43                         ` Dan Nicolaescu
@ 2010-07-01 18:14                           ` Thierry Volpiatto
  2010-07-01 18:48                           ` Ted Zlatanov
  2010-07-01 18:57                           ` Wojciech Meyer
  2 siblings, 0 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-07-01 18:14 UTC (permalink / raw)
  To: emacs-devel

Dan Nicolaescu <dann@gnu.org> writes:

> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>
>> Dan Nicolaescu <dann@gnu.org> writes:
>>
>>>> Say you want to see how look dejavu fonts in emacs:
>>>> M-x anything-xfonts RET
>>>
>>> Does this happen automatically when you do x-choose-font?
>>
>> Don't know what is x-choose-font, i have not such command.
>
> Sorry, x-select-font

> BTW, anything-xfonts is not the best example, looking at fonts is not
> a very frequent action.  Can you give an example of a more frequent
> operation / mode of operation.

You can try anything-find-files that can be a replacement of C-x C-f
IF YOU WANT.
In any case, it will never replace standard C-x C-f (find-file) until
you write explicitely in your .emacs
(global-set-key (kbd "C-x C-f") 'anyting-find-files)
                                                  ^
                                                  Notice the s at end.

That the choice of the user to use the command he want.

As you will see anything-find-files will give you in addition of an
incremental search a bunch of actions on candidate:

,----
| Find File
| Find file in Dired
| Find file in Elscreen 
| Complete at point
| Delete File(s)
| Find file as root
| Open file externally (C-u to choose)
| Find file other window
| Find file other frame
`----

find file in elscreen appear in menu only if elscreen is loaded.

complete at point provide file completion in any buffer in emacs
(minibuffer compris)

>>> As a user do I need to know a lot of anything-* function names, or
>>> this happens automatically when I use completion?
>>
>> AFAIK M-x provide completion on all emacs commands, why not for anything
>> commands?
>> You can use anything-M-x or anything-emacs-commands as a replacement of
>> M-x.
>
> So are you saying that instead of using M-x SOMETHING one would use
> M-x anything-SOMETHING?

Yes that is your choice, anything DONT REPLACE emacs commands unless you
do it explicitely by binding command.

> Normally users don't do M-x find-file, they to C-x C-f, so if you do C-x C-f do you get 
> M-x anything-find-file ? (and similar for other key bindings)

No, as explained above, that's your choice, maybe one prefer using
standard C-x C-f (find-file) and not anything-find-files.

So you can install anything in emacs and continue to use emacs as you
always did.

>>> You might want to step back, and think about how to present this to
>>> someone that has not idea what anything.el is, and what it can do.
>> On the user point of view, there is nothing to understand, anything
>> provide emacs commands like any other emacs package.
>>
>> So you do M-x anything- TAB and try differents commands.
>
> As a user, if the package does not quite tell me why would I want to
> try it, I won't do it.  That's why I am asking from some simple, easy
> to understand, significant examples.
>
>>> (I still don't know after a few emails...)
>> I assume you are joking. ;-)
>
> I am not.  All I know that it's a package that does some kind of
> completion that is activated after you do (require 'anything).  But
> it's unclear what type of completion, and why would I want to use it.
> Please don't get this wrong, many people are saying it's a great
> package, but the description can use some improvement.
As Harald said, it's difficult to describe until you use it.


-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 17:43                         ` Dan Nicolaescu
  2010-07-01 18:14                           ` Thierry Volpiatto
@ 2010-07-01 18:48                           ` Ted Zlatanov
  2010-07-01 18:57                           ` Wojciech Meyer
  2 siblings, 0 replies; 75+ messages in thread
From: Ted Zlatanov @ 2010-07-01 18:48 UTC (permalink / raw)
  To: emacs-devel

On Thu, 01 Jul 2010 13:43:37 -0400 Dan Nicolaescu <dann@gnu.org> wrote: 

DN> So are you saying that instead of using M-x SOMETHING one would use
DN> M-x anything-SOMETHING?

DN> Normally users don't do M-x find-file, they to C-x C-f, so if you do
DN> C-x C-f do you get M-x anything-find-file ? (and similar for other
DN> key bindings)

anything.el does not change or interfere with the normal completion
system.  IMHO this is a good thing: it has allowed anything.el to
experiment freely and has made it a simple unobtrusive add-on.

DN> As a user, if the package does not quite tell me why would I want to
DN> try it, I won't do it.  That's why I am asking from some simple, easy
DN> to understand, significant examples.

How about

"anything.el: easy find/select/operate on files/fonts/anything interface.

A live-search (similar to Quicksilver and Gnome Do) alternative to
standard completion mechanisms you can try by exploring the anything-*
commands.  Does not change or interfere with standard completion and
requires no customizations out of the box."




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 16:43                       ` Lennart Borgman
@ 2010-07-01 18:55                         ` Ted Zlatanov
  2010-07-01 22:08                           ` Lennart Borgman
  0 siblings, 1 reply; 75+ messages in thread
From: Ted Zlatanov @ 2010-07-01 18:55 UTC (permalink / raw)
  To: emacs-devel

On Thu, 1 Jul 2010 18:43:02 +0200 Lennart Borgman <lennart.borgman@gmail.com> wrote: 

LB> 2010/7/1 Ted Zlatanov <tzz@lifelogs.com>:
>>>> 
>>>> In which menu should we add anything commands?
>> 
LB> I have suggested long ago to create a top level menu for all minor
LB> modes. That would make decisions like this easier.
>> 
>> Exposing functionality creates UI complexity; Emacs is already really
>> complex both in UI terms and in scope.  So I don't think adding a
>> general menu like that (have you seen how many minor modes Emacs has?)
>> would benefit the users.

LB> A misunderstanding. The problem today is that all minor mode menus
LB> goes into the top level menu, i.e. the menu bar. So every minor mode
LB> you turn on takes space in the menu bar, but the space in the menu bar
LB> is limited.

LB> What I suggested is that minor mode menus should not go into the menu
LB> bar. They should go into a submenu for minor modes instead. (Perhaps
LB> that should be customized per minor mode.)

LB> Normally minor modes are not in the menus unless they are turned on.

I see.  You meant "all active minor modes" in your original message.
Yes, in that limited case it could work but I'm not convinced it would
be useful.

Ted




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 17:43                         ` Dan Nicolaescu
  2010-07-01 18:14                           ` Thierry Volpiatto
  2010-07-01 18:48                           ` Ted Zlatanov
@ 2010-07-01 18:57                           ` Wojciech Meyer
  2 siblings, 0 replies; 75+ messages in thread
From: Wojciech Meyer @ 2010-07-01 18:57 UTC (permalink / raw)
  To: Dan Nicolaescu, Thierry Volpiatto, rubikitch, emacs-devel

I tried it at work today and I quite like it. To the extent I wanted
immediately bind it to a key. The idea is about implict context,
normally you have to supply conext in a form of specific function. To
open a file you have to say M-x load-file or to switch to a buffer you
have to say M-x ibuffer-switch, M-x anything try to guess the action
based on a context and give you a choice. So in this case you just say
M-x anything and type characters, and get list of options to do with
the names or symbols containig those.
Wojciech

On 7/1/10, Dan Nicolaescu <dann@gnu.org> wrote:
> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>
>> Dan Nicolaescu <dann@gnu.org> writes:
>>
>>>> Say you want to see how look dejavu fonts in emacs:
>>>> M-x anything-xfonts RET
>>>
>>> Does this happen automatically when you do x-choose-font?
>>
>> Don't know what is x-choose-font, i have not such command.
>
> Sorry, x-select-font
>
> BTW, anything-xfonts is not the best example, looking at fonts is not
> a very frequent action.  Can you give an example of a more frequent
> operation / mode of operation.
>
>>> As a user do I need to know a lot of anything-* function names, or
>>> this happens automatically when I use completion?
>>
>> AFAIK M-x provide completion on all emacs commands, why not for anything
>> commands?
>> You can use anything-M-x or anything-emacs-commands as a replacement of
>> M-x.
>
> So are you saying that instead of using M-x SOMETHING one would use
> M-x anything-SOMETHING?
>
> Normally users don't do M-x find-file, they to C-x C-f, so if you do C-x C-f
> do you get
> M-x anything-find-file ? (and similar for other key bindings)
>
>>> You might want to step back, and think about how to present this to
>>> someone that has not idea what anything.el is, and what it can do.
>> On the user point of view, there is nothing to understand, anything
>> provide emacs commands like any other emacs package.
>>
>> So you do M-x anything- TAB and try differents commands.
>
> As a user, if the package does not quite tell me why would I want to
> try it, I won't do it.  That's why I am asking from some simple, easy
> to understand, significant examples.
>
>>> (I still don't know after a few emails...)
>> I assume you are joking. ;-)
>
> I am not.  All I know that it's a package that does some kind of
> completion that is activated after you do (require 'anything).  But
> it's unclear what type of completion, and why would I want to use it.
> Please don't get this wrong, many people are saying it's a great
> package, but the description can use some improvement.
>
>

-- 
Sent from my mobile device



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 18:55                         ` Ted Zlatanov
@ 2010-07-01 22:08                           ` Lennart Borgman
  0 siblings, 0 replies; 75+ messages in thread
From: Lennart Borgman @ 2010-07-01 22:08 UTC (permalink / raw)
  To: Ted Zlatanov; +Cc: emacs-devel

2010/7/1 Ted Zlatanov <tzz@lifelogs.com>:
>
> LB> What I suggested is that minor mode menus should not go into the menu
> LB> bar. They should go into a submenu for minor modes instead. (Perhaps
> LB> that should be customized per minor mode.)
>
> LB> Normally minor modes are not in the menus unless they are turned on.
>
> I see.  You meant "all active minor modes" in your original message.
> Yes, in that limited case it could work but I'm not convinced it would
> be useful.


It depends on how many minor modes you use.

Also I think it would make the distinction between minor modes and
major modes a bit more clear for beginners.



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01  6:48             ` Dan Nicolaescu
  2010-07-01  7:50               ` Thierry Volpiatto
@ 2010-07-04 22:02               ` Stefan Monnier
  2010-07-07 16:47                 ` Ted Zlatanov
  1 sibling, 1 reply; 75+ messages in thread
From: Stefan Monnier @ 2010-07-04 22:02 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: rubikitch, emacs-devel, Thierry Volpiatto

> BTW, this might be obvious to you, but for people that have not used
> the package is not.  Adding a few lines of describing what it does and
> how to use it is very helpful.  [Please note that this has no relation
> to getting this package included in Emacs, this is just what a
> potential user would like].

Having gone through the same steps, plus some private discussion with
Thierry, here's my take on it:

   anything.el provides an alternate selection mechanism that differs
   from the usual minibuffer+completion mechanism in various ways,
   such as:
   - the *Completions* buffer is always displayed.
   - the *Completions* buffer is where the action takes place.
   - ...
   - the action to perform on the object(s) you selected is (or can be)
     chosen from the *Completions* buffer, i.e. after selecting the
     object rather than before.
   
   I.e. one difference is that the UI for selection is a bit different.
   And another is that the "paradigm" is changed from "choose action
   then choose on which object to apply it" to "choose object(s) and
   then choose action to apply to it/them".

I haven't delved far enough to give much further details.  I think it
would be good to try and decouple some of those aspects, especially
since I think that some of them could be included in
completion-list-mode (i.e. in the default UI).


        Stefan



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-04 22:02               ` Stefan Monnier
@ 2010-07-07 16:47                 ` Ted Zlatanov
  2010-07-23 15:35                   ` Stefan Monnier
  0 siblings, 1 reply; 75+ messages in thread
From: Ted Zlatanov @ 2010-07-07 16:47 UTC (permalink / raw)
  To: emacs-devel

On Mon, 05 Jul 2010 00:02:59 +0200 Stefan Monnier <monnier@IRO.UMontreal.CA> wrote: 

>> BTW, this might be obvious to you, but for people that have not used
>> the package is not.  Adding a few lines of describing what it does and
>> how to use it is very helpful.  [Please note that this has no relation
>> to getting this package included in Emacs, this is just what a
>> potential user would like].

...
SM> I haven't delved far enough to give much further details.  I think it
SM> would be good to try and decouple some of those aspects, especially
SM> since I think that some of them could be included in
SM> completion-list-mode (i.e. in the default UI).

Does this mean you'd rather not include anything.el in Emacs?

My view is that the anything.el system, separated from the Emacs
completion mechanism, has significant freedom with plugins and
functionality.  So improving the completion mechanism is not the same as
what anything.el can provide for Emacs users.

Ted




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 15:55                     ` Ted Zlatanov
  2010-07-01 16:43                       ` Lennart Borgman
@ 2010-07-09 14:46                       ` Thierry Volpiatto
  1 sibling, 0 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-07-09 14:46 UTC (permalink / raw)
  To: emacs-devel

Hi Ted, sorry for late reply.

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Thu, 01 Jul 2010 16:15:38 +0200 Thierry Volpiatto <thierry.volpiatto@gmail.com> wrote: 
>
> TV> Ted Zlatanov <tzz@lifelogs.com> writes:
>
>>> OK.  Thanks for explaining.  So from the user's viewpoint, it should be
>>> enough to autoload all the front-end anything-* functions (from
>>> anything.el ideally, so users don't have to know about
>>> anything-config.el as you had it in your autoload example).  Can you
>>> make the necessary changes?  Or will that require major work?
>
> TV> Maybe a function that autoload all as suggested by Dan?
> TV> Would not need major work, but need to discuss it with Rubikitch.
>
> Wonderful, thank you.

I don't think a function is neccessary as anything don't modify other
things in emacs.
There is now an anything-command-map that can be autoloaded at emacs
startup.

>>> Is there a list of the standard front-end functions (a subset of the
>>> autoloads below) that should always be exposed (through keyboard
>>> mappings, possibly in a menu) to Emacs users?  The xfonts and file
>>> selection ones should be in that list for sure.
>
> TV> In which menu should we add anything commands?
> TV> I mean this kind of menu:
>
> TV> (easy-menu-define nil global-map
> TV>   "`anything' menu"
> TV>   `("Anything commands"
> TV>     ["Find files" anything-find-files t]
> TV>     ["Show xfonts" anything-xfonts t]))
>
> TV> Here it is in global menu, but maybe that should go in tools or don't
> TV> know where.(i never used menus in emacs, toolbar is disabled here).
>
> The menu location is not so important.  The point is to make a list of
> "important" front-end functions that users should really know about.
> The keyboard mappings are IMO much more important because anything-*
> functions tend to be important while editing, not as an interactive
> exploration (which menus do well).  So when we have the list we can
> propose a list of mappings and depending on whether the list has 10 or
> 100 entries we can anticipate the mapping complexity.

The anything-command-map is now prefixed at '<f5> a', what can be
discussed.
If user like a command and want to replace it with standard
emacs command, he can bind it to global-map 
(e.g anything-find-files <=> find-file ==> C-x C-f)

There is also a menu showing important commands (again this list can be
discussed) that appear when autoloading anything-command-map.

> On Thu, 1 Jul 2010 16:48:48 +0200 Lennart Borgman <lennart.borgman@gmail.com> wrote: 
>
> LB> On Thu, Jul 1, 2010 at 4:15 PM, Thierry Volpiatto
> LB> <thierry.volpiatto@gmail.com> wrote:
>>> 
>>> In which menu should we add anything commands?
>
> LB> I have suggested long ago to create a top level menu for all minor
> LB> modes. That would make decisions like this easier.
>
> Exposing functionality creates UI complexity; Emacs is already really
> complex both in UI terms and in scope.  So I don't think adding a
> general menu like that (have you seen how many minor modes Emacs has?)
> would benefit the users.
>
> OTOH it would be very nifty if there was a anything-minor-mode function
> that let you browse (with some help text) and activate minor modes.
>
> Ted
>
>
>

-- 
Thierry Volpiatto
Gpg key: http://pgp.mit.edu/




^ permalink raw reply	[flat|nested] 75+ messages in thread

* bug#5975: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-06-29 20:16         ` Thierry Volpiatto
  2010-07-13 21:31           ` Base patch for bug #5975 (bookmarking from Gnus Article buffer) Karl Fogel
@ 2010-07-13 21:31           ` Karl Fogel
  1 sibling, 0 replies; 75+ messages in thread
From: Karl Fogel @ 2010-07-13 21:31 UTC (permalink / raw)
  To: emacs-devel; +Cc: 5975, Thierry Volpiatto

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  <kfogel@red-bean.com>
+
+	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  <Adrian.B.Robert@gmail.com>
 
 	* 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)))))
 
 \f
 ;;; 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  <kfogel@red-bean.com>
+
+	* gnus/gnus-sum.el (bookmark-make-record-default): Adjust
+	declaration, based on changes in bookmark.el.
+
 2010-06-22  Mark A. Hershberger  <mah@everybody.org>
 
 	* 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 @@
 
 \f
 ;;; 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)






^ permalink raw reply	[flat|nested] 75+ messages in thread

* Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-06-29 20:16         ` Thierry Volpiatto
@ 2010-07-13 21:31           ` Karl Fogel
  2010-04-19 17:07             ` bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article buffer Thierry Volpiatto
                               ` (4 more replies)
  2010-07-13 21:31           ` bug#5975: " Karl Fogel
  1 sibling, 5 replies; 75+ messages in thread
From: Karl Fogel @ 2010-07-13 21:31 UTC (permalink / raw)
  To: emacs-devel; +Cc: 5975, Thierry Volpiatto

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  <kfogel@red-bean.com>
+
+	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  <Adrian.B.Robert@gmail.com>
 
 	* 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)))))
 
 \f
 ;;; 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  <kfogel@red-bean.com>
+
+	* gnus/gnus-sum.el (bookmark-make-record-default): Adjust
+	declaration, based on changes in bookmark.el.
+
 2010-06-22  Mark A. Hershberger  <mah@everybody.org>
 
 	* 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 @@
 
 \f
 ;;; 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)




^ permalink raw reply	[flat|nested] 75+ messages in thread

* bug#5975: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-13 21:31           ` Base patch for bug #5975 (bookmarking from Gnus Article buffer) Karl Fogel
  2010-04-19 17:07             ` bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article buffer Thierry Volpiatto
@ 2010-07-13 21:41             ` Karl Fogel
  2010-07-13 21:41             ` Karl Fogel
                               ` (2 subsequent siblings)
  4 siblings, 0 replies; 75+ messages in thread
From: Karl Fogel @ 2010-07-13 21:41 UTC (permalink / raw)
  To: emacs-devel; +Cc: 5975, Thierry Volpiatto

Karl Fogel <kfogel@red-bean.com> writes:
>Just for reference, the current (preparatory) patch is below.  I will
>follow up separately with the gnus/* patch, so it's in the archives.

Here's that patch (still needs the C-w fix referred to in the bug, though).

=== modified file 'lisp/gnus/ChangeLog'
--- lisp/gnus/ChangeLog	2010-07-13 21:20:34 +0000
+++ lisp/gnus/ChangeLog	2010-07-13 21:39:19 +0000
@@ -1,5 +1,16 @@
 2010-07-13  Karl Fogel  <kfogel@red-bean.com>
 
+	Allow bookmarks to be set from Gnus Article buffers.
+	Based on a patch by Thierry Volpiatto (Bug #5975).
+
+	* gnus-art.el (bookmark-make-record-function): New local variable.
+
+	* gnus-sum.el (gnus-summary-bookmark-make-record): Allow setting
+	from article buffer.
+	(gnus-summary-bookmark-jump): Maybe jump to article buffer.
+
+2010-07-13  Karl Fogel  <kfogel@red-bean.com>
+
 	* gnus/gnus-sum.el (bookmark-make-record-default): Adjust
 	declaration, based on changes in bookmark.el.
 

=== modified file 'lisp/gnus/gnus-art.el'
--- lisp/gnus/gnus-art.el	2010-06-10 05:33:55 +0000
+++ lisp/gnus/gnus-art.el	2010-07-13 21:39:19 +0000
@@ -4452,6 +4452,8 @@
   (make-local-variable 'gnus-article-image-alist)
   (make-local-variable 'gnus-article-charset)
   (make-local-variable 'gnus-article-ignored-charsets)
+  (set (make-local-variable 'bookmark-make-record-function)
+       'gnus-summary-bookmark-make-record)
   ;; Prevent Emacs 22 from displaying non-break space with `nobreak-space'
   ;; face.
   (set (make-local-variable 'nobreak-char-display) nil)

=== modified file 'lisp/gnus/gnus-sum.el'
--- lisp/gnus/gnus-sum.el	2010-07-13 21:20:34 +0000
+++ lisp/gnus/gnus-sum.el	2010-07-13 21:39:19 +0000
@@ -12629,18 +12629,24 @@
 
 (defun gnus-summary-bookmark-make-record ()
   "Make a bookmark entry for a Gnus summary buffer."
-  (unless (and (derived-mode-p 'gnus-summary-mode) gnus-article-current)
-    (error "Please retry from the Gnus summary buffer")) ;[1]
-  (let* ((subject (elt (gnus-summary-article-header) 1))
-         (grp     (car gnus-article-current))
-         (art     (cdr gnus-article-current))
-         (head    (gnus-summary-article-header art))
-         (id      (mail-header-id head)))
-    `(,subject
-      ,@(bookmark-make-record-default 'point-only)
-      (location . ,(format "Gnus %s:%d:%s" grp art id))
-      (group . ,grp) (article . ,art)
-      (message-id . ,id) (handler . gnus-summary-bookmark-jump))))
+  (let (pos buf)
+    (unless (and (derived-mode-p 'gnus-summary-mode) gnus-article-current)
+      (save-restriction ; FIXME is it necessary to widen?
+        (widen) (setq pos (point))) ; Set position in gnus-article buffer.
+      (setq buf "art") ; We are recording bookmark from article buffer.
+      (gnus-article-show-summary)) ; Go back in summary buffer.
+    ;; We are now recording bookmark from summary buffer.
+    (unless buf (setq buf "sum"))
+    (let* ((subject (elt (gnus-summary-article-header) 1))
+           (grp     (car gnus-article-current))
+           (art     (cdr gnus-article-current))
+           (head    (gnus-summary-article-header art))
+           (id      (mail-header-id head)))
+      `(,subject
+        ,@(bookmark-make-record-default 'no-file 'no-context pos)
+        (location . ,(format "Gnus-%s %s:%d:%s" buf grp art id))
+        (group . ,grp) (article . ,art)
+        (message-id . ,id) (handler . gnus-summary-bookmark-jump)))))
 
 ;;;###autoload
 (defun gnus-summary-bookmark-jump (bookmark)
@@ -12648,10 +12654,18 @@
 BOOKMARK is a bookmark name or a bookmark record."
   (let ((group    (bookmark-prop-get bookmark 'group))
         (article  (bookmark-prop-get bookmark 'article))
-        (id       (bookmark-prop-get bookmark 'message-id)))
+        (id       (bookmark-prop-get bookmark 'message-id))
+        (buf      (car (split-string (bookmark-prop-get bookmark 'location)))))
     (gnus-fetch-group group (list article))
     (gnus-summary-insert-cached-articles)
     (gnus-summary-goto-article id nil 'force)
+    ;; FIXME we have to wait article buffer is ready (only large buffer)
+    ;; Is there a better solution to know that?
+    ;; If we don't wait `bookmark-default-handler' will have no chance
+    ;; to set position. However there is no error, just wrong pos.
+    (sit-for 1)
+    (when (string= buf "Gnus-art")
+      (other-window 1))
     (bookmark-default-handler
      `(""
        (buffer . ,(current-buffer))





^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-13 21:31           ` Base patch for bug #5975 (bookmarking from Gnus Article buffer) Karl Fogel
  2010-04-19 17:07             ` bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article buffer Thierry Volpiatto
  2010-07-13 21:41             ` bug#5975: Base patch for bug #5975 (bookmarking from Gnus Article buffer) Karl Fogel
@ 2010-07-13 21:41             ` Karl Fogel
  2010-07-14  8:29               ` Thierry Volpiatto
  2010-07-13 23:30             ` Glenn Morris
  2010-07-14  5:03             ` Thierry Volpiatto
  4 siblings, 1 reply; 75+ messages in thread
From: Karl Fogel @ 2010-07-13 21:41 UTC (permalink / raw)
  To: emacs-devel; +Cc: 5975, Thierry Volpiatto

Karl Fogel <kfogel@red-bean.com> writes:
>Just for reference, the current (preparatory) patch is below.  I will
>follow up separately with the gnus/* patch, so it's in the archives.

Here's that patch (still needs the C-w fix referred to in the bug, though).

=== modified file 'lisp/gnus/ChangeLog'
--- lisp/gnus/ChangeLog	2010-07-13 21:20:34 +0000
+++ lisp/gnus/ChangeLog	2010-07-13 21:39:19 +0000
@@ -1,5 +1,16 @@
 2010-07-13  Karl Fogel  <kfogel@red-bean.com>
 
+	Allow bookmarks to be set from Gnus Article buffers.
+	Based on a patch by Thierry Volpiatto (Bug #5975).
+
+	* gnus-art.el (bookmark-make-record-function): New local variable.
+
+	* gnus-sum.el (gnus-summary-bookmark-make-record): Allow setting
+	from article buffer.
+	(gnus-summary-bookmark-jump): Maybe jump to article buffer.
+
+2010-07-13  Karl Fogel  <kfogel@red-bean.com>
+
 	* gnus/gnus-sum.el (bookmark-make-record-default): Adjust
 	declaration, based on changes in bookmark.el.
 

=== modified file 'lisp/gnus/gnus-art.el'
--- lisp/gnus/gnus-art.el	2010-06-10 05:33:55 +0000
+++ lisp/gnus/gnus-art.el	2010-07-13 21:39:19 +0000
@@ -4452,6 +4452,8 @@
   (make-local-variable 'gnus-article-image-alist)
   (make-local-variable 'gnus-article-charset)
   (make-local-variable 'gnus-article-ignored-charsets)
+  (set (make-local-variable 'bookmark-make-record-function)
+       'gnus-summary-bookmark-make-record)
   ;; Prevent Emacs 22 from displaying non-break space with `nobreak-space'
   ;; face.
   (set (make-local-variable 'nobreak-char-display) nil)

=== modified file 'lisp/gnus/gnus-sum.el'
--- lisp/gnus/gnus-sum.el	2010-07-13 21:20:34 +0000
+++ lisp/gnus/gnus-sum.el	2010-07-13 21:39:19 +0000
@@ -12629,18 +12629,24 @@
 
 (defun gnus-summary-bookmark-make-record ()
   "Make a bookmark entry for a Gnus summary buffer."
-  (unless (and (derived-mode-p 'gnus-summary-mode) gnus-article-current)
-    (error "Please retry from the Gnus summary buffer")) ;[1]
-  (let* ((subject (elt (gnus-summary-article-header) 1))
-         (grp     (car gnus-article-current))
-         (art     (cdr gnus-article-current))
-         (head    (gnus-summary-article-header art))
-         (id      (mail-header-id head)))
-    `(,subject
-      ,@(bookmark-make-record-default 'point-only)
-      (location . ,(format "Gnus %s:%d:%s" grp art id))
-      (group . ,grp) (article . ,art)
-      (message-id . ,id) (handler . gnus-summary-bookmark-jump))))
+  (let (pos buf)
+    (unless (and (derived-mode-p 'gnus-summary-mode) gnus-article-current)
+      (save-restriction ; FIXME is it necessary to widen?
+        (widen) (setq pos (point))) ; Set position in gnus-article buffer.
+      (setq buf "art") ; We are recording bookmark from article buffer.
+      (gnus-article-show-summary)) ; Go back in summary buffer.
+    ;; We are now recording bookmark from summary buffer.
+    (unless buf (setq buf "sum"))
+    (let* ((subject (elt (gnus-summary-article-header) 1))
+           (grp     (car gnus-article-current))
+           (art     (cdr gnus-article-current))
+           (head    (gnus-summary-article-header art))
+           (id      (mail-header-id head)))
+      `(,subject
+        ,@(bookmark-make-record-default 'no-file 'no-context pos)
+        (location . ,(format "Gnus-%s %s:%d:%s" buf grp art id))
+        (group . ,grp) (article . ,art)
+        (message-id . ,id) (handler . gnus-summary-bookmark-jump)))))
 
 ;;;###autoload
 (defun gnus-summary-bookmark-jump (bookmark)
@@ -12648,10 +12654,18 @@
 BOOKMARK is a bookmark name or a bookmark record."
   (let ((group    (bookmark-prop-get bookmark 'group))
         (article  (bookmark-prop-get bookmark 'article))
-        (id       (bookmark-prop-get bookmark 'message-id)))
+        (id       (bookmark-prop-get bookmark 'message-id))
+        (buf      (car (split-string (bookmark-prop-get bookmark 'location)))))
     (gnus-fetch-group group (list article))
     (gnus-summary-insert-cached-articles)
     (gnus-summary-goto-article id nil 'force)
+    ;; FIXME we have to wait article buffer is ready (only large buffer)
+    ;; Is there a better solution to know that?
+    ;; If we don't wait `bookmark-default-handler' will have no chance
+    ;; to set position. However there is no error, just wrong pos.
+    (sit-for 1)
+    (when (string= buf "Gnus-art")
+      (other-window 1))
     (bookmark-default-handler
      `(""
        (buffer . ,(current-buffer))



^ permalink raw reply	[flat|nested] 75+ messages in thread

* bug#5975: Bazaar branch where this is being fixed.
  2010-04-19 17:07             ` bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article buffer Thierry Volpiatto
  2010-05-17 14:14               ` Thierry Volpiatto
@ 2010-07-13 21:46               ` Karl Fogel
  2010-07-13 23:30               ` bug#5975: Base patch for bug #5975 (bookmarking from Gnus Article buffer) Glenn Morris
  2010-07-14 19:48               ` bug#5975: [PATCH] Allow using C-w (bookmark-yank-word) when bookmarking from a gnus article buffer Thierry Volpiatto
  3 siblings, 0 replies; 75+ messages in thread
From: Karl Fogel @ 2010-07-13 21:46 UTC (permalink / raw)
  To: 5975

Just for reference, the public reflection of the Bazaar branch where I
am fixing this is:

  https://code.launchpad.net/~kfogel/emacs/bug-5975

-Karl





^ permalink raw reply	[flat|nested] 75+ messages in thread

* bug#5975: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-04-19 17:07             ` bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article buffer Thierry Volpiatto
  2010-05-17 14:14               ` Thierry Volpiatto
  2010-07-13 21:46               ` bug#5975: Bazaar branch where this is being fixed Karl Fogel
@ 2010-07-13 23:30               ` Glenn Morris
  2010-07-14 19:48               ` bug#5975: [PATCH] Allow using C-w (bookmark-yank-word) when bookmarking from a gnus article buffer Thierry Volpiatto
  3 siblings, 0 replies; 75+ messages in thread
From: Glenn Morris @ 2010-07-13 23:30 UTC (permalink / raw)
  To: Karl Fogel; +Cc: emacs-devel, 5975, Thierry Volpiatto

Karl Fogel wrote:

> I'm not sure where to apply this.

Do you think it (for any value of "it") is safe for Emacs 23.3?
Is it very unlikely to introduce a regression with respect to Emacs 23.2?

If so, apply "it" only to the emacs-23 branch. It will get merged to
the trunk at some point.

If not, or if you aren't sure, or think it needs more testing, apply
"it" to the trunk.


Also, note that rather than saying "patch by X", you should make the
ChangeLog entry in X's name.





^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-13 21:31           ` Base patch for bug #5975 (bookmarking from Gnus Article buffer) Karl Fogel
                               ` (2 preceding siblings ...)
  2010-07-13 21:41             ` Karl Fogel
@ 2010-07-13 23:30             ` Glenn Morris
  2010-07-14  0:33               ` Karl Fogel
                                 ` (3 more replies)
  2010-07-14  5:03             ` Thierry Volpiatto
  4 siblings, 4 replies; 75+ messages in thread
From: Glenn Morris @ 2010-07-13 23:30 UTC (permalink / raw)
  To: Karl Fogel; +Cc: Thierry Volpiatto, 5975, emacs-devel

Karl Fogel wrote:

> I'm not sure where to apply this.

Do you think it (for any value of "it") is safe for Emacs 23.3?
Is it very unlikely to introduce a regression with respect to Emacs 23.2?

If so, apply "it" only to the emacs-23 branch. It will get merged to
the trunk at some point.

If not, or if you aren't sure, or think it needs more testing, apply
"it" to the trunk.


Also, note that rather than saying "patch by X", you should make the
ChangeLog entry in X's name.



^ permalink raw reply	[flat|nested] 75+ messages in thread

* bug#5975: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-13 23:30             ` Glenn Morris
  2010-07-14  0:33               ` Karl Fogel
@ 2010-07-14  0:33               ` Karl Fogel
  2010-07-14  8:55               ` Andreas Schwab
  2010-07-14  8:55               ` Andreas Schwab
  3 siblings, 0 replies; 75+ messages in thread
From: Karl Fogel @ 2010-07-14  0:33 UTC (permalink / raw)
  To: Glenn Morris; +Cc: emacs-devel, 5975, Thierry Volpiatto

Glenn Morris <rgm@gnu.org> writes:
>> I'm not sure where to apply this.
>
>Do you think it (for any value of "it") is safe for Emacs 23.3?
>Is it very unlikely to introduce a regression with respect to Emacs 23.2?
>
>If so, apply "it" only to the emacs-23 branch. It will get merged to
>the trunk at some point.
>
>If not, or if you aren't sure, or think it needs more testing, apply
>"it" to the trunk.

My goal is to get stuff into whatever line of Emacs will be a permanent
part of all future major release lines (not necessarily including minor
or "point" releases along an already-released line).  Usually trunk
serves this purpose, and my assumption had been that trunk is always a
safe place for a change (where as X.Y branch *might* be a safe place).

But I admit, I'm not really sure how we do this.  Is there policy
documentation somewhere on it?  I looked on the project pages and in the
tree and didn't see anything obvious.  (etc/CONTRIBUTE isn't quite it.)

>Also, note that rather than saying "patch by X", you should make the
>ChangeLog entry in X's name.

Thanks for the reminder!  I can fix the ChangeLogs to be that way.  (It
should be both of us, really; I've seen that style before.)

-Karl





^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-13 23:30             ` Glenn Morris
@ 2010-07-14  0:33               ` Karl Fogel
  2010-07-14  0:33               ` bug#5975: " Karl Fogel
                                 ` (2 subsequent siblings)
  3 siblings, 0 replies; 75+ messages in thread
From: Karl Fogel @ 2010-07-14  0:33 UTC (permalink / raw)
  To: Glenn Morris; +Cc: Thierry Volpiatto, 5975, emacs-devel

Glenn Morris <rgm@gnu.org> writes:
>> I'm not sure where to apply this.
>
>Do you think it (for any value of "it") is safe for Emacs 23.3?
>Is it very unlikely to introduce a regression with respect to Emacs 23.2?
>
>If so, apply "it" only to the emacs-23 branch. It will get merged to
>the trunk at some point.
>
>If not, or if you aren't sure, or think it needs more testing, apply
>"it" to the trunk.

My goal is to get stuff into whatever line of Emacs will be a permanent
part of all future major release lines (not necessarily including minor
or "point" releases along an already-released line).  Usually trunk
serves this purpose, and my assumption had been that trunk is always a
safe place for a change (where as X.Y branch *might* be a safe place).

But I admit, I'm not really sure how we do this.  Is there policy
documentation somewhere on it?  I looked on the project pages and in the
tree and didn't see anything obvious.  (etc/CONTRIBUTE isn't quite it.)

>Also, note that rather than saying "patch by X", you should make the
>ChangeLog entry in X's name.

Thanks for the reminder!  I can fix the ChangeLogs to be that way.  (It
should be both of us, really; I've seen that style before.)

-Karl



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-13 21:31           ` Base patch for bug #5975 (bookmarking from Gnus Article buffer) Karl Fogel
                               ` (3 preceding siblings ...)
  2010-07-13 23:30             ` Glenn Morris
@ 2010-07-14  5:03             ` Thierry Volpiatto
  2010-07-14 16:06               ` Karl Fogel
  4 siblings, 1 reply; 75+ messages in thread
From: Thierry Volpiatto @ 2010-07-14  5:03 UTC (permalink / raw)
  To: emacs-devel

Hi Karl,

Karl Fogel <kfogel@red-bean.com> writes:

> 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';
kept:  point-only
added: read-only

> I changed those to `no-file' and `no-context', to describe what they are
Yes nice these names are better.

> 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?
I sent the patch at the time that provide this feature, but it seem it
had been lost.
I have merged this feature in bookmark-extensions.el and it work fine
since long time now.
I will try to retrieve the patch for Emacs, if i don't retrieve it, it
would be good you commit the changes without the C-w feature and i will
create a patch that apply on top of this.(I really don't remember yet
what i changed to make that working, need to check my logs and
bookmark-extensions.el)

>   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. 
Can't tell you for gnus, i am not aware of the procedure you use in
Emacs for developping Emacs<==>Gnus.

>      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.

All is working fine here since long time now, C-w included. 

> 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  <kfogel@red-bean.com>
> +
> +	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  <Adrian.B.Robert@gmail.com>
>  
>  	* 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)))))
>  
>  \f
>  ;;; 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  <kfogel@red-bean.com>
> +
> +	* gnus/gnus-sum.el (bookmark-make-record-default): Adjust
> +	declaration, based on changes in bookmark.el.
> +
>  2010-06-22  Mark A. Hershberger  <mah@everybody.org>
>  
>  	* 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 @@
>  
>  \f
>  ;;; 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)
>
>
>

-- 
Thierry Volpiatto
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-13 21:41             ` Karl Fogel
@ 2010-07-14  8:29               ` Thierry Volpiatto
  2010-07-14  8:37                 ` Eli Zaretskii
  2010-07-14 15:32                 ` Karl Fogel
  0 siblings, 2 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-07-14  8:29 UTC (permalink / raw)
  To: emacs-devel

Karl Fogel <kfogel@red-bean.com> writes:

> Karl Fogel <kfogel@red-bean.com> writes:
>>Just for reference, the current (preparatory) patch is below.  I will
>>follow up separately with the gnus/* patch, so it's in the archives.
>
> Here's that patch (still needs the C-w fix referred to in the bug, though).

BTW, generally for all contributors patchs:

if patch WORK and is basically correct and is accepted of course, why
not applying patch as it is and modifying as Emacs developpers like in
one or more little other commits.

Actually:
- contributor send patch
- patch is accepted and applyied after modification by Emacs developers.

Instead:
- Apply contributor patch as it is (if more or less correct and working
of course)
- Make changes you like in other commits.

Like that complete track of what have been done is kept.
 
-- 
Thierry Volpiatto
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-14  8:29               ` Thierry Volpiatto
@ 2010-07-14  8:37                 ` Eli Zaretskii
  2010-07-14  9:06                   ` Thierry Volpiatto
  2010-07-14 15:32                 ` Karl Fogel
  1 sibling, 1 reply; 75+ messages in thread
From: Eli Zaretskii @ 2010-07-14  8:37 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: emacs-devel

> From: Thierry Volpiatto <thierry.volpiatto@gmail.com>
> Date: Wed, 14 Jul 2010 10:29:11 +0200
> 
> if patch WORK and is basically correct and is accepted of course, why
> not applying patch as it is and modifying as Emacs developpers like in
> one or more little other commits.

Because there's a pedagogical value for the contributors in having
them fix their code according to review comments.

In general, you learn better what you do yourself, rather than
watching others do it for you.



^ permalink raw reply	[flat|nested] 75+ messages in thread

* bug#5975: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-13 23:30             ` Glenn Morris
  2010-07-14  0:33               ` Karl Fogel
  2010-07-14  0:33               ` bug#5975: " Karl Fogel
@ 2010-07-14  8:55               ` Andreas Schwab
  2010-07-14  8:55               ` Andreas Schwab
  3 siblings, 0 replies; 75+ messages in thread
From: Andreas Schwab @ 2010-07-14  8:55 UTC (permalink / raw)
  To: Glenn Morris; +Cc: Karl Fogel, Thierry Volpiatto, 5975, emacs-devel

Glenn Morris <rgm@gnu.org> writes:

> Also, note that rather than saying "patch by X", you should make the
> ChangeLog entry in X's name.

And also the author of the commit.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."





^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-13 23:30             ` Glenn Morris
                                 ` (2 preceding siblings ...)
  2010-07-14  8:55               ` Andreas Schwab
@ 2010-07-14  8:55               ` Andreas Schwab
  2010-07-14 15:29                 ` bug#5975: " Karl Fogel
  2010-07-14 15:29                 ` Karl Fogel
  3 siblings, 2 replies; 75+ messages in thread
From: Andreas Schwab @ 2010-07-14  8:55 UTC (permalink / raw)
  To: Glenn Morris; +Cc: Karl Fogel, emacs-devel, 5975, Thierry Volpiatto

Glenn Morris <rgm@gnu.org> writes:

> Also, note that rather than saying "patch by X", you should make the
> ChangeLog entry in X's name.

And also the author of the commit.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-14  8:37                 ` Eli Zaretskii
@ 2010-07-14  9:06                   ` Thierry Volpiatto
  2010-07-14  9:42                     ` Eli Zaretskii
  0 siblings, 1 reply; 75+ messages in thread
From: Thierry Volpiatto @ 2010-07-14  9:06 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Thierry Volpiatto <thierry.volpiatto@gmail.com>
>> Date: Wed, 14 Jul 2010 10:29:11 +0200
>> 
>> if patch WORK and is basically correct and is accepted of course, why
>> not applying patch as it is and modifying as Emacs developpers like in
>> one or more little other commits.
>
> Because there's a pedagogical value for the contributors in having
> them fix their code according to review comments.

That's the case where contributor modify himself the code according to
diverse comments. I agree.

But i am speaking of the case where contributor's code is modified by Emacs
developers, in this case it is better (IMHO) to commit over the initial
patch, specially if Emacs developer misunderstand some part of code and
make wrong changes (That's not the case here Karl ;-)) it is easier to
find whats wrong instead of long discussion.
Generally contributor need to all rewrite, sometime long time further.
That is extra work for contributor and also Emacs developer. 
 
> In general, you learn better what you do yourself, rather than
> watching others do it for you.

Yes i agree completely.

-- 
Thierry Volpiatto
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-14  9:06                   ` Thierry Volpiatto
@ 2010-07-14  9:42                     ` Eli Zaretskii
  2010-07-14 10:07                       ` Thierry Volpiatto
  0 siblings, 1 reply; 75+ messages in thread
From: Eli Zaretskii @ 2010-07-14  9:42 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: emacs-devel

> From: Thierry Volpiatto <thierry.volpiatto@gmail.com>
> Cc: emacs-devel@gnu.org
> Date: Wed, 14 Jul 2010 11:06:13 +0200
> 
> But i am speaking of the case where contributor's code is modified by Emacs
> developers

Do you have examples?  I think this is done only rarely, and only when
the patch is very small.



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-14  9:42                     ` Eli Zaretskii
@ 2010-07-14 10:07                       ` Thierry Volpiatto
  2010-07-14 10:18                         ` Eli Zaretskii
  0 siblings, 1 reply; 75+ messages in thread
From: Thierry Volpiatto @ 2010-07-14 10:07 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Thierry Volpiatto <thierry.volpiatto@gmail.com>
>> Cc: emacs-devel@gnu.org
>> Date: Wed, 14 Jul 2010 11:06:13 +0200
>> 
>> But i am speaking of the case where contributor's code is modified by Emacs
>> developers
>
> Do you have examples?  I think this is done only rarely, and only when
> the patch is very small.

Most of my patchs including the last.
See all integration of bookmarking from Gnus/Woman/Man.
See also the M-g s command in bookmark.

It change nothing at the end but we can see in changelog all differents
steps easily, with quick reference to precedents patchs, that is great
help for emacs developers to eventually debug later if needed.


-- 
Thierry Volpiatto
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-14 10:07                       ` Thierry Volpiatto
@ 2010-07-14 10:18                         ` Eli Zaretskii
  2010-07-14 10:57                           ` Thierry Volpiatto
  0 siblings, 1 reply; 75+ messages in thread
From: Eli Zaretskii @ 2010-07-14 10:18 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: emacs-devel

> From: Thierry Volpiatto <thierry.volpiatto@gmail.com>
> Cc: emacs-devel@gnu.org
> Date: Wed, 14 Jul 2010 12:07:50 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> From: Thierry Volpiatto <thierry.volpiatto@gmail.com>
> >> Cc: emacs-devel@gnu.org
> >> Date: Wed, 14 Jul 2010 11:06:13 +0200
> >> 
> >> But i am speaking of the case where contributor's code is modified by Emacs
> >> developers
> >
> > Do you have examples?  I think this is done only rarely, and only when
> > the patch is very small.
> 
> Most of my patchs including the last.
> See all integration of bookmarking from Gnus/Woman/Man.
> See also the M-g s command in bookmark.

I don't know where to look in order "to see".  Can you show the patch
you submitted for Woman and `man' and point to a revno where its
modified version actually went in?



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-14 10:18                         ` Eli Zaretskii
@ 2010-07-14 10:57                           ` Thierry Volpiatto
  0 siblings, 0 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-07-14 10:57 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Thierry Volpiatto <thierry.volpiatto@gmail.com>
>> Cc: emacs-devel@gnu.org
>> Date: Wed, 14 Jul 2010 12:07:50 +0200
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> >> From: Thierry Volpiatto <thierry.volpiatto@gmail.com>
>> >> Cc: emacs-devel@gnu.org
>> >> Date: Wed, 14 Jul 2010 11:06:13 +0200
>> >> 
>> >> But i am speaking of the case where contributor's code is modified by Emacs
>> >> developers
>> >
>> > Do you have examples?  I think this is done only rarely, and only when
>> > the patch is very small.
>> 
>> Most of my patchs including the last.
>> See all integration of bookmarking from Gnus/Woman/Man.
>> See also the M-g s command in bookmark.
>
> I don't know where to look in order "to see".  Can you show the patch
> you submitted for Woman and `man' and point to a revno where its
> modified version actually went in?

I think i am wrong for these patchs as i can retrieve initial changes i
made, and then the Stefan's modifications.
So apparently things have been done like i said by stefan:
Commit change of contributor and then commit differents changes on top
of this patch: (Sorry i have not bzr, i search faster with hg)

,----
| changeset:   107919:c022e0b360db
| user:        Stefan Monnier <monnier@iro.umontreal.ca>
| date:        Wed Apr 14 11:07:53 2010 -0400
| summary:     Add a new field `location' to bookmarks for non-file bookmarks.
| 
| changeset:   107904:1cd2a7cffe3a
| user:        Stefan Monnier <monnier@iro.umontreal.ca>
| date:        Mon Apr 12 15:12:36 2010 -0400
| summary:     * bookmark.el (bookmark-insert-location): Handle a nil filename.
| 
| changeset:   107902:0cafb6c11cbc
| user:        Stefan Monnier <monnier@iro.umontreal.ca>
| date:        Mon Apr 12 12:09:47 2010 -0400
| summary:     Clean up last bookmark changes for man/woman/gnus-summary.
| 
| changeset:   107901:fd86e7cd598a
| user:        Thierry Volpiatto <thierry.volpiatto@gmail.com>
| date:        Mon Apr 12 11:17:29 2010 -0400
| summary:     Summary: Add bookmark support for man, woman and gnus-summary.
`----

,----
| changeset:   105941:1225b620227b
| user:        Stefan Monnier <monnier@iro.umontreal.ca>
| date:        Fri Nov 20 15:47:26 2009 +0000
| summary:     * bookmark.el (bookmark-search-delay, bookmark-search-prompt): New options.
`----

I remember changes have been done in one of my initial patchs but can't
remember which one is it.

-- 
Thierry Volpiatto
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 




^ permalink raw reply	[flat|nested] 75+ messages in thread

* bug#5975: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-14  8:55               ` Andreas Schwab
@ 2010-07-14 15:29                 ` Karl Fogel
  2010-07-14 15:29                 ` Karl Fogel
  1 sibling, 0 replies; 75+ messages in thread
From: Karl Fogel @ 2010-07-14 15:29 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Thierry Volpiatto, 5975, emacs-devel

Andreas Schwab <schwab@linux-m68k.org> writes:
>Glenn Morris <rgm@gnu.org> writes:
>> Also, note that rather than saying "patch by X", you should make the
>> ChangeLog entry in X's name.
>
>And also the author of the commit.

You mean with 'bzr commit --author' ?





^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-14  8:55               ` Andreas Schwab
  2010-07-14 15:29                 ` bug#5975: " Karl Fogel
@ 2010-07-14 15:29                 ` Karl Fogel
  1 sibling, 0 replies; 75+ messages in thread
From: Karl Fogel @ 2010-07-14 15:29 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: emacs-devel, 5975, Thierry Volpiatto

Andreas Schwab <schwab@linux-m68k.org> writes:
>Glenn Morris <rgm@gnu.org> writes:
>> Also, note that rather than saying "patch by X", you should make the
>> ChangeLog entry in X's name.
>
>And also the author of the commit.

You mean with 'bzr commit --author' ?



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-14  8:29               ` Thierry Volpiatto
  2010-07-14  8:37                 ` Eli Zaretskii
@ 2010-07-14 15:32                 ` Karl Fogel
  1 sibling, 0 replies; 75+ messages in thread
From: Karl Fogel @ 2010-07-14 15:32 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: emacs-devel

Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>Karl Fogel <kfogel@red-bean.com> writes:
>> Karl Fogel <kfogel@red-bean.com> writes:
>>>Just for reference, the current (preparatory) patch is below.  I will
>>>follow up separately with the gnus/* patch, so it's in the archives.
>>
>> Here's that patch (still needs the C-w fix referred to in the bug, though).
>
>BTW, generally for all contributors patchs:
>
>if patch WORK and is basically correct and is accepted of course, why
>not applying patch as it is and modifying as Emacs developpers like in
>one or more little other commits.

Yes.  The only reason I delayed was because I wasn't sure about making
those non-trivial modifications to Gnus.  However, no one has said it's
a problem, and the files are in our tree -- I guess I'll commit the
next patches, and then we'll fix the C-w problem afterwards.

-Karl



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-14  5:03             ` Thierry Volpiatto
@ 2010-07-14 16:06               ` Karl Fogel
  2010-07-14 16:55                 ` Karl Fogel
  0 siblings, 1 reply; 75+ messages in thread
From: Karl Fogel @ 2010-07-14 16:06 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: emacs-devel

Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>> patch.  You used (or kept) parameter names `point-only' and
>> `read-only';
>
>kept:  point-only
>added: read-only

Thanks (I was just writing tersely in my email).

>> I changed those to `no-file' and `no-context', to describe what they are
>
>Yes nice these names are better.

Glad you agree!

>I will try to retrieve the patch for Emacs, if i don't retrieve it, it
>would be good you commit the changes without the C-w feature and i will
>create a patch that apply on top of this.(I really don't remember yet
>what i changed to make that working, need to check my logs and
>bookmark-extensions.el)

I have committed the changes, including the changes to Gnus (see Bzr
revs below).  Please post the C-w patch and I will apply that too.

Thanks!

-Karl

------------------------------------------------------------
revno: 100820
revision-id: kfogel@red-bean.com-20100714160253-bbfda9e1g7myj1o8
parent: kfogel@red-bean.com-20100714155754-n3k71gay91l4vetv
committer: Karl Fogel <kfogel@red-bean.com>
branch nick: trunk
timestamp: Wed 2010-07-14 12:02:53 -0400
message:
  Allow bookmarks to be set from Gnus Article buffers (Bug #5975).
  Patch applied (with minor tweaks) by Karl Fogel.  Note this leaves
  C-w still not working correctly from Article buffers; Thierry's
  patch to fix that will be applied after this.
  
  * lisp/gnus/gnus-art.el (bookmark-make-record-function): New local variable.
  
  * lisp/gnus/gnus-sum.el (gnus-summary-bookmark-make-record): Allow setting
    from article buffer.
    (gnus-summary-bookmark-jump): Maybe jump to article buffer.
------------------------------------------------------------
revno: 100819
revision-id: kfogel@red-bean.com-20100714155754-n3k71gay91l4vetv
parent: kfogel@red-bean.com-20100714155426-vnlagemntoe30nu6
committer: Karl Fogel <kfogel@red-bean.com>
branch nick: trunk
timestamp: Wed 2010-07-14 11:57:54 -0400
message:
  Preparation for setting bookmarks in Gnus article buffers (Bug#5975).
  
  * lisp/bookmark.el (bookmark-make-record-default): Allow unneeded
    information to be omitted from the record.
  
  Adjust declarations and calls:
  
  * lisp/info.el (bookmark-make-record-default): Adjust declaration.
    (Info-bookmark-make-record): Adjust call.
  
  * lisp/woman.el (bookmark-make-record-default): Adjust declaration.
    (woman-bookmark-make-record): Adjust call.
  
  * lisp/man.el (bookmark-make-record-default): Adjust declaration.
    (Man-bookmark-make-record): Adjust call.
  
  * lisp/image-mode.el (bookmark-make-record-default): Adjust declaration.
  
  * lisp/doc-view.el (bookmark-make-record-default): Adjust declaration.
  
  * lisp/gnus/gnus-sum.el (bookmark-make-record-default): Adjust declaration.
------------------------------------------------------------



^ permalink raw reply	[flat|nested] 75+ messages in thread

* bug#5975: [PATCH] Allow using C-w (bookmark-yank-word) when bookmarking from a gnus article buffer.
       [not found] <87630icytd.fsf@tux.homenetwork>
@ 2010-07-14 16:44 ` Karl Fogel
  0 siblings, 0 replies; 75+ messages in thread
From: Karl Fogel @ 2010-07-14 16:44 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: 5975-done

I've committed the C-w patch to trunk.  I examined it and tested it, and
it seems to work fine here.  Please check it over to make sure!

Below are all the relevant bzr revisions, including the precedents.

Best,
-Karl

------------------------------------------------------------
revno: 100821
revision-id: kfogel@red-bean.com-20100714164140-v2fdq4b6r45zpxev
parent: kfogel@red-bean.com-20100714160253-bbfda9e1g7myj1o8
author: Thierry Volpiatto <thierry.volpiatto@gmail.com>
committer: Karl Fogel <kfogel@red-bean.com>
branch nick: trunk
timestamp: Wed 2010-07-14 12:41:40 -0400
message:
  Allow C-w when setting a bookmark in a Gnus Article buffer (Bug#5975).
  
  * lisp/bookmark.el (bookmark-set): Don't set `bookmark-yank-point' and
    `bookmark-current-buffer' if they have been already set in another
    buffer (e.g gnus-art).
  
  * lisp/gnus/gnus-sum.el (gnus-summary-bookmark-make-record): Set
    `bookmark-yank-point' and `bookmark-current-buffer' to allow C-w. 
------------------------------------------------------------
revno: 100820
revision-id: kfogel@red-bean.com-20100714160253-bbfda9e1g7myj1o8
parent: kfogel@red-bean.com-20100714155754-n3k71gay91l4vetv
committer: Karl Fogel <kfogel@red-bean.com>
branch nick: trunk
timestamp: Wed 2010-07-14 12:02:53 -0400
message:
  Allow bookmarks to be set from Gnus Article buffers (Bug #5975).
  Patch applied (with minor tweaks) by Karl Fogel.  Note this leaves
  C-w still not working correctly from Article buffers; Thierry's
  patch to fix that will be applied after this.
  
  * lisp/gnus/gnus-art.el (bookmark-make-record-function): New local variable.
  
  * lisp/gnus/gnus-sum.el (gnus-summary-bookmark-make-record): Allow setting
    from article buffer.
    (gnus-summary-bookmark-jump): Maybe jump to article buffer.
------------------------------------------------------------
revno: 100819
revision-id: kfogel@red-bean.com-20100714155754-n3k71gay91l4vetv
parent: kfogel@red-bean.com-20100714155426-vnlagemntoe30nu6
committer: Karl Fogel <kfogel@red-bean.com>
branch nick: trunk
timestamp: Wed 2010-07-14 11:57:54 -0400
message:
  Preparation for setting bookmarks in Gnus article buffers (Bug#5975).
  
  * lisp/bookmark.el (bookmark-make-record-default): Allow unneeded
    information to be omitted from the record.
  
  Adjust declarations and calls:
  
  * lisp/info.el (bookmark-make-record-default): Adjust declaration.
    (Info-bookmark-make-record): Adjust call.
  
  * lisp/woman.el (bookmark-make-record-default): Adjust declaration.
    (woman-bookmark-make-record): Adjust call.
  
  * lisp/man.el (bookmark-make-record-default): Adjust declaration.
    (Man-bookmark-make-record): Adjust call.
  
  * lisp/image-mode.el (bookmark-make-record-default): Adjust declaration.
  
  * lisp/doc-view.el (bookmark-make-record-default): Adjust declaration.
  
  * lisp/gnus/gnus-sum.el (bookmark-make-record-default): Adjust declaration.





^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: Base patch for bug #5975 (bookmarking from Gnus Article buffer).
  2010-07-14 16:06               ` Karl Fogel
@ 2010-07-14 16:55                 ` Karl Fogel
  0 siblings, 0 replies; 75+ messages in thread
From: Karl Fogel @ 2010-07-14 16:55 UTC (permalink / raw)
  To: emacs-devel

Karl Fogel <kfogel@red-bean.com> writes:
>I have committed the changes, including the changes to Gnus (see Bzr
>revs below).  Please post the C-w patch and I will apply that too.

Just so people know: this happened.  All relevant bzr revisions below.
Thanks, Thierry, for making this feature work.

-Karl

------------------------------------------------------------
revno: 100821
revision-id: kfogel@red-bean.com-20100714164140-v2fdq4b6r45zpxev
parent: kfogel@red-bean.com-20100714160253-bbfda9e1g7myj1o8
author: Thierry Volpiatto <thierry.volpiatto@gmail.com>
committer: Karl Fogel <kfogel@red-bean.com>
branch nick: trunk
timestamp: Wed 2010-07-14 12:41:40 -0400
message:
  Allow C-w when setting a bookmark in a Gnus Article buffer (Bug#5975).
  
  * lisp/bookmark.el (bookmark-set): Don't set `bookmark-yank-point' and
    `bookmark-current-buffer' if they have been already set in another
    buffer (e.g gnus-art).
  
  * lisp/gnus/gnus-sum.el (gnus-summary-bookmark-make-record): Set
    `bookmark-yank-point' and `bookmark-current-buffer' to allow C-w. 
------------------------------------------------------------
revno: 100820
revision-id: kfogel@red-bean.com-20100714160253-bbfda9e1g7myj1o8
parent: kfogel@red-bean.com-20100714155754-n3k71gay91l4vetv
committer: Karl Fogel <kfogel@red-bean.com>
branch nick: trunk
timestamp: Wed 2010-07-14 12:02:53 -0400
message:
  Allow bookmarks to be set from Gnus Article buffers (Bug #5975).
  Patch applied (with minor tweaks) by Karl Fogel.  Note this leaves
  C-w still not working correctly from Article buffers; Thierry's
  patch to fix that will be applied after this.
  
  * lisp/gnus/gnus-art.el (bookmark-make-record-function): New local variable.
  
  * lisp/gnus/gnus-sum.el (gnus-summary-bookmark-make-record): Allow setting
    from article buffer.
    (gnus-summary-bookmark-jump): Maybe jump to article buffer.
------------------------------------------------------------
revno: 100819
revision-id: kfogel@red-bean.com-20100714155754-n3k71gay91l4vetv
parent: kfogel@red-bean.com-20100714155426-vnlagemntoe30nu6
committer: Karl Fogel <kfogel@red-bean.com>
branch nick: trunk
timestamp: Wed 2010-07-14 11:57:54 -0400
message:
  Preparation for setting bookmarks in Gnus article buffers (Bug#5975).
  
  * lisp/bookmark.el (bookmark-make-record-default): Allow unneeded
    information to be omitted from the record.
  
  Adjust declarations and calls:
  
  * lisp/info.el (bookmark-make-record-default): Adjust declaration.
    (Info-bookmark-make-record): Adjust call.
  
  * lisp/woman.el (bookmark-make-record-default): Adjust declaration.
    (woman-bookmark-make-record): Adjust call.
  
  * lisp/man.el (bookmark-make-record-default): Adjust declaration.
    (Man-bookmark-make-record): Adjust call.
  
  * lisp/image-mode.el (bookmark-make-record-default): Adjust declaration.
  
  * lisp/doc-view.el (bookmark-make-record-default): Adjust declaration.
  
  * lisp/gnus/gnus-sum.el (bookmark-make-record-default): Adjust declaration.
------------------------------------------------------------



^ permalink raw reply	[flat|nested] 75+ messages in thread

* bug#5975: [PATCH] Allow using C-w (bookmark-yank-word) when bookmarking from a gnus article buffer.
  2010-04-19 17:07             ` bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article buffer Thierry Volpiatto
                                 ` (2 preceding siblings ...)
  2010-07-13 23:30               ` bug#5975: Base patch for bug #5975 (bookmarking from Gnus Article buffer) Glenn Morris
@ 2010-07-14 19:48               ` Thierry Volpiatto
  3 siblings, 0 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-07-14 19:48 UTC (permalink / raw)
  To: bug-gnu-emacs

Hi Karl,
Karl Fogel <kfogel@red-bean.com> writes:

> I've committed the C-w patch to trunk.  I examined it and tested it, and
> it seems to work fine here.  Please check it over to make sure!
Thanks for your work for commiting patch, i am very happy you separate
patchs (e.g without C-w, with C-w etc..), that's very clear for further look.
Just tested now and work fine.:-)

-- 
Thierry Volpiatto
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 






^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-01 13:18                 ` more on anything.el inclusion Ted Zlatanov
  2010-07-01 14:15                   ` Thierry Volpiatto
@ 2010-07-17 13:37                   ` rubikitch
  2010-07-17 15:16                     ` Thierry Volpiatto
  1 sibling, 1 reply; 75+ messages in thread
From: rubikitch @ 2010-07-17 13:37 UTC (permalink / raw)
  To: emacs-devel

From: Ted Zlatanov <tzz@lifelogs.com>
Subject: Re: more on anything.el inclusion
Date: Thu, 01 Jul 2010 08:18:03 -0500

Hi,

I'm the developer of anything.el.

> TV> On the user side, if you use anything-config.el, there is already build
> TV> in sources ready for use, so you can use provided functions like any
> TV> other emacs one (e.g M-x anything-xfonts).
> 
> OK.  Thanks for explaining.  So from the user's viewpoint, it should be
> enough to autoload all the front-end anything-* functions (from
> anything.el ideally, so users don't have to know about
> anything-config.el as you had it in your autoload example).  Can you
> make the necessary changes?  Or will that require major work?

We'll add autoload cookies to them.

> Is there a list of the standard front-end functions (a subset of the
> autoloads below) that should always be exposed (through keyboard
> mappings, possibly in a menu) to Emacs users?  The xfonts and file
> selection ones should be in that list for sure.

The preconfigured anything commands are too many to include into menus
and some commands overlap other commands.
For example, M-x anything-for-files handles buffers (M-x anything-buffers+),
recentf (M-x anything-recentf), bookmarks (M-x anything-bookmarks) and locate (M-x anything-locate).
We offer single source (anything-c-source-*) and multiple sources commands so that
users can select preferred commands.

Instead of binding all anything commands to menu and keymap,
I created a navigator command for anything-* commands.
M-x anything-execute-anything-command lists all anything commands in anything-config.el.
Users can search and select appropriate command.
Then users can bind it to keys.

I think small amount of commands should be bound to menu and keymap.


Cheers,
--
rubikitch



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-17 13:37                   ` rubikitch
@ 2010-07-17 15:16                     ` Thierry Volpiatto
  0 siblings, 0 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-07-17 15:16 UTC (permalink / raw)
  To: emacs-devel

rubikitch@ruby-lang.org writes:

> From: Ted Zlatanov <tzz@lifelogs.com>
> Subject: Re: more on anything.el inclusion
> Date: Thu, 01 Jul 2010 08:18:03 -0500
>
> Hi,
>
> I'm the developer of anything.el.
>
>> TV> On the user side, if you use anything-config.el, there is already build
>> TV> in sources ready for use, so you can use provided functions like any
>> TV> other emacs one (e.g M-x anything-xfonts).
>> 
>> OK.  Thanks for explaining.  So from the user's viewpoint, it should be
>> enough to autoload all the front-end anything-* functions (from
>> anything.el ideally, so users don't have to know about
>> anything-config.el as you had it in your autoload example).  Can you
>> make the necessary changes?  Or will that require major work?
>
> We'll add autoload cookies to them.
>
>> Is there a list of the standard front-end functions (a subset of the
>> autoloads below) that should always be exposed (through keyboard
>> mappings, possibly in a menu) to Emacs users?  The xfonts and file
>> selection ones should be in that list for sure.
>
> The preconfigured anything commands are too many to include into menus
> and some commands overlap other commands.
> For example, M-x anything-for-files handles buffers (M-x anything-buffers+),
> recentf (M-x anything-recentf), bookmarks (M-x anything-bookmarks) and locate (M-x anything-locate).
> We offer single source (anything-c-source-*) and multiple sources commands so that
> users can select preferred commands.
>
> Instead of binding all anything commands to menu and keymap,
> I created a navigator command for anything-* commands.
> M-x anything-execute-anything-command lists all anything commands in anything-config.el.
> Users can search and select appropriate command.
> Then users can bind it to keys.
>
> I think small amount of commands should be bound to menu and keymap.

It is already done, with a anything-command-map and a menu
(anything-config.el).
The prefix command is for the moment "<f5> a" for all anything commands.
The list or commands in menu and/or in anything-command-map should be
discussed, the prefix "f5 a" also.

>
> Cheers,
> --
> rubikitch
>
>

-- 
Thierry Volpiatto
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-07 16:47                 ` Ted Zlatanov
@ 2010-07-23 15:35                   ` Stefan Monnier
  2010-07-23 21:49                     ` rubikitch
  0 siblings, 1 reply; 75+ messages in thread
From: Stefan Monnier @ 2010-07-23 15:35 UTC (permalink / raw)
  To: Ted Zlatanov; +Cc: emacs-devel

SM> I haven't delved far enough to give much further details.  I think it
SM> would be good to try and decouple some of those aspects, especially
SM> since I think that some of them could be included in
SM> completion-list-mode (i.e. in the default UI).

> Does this mean you'd rather not include anything.el in Emacs?

No.


        Stefan



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-23 15:35                   ` Stefan Monnier
@ 2010-07-23 21:49                     ` rubikitch
  2010-08-12 23:02                       ` Ted Zlatanov
  0 siblings, 1 reply; 75+ messages in thread
From: rubikitch @ 2010-07-23 21:49 UTC (permalink / raw)
  To: emacs-devel

From: Stefan Monnier <monnier@IRO.UMontreal.CA>
Subject: Re: more on anything.el inclusion
Date: Fri, 23 Jul 2010 17:35:42 +0200

> SM> I haven't delved far enough to give much further details.  I think it
> SM> would be good to try and decouple some of those aspects, especially
> SM> since I think that some of them could be included in
> SM> completion-list-mode (i.e. in the default UI).
> 
> > Does this mean you'd rather not include anything.el in Emacs?
> 
> No.

Thanks. I'm working on anything.el to be included in Emacs.
I filled most of long lines within 80 columns.

Cheers,
--
rubikitch



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-07-23 21:49                     ` rubikitch
@ 2010-08-12 23:02                       ` Ted Zlatanov
  2010-08-24 19:24                         ` rubikitch
  0 siblings, 1 reply; 75+ messages in thread
From: Ted Zlatanov @ 2010-08-12 23:02 UTC (permalink / raw)
  To: emacs-devel; +Cc: rubikitch, thierry.volpiatto

On Sat, 24 Jul 2010 06:49:06 +0900 (JST) rubikitch@ruby-lang.org wrote: 

r> Thanks. I'm working on anything.el to be included in Emacs.
r> I filled most of long lines within 80 columns.

Any chance this will be available for review soon?

Thanks
Ted




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-08-12 23:02                       ` Ted Zlatanov
@ 2010-08-24 19:24                         ` rubikitch
  2010-08-25 13:51                           ` Juri Linkov
  2010-09-11 11:59                           ` Thierry Volpiatto
  0 siblings, 2 replies; 75+ messages in thread
From: rubikitch @ 2010-08-24 19:24 UTC (permalink / raw)
  To: emacs-devel

From: Ted Zlatanov <tzz@lifelogs.com>
Subject: Re: more on anything.el inclusion
Date: Thu, 12 Aug 2010 18:02:25 -0500

> On Sat, 24 Jul 2010 06:49:06 +0900 (JST) rubikitch@ruby-lang.org wrote: 
> 
> r> Thanks. I'm working on anything.el to be included in Emacs.
> r> I filled most of long lines within 80 columns.
> 
> Any chance this will be available for review soon?

The public repository is available: ssh://repo.or.cz/srv/git/anything-config

--
rubikitch



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-08-24 19:24                         ` rubikitch
@ 2010-08-25 13:51                           ` Juri Linkov
  2010-09-11 12:02                             ` Thierry Volpiatto
  2010-09-11 11:59                           ` Thierry Volpiatto
  1 sibling, 1 reply; 75+ messages in thread
From: Juri Linkov @ 2010-08-25 13:51 UTC (permalink / raw)
  To: rubikitch; +Cc: emacs-devel

>> Any chance this will be available for review soon?
>
> The public repository is available: ssh://repo.or.cz/srv/git/anything-config

Since elpa.gnu.org is accessible now, there's a good chance
to add anything to elpa.gnu.org.



^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-08-24 19:24                         ` rubikitch
  2010-08-25 13:51                           ` Juri Linkov
@ 2010-09-11 11:59                           ` Thierry Volpiatto
  1 sibling, 0 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-09-11 11:59 UTC (permalink / raw)
  To: emacs-devel

Hi Ted, and sorry for late reply.

rubikitch@ruby-lang.org writes:

> From: Ted Zlatanov <tzz@lifelogs.com>
> Subject: Re: more on anything.el inclusion
> Date: Thu, 12 Aug 2010 18:02:25 -0500
>
>> On Sat, 24 Jul 2010 06:49:06 +0900 (JST) rubikitch@ruby-lang.org wrote: 
>> 
>> r> Thanks. I'm working on anything.el to be included in Emacs.
>> r> I filled most of long lines within 80 columns.
>> 
>> Any chance this will be available for review soon?
>
> The public repository is available: ssh://repo.or.cz/srv/git/anything-config

As you guess i think, this access to anything repo is not public, the
public access to anything is:

URL             git://repo.or.cz/anything-config.git
                http://repo.or.cz/r/anything-config.git

Use the git url to clone and the http one to browse.

-- 
Thierry Volpiatto
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 




^ permalink raw reply	[flat|nested] 75+ messages in thread

* Re: more on anything.el inclusion
  2010-08-25 13:51                           ` Juri Linkov
@ 2010-09-11 12:02                             ` Thierry Volpiatto
  0 siblings, 0 replies; 75+ messages in thread
From: Thierry Volpiatto @ 2010-09-11 12:02 UTC (permalink / raw)
  To: emacs-devel

Hi Juri,
Juri Linkov <juri@jurta.org> writes:

>>> Any chance this will be available for review soon?
>>
>> The public repository is available: ssh://repo.or.cz/srv/git/anything-config
>
> Since elpa.gnu.org is accessible now, there's a good chance
> to add anything to elpa.gnu.org.

Yes of course, but having anything in emacs would be better.

-- 
Thierry Volpiatto
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 




^ permalink raw reply	[flat|nested] 75+ messages in thread

end of thread, other threads:[~2010-09-11 12:02 UTC | newest]

Thread overview: 75+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-29 12:43 No answer on bugs Thierry Volpiatto
2010-06-29 13:12 ` Lennart Borgman
2010-06-29 13:54 ` Karl Fogel
2010-06-29 14:14   ` Thierry Volpiatto
2010-06-29 19:26   ` Tassilo Horn
2010-06-29 19:57     ` Thierry Volpiatto
2010-06-29 20:10       ` Tassilo Horn
2010-06-29 20:16         ` Thierry Volpiatto
2010-07-13 21:31           ` Base patch for bug #5975 (bookmarking from Gnus Article buffer) Karl Fogel
2010-04-19 17:07             ` bug#5975: 24.0.50; [PATCH]Feature request: bookmarking from gnus article buffer Thierry Volpiatto
2010-05-17 14:14               ` Thierry Volpiatto
2010-07-13 21:46               ` bug#5975: Bazaar branch where this is being fixed Karl Fogel
2010-07-13 23:30               ` bug#5975: Base patch for bug #5975 (bookmarking from Gnus Article buffer) Glenn Morris
2010-07-14 19:48               ` bug#5975: [PATCH] Allow using C-w (bookmark-yank-word) when bookmarking from a gnus article buffer Thierry Volpiatto
2010-07-13 21:41             ` bug#5975: Base patch for bug #5975 (bookmarking from Gnus Article buffer) Karl Fogel
2010-07-13 21:41             ` Karl Fogel
2010-07-14  8:29               ` Thierry Volpiatto
2010-07-14  8:37                 ` Eli Zaretskii
2010-07-14  9:06                   ` Thierry Volpiatto
2010-07-14  9:42                     ` Eli Zaretskii
2010-07-14 10:07                       ` Thierry Volpiatto
2010-07-14 10:18                         ` Eli Zaretskii
2010-07-14 10:57                           ` Thierry Volpiatto
2010-07-14 15:32                 ` Karl Fogel
2010-07-13 23:30             ` Glenn Morris
2010-07-14  0:33               ` Karl Fogel
2010-07-14  0:33               ` bug#5975: " Karl Fogel
2010-07-14  8:55               ` Andreas Schwab
2010-07-14  8:55               ` Andreas Schwab
2010-07-14 15:29                 ` bug#5975: " Karl Fogel
2010-07-14 15:29                 ` Karl Fogel
2010-07-14  5:03             ` Thierry Volpiatto
2010-07-14 16:06               ` Karl Fogel
2010-07-14 16:55                 ` Karl Fogel
2010-07-13 21:31           ` bug#5975: " Karl Fogel
2010-06-30 18:16 ` No answer on bugs Ted Zlatanov
2010-06-30 18:36   ` Thierry Volpiatto
2010-06-30 19:23     ` more on anything.el inclusion (was: No answer on bugs) Ted Zlatanov
2010-06-30 20:10       ` more on anything.el inclusion Thierry Volpiatto
2010-06-30 22:59         ` Dan Nicolaescu
2010-07-01  5:53           ` Thierry Volpiatto
2010-07-01  6:48             ` Dan Nicolaescu
2010-07-01  7:50               ` Thierry Volpiatto
2010-07-01  8:36                 ` Dan Nicolaescu
2010-07-01  8:53                   ` Thierry Volpiatto
2010-07-01 16:02                     ` Dan Nicolaescu
2010-07-01 16:33                       ` Harald Hanche-Olsen
2010-07-01 16:43                         ` Ted Zlatanov
2010-07-01 17:18                       ` Thierry Volpiatto
2010-07-01 17:43                         ` Dan Nicolaescu
2010-07-01 18:14                           ` Thierry Volpiatto
2010-07-01 18:48                           ` Ted Zlatanov
2010-07-01 18:57                           ` Wojciech Meyer
2010-07-01 17:36                       ` Harald Hanche-Olsen
2010-07-01 15:20                   ` Anything Use Case (was: more on anything.el inclusion) Memnon Anon
2010-07-01 13:18                 ` more on anything.el inclusion Ted Zlatanov
2010-07-01 14:15                   ` Thierry Volpiatto
2010-07-01 14:48                     ` Lennart Borgman
2010-07-01 15:55                     ` Ted Zlatanov
2010-07-01 16:43                       ` Lennart Borgman
2010-07-01 18:55                         ` Ted Zlatanov
2010-07-01 22:08                           ` Lennart Borgman
2010-07-09 14:46                       ` Thierry Volpiatto
2010-07-17 13:37                   ` rubikitch
2010-07-17 15:16                     ` Thierry Volpiatto
2010-07-04 22:02               ` Stefan Monnier
2010-07-07 16:47                 ` Ted Zlatanov
2010-07-23 15:35                   ` Stefan Monnier
2010-07-23 21:49                     ` rubikitch
2010-08-12 23:02                       ` Ted Zlatanov
2010-08-24 19:24                         ` rubikitch
2010-08-25 13:51                           ` Juri Linkov
2010-09-11 12:02                             ` Thierry Volpiatto
2010-09-11 11:59                           ` Thierry Volpiatto
     [not found] <87630icytd.fsf@tux.homenetwork>
2010-07-14 16:44 ` bug#5975: [PATCH] Allow using C-w (bookmark-yank-word) when bookmarking from a gnus article buffer Karl Fogel

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.