emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
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
>>
>

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