emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r109171: * ses.el (ses-rename-cell):


From: Vincent Belaïche
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r109171: * ses.el (ses-rename-cell): Set new name also in reference list of cells of which the renamed cell depends.
Date: Fri, 20 Jul 2012 23:09:04 +0200
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 109171
committer: Vincent Belaïche  <address@hidden>
branch nick: trunk
timestamp: Fri 2012-07-20 23:09:04 +0200
message:
  * ses.el (ses-rename-cell): Set new name also in reference list of cells of 
which the renamed cell depends.
modified:
  lisp/ChangeLog
  lisp/ses.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2012-07-20 11:32:30 +0000
+++ b/lisp/ChangeLog    2012-07-20 21:09:04 +0000
@@ -1,3 +1,8 @@
+2012-07-20  Vincent Belaïche  <address@hidden>
+
+       * ses.el (ses-rename-cell): Set new name also in reference list of
+       cells of which the renamed cell depends.
+
 2012-07-20  Masatake YAMATO  <address@hidden>
 
        * term/x-win.el (x-menu-bar-open): Use `frame-parameter'

=== modified file 'lisp/ses.el'
--- a/lisp/ses.el       2012-07-11 23:13:41 +0000
+++ b/lisp/ses.el       2012-07-20 21:09:04 +0000
@@ -3209,17 +3209,28 @@
                                   new-name)))
        (error "Already a bound cell name")))
   (let* ((rowcol (ses-sym-rowcol ses--curcell))
-        (cell (ses-get-cell (car rowcol) (cdr rowcol))))
+        (row (car rowcol))
+        (col (cdr rowcol))
+        (cell (ses-get-cell  row  col)))
     (put new-name 'ses-cell rowcol)
-    (dolist (reference (ses-cell-references (car rowcol) (cdr rowcol)))
-      (let* ((rowcol (ses-sym-rowcol reference))
-            (cell  (ses-get-cell (car rowcol) (cdr rowcol))))
+    ;; replace name by new name in formula of cells refering to renamed cell
+    (dolist (ref (ses-cell-references cell))
+      (let* ((x (ses-sym-rowcol ref))
+            (xcell  (ses-get-cell (car x) (cdr x))))
        (ses-cell-set-formula (car rowcol)
                              (cdr rowcol)
                              (ses-replace-name-in-formula
-                              (ses-cell-formula cell)
+                              (ses-cell-formula xcell)
                               ses--curcell
                               new-name))))
+    ;; replace name by new name in reference list of cells to which renamed 
cell refers to
+    (dolist (ref (ses-formula-references (ses-cell-formula cell)))
+      (let* ((x (ses-sym-rowcol ref))
+            (xrow (car x))
+            (xcol (cdr x)))
+       (ses-set-cell xrow xcol 'references 
+             (cons new-name (delq ses--curcell 
+                                 (ses-cell-references xrow xcol))))))
     (push new-name ses--renamed-cell-symb-list)
     (set new-name (symbol-value ses--curcell))
     (aset cell 0 new-name)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]