mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-30 19:53:09 +00:00
(table-cell-horizontal-chars): Renamed from table-cell-horizontal-char. Now a
string value instead of a character. ?= is allowed for horizontal boundary as well as ?-. (table-command-remap-alist, table-command-list): Changed defconst to defvar because the value is modified. (table-insert, table-insert-row, table-insert-column, table-recognize) (table-recognize-region, table-widen-cell, table-span-cell) table-split-cell-vertically): Change due to table-cell-horizontal-chars. (table--cell-horizontal-char-p): New function. (table--generate-source-scan-lines, table-delete-row, table-delete-column) (table--spacify-frame, table--find-row-column, table--probe-cell-left-up) (table--probe-cell-right-bottom, table--probe-cell): Change due to table-cell-horizontal-chars. From David Abrahams <dave@boost-consulting.com>
This commit is contained in:
parent
0f9c2d466c
commit
e99add213b
@ -1,3 +1,22 @@
|
||||
2003-06-05 Takaaki Ota <Takaaki.Ota@am.sony.com>
|
||||
|
||||
* textmodes/table.el (table-cell-horizontal-chars): Renamed from
|
||||
table-cell-horizontal-char. Now a string value instead of a
|
||||
character. ?= is allowed for horizontal boundary as well as ?-.
|
||||
(table-command-remap-alist, table-command-list): Changed defconst to
|
||||
defvar because the value is modified.
|
||||
(table-insert, table-insert-row, table-insert-column)
|
||||
(table-recognize, table-recognize-region, table-widen-cell)
|
||||
(table-span-cell, table-split-cell-vertically): Change due to
|
||||
table-cell-horizontal-chars.
|
||||
(table--cell-horizontal-char-p): New function.
|
||||
(table--generate-source-scan-lines, table-delete-row)
|
||||
(table-delete-column, table--spacify-frame)
|
||||
(table--find-row-column, table--probe-cell-left-up)
|
||||
(table--probe-cell-right-bottom, table--probe-cell): Change due to
|
||||
table-cell-horizontal-chars. From David Abrahams
|
||||
<dave@boost-consulting.com>
|
||||
|
||||
2003-06-05 Juanma Barranquero <lektu@terra.es>
|
||||
|
||||
* gud.el: Moved to progmodes.
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Keywords: wp, convenience
|
||||
;; Author: Takaaki Ota <Takaaki.Ota@am.sony.com>
|
||||
;; Created: Sat Jul 08 2000 13:28:45 (PST)
|
||||
;; Revised: mar feb 18 2003 10:03:18 (Romance Standard Time)
|
||||
;; Revised: jue jun 05 2003 22:00:02 (Hora de verano romance)
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
@ -688,10 +688,10 @@ height."
|
||||
:tag "Cell Face"
|
||||
:group 'table)
|
||||
|
||||
(defcustom table-cell-horizontal-char ?\-
|
||||
"*Character that forms table cell's horizontal border line."
|
||||
:tag "Cell Horizontal Boundary Character"
|
||||
:type 'character
|
||||
(defcustom table-cell-horizontal-chars "-="
|
||||
"*Characters that may be used for table cell's horizontal border line."
|
||||
:tag "Cell Horizontal Boundary Characters"
|
||||
:type 'string
|
||||
:group 'table)
|
||||
|
||||
(defcustom table-cell-vertical-char ?\|
|
||||
@ -986,7 +986,7 @@ This is always set to nil at the entry to `table-with-cache-buffer' before execu
|
||||
)
|
||||
"Bindings for table cell commands.")
|
||||
|
||||
(defconst table-command-remap-alist
|
||||
(defvar table-command-remap-alist
|
||||
'((self-insert-command . *table--cell-self-insert-command)
|
||||
(completion-separator-self-insert-autofilling . *table--cell-self-insert-command)
|
||||
(completion-separator-self-insert-command . *table--cell-self-insert-command)
|
||||
@ -1004,7 +1004,7 @@ This is always set to nil at the entry to `table-with-cache-buffer' before execu
|
||||
(dabbrev-completion . *table--cell-dabbrev-completion))
|
||||
"List of cons cells consisting of (ORIGINAL-COMMAND . TABLE-VERSION-OF-THE-COMMAND).")
|
||||
|
||||
(defconst table-command-list nil
|
||||
(defvar table-command-list nil
|
||||
"List of commands that override original commands.")
|
||||
;; construct the real contents of the `table-command-list'
|
||||
(let ((remap-alist table-command-remap-alist))
|
||||
@ -1658,7 +1658,7 @@ Inside a table cell has a special keymap.
|
||||
(setq cw cell-width)
|
||||
(setq i 0)
|
||||
(while (< i columns)
|
||||
(insert (make-string (car cw) table-cell-horizontal-char) table-cell-intersection-char)
|
||||
(insert (make-string (car cw) (string-to-char table-cell-horizontal-chars)) table-cell-intersection-char)
|
||||
(if (cdr cw) (setq cw (cdr cw)))
|
||||
(setq i (1+ i)))
|
||||
(setq border-str (buffer-substring (point-min) (point-max)))
|
||||
@ -1748,7 +1748,7 @@ are appended at the bottom of the table."
|
||||
(while (> i 0)
|
||||
(setq rect (cons
|
||||
(concat (if exclude-left "" (char-to-string table-cell-intersection-char))
|
||||
(make-string (- (cadr this) (caar this)) table-cell-horizontal-char)
|
||||
(make-string (- (cadr this) (caar this)) (string-to-char table-cell-horizontal-chars))
|
||||
(if exclude-right "" (char-to-string table-cell-intersection-char)))
|
||||
rect))
|
||||
(let ((j cell-height))
|
||||
@ -1801,7 +1801,7 @@ created column(s) are appended at the right of the table."
|
||||
(coord-list (table--cell-list-to-coord-list (table--vertical-cell-list t nil 'left)))
|
||||
(append-column (if coord-list nil (setq coord-list (table--find-row-column 'column))))
|
||||
(cell-width (car (table--min-coord-list coord-list)))
|
||||
(border-str (table--multiply-string (concat (make-string cell-width table-cell-horizontal-char)
|
||||
(border-str (table--multiply-string (concat (make-string cell-width (string-to-char table-cell-horizontal-chars))
|
||||
(char-to-string table-cell-intersection-char)) n))
|
||||
(cell-str (table--multiply-string (concat (table--cell-blank-str cell-width)
|
||||
(let ((str (string table-cell-vertical-char)))
|
||||
@ -1915,13 +1915,13 @@ all the table specific features."
|
||||
(if (>= arg 0)
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(let* ((border (format "[%c%c%c]"
|
||||
table-cell-horizontal-char
|
||||
(let* ((border (format "[%s%c%c]"
|
||||
table-cell-horizontal-chars
|
||||
table-cell-vertical-char
|
||||
table-cell-intersection-char))
|
||||
(border3 (concat border border border))
|
||||
(non-border (format "^[^%c%c%c]*$"
|
||||
table-cell-horizontal-char
|
||||
(non-border (format "^[^%s%c%c]*$"
|
||||
table-cell-horizontal-chars
|
||||
table-cell-vertical-char
|
||||
table-cell-intersection-char)))
|
||||
;; `table-recognize-region' is an expensive function so minimize
|
||||
@ -1964,12 +1964,12 @@ specific features."
|
||||
(table--remove-cell-properties beg end)
|
||||
(save-excursion
|
||||
(goto-char beg)
|
||||
(let* ((border (format "[%c%c%c]"
|
||||
table-cell-horizontal-char
|
||||
(let* ((border (format "[%s%c%c]"
|
||||
table-cell-horizontal-chars
|
||||
table-cell-vertical-char
|
||||
table-cell-intersection-char))
|
||||
(non-border (format "[^%c%c%c]"
|
||||
table-cell-horizontal-char
|
||||
(non-border (format "[^%s%c%c]"
|
||||
table-cell-horizontal-chars
|
||||
table-cell-vertical-char
|
||||
table-cell-intersection-char))
|
||||
(inhibit-read-only t))
|
||||
@ -2318,18 +2318,21 @@ table's rectangle structure."
|
||||
(1+ (cdr (cdr this)))
|
||||
(cdr (cdr this))))))
|
||||
(tmp (extract-rectangle (1- beg) end))
|
||||
(border (format "[%c%c]\\%c"
|
||||
table-cell-horizontal-char
|
||||
(border (format "[%s%c]\\%c"
|
||||
table-cell-horizontal-chars
|
||||
table-cell-intersection-char
|
||||
table-cell-intersection-char))
|
||||
(blank (table--cell-blank-str))
|
||||
rectangle)
|
||||
;; create a single wide vertical bar of empty cell fragment
|
||||
(while tmp
|
||||
(setq rectangle (cons (if (string-match border (car tmp))
|
||||
(string table-cell-horizontal-char)
|
||||
; (message "tmp is %s" tmp)
|
||||
(setq rectangle (cons
|
||||
(if (string-match border (car tmp))
|
||||
(substring (car tmp) 0 1)
|
||||
blank)
|
||||
rectangle))
|
||||
; (message "rectangle is %s" rectangle)
|
||||
(setq tmp (cdr tmp)))
|
||||
(setq rectangle (nreverse rectangle))
|
||||
;; untabify the area right of the bar that is about to be inserted
|
||||
@ -2656,7 +2659,7 @@ DIRECTION is one of symbols; right, left, above or below."
|
||||
(setq rectangle
|
||||
(cons (if below-contp
|
||||
(char-to-string table-cell-intersection-char)
|
||||
(char-to-string table-cell-horizontal-char))
|
||||
(substring table-cell-horizontal-chars 0 1))
|
||||
rectangle))
|
||||
(while (> n-element 0)
|
||||
(setq rectangle (cons (table--cell-blank-str 1) rectangle))
|
||||
@ -2664,7 +2667,7 @@ DIRECTION is one of symbols; right, left, above or below."
|
||||
(setq rectangle
|
||||
(cons (if above-contp
|
||||
(char-to-string table-cell-intersection-char)
|
||||
(char-to-string table-cell-horizontal-char))
|
||||
(substring table-cell-horizontal-chars 0 1))
|
||||
rectangle))
|
||||
(delete-rectangle beg end)
|
||||
(goto-char beg)
|
||||
@ -2673,11 +2676,13 @@ DIRECTION is one of symbols; right, left, above or below."
|
||||
(insert (if (and (> (point) (point-min))
|
||||
(save-excursion
|
||||
(forward-char -1)
|
||||
(looking-at (regexp-quote (char-to-string table-cell-horizontal-char)))))
|
||||
(looking-at (regexp-opt-charset
|
||||
(string-to-list table-cell-horizontal-chars)))))
|
||||
table-cell-intersection-char
|
||||
table-cell-vertical-char)
|
||||
(table--cell-blank-str (- end beg 2))
|
||||
(if (looking-at (regexp-quote (char-to-string table-cell-horizontal-char)))
|
||||
(if (looking-at (regexp-opt-charset
|
||||
(string-to-list table-cell-horizontal-chars)))
|
||||
table-cell-intersection-char
|
||||
table-cell-vertical-char))))
|
||||
;; recognize the newly created spanned cell
|
||||
@ -2711,7 +2716,7 @@ Creates a cell above and a cell below the current point location."
|
||||
(goto-char beg)
|
||||
(delete-region beg end)
|
||||
(insert table-cell-intersection-char
|
||||
(make-string table-cell-info-width table-cell-horizontal-char)
|
||||
(make-string table-cell-info-width (string-to-char table-cell-horizontal-chars))
|
||||
table-cell-intersection-char)
|
||||
(table--goto-coordinate old-coordinate)
|
||||
(forward-line 1)
|
||||
@ -3284,6 +3289,10 @@ CALS (DocBook DTD):
|
||||
((eq language 'cals) 10)))
|
||||
(insert ?\n)))))
|
||||
|
||||
(defun table--cell-horizontal-char-p (c)
|
||||
"Test if character C is one of the horizontal characters"
|
||||
(memq c (string-to-list table-cell-horizontal-chars)))
|
||||
|
||||
(defun table--generate-source-scan-lines (dest-buffer language origin-cell tail-cell col-list row-list)
|
||||
"Scan the table line by line.
|
||||
Currently this method is for LaTeX only."
|
||||
@ -3303,18 +3312,18 @@ Currently this method is for LaTeX only."
|
||||
start i c)
|
||||
(if border-p
|
||||
;; horizontal cell border processing
|
||||
(if (and (eq (car border-char-list) table-cell-horizontal-char)
|
||||
(if (and (table--cell-horizontal-char-p (car border-char-list))
|
||||
(table--uniform-list-p border-char-list))
|
||||
(with-current-buffer dest-buffer
|
||||
(insert "\\hline\n"))
|
||||
(setq i 0)
|
||||
(while (setq c (nth i border-char-list))
|
||||
(if (and start (not (eq c table-cell-horizontal-char)))
|
||||
(if (and start (not (table--cell-horizontal-char-p c)))
|
||||
(progn
|
||||
(with-current-buffer dest-buffer
|
||||
(insert (format "\\cline{%d-%d}\n" (1+ start) i)))
|
||||
(setq start nil)))
|
||||
(if (and (not start) (eq c table-cell-horizontal-char))
|
||||
(if (and (not start) (table--cell-horizontal-char-p c))
|
||||
(setq start i))
|
||||
(setq i (1+ i)))
|
||||
(if start
|
||||
@ -3534,7 +3543,7 @@ consists from cells of same height."
|
||||
(delete-char 1)
|
||||
(insert table-cell-intersection-char))
|
||||
(delete-char 1)
|
||||
(insert table-cell-horizontal-char))
|
||||
(insert (string-to-char table-cell-horizontal-chars)))
|
||||
(setq n (1- n))
|
||||
(setcar coord (1+ (car coord)))))
|
||||
;; goto appropriate end point
|
||||
@ -3576,9 +3585,11 @@ column must consists from cells of same width."
|
||||
(table--goto-coordinate coord)
|
||||
(if (save-excursion
|
||||
(or (and (table--goto-coordinate (cons (1- (car coord)) (cdr coord)) 'no-extension)
|
||||
(looking-at (regexp-quote (char-to-string table-cell-horizontal-char))))
|
||||
(looking-at (regexp-opt-charset
|
||||
(string-to-list table-cell-horizontal-chars))))
|
||||
(and (table--goto-coordinate (cons (1+ (car coord)) (cdr coord)) 'no-extension)
|
||||
(looking-at (regexp-quote (char-to-string table-cell-horizontal-char))))))
|
||||
(looking-at (regexp-opt-charset
|
||||
(string-to-list table-cell-horizontal-chars))))))
|
||||
(progn
|
||||
(delete-char 1)
|
||||
(insert table-cell-intersection-char))
|
||||
@ -4412,9 +4423,9 @@ Returns the coordinate of the final point location."
|
||||
(defun table--spacify-frame ()
|
||||
"Spacify table frame.
|
||||
Replace frame characters with spaces."
|
||||
(let ((frame-char (list table-cell-intersection-char
|
||||
table-cell-horizontal-char
|
||||
table-cell-vertical-char)))
|
||||
(let ((frame-char
|
||||
(append (string-to-list table-cell-horizontal-chars)
|
||||
(list table-cell-intersection-char table-cell-vertical-char))))
|
||||
(while
|
||||
(progn
|
||||
(cond
|
||||
@ -4427,11 +4438,11 @@ Replace frame characters with spaces."
|
||||
(table--spacify-frame))))
|
||||
(delete-char 1)
|
||||
(insert-before-markers ?\ ))
|
||||
((eq (char-after) table-cell-horizontal-char)
|
||||
((table--cell-horizontal-char-p (char-after))
|
||||
(while (progn
|
||||
(delete-char 1)
|
||||
(insert-before-markers ?\ )
|
||||
(eq (char-after) table-cell-horizontal-char))))
|
||||
(table--cell-horizontal-char-p (char-after)))))
|
||||
((eq (char-after) table-cell-vertical-char)
|
||||
(while (let ((col (current-column)))
|
||||
(delete-char 1)
|
||||
@ -4685,8 +4696,8 @@ of line."
|
||||
(>= (if columnp (car coord) (cdr coord)) 0))
|
||||
(while (progn
|
||||
(table--goto-coordinate coord 'no-extension 'no-tab-expansion)
|
||||
(not (looking-at (format "[%c%c%c]"
|
||||
table-cell-horizontal-char
|
||||
(not (looking-at (format "[%s%c%c]"
|
||||
table-cell-horizontal-chars
|
||||
table-cell-vertical-char
|
||||
table-cell-intersection-char))))
|
||||
(if columnp (setcar coord (1- (car coord)))
|
||||
@ -5037,7 +5048,7 @@ Focus only on the corner pattern. Further cell validity check is required."
|
||||
(let ((vertical-str (regexp-quote (char-to-string table-cell-vertical-char)))
|
||||
(intersection-str (regexp-quote (char-to-string table-cell-intersection-char)))
|
||||
(v-border (format "[%c%c]" table-cell-vertical-char table-cell-intersection-char))
|
||||
(h-border (format "[%c%c]" table-cell-horizontal-char table-cell-intersection-char))
|
||||
(h-border (format "[%s%c]" table-cell-horizontal-chars table-cell-intersection-char))
|
||||
(limit (save-excursion (beginning-of-line) (point))))
|
||||
(catch 'end
|
||||
(while t
|
||||
@ -5075,7 +5086,7 @@ Focus only on the corner pattern. Further cell validity check is required."
|
||||
(let ((vertical-str (regexp-quote (char-to-string table-cell-vertical-char)))
|
||||
(intersection-str (regexp-quote (char-to-string table-cell-intersection-char)))
|
||||
(v-border (format "[%c%c]" table-cell-vertical-char table-cell-intersection-char))
|
||||
(h-border (format "[%c%c]" table-cell-horizontal-char table-cell-intersection-char))
|
||||
(h-border (format "[%s%c]" table-cell-horizontal-chars table-cell-intersection-char))
|
||||
(limit (save-excursion (end-of-line) (point))))
|
||||
(catch 'end
|
||||
(while t
|
||||
@ -5124,8 +5135,8 @@ the right-bottom is the position after the cell's right bottom corner character.
|
||||
When it fails to find either one of the cell corners it returns nil or
|
||||
signals error if the optional ABORT-ON-ERROR is non-nil."
|
||||
(let (lu rb
|
||||
(border (format "^[%c%c%c]+$"
|
||||
table-cell-horizontal-char
|
||||
(border (format "^[%s%c%c]+$"
|
||||
table-cell-horizontal-chars
|
||||
table-cell-vertical-char
|
||||
table-cell-intersection-char)))
|
||||
(if (and (condition-case nil
|
||||
|
Loading…
Reference in New Issue
Block a user