scheme crash with (custom) renumber refdes hook

Bug #908444 reported by Peter Clifton
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gEDA
Fix Released
High
Unassigned

Bug Description

Crash when copying a component with a custom scheme hook loaded. (The hook is to un-number the named component you copy).

Hook is loaded from /home/pcjc2/.gEDA/gschemrc with:

(load-from-path "/home/pcjc2/.gEDA/unnumber-refdes.scm")
(add-hook! copy-component-hook unnumber-refdes)

Output:

gschem
WARNING: (gschem keymap): imported module (srfi srfi-69) overrides core binding `make-hash-table'
WARNING: (gschem keymap): imported module (srfi srfi-69) overrides core binding `hash-table?'
Backtrace:
In unknown file:
   ?: 0* [#<procedure #f (lst)> (# # #)]
In /home/pcjc2/geda/share/gEDA/scheme/gschem/deprecated.scm:
 267: 1* (if (not (hook-empty? tgt-hook)) (for-each (lambda (obj) (if # #)) lst))
 268: 2 [for-each #<procedure #f (obj)> (# # #)]
In unknown file:
   ?: 3* [#<procedure #f (obj)> #<geda-object 0x190b0b0>]
In /home/pcjc2/geda/share/gEDA/scheme/gschem/deprecated.scm:
 270: 4* (if (filter? obj) (run-hook tgt-hook (append! # #)))
 271: 5 [run-hook #<hook 1 7f4f357615d0 unnumber-refdes> (# # # #)]
In unknown file:
   ?: 6* [unnumber-refdes (# # # #)]
   ?: 7* (letrec (# #) (for-each # attribs))
In /home/pcjc2/.gEDA/unnumber-refdes.scm:
  34: 8 [for-each #<procedure #f (attrib)> (# # # #)]
In unknown file:
   ?: 9* [#<procedure #f (attrib)> #<geda-object 0x18d8eb0>]
In /home/pcjc2/.gEDA/unnumber-refdes.scm:
  36: 10* (let* (# # #) (if # #))
  39: 11 (if (string=? name "refdes") (set-attribute-value! attrib #))
In /home/pcjc2/geda/share/gEDA/scheme/gschem/deprecated.scm:
    ...
 133: 12 (let ((params #) (name-value #)) (list-set! params 3 ...) ...)
 135: 13* [list-set! ((56200 . 54300) lower-left 0 ...) 3 ...
 135: 14* [simple-format {"~A=~A"} "refdes" "CONN?"]

/home/pcjc2/geda/share/gEDA/scheme/gschem/deprecated.scm:135:25: In procedure simple-format in expression (simple-format "~A=~A" (car name-value) ...):
/home/pcjc2/geda/share/gEDA/scheme/gschem/deprecated.scm:135:25: Wrong type argument in position 1: "~A=~A"

Revision history for this message
Peter Clifton (pcjc2) wrote :
tags: added: gschem scheme-api
Revision history for this message
Peter TB Brett (peter-b) wrote :

Please try this patch and see if it resolves your issue.

diff --git a/gschem/scheme/gschem/deprecated.scm b/gschem/scheme/gschem/deprecated.scm
index bb69407..33b7776 100644
--- a/gschem/scheme/gschem/deprecated.scm
+++ b/gschem/scheme/gschem/deprecated.scm
@@ -132,7 +132,7 @@
 (define-public (set-attribute-value! attrib value)
   (let ((params (text-info attrib))
         (name-value (parse-attrib attrib)))
- (list-set! params 3 (simple-format "~A=~A" (car name-value) value))
+ (list-set! params 3 (simple-format #f "~A=~A" (car name-value) value))
     (apply set-text! attrib params)))

 ;; get-objects-in-page page

Changed in geda:
importance: Undecided → High
milestone: none → 1.7.2
Revision history for this message
Peter Clifton (pcjc2) wrote :

The change resolves the issue for me ;)

Changed in geda:
status: New → Triaged
Revision history for this message
gpleda.org commit robot (gpleda-launchpad-robot) wrote :

Bug was fixed by a commit
git master commit 5e557fdfcb55b64dea1492df898785694f9ed155
http://git.gpleda.org/?p=gaf.git;a=commit;h=5e557fdfcb55b64dea1492df898785694f9ed155

commit 5e557fdfcb55b64dea1492df898785694f9ed155
Author: Peter TB Brett <email address hidden>
Commit: Peter TB Brett <email address hidden>

    scheme-api: Correct bug in set-attribute-value!

    Closes-bug: lp-908444

Changed in geda:
status: Triaged → Fix Committed
Peter TB Brett (peter-b)
Changed in geda:
assignee: Peter TB Brett (peter-b) → nobody
Peter TB Brett (peter-b)
Changed in geda:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.