diff options
| author | Vincent Belaïche | 2012-07-20 23:09:04 +0200 |
|---|---|---|
| committer | Vincent Belaïche | 2012-07-20 23:09:04 +0200 |
| commit | 316e68a7952719c0450933eb956163ea4248d088 (patch) | |
| tree | 479cc43312529b726a11ef1bc600aa609fabfc73 | |
| parent | 9928463dcdb0164477785e83406602065de79ef8 (diff) | |
| download | emacs-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/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/ses.el | 21 |
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 @@ | |||
| 1 | 2012-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 | |||
| 1 | 2012-07-20 Masatake YAMATO <yamato@redhat.com> | 6 | 2012-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) |