From: Ihor Radchenko <yantar92@gmail.com>
To: Max Mikhanosha <max.mikhanosha@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: BUG+PATCH org-capture hangs under Cygwin/X
Date: Sun, 31 Jul 2022 20:45:53 +0800 [thread overview]
Message-ID: <87r121labi.fsf@localhost> (raw)
In-Reply-To: <CAGAC3hC5mq2PB4aZG9P0-sZD7cG4RnETfwTai7wnzpDbCM8vFQ@mail.gmail.com>
Max Mikhanosha <max.mikhanosha@gmail.com> writes:
> Due to various reasons I'm now using Cygwin/X Emacs, and for this emacs,
> (gui-get-selection) method is kind of slow (about 0.2) seconds.
> ...
> Attached patch changes it so that we only call (org-get-x-clipboard) and
> (current-kill 0) lazily. The logic had not changed, we just don't pre-cache
> values that we don't need.
Thanks for your contribution!
The idea looks reasonable.
However, I am unable to apply the patch onto current main branch. Please
consult https://orgmode.org/worg/org-contribute.html#first-patch
> Subject: [PATCH] org-capture: fix hang under Cygwin/X emacs.
>
> * org-capture.el (org-capture-fill-template): change it so that
> (current-kill 0) and (org-get-x-selection) are called only lazily on
> as needed basis, and their results are cached.
>
> This reduces worst case of calling (gui-get-selection) from 28 times
> to 12 (worst case being both clipboard and selection being empty)
> and in the best case of there being no %x %c or %^C template
> arguments there will be zero calls
Please follow the formatting conventions for the commit messages as
described in
https://orgmode.org/worg/org-contribute.html#commit-messages
In particular, pay attention to the space between sentences, ending
sentences with a full stop, and quoting the Elisp `symbols'.
The same applies for comments in code.
> + ;; On Cygwin/X org-get-x-clipboard is extremely slow
> + ;; therefore use lazy evaluation for calling x-org-get-clipboard
For example, `org-get-x-clipboard' should be quoted, and the comment
should end with ".".
> + (x-clip-cache (list (list 'PRIMARY nil nil)
> + (list 'CLIPBOARD nil nil)
> + (list 'SECONDARY nil nil)))
A more compact form is
(x-clip-cache `((PRIMARY nil nil) (CLIPBOARD nil nil) (SECONDARY nil nil))
Best,
Ihor
prev parent reply other threads:[~2022-07-31 12:46 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-12 3:44 BUG+PATCH org-capture hangs under Cygwin/X Max Mikhanosha
2022-07-31 12:45 ` Ihor Radchenko [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87r121labi.fsf@localhost \
--to=yantar92@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=max.mikhanosha@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).