emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Robert Goldman <rpgoldman@sift.info>
To: Carsten Dominik <dominik@science.uva.nl>
Cc: emacs-orgmode@gnu.org
Subject: Re: question about org-region-active-p
Date: Tue, 16 Dec 2008 09:43:17 -0600	[thread overview]
Message-ID: <4947CC95.60900@sift.info> (raw)
In-Reply-To: <9F73C60D-A8B2-4D0B-AFE0-DE210312A021@uva.nl>

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-16 15:47 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 [this message]
2008-12-17  8:13     ` Carsten Dominik
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=4947CC95.60900@sift.info \
    --to=rpgoldman@sift.info \
    --cc=dominik@science.uva.nl \
    --cc=emacs-orgmode@gnu.org \
    /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).