X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Cam-AntiVirus: no malware found X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/ Message-ID: <1378645856.7052.5.camel@pcjc2lap> Subject: [geda-user] Revert "Reset refdes number to the question mark when parts are copied" From: Peter Clifton To: geda-user AT delorie DOT com Cc: ehennes AT sbcglobal DOT net Date: Sun, 08 Sep 2013 14:10:56 +0100 Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.8.4-0ubuntu1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Reply-To: geda-user AT delorie DOT com Hi All, Unless someone provides a convincing argument against, I'm intending to revert the following: commit 7dafcd5e30e957dc1fffbb2eedae5d1a555a6552 Author: Edward Hennessy Date: Fri Jul 5 14:53:36 2013 -0700 Reset refdes number to the question mark when parts are copied This change helps ensure no duplicate refdes get inadvertenly created. When parts are copied and pasted, the refdes number is reset to the question mark. When parts are cut and pasted, the refdes number is preserved. In the course of normal copy+paste work on my schematic (where I was re-organising some parts between sheets), this change has has just caused me to loose a lot of data :( (I did not notice the loss of refdes information straight away!) The code in question is very "policy" oriented, and I don't think it should not live in gschem or libgeda. FWIW, I already implemented the functionality Ed wanted as a very short scheme script, requiring no nasty special case code in libgeda... (IE.. The "?" refdes suffix is a hack, and I would prefer not to hard-code it further into the core of our software!) gschemrc: (load-from-path "/home/pcjc2/.gEDA/unnumber-refdes.scm") (add-hook! copy-component-hook unnumber-refdes) unnumber-refdes.scm: (use-modules (srfi srfi-13) (srfi srfi-14)) (define (unnumber-refdes attribs) ;; Function to strip digit suffixes (define (strip-digit-suffix string) (string-trim-right string char-set:digit) ) (define (unnumbered-refdes oldrefdes) (if (string-suffix? "?" oldrefdes) oldrefdes (string-append (strip-digit-suffix oldrefdes) "?") ) ) (for-each (lambda (attrib) (let* ((name-value (get-attribute-name-value attrib)) (name (car name-value)) (value (cdr name-value))) (if (string=? name "refdes") (set-attribute-value! attrib (unnumbered-refdes value))) ) ) attribs ) ) -- Peter Clifton Clifton Electronics