aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Belaïche2012-07-20 23:09:04 +0200
committerVincent Belaïche2012-07-20 23:09:04 +0200
commit316e68a7952719c0450933eb956163ea4248d088 (patch)
tree479cc43312529b726a11ef1bc600aa609fabfc73
parent9928463dcdb0164477785e83406602065de79ef8 (diff)
downloademacs-316e68a7952719c0450933eb956163ea4248d088.tar.gz
emacs-316e68a7952719c0450933eb956163ea4248d088.zip
* ses.el (ses-rename-cell): Set new name also in reference list of cells of which the renamed cell depends.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/ses.el21
2 files changed, 21 insertions, 5 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 969f36c8457..f5f0de2d4c7 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
12012-07-20 Vincent Belaïche <vincentb1@users.sourceforge.net>
2
3 * ses.el (ses-rename-cell): Set new name also in reference list of
4 cells of which the renamed cell depends.
5
12012-07-20 Masatake YAMATO <yamato@redhat.com> 62012-07-20 Masatake YAMATO <yamato@redhat.com>
2 7
3 * term/x-win.el (x-menu-bar-open): Use `frame-parameter' 8 * term/x-win.el (x-menu-bar-open): Use `frame-parameter'
diff --git a/lisp/ses.el b/lisp/ses.el
index 201d9cbf10b..14294103d51 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -3209,17 +3209,28 @@ highlighted range in the spreadsheet."
3209 new-name))) 3209 new-name)))
3210 (error "Already a bound cell name"))) 3210 (error "Already a bound cell name")))
3211 (let* ((rowcol (ses-sym-rowcol ses--curcell)) 3211 (let* ((rowcol (ses-sym-rowcol ses--curcell))
3212 (cell (ses-get-cell (car rowcol) (cdr rowcol)))) 3212 (row (car rowcol))
3213 (col (cdr rowcol))
3214 (cell (ses-get-cell row col)))
3213 (put new-name 'ses-cell rowcol) 3215 (put new-name 'ses-cell rowcol)
3214 (dolist (reference (ses-cell-references (car rowcol) (cdr rowcol))) 3216 ;; replace name by new name in formula of cells refering to renamed cell
3215 (let* ((rowcol (ses-sym-rowcol reference)) 3217 (dolist (ref (ses-cell-references cell))
3216 (cell (ses-get-cell (car rowcol) (cdr rowcol)))) 3218 (let* ((x (ses-sym-rowcol ref))
3219 (xcell (ses-get-cell (car x) (cdr x))))
3217 (ses-cell-set-formula (car rowcol) 3220 (ses-cell-set-formula (car rowcol)
3218 (cdr rowcol) 3221 (cdr rowcol)
3219 (ses-replace-name-in-formula 3222 (ses-replace-name-in-formula
3220 (ses-cell-formula cell) 3223 (ses-cell-formula xcell)
3221 ses--curcell 3224 ses--curcell
3222 new-name)))) 3225 new-name))))
3226 ;; replace name by new name in reference list of cells to which renamed cell refers to
3227 (dolist (ref (ses-formula-references (ses-cell-formula cell)))
3228 (let* ((x (ses-sym-rowcol ref))
3229 (xrow (car x))
3230 (xcol (cdr x)))
3231 (ses-set-cell xrow xcol 'references
3232 (cons new-name (delq ses--curcell
3233 (ses-cell-references xrow xcol))))))
3223 (push new-name ses--renamed-cell-symb-list) 3234 (push new-name ses--renamed-cell-symb-list)
3224 (set new-name (symbol-value ses--curcell)) 3235 (set new-name (symbol-value ses--curcell))
3225 (aset cell 0 new-name) 3236 (aset cell 0 new-name)