* [REQUEST] orgtbl-ctrl-c-ctrl-c-hook @ 2010-11-17 8:19 Seweryn Kokot 2010-11-17 8:28 ` Carsten Dominik 0 siblings, 1 reply; 11+ messages in thread From: Seweryn Kokot @ 2010-11-17 8:19 UTC (permalink / raw) To: emacs-orgmode Hi, It need to attach a function to C-c C-c keybinding when exporting a table in orgtbl-mode so would be nice to have orgtbl-ctrl-c-ctrl-c-hook similar to org-ctrl-c-ctrl-c-hook. Or are there any other ways to do it? Thanks, Seweryn ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REQUEST] orgtbl-ctrl-c-ctrl-c-hook 2010-11-17 8:19 [REQUEST] orgtbl-ctrl-c-ctrl-c-hook Seweryn Kokot @ 2010-11-17 8:28 ` Carsten Dominik 2010-11-17 9:10 ` Seweryn Kokot 0 siblings, 1 reply; 11+ messages in thread From: Carsten Dominik @ 2010-11-17 8:28 UTC (permalink / raw) To: Seweryn Kokot; +Cc: emacs-orgmode On Nov 17, 2010, at 9:19 AM, Seweryn Kokot wrote: > Hi, > > It need to attach a function to C-c C-c keybinding when exporting a > table in > orgtbl-mode so would be nice to have orgtbl-ctrl-c-ctrl-c-hook > similar to > org-ctrl-c-ctrl-c-hook. This is a reasonable request - please make me a patch. - Carsten > > Or are there any other ways to do it? > > Thanks, > Seweryn ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REQUEST] orgtbl-ctrl-c-ctrl-c-hook 2010-11-17 8:28 ` Carsten Dominik @ 2010-11-17 9:10 ` Seweryn Kokot 2010-11-17 9:30 ` Carsten Dominik 0 siblings, 1 reply; 11+ messages in thread From: Seweryn Kokot @ 2010-11-17 9:10 UTC (permalink / raw) To: emacs-orgmode Carsten Dominik <carsten.dominik <at> gmail.com> writes: > > > On Nov 17, 2010, at 9:19 AM, Seweryn Kokot wrote: > > > Hi, > > > > It need to attach a function to C-c C-c keybinding when exporting a > > table in > > orgtbl-mode so would be nice to have orgtbl-ctrl-c-ctrl-c-hook > > similar to > > org-ctrl-c-ctrl-c-hook. > > This is a reasonable request - please make me a patch. See the following patch. It seems to work in my case, but please correct it if necessary because I don't know if (run-hook-with-args-until-success 'orgtbl- ctrl-c-ctrl-c-hook) line is in the right place. Regards, Seweryn --- h:/org-mode/lisp/org-table.el 2010-11-16 11:17:36.000000000 +0100 +++ h:/org-mode/lisp/org-table-new.el 2010-11-17 10:07:34.000000000 +0100 @@ -48,6 +48,15 @@ (defvar org-export-html-table-tag) ; defined in org-exp.el (defvar constants-unit-system) +(defvar orgtbl-ctrl-c-ctrl-c-hook nil + "Hook for functions attaching themselves to `C-c C-c'. +This can be used to add additional functionality to the C-c C-c key which +executes context-dependent commands. +Each function will be called with no arguments. The function must check +if the context is appropriate for it to act. If yes, it should do its +thing and then return a non-nil value. If the context is wrong, +just do nothing and return nil.") + (defcustom orgtbl-optimized (eq org-enable-table-editor 'optimized) "Non-nil means use the optimized table editor version for `orgtbl-mode'. In the optimized version, the table editor takes over all simple keys that @@ -3729,7 +3738,8 @@ (call-interactively 'org-table-recalculate) (org-table-maybe-recalculate-line)) (call-interactively 'org-table-align) - (orgtbl-send-table 'maybe)) + (orgtbl-send-table 'maybe) + (run-hook-with-args-until-success 'orgtbl-ctrl-c-ctrl-c-hook)) ((eq action 'recalc) (save-excursion (beginning-of-line 1) Diff finished. Wed Nov 17 10:08:00 2010 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Re: [REQUEST] orgtbl-ctrl-c-ctrl-c-hook 2010-11-17 9:10 ` Seweryn Kokot @ 2010-11-17 9:30 ` Carsten Dominik 2010-11-17 9:58 ` Seweryn Kokot 0 siblings, 1 reply; 11+ messages in thread From: Carsten Dominik @ 2010-11-17 9:30 UTC (permalink / raw) To: Seweryn Kokot; +Cc: emacs-orgmode Hi Seweryn, On Nov 17, 2010, at 10:10 AM, Seweryn Kokot wrote: > Carsten Dominik <carsten.dominik <at> gmail.com> writes: > >> >> >> On Nov 17, 2010, at 9:19 AM, Seweryn Kokot wrote: >> >>> Hi, >>> >>> It need to attach a function to C-c C-c keybinding when exporting a >>> table in >>> orgtbl-mode so would be nice to have orgtbl-ctrl-c-ctrl-c-hook >>> similar to >>> org-ctrl-c-ctrl-c-hook. >> >> This is a reasonable request - please make me a patch. > > See the following patch. It seems to work in my case, but please > correct it if > necessary because I don't know if (run-hook-with-args-until-success > 'orgtbl- > ctrl-c-ctrl-c-hook) line is in the right place. > > Regards, > Seweryn > > --- h:/org-mode/lisp/org-table.el 2010-11-16 11:17:36.000000000 +0100 > +++ h:/org-mode/lisp/org-table-new.el 2010-11-17 10:07:34.000000000 > +0100 > @@ -48,6 +48,15 @@ > (defvar org-export-html-table-tag) ; defined in org-exp.el > (defvar constants-unit-system) > > +(defvar orgtbl-ctrl-c-ctrl-c-hook nil > + "Hook for functions attaching themselves to `C-c C-c'. > +This can be used to add additional functionality to the C-c C-c key > which > +executes context-dependent commands. > +Each function will be called with no arguments. The function must > check > +if the context is appropriate for it to act. If yes, it should do > its > +thing and then return a non-nil value. If the context is wrong, > +just do nothing and return nil.") > + > (defcustom orgtbl-optimized (eq org-enable-table-editor 'optimized) > "Non-nil means use the optimized table editor version for `orgtbl- > mode'. > In the optimized version, the table editor takes over all simple > keys that > @@ -3729,7 +3738,8 @@ > (call-interactively 'org-table-recalculate) > (org-table-maybe-recalculate-line)) > (call-interactively 'org-table-align) > - (orgtbl-send-table 'maybe)) > + (orgtbl-send-table 'maybe) > + (run-hook-with-args-until-success 'orgtbl-ctrl-c-ctrl-c-hook)) > ((eq action 'recalc) > (save-excursion > (beginning-of-line 1) I am a bit confused by this patch. You do call the hook after C-c C-c has done its thing. Which is OK, but this is not what the documentation in your hook variable says. That documentation seems to have been copied from the normal ctrl-c-ctrl-c hook, and these hooks are used in a different way: They establish *alternative* functionality to the normal C-c C-c actions. So if any of the hook functions returns a non-nil value, the normal C-c C-c functionality will *not* be executed. So what are your true intentions, and can you make code and documentation macht up? Thanks - Carsten > > , and finished. Wed Nov 17 10:08:00 2010 > > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode - Carsten ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REQUEST] orgtbl-ctrl-c-ctrl-c-hook 2010-11-17 9:30 ` Carsten Dominik @ 2010-11-17 9:58 ` Seweryn Kokot 2010-11-17 10:04 ` Carsten Dominik 0 siblings, 1 reply; 11+ messages in thread From: Seweryn Kokot @ 2010-11-17 9:58 UTC (permalink / raw) To: emacs-orgmode Carsten Dominik <carsten.dominik <at> gmail.com> writes: > I am a bit confused by this patch. You do call the hook after C-c C-c > has done its thing. Which is OK, but this is not what the > documentation in your hook variable says. That documentation seems to > have been copied from the normal ctrl-c-ctrl-c hook, and these hooks > are used in a different way: They establish *alternative* > functionality to the normal C-c C-c actions. So if any of the hook > functions returns a non-nil value, the normal C-c C-c functionality > will *not* be executed. > > So what are your true intentions, and can you make code and > documentation macht up? Thank for you help. Indeed, the previous patch was confusing. I've done a new patch below. Is it correct now? regards, Seweryn --- h:/org-mode/lisp/org-table.el 2010-11-16 11:17:36.000000000 +0100 +++ h:/org-mode/lisp/org-table-new.el 2010-11-17 10:54:22.000000000 +0100 @@ -48,6 +48,11 @@ (defvar org-export-html-table-tag) ; defined in org-exp.el (defvar constants-unit-system) +(defvar orgtbl-ctrl-c-ctrl-c-hook nil + "Hook for functions attaching themselves to `C-c C-c'. +This can be used to add additional functionality after the table is sent +to the receiver position.") + (defcustom orgtbl-optimized (eq org-enable-table-editor 'optimized) "Non-nil means use the optimized table editor version for `orgtbl-mode'. In the optimized version, the table editor takes over all simple keys that @@ -3729,7 +3734,8 @@ (call-interactively 'org-table-recalculate) (org-table-maybe-recalculate-line)) (call-interactively 'org-table-align) - (orgtbl-send-table 'maybe)) + (orgtbl-send-table 'maybe) + (run-hooks 'orgtbl-ctrl-c-ctrl-c-hook)) ((eq action 'recalc) (save-excursion (beginning-of-line 1) Diff finished. Wed Nov 17 10:54:46 2010 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Re: [REQUEST] orgtbl-ctrl-c-ctrl-c-hook 2010-11-17 9:58 ` Seweryn Kokot @ 2010-11-17 10:04 ` Carsten Dominik 2010-11-17 10:16 ` Seweryn Kokot 2010-11-17 12:41 ` Seweryn Kokot 0 siblings, 2 replies; 11+ messages in thread From: Carsten Dominik @ 2010-11-17 10:04 UTC (permalink / raw) To: Seweryn Kokot; +Cc: emacs-orgmode Hi Seweryn, this is much better. However, I still want to clarify: On Nov 17, 2010, at 10:58 AM, Seweryn Kokot wrote: > Carsten Dominik <carsten.dominik <at> gmail.com> writes: > >> I am a bit confused by this patch. You do call the hook after C-c >> C-c >> has done its thing. Which is OK, but this is not what the >> documentation in your hook variable says. That documentation seems >> to >> have been copied from the normal ctrl-c-ctrl-c hook, and these hooks >> are used in a different way: They establish *alternative* >> functionality to the normal C-c C-c actions. So if any of the hook >> functions returns a non-nil value, the normal C-c C-c functionality >> will *not* be executed. >> >> So what are your true intentions, and can you make code and >> documentation macht up? > > Thank for you help. Indeed, the previous patch was confusing. I've > done a new > patch below. Is it correct now? > > regards, > Seweryn > > --- h:/org-mode/lisp/org-table.el 2010-11-16 11:17:36.000000000 +0100 > +++ h:/org-mode/lisp/org-table-new.el 2010-11-17 10:54:22.000000000 > +0100 > @@ -48,6 +48,11 @@ > (defvar org-export-html-table-tag) ; defined in org-exp.el > (defvar constants-unit-system) > > +(defvar orgtbl-ctrl-c-ctrl-c-hook nil > + "Hook for functions attaching themselves to `C-c C-c'. > +This can be used to add additional functionality after the table is > sent > +to the receiver position.") Should the be run only if the sending was successful? Or also for tables where have no ORGTBD SEND statement? We could make orgtbl-send-table return a value indicating if sending has taken place. We might want to call the hook orgtbl-after-send-table-hook... - Carsten > + > (defcustom orgtbl-optimized (eq org-enable-table-editor 'optimized) > "Non-nil means use the optimized table editor version for `orgtbl- > mode'. > In the optimized version, the table editor takes over all simple > keys that > @@ -3729,7 +3734,8 @@ > (call-interactively 'org-table-recalculate) > (org-table-maybe-recalculate-line)) > (call-interactively 'org-table-align) > - (orgtbl-send-table 'maybe)) > + (orgtbl-send-table 'maybe) > + (run-hooks 'orgtbl-ctrl-c-ctrl-c-hook)) > ((eq action 'recalc) > (save-excursion > (beginning-of-line 1) > > Diff finished. Wed Nov 17 10:54:46 2010 > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode - Carsten ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REQUEST] orgtbl-ctrl-c-ctrl-c-hook 2010-11-17 10:04 ` Carsten Dominik @ 2010-11-17 10:16 ` Seweryn Kokot 2010-11-17 12:41 ` Seweryn Kokot 1 sibling, 0 replies; 11+ messages in thread From: Seweryn Kokot @ 2010-11-17 10:16 UTC (permalink / raw) To: emacs-orgmode Carsten Dominik <carsten.dominik <at> gmail.com> writes: > Should the be run only if the sending was successful? Or also for > tables > where have no ORGTBD SEND statement? We could make orgtbl-send-table > return a value indicating if sending has taken place. > > We might want to call the hook orgtbl-after-send-table-hook... Yes, in my case I need to modify the exported table only if sending has taken place. And agree that the "orgtbl-after-send-table-hook" name is better. Seweryn ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REQUEST] orgtbl-ctrl-c-ctrl-c-hook 2010-11-17 10:04 ` Carsten Dominik 2010-11-17 10:16 ` Seweryn Kokot @ 2010-11-17 12:41 ` Seweryn Kokot 2010-11-17 13:00 ` Carsten Dominik 1 sibling, 1 reply; 11+ messages in thread From: Seweryn Kokot @ 2010-11-17 12:41 UTC (permalink / raw) To: emacs-orgmode Carsten Dominik <carsten.dominik <at> gmail.com> writes: > > Should the be run only if the sending was successful? Or also for > tables > where have no ORGTBD SEND statement? We could make orgtbl-send-table > return a value indicating if sending has taken place. > > We might want to call the hook orgtbl-after-send-table-hook... What about this patch? --- h:/org-mode/lisp/org-table.el 2010-11-16 11:17:36.000000000 +0100 +++ h:/org-mode/lisp/org-table-new.el 2010-11-17 13:35:58.000000000 +0100 @@ -48,6 +48,12 @@ (defvar org-export-html-table-tag) ; defined in org-exp.el (defvar constants-unit-system) +(defvar orgtbl-after-send-table-hook nil + "Hook for functions attaching to `C-c C-c', if the table is sent. +This can be used to add additional functionality after the table is sent +to the receiver position, othewise, if table is not sent, the functions +are not run.") + (defcustom orgtbl-optimized (eq org-enable-table-editor 'optimized) "Non-nil means use the optimized table editor version for `orgtbl-mode'. In the optimized version, the table editor takes over all simple keys that @@ -3726,10 +3732,11 @@ (goto-char action) (org-table-maybe-eval-formula) (if arg - (call-interactively 'org-table-recalculate) - (org-table-maybe-recalculate-line)) + (call-interactively 'org-table-recalculate) + (org-table-maybe-recalculate-line)) (call-interactively 'org-table-align) - (orgtbl-send-table 'maybe)) + (when (orgtbl-send-table 'maybe) + (run-hooks 'orgtbl-after-send-table-hook))) ((eq action 'recalc) (save-excursion (beginning-of-line 1) @@ -3943,7 +3950,10 @@ (orgtbl-send-replace-tbl name txt)) (setq ntbl (1+ ntbl))) (message "Table converted and installed at %d receiver location%s" - ntbl (if (> ntbl 1) "s" ""))))) + ntbl (if (> ntbl 1) "s" "")) + (if (> ntbl 0) + t + nil)))) (defun org-remove-by-index (list indices &optional i0) "Remove the elements in LIST with indices in INDICES. Diff finished. Wed Nov 17 13:38:17 2010 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Re: [REQUEST] orgtbl-ctrl-c-ctrl-c-hook 2010-11-17 12:41 ` Seweryn Kokot @ 2010-11-17 13:00 ` Carsten Dominik 2010-11-17 13:06 ` Seweryn Kokot 0 siblings, 1 reply; 11+ messages in thread From: Carsten Dominik @ 2010-11-17 13:00 UTC (permalink / raw) To: Seweryn Kokot; +Cc: emacs-orgmode Hi Seweryn this is good, I have applied the patch. The only change I made was to return the number of sent tables instead of t. Thanks for the patch, and thanks for going through iterations to get this right. - Carsten On Nov 17, 2010, at 1:41 PM, Seweryn Kokot wrote: > Carsten Dominik <carsten.dominik <at> gmail.com> writes: >> >> Should the be run only if the sending was successful? Or also for >> tables >> where have no ORGTBD SEND statement? We could make orgtbl-send-table >> return a value indicating if sending has taken place. >> >> We might want to call the hook orgtbl-after-send-table-hook... > > What about this patch? > > --- h:/org-mode/lisp/org-table.el 2010-11-16 11:17:36.000000000 +0100 > +++ h:/org-mode/lisp/org-table-new.el 2010-11-17 13:35:58.000000000 > +0100 > @@ -48,6 +48,12 @@ > (defvar org-export-html-table-tag) ; defined in org-exp.el > (defvar constants-unit-system) > > +(defvar orgtbl-after-send-table-hook nil > + "Hook for functions attaching to `C-c C-c', if the table is sent. > +This can be used to add additional functionality after the table is > sent > +to the receiver position, othewise, if table is not sent, the > functions > +are not run.") > + > (defcustom orgtbl-optimized (eq org-enable-table-editor 'optimized) > "Non-nil means use the optimized table editor version for `orgtbl- > mode'. > In the optimized version, the table editor takes over all simple > keys that > @@ -3726,10 +3732,11 @@ > (goto-char action) > (org-table-maybe-eval-formula) > (if arg > - (call-interactively 'org-table-recalculate) > - (org-table-maybe-recalculate-line)) > + (call-interactively 'org-table-recalculate) > + (org-table-maybe-recalculate-line)) > (call-interactively 'org-table-align) > - (orgtbl-send-table 'maybe)) > + (when (orgtbl-send-table 'maybe) > + (run-hooks 'orgtbl-after-send-table-hook))) > ((eq action 'recalc) > (save-excursion > (beginning-of-line 1) > @@ -3943,7 +3950,10 @@ > (orgtbl-send-replace-tbl name txt)) > (setq ntbl (1+ ntbl))) > (message "Table converted and installed at %d receiver location > %s" > - ntbl (if (> ntbl 1) "s" ""))))) > + ntbl (if (> ntbl 1) "s" "")) > + (if (> ntbl 0) > + t > + nil)))) > > (defun org-remove-by-index (list indices &optional i0) > "Remove the elements in LIST with indices in INDICES. > > Diff finished. Wed Nov 17 13:38:17 2010 > > > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode - Carsten ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [REQUEST] orgtbl-ctrl-c-ctrl-c-hook 2010-11-17 13:00 ` Carsten Dominik @ 2010-11-17 13:06 ` Seweryn Kokot 2010-11-17 13:09 ` Carsten Dominik 0 siblings, 1 reply; 11+ messages in thread From: Seweryn Kokot @ 2010-11-17 13:06 UTC (permalink / raw) To: emacs-orgmode Carsten Dominik <carsten.dominik <at> gmail.com> writes: > > this is good, I have applied the patch. The only change I made was to > return the number of sent tables instead of t. > > Thanks for the patch, and thanks for going through iterations to > get this right. > Hi Carsten, My pleasure :-) This was my first patch, so next time it should go smoother. Thanks for guidance. Seweryn ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Re: [REQUEST] orgtbl-ctrl-c-ctrl-c-hook 2010-11-17 13:06 ` Seweryn Kokot @ 2010-11-17 13:09 ` Carsten Dominik 0 siblings, 0 replies; 11+ messages in thread From: Carsten Dominik @ 2010-11-17 13:09 UTC (permalink / raw) To: Seweryn Kokot; +Cc: emacs-orgmode If you plan to submit more patches, you need to sign the FSF papers, please. Cheers. - Carsten On Nov 17, 2010, at 2:06 PM, Seweryn Kokot wrote: > Carsten Dominik <carsten.dominik <at> gmail.com> writes: > >> >> this is good, I have applied the patch. The only change I made was >> to >> return the number of sent tables instead of t. >> >> Thanks for the patch, and thanks for going through iterations to >> get this right. >> > > Hi Carsten, > > My pleasure :-) This was my first patch, so next time it should go > smoother. > Thanks for guidance. > > Seweryn > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode - Carsten ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2010-11-17 13:09 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-11-17 8:19 [REQUEST] orgtbl-ctrl-c-ctrl-c-hook Seweryn Kokot 2010-11-17 8:28 ` Carsten Dominik 2010-11-17 9:10 ` Seweryn Kokot 2010-11-17 9:30 ` Carsten Dominik 2010-11-17 9:58 ` Seweryn Kokot 2010-11-17 10:04 ` Carsten Dominik 2010-11-17 10:16 ` Seweryn Kokot 2010-11-17 12:41 ` Seweryn Kokot 2010-11-17 13:00 ` Carsten Dominik 2010-11-17 13:06 ` Seweryn Kokot 2010-11-17 13:09 ` Carsten Dominik
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).