[xemacs-beta cc'd, please continue to do so in replies]
On Sat, 2003-01-04 at 04:27, Tak Ota wrote:
Hello,
I found your discussion on the following page by chance.
http://list-archive.xemacs.org/xemacs-beta/200208/msg00482.html
It was the last summer. I am sorry for not responding so long time.
I didn't mean to ignore it but sourceforge failed to notify me of your
posting. I do not visit that area regularly. Also sourceforge
respects visitors anonymity and often I have problems communicating
with them (email addresses are disguised) for further clarifying
technical details.
I am happy to help you making table.el to be compatible with Xemacs.
Ah, good! I'm eagerly waiting for it to work!
Could you help me understand the following discovery? I am not
quite
sure what had happened.
When I have inserted a table into a buffer, I poke around and type some
characters *into* the top border (the line with the +-----+------
stuff), then move into a cell, and type some more. Now, when the table
tries to resize itself, I get (after setting debug-on-error to t):
See the attached screenshots. table1.png shows the initial state where
I am about to type something into the top border. table2.png is when
I've typed 'foobar' into the border and am about to type something into
the first cell. table3.png is when I've typed "te" into the first cell;
the "e" isn't visible because it has caused an error, see the attached
backtrace.txt.
This was done with XEmacs 21.4.11 and table.el 1.5.54, with my patch
from the above thread applied.
Lastly, as I explained in the comment in table.el there is one
serious
problem in table.el to be compatible with Xemacs. It is how Xemacs
implements intervals for Emacs notion of text properties. When
undoing some editing operation on text properties things are
reasonably reversible. However, under current Xemacs interval
implementation once joined interval does not seem to separate
correctly by undoing the last operation that has joined the originally
separated intervals.
I can't help out with this one. Anybody?
Anyway, I appreciate your patch and will make a new release with it
applied.
Thanks.
--
\/ille Skyttä
scop at
xemacs.org
Signaling: (wrong-type-argument number-char-or-marker-p nil)
1+(nil)
(put-text-property beg (1+ beg) property value)
(let ((beg ...) (end ...)) (put-text-property beg (1+ beg) property value)
(put-text-property (1- end) end property value))
table--put-property(nil table-justify nil)
table--put-cell-justify-property(nil nil)
(save-excursion (while (<= ... ...) (let ... ...) (setcdr lu ...))
(table--put-cell-justify-property cell table-cell-info-justify)
(table--put-cell-valign-property cell table-cell-info-valign))
(let ((lu ...) (rb ...)) (save-excursion (while ... ... ...)
(table--put-cell-justify-property cell table-cell-info-justify)
(table--put-cell-valign-property cell table-cell-info-valign)))
table--put-cell-property(nil)
(let* ((cell ...)) (table--put-cell-property cell) (table--put-cell-justify-property
cell table-cell-info-justify) (table--put-cell-valign-property cell
table-cell-info-valign))
(let ((cache-buffer ...) (org-coord ...) (in-cell ...) rectangle) (set-buffer
cache-buffer) (setq rectangle (extract-rectangle 1 ...)) (set-buffer table-cell-buffer)
(delete-rectangle (table--goto-coordinate table-cell-info-lu-coordinate)
(table--goto-coordinate table-cell-info-rb-coordinate)) (table--goto-coordinate
table-cell-info-lu-coordinate) (table--insert-rectangle rectangle) (let* (...)
(table--put-cell-property cell) (table--put-cell-justify-property cell
table-cell-info-justify) (table--put-cell-valign-property cell table-cell-info-valign))
(table--goto-coordinate (if in-cell ... org-coord)))
(save-current-buffer (set-buffer table-cell-buffer) (let (... ... ... rectangle)
(set-buffer cache-buffer) (setq rectangle ...) (set-buffer table-cell-buffer)
(delete-rectangle ... ...) (table--goto-coordinate table-cell-info-lu-coordinate)
(table--insert-rectangle rectangle) (let* ... ... ... ...) (table--goto-coordinate ...)))
(if (or (not now) (and ... quail-converting) (and ... quail-translating)) (setq
table-update-timer (table--set-timer table-time-before-update ... ...))
(save-current-buffer (set-buffer table-cell-buffer) (let ... ... ... ... ... ... ... ...
...)) (if (and overwrite-mode ...) (setq buffer-undo-list ...)))
(let ((table-inhibit-advice t)) (if (null table-update-timer) nil (table--cancel-timer
table-update-timer) (setq table-update-timer nil)) (if (or ... ... ...) (setq
table-update-timer ...) (save-current-buffer ... ...) (if ... ...)))
table--update-cell(now)