From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Alexander Subject: Re: Problem with org-toggle-timestamp-type Date: Thu, 30 Oct 2008 17:21:57 +0200 Message-ID: <60C89E98-67D2-45E1-B996-57751B9A4C65@alexanderonline.org> References: <0A7CF9F9-391A-4424-AB1A-D124293AD9A8@alexanderonline.org> Mime-Version: 1.0 (Apple Message framework v929.2) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KvZLd-0001C0-H1 for emacs-orgmode@gnu.org; Thu, 30 Oct 2008 11:22:09 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KvZLa-00019T-D1 for emacs-orgmode@gnu.org; Thu, 30 Oct 2008 11:22:09 -0400 Received: from [199.232.76.173] (port=52863 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KvZLa-00019M-Aj for emacs-orgmode@gnu.org; Thu, 30 Oct 2008 11:22:06 -0400 Received: from harley.gnservers.com ([72.52.242.16]:47877) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KvZLZ-0004g1-UA for emacs-orgmode@gnu.org; Thu, 30 Oct 2008 11:22:06 -0400 Received: from [82.77.174.10] (helo=[192.168.2.199]) by harley.gnservers.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.69) (envelope-from ) id 1KvZLQ-0002W6-6m for emacs-orgmode@gnu.org; Thu, 30 Oct 2008 11:21:56 -0400 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode Org-Mode I apologize if this is a repeat. It's in my sent items, but I haven't seen it on the list yet. I edited the message bit, and added a bit more: > > Hi! > > I cannot figure out how to use version control in general, and git > in particular. So I can't generate a proper patch. However, I think > there is a mistake with org-toggle-timestamp-type. > > Currently, the message always returns "Timestamp is now active" > regardless of whether it is or not. I think this is because the > message is not inside the save-excursion block, so we can't be sure > whether point was outside the timestamp (just in front) or inside > (at the very end). Inside save-excursion, I think it is always > moved to the end, does the edit, and is moved outside. > > Also, I think the sense of the test is backwards. And for some > reason (if (equal (char-before) ?]) "in" "") didn't work (went to > elisp debugger). I can't read this much lisp, it's beyond me. > > So here's the change I made (to org-version 6.10c) > > > (defun org-toggle-timestamp-type () > "Toggle the type ( or [inactive]) of a time stamp." > (interactive) > (when (org-at-timestamp-p t) > (save-excursion > (goto-char (match-beginning 0)) > (insert (if (equal (char-after) ?<) "[" "<")) (delete-char 1) > (goto-char (1- (match-end 0))) > (insert (if (equal (char-after) ?>) "]" ">")) (delete-char 1) > (message "Timestamp is now %sactive" > (if (equal (char-before) ?>) "" "in"))))) > > There's something else, and this might very well because my git repo > is not what emacs is actually running, and my modified Makefile > install target might be foobar. > > If I have a timestamp that looks like <2009-01-29 Thu>--<2009-01-29 > Thu> and the cursor is in front of the first > symbol and then I hit > the S- twice, my timestamp no longer is a range. It now looks > like [2009-01-30 Fri] > And if the cursor is in front of the the first < symbol and I hit the S- key once (or if I use M-x org-toggle-timestamp-type), I get [2009-01-29 Thu]--<2009-01-29 Thu> but a second time, I get <2009-01-29 Thu]--<2009-01-29 Thu] That suggests to me that the regular expression isn't symmetric w.r.t. square brackets and curly brackets. I kinda know perl regex, but am completely unfamiliar with elisp's version. > I tried to look at the org-ts[r]?-regexp-* variables, but my eyes > crossed. Plus, I'm very afraid that any change I'd make would add > parentheses, and thereby screwup every (match-begin 8) in the code. > > TFOM* > > Ben > > ---- > footnotes > * TFOM = Thanks for Org-Mode > >