unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Tak Ota <Takaaki.Ota@am.sony.com>
Subject: Re: slow bibtex menu access
Date: Fri, 18 Mar 2005 14:07:59 -0800 (PST)	[thread overview]
Message-ID: <20050318.140759.207586777.Takaaki.Ota@am.sony.com> (raw)
In-Reply-To: <20050314.091505.191467501.Takaaki.Ota@am.sony.com>

[-- Attachment #1: Type: Text/Plain, Size: 3718 bytes --]

Attached is a bug fix.  Could someone please check it in?  Thank you.
This is the third time I ask.

-Tak

Mon, 14 Mar 2005 09:15:05 -0800: "Ota, Takaaki" <Takaaki.Ota@us-ti-xims-1.am.sony.com> wrote:

> If there is no objection to this patch could someone check it in
> please.  Thank you.
> 
> -Tak
> 
> Tue, 8 Mar 2005 14:56:51 -0800: "Ota, Takaaki"
> <Takaaki.Ota@us-ti-xims-1.am.sony.com> wrote:
> 
> > Stefan kindly informed me that table.el was slowing down menu
> > operation considerably depending on buffer contents.  The attached
> > patch corrects this problem.  Thanks Stefan.
> > 
> > -Tak
> > 
> > 2005-03-08  Takaaki Ota  <Takaaki.Ota@am.sony.com>
> > 
> > 	* textmodes/table.el (table--line-column-position): New idiom.
> > 	(table--row-column-insertion-point-p): New function to test
> > 	validity of row and column insertion operation at a location.
> > 	(table-global-menu, table-cell-menu): Use above functions for
> > 	deterministic test operation.
> > 	(table--editable-cell-p): Behave in deterministic fashion.
> > 
> > 
> > Sat, 5 Mar 2005 13:27:00 -0800: "Stefan Monnier"
> > <monnier@iro.umontreal.ca> wrote:
> > 
> > > The following message is a courtesy copy of an article
> > > that has been posted to gnu.emacs.help as well.
> > > 
> > > > Thank you, I'd forgotten that (haven't done it in a long time). So
> I
> > > found
> > > > the problem, and it was table.el. I had (require 'table) and
> > (require
> > > > 'emacs-wiki-table) (the latter requires table.el) in a few places.
> I
> > > have
> > > > no idea where and how table.el is causing the problem, but would
> it
> > be
> > > > possible to turn it off (I guess a hook might do it) while in
> > bibtex?
> > > > Tables are not needed in bibtex anyway.
> > > 
> > > Setting debug-on-quit and hitting C-g while the menu is being built
> > > indicates that the time is actually spent in table--find-row-column.
> > > 
> > > Looking some more at the table.el code, it seems there is a minor
> > > logic-thinko bug in it.  Can you try the patch below (it's against
> the
> > > Emacs-CVS version of table.el, so you may have to apply the patch by
> > > hand).
> > > 
> > > Tak, is my reasoning correct that `table--probe-cell' should return
> > > non-nil
> > > iff we're inside a table?
> > > 
> > > 
> > >         Stefan
> > > 
> > > 
> > > --- orig/lisp/textmodes/table.el
> > > +++ mod/lisp/textmodes/table.el
> > > @@ -1025,13 +1025,13 @@
> > >        :help "Insert a text based table at point"]
> > >       ["Row" table-insert-row
> > >        :active (and (not buffer-read-only)
> > > -		   (or (table--probe-cell)
> > > +		   (and (table--probe-cell)
> > >  		       (save-excursion
> > >  			 (table--find-row-column nil t))))
> > >        :help "Insert row(s) of cells in table"]
> > >       ["Column" table-insert-column
> > >        :active (and (not buffer-read-only)
> > > -		   (or (table--probe-cell)
> > > +		   (and (table--probe-cell)
> > >  		       (save-excursion
> > >  			 (table--find-row-column 'column t))))
> > >        :help "Insert column(s) of cells in table"])
> > > @@ -1077,13 +1077,13 @@
> > >      ("Insert"
> > >       ["Row" table-insert-row
> > >        :active (and (not buffer-read-only)
> > > -		   (or (table--probe-cell)
> > > +		   (and (table--probe-cell)
> > >  		       (save-excursion
> > >  			 (table--find-row-column nil t))))
> > >        :help "Insert row(s) of cells in table"]
> > >       ["Column" table-insert-column
> > >        :active (and (not buffer-read-only)
> > > -		   (or (table--probe-cell)
> > > +		   (and (table--probe-cell)
> > >  		       (save-excursion
> > >  			 (table--find-row-column 'column t))))
> > >        :help "Insert column(s) of cells in table"])

[-- Attachment #2: table.el.patch --]
[-- Type: Text/Plain, Size: 4777 bytes --]

*** table.el	Fri Mar 18 13:50:13 2005
--- ../../../../d/pub/emacs/pure/emacs/lisp/textmodes/table.el	Wed Feb  9 07:50:36 2005
***************
*** 1,11 ****
  ;;; table.el --- create and edit WYSIWYG text based embedded tables
  
! ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
  
  ;; Keywords: wp, convenience
  ;; Author: Takaaki Ota <Takaaki.Ota@am.sony.com>
  ;; Created: Sat Jul 08 2000 13:28:45 (PST)
! ;; Revised: Fri Mar 18 2005 13:50:13 (PST)
  
  ;; This file is part of GNU Emacs.
  
--- 1,11 ----
  ;;; table.el --- create and edit WYSIWYG text based embedded tables
  
! ;; Copyright (C) 2000, 01, 02, 03, 04 Free Software Foundation, Inc.
  
  ;; Keywords: wp, convenience
  ;; Author: Takaaki Ota <Takaaki.Ota@am.sony.com>
  ;; Created: Sat Jul 08 2000 13:28:45 (PST)
! ;; Revised: Tue Jun 01 2004 11:36:39 (PDT)
  
  ;; This file is part of GNU Emacs.
  
***************
*** 1024,1033 ****
        :active (and (not buffer-read-only) (not (table--probe-cell)))
        :help "Insert a text based table at point"]
       ["Row" table-insert-row
!       :active (table--row-column-insertion-point-p)
        :help "Insert row(s) of cells in table"]
       ["Column" table-insert-column
!       :active (table--row-column-insertion-point-p 'column)
        :help "Insert column(s) of cells in table"])
      "----"
      ("Recognize"
--- 1024,1039 ----
        :active (and (not buffer-read-only) (not (table--probe-cell)))
        :help "Insert a text based table at point"]
       ["Row" table-insert-row
!       :active (and (not buffer-read-only)
! 		   (or (table--probe-cell)
! 		       (save-excursion
! 			 (table--find-row-column nil t))))
        :help "Insert row(s) of cells in table"]
       ["Column" table-insert-column
!       :active (and (not buffer-read-only)
! 		   (or (table--probe-cell)
! 		       (save-excursion
! 			 (table--find-row-column 'column t))))
        :help "Insert column(s) of cells in table"])
      "----"
      ("Recognize"
***************
*** 1070,1079 ****
    '("Table"
      ("Insert"
       ["Row" table-insert-row
!       :active (table--row-column-insertion-point-p)
        :help "Insert row(s) of cells in table"]
       ["Column" table-insert-column
!       :active (table--row-column-insertion-point-p 'column)
        :help "Insert column(s) of cells in table"])
      ("Delete"
       ["Row" table-delete-row
--- 1076,1091 ----
    '("Table"
      ("Insert"
       ["Row" table-insert-row
!       :active (and (not buffer-read-only)
! 		   (or (table--probe-cell)
! 		       (save-excursion
! 			 (table--find-row-column nil t))))
        :help "Insert row(s) of cells in table"]
       ["Column" table-insert-column
!       :active (and (not buffer-read-only)
! 		   (or (table--probe-cell)
! 		       (save-excursion
! 			 (table--find-row-column 'column t))))
        :help "Insert column(s) of cells in table"])
      ("Delete"
       ["Row" table-delete-row
***************
*** 4686,4715 ****
        (setq multiplier (1- multiplier)))
      ret-str))
  
- (defun table--line-column-position (line column)
-   "Return the location of LINE forward at COLUMN."
-   (save-excursion
-     (forward-line line)
-     (move-to-column column)
-     (point)))
- 
- (defun table--row-column-insertion-point-p (&optional columnp)
-   "Return non nil if it makes sense to insert a row or a column at point."
-   (and (not buffer-read-only)
-        (or (get-text-property (point) 'table-cell)
- 	   (let ((column (current-column)))
- 	     (if columnp
- 		 (or (text-property-any (line-beginning-position 0)
- 					(table--line-column-position -1 column)
- 					'table-cell t)
- 		     (text-property-any (line-beginning-position) (point) 'table-cell t)
- 		     (text-property-any (line-beginning-position 2)
- 					(table--line-column-position 1 column)
- 					'table-cell t))
- 	       (text-property-any (table--line-column-position -2 column)
- 				  (table--line-column-position -2 (+ 2 column))
- 				  'table-cell t))))))
- 
  (defun table--find-row-column (&optional columnp no-error)
    "Search table and return a cell coordinate list of row or column."
    (let ((current-coordinate (table--get-coordinate)))
--- 4698,4703 ----
***************
*** 5148,5154 ****
  
  (defun table--editable-cell-p (&optional abort-on-error)
    (and (not buffer-read-only)
!        (get-text-property (point) 'table-cell)))
  
  (defun table--probe-cell (&optional abort-on-error)
    "Probes a table cell around the point.
--- 5136,5142 ----
  
  (defun table--editable-cell-p (&optional abort-on-error)
    (and (not buffer-read-only)
!        (table--probe-cell abort-on-error)))
  
  (defun table--probe-cell (&optional abort-on-error)
    "Probes a table cell around the point.

[-- Attachment #3: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

      reply	other threads:[~2005-03-18 22:07 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87br9xkcv0.fsf-monnier+gnu.emacs.help@gnu.org>
2005-03-08 22:56 ` slow bibtex menu access Tak Ota
2005-03-14 17:15   ` Tak Ota
2005-03-18 22:07     ` Tak Ota [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.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050318.140759.207586777.Takaaki.Ota@am.sony.com \
    --to=takaaki.ota@am.sony.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.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).