From: Carsten Dominik <dominik@science.uva.nl>
To: Robert Goldman <rpgoldman@sift.info>
Cc: emacs-orgmode@gnu.org
Subject: Re: question about org-region-active-p
Date: Wed, 17 Dec 2008 09:13:55 +0100 [thread overview]
Message-ID: <EE43E2A6-9393-49C3-825A-084912C7F26F@uva.nl> (raw)
In-Reply-To: <4947CC95.60900@sift.info>
Hi Robert,
no, I do not think this would make sense, to step out with
an error, because all the commands that need a region will
also work without one. This is how regions work in Emacs.
If you find places in the documentation where this could
be made clearer, let me know.
Thanks.
- Carsten
On Dec 16, 2008, at 4:43 PM, Robert Goldman wrote:
> Carsten Dominik wrote:
>> Hi Robert,
>>
>> Samuel has it right, let me add this:
>>
>> In Emacs, you do never remove the mark from the buffer, it is always
>> there, wherever you or some command last left it. The only way to
>> tell
>> if the user intends to apply a command to a region is therefore the
>> state of a flag that says if the mark is "active". Setting the mark
>> activates the mark, most commands besides cursor motion and search
>> deactivate it.
>> The state flag does only exist if transient-mark-mode is active.
>
> Thank you both for the clarification. Here's a question: would it be
> worth adding a message to warn a user when org-region-active-p is
> called
> and transient-mark-mode is off?
>
> So should we have something like
>
> (and (or transient-mark-mode
> (error "Transient mark mode must be active for this command to
> work.")
> mark-active)
>
> Error is likely not the right thing here, but on the other hand it
> seems
> to me that the user should somehow know that the current command will
> not work as expected, because an expectation of the org-mode code has
> been violated.
>
> As I said, I discovered this because I was trying to publish a subtree
> of an org file as HTML, and instead of publishing the subtree, I got
> the
> whole file, and the output went to an unexpected location (because my
> export file setting, attached to the heading, was ignored).
>
> So the above is a case where the software quietly does something
> radically different from what I expected (and what was documented)
> because an expectation (really a code precondition) was violated.
> That
> seems to me to be an exception condition that should be brought to the
> user's attention.
>
> A complicating issue is that the system should just go ahead and
> publish
> the whole file if there is no region selected, but there doesn't
> seem to
> me to be any way for the system to tell that the user intended to
> publish only a region if transient-mark-mode is off.
>
> Maybe the user should just be told not to use org-mode without t-m-m?
> Even this seems too extreme, because the user might never intend to
> publish anything.... Or the user might never intend to publish
> anything
> except a whole file, in which case who cares if tmm is off?
>
> A very knotty issue....
>
> Best,
> r
>
>>
>> - Carsten
>>
>> On Dec 16, 2008, at 2:51 AM, Robert Goldman wrote:
>>
>>> The definition of org-region-active-p in my copy of org-mode is as
>>> follows:
>>>
>>>
>>> (defun org-region-active-p ()
>>> "Is `transient-mark-mode' on and the region active?
>>> Works on both Emacs and XEmacs."
>>> (if org-ignore-region
>>> nil
>>> (if (featurep 'xemacs)
>>> (and zmacs-regions (region-active-p))
>>> (if (fboundp 'use-region-p)
>>> (use-region-p)
>>> (and transient-mark-mode mark-active)))))
>>>
>>> What seems odd to me is that this command will only work on an
>>> emacs 22
>>> (like my Aquamacs) if transient-mark-mode is enabled. Is that
>>> correct,
>>> and is that what's desired?
>>>
>>> [I found this because I tried to publish a subtree of an org file,
>>> and I
>>> found that org-region-active-p was NIL even after C-c @
>>> (outline-mark-subtree).]
>>>
>>> This may be an oddity of aquamacs -- it seems to prefer cua-mode and
>>> turn off transient-mark-mode by default. I confess to not really
>>> understanding that decision or its implications.
>>>
>>> thanks,
>>> r
>>>
>>>
>>> _______________________________________________
>>> Emacs-orgmode mailing list
>>> Remember: use `Reply All' to send replies to the list.
>>> Emacs-orgmode@gnu.org
>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>
>
next prev parent reply other threads:[~2008-12-17 8:14 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-16 1:51 question about org-region-active-p Robert Goldman
2008-12-16 2:20 ` Samuel Wales
2008-12-16 7:53 ` Carsten Dominik
2008-12-16 15:43 ` Robert Goldman
2008-12-17 8:13 ` Carsten Dominik [this message]
2008-12-17 14:12 ` Robert Goldman
2008-12-17 16:29 ` Carsten Dominik
2008-12-17 16:38 ` Robert Goldman
2008-12-17 16:44 ` Bernt Hansen
2008-12-17 17:01 ` Carsten Dominik
2008-12-18 16:48 ` Robert Goldman
2008-12-19 8:39 ` Carsten Dominik
2008-12-16 15:52 ` William Henney
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=EE43E2A6-9393-49C3-825A-084912C7F26F@uva.nl \
--to=dominik@science.uva.nl \
--cc=emacs-orgmode@gnu.org \
--cc=rpgoldman@sift.info \
/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).