[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

gEDA-bug: [Bug 804898] Re: auto-uref.scm fails if default uref is "?"



The bug is legitimate one, as the code will fail whenever value of the refdes attribute does not start with a letter.
I'm not 100% sure if lifting the restriction for the refdes to start with a letter will not break something else, but we can test such change.

** Changed in: geda
   Importance: Undecided => Medium

** Changed in: geda
       Status: New => In Progress

** Changed in: geda
     Assignee: (unassigned) => Krzysztof KoÅciuszkiewicz (k-kosciuszkiewicz)

-- 
You received this bug notification because you are a member of gEDA Bug
Team, which is subscribed to gEDA.
https://bugs.launchpad.net/bugs/804898

Title:
  auto-uref.scm fails if default uref is "?"

Status in GPL Electronic Design Automation tools:
  In Progress

Bug description:
  auto-uref.scm fails if the default uref of the symbol is "?".

  To reproduce:

  1) activate auto-uref with the following lines in gnetlistrc:
  (load-from-path "auto-uref.scm")
  (add-hook! add-component-hook auto-uref)

  2) put a symbol with refdes=? to some place where gschem finds it.
  E.g. the symbol attached to this report.

  3) open gschem

  4) add the symbol to the canvas
  The auto-uref script when as the symbol is pasted to the schematic. The failure pulls down gschem, too. The application dies with this backtrace on the stdout:

  /---------------------------
  Backtrace:
  In unknown file:
     ?:  0* [auto-uref (# # # # ...)]
     ?:  {1}* (letrec (# # # # ...) (let* # #))
  In /usr/local/share/gEDA/scheme/auto-uref.scm:
    90:  2  (let* ((refdeses #) (refdes #) (prefix #)) (if prefix (let* # #)))
    94:  3* (if refdes (get-prefix (cdr (get-attribute-name-value refdes))) #f)
    95:  4  [get-prefix "?"]
      ...
    47:  5  (if (= 0 (match:end prefix)) #f (match:substring prefix))
    47:  6* [= 0 ...
    47:  7*  [match:end #f]
  In /usr/share/guile/1.8/ice-9/regex.scm:
   125:  8   (let* ((matchnum (if # # {1})) (end (cdr #))) (if (= end -1) #f end))
   128:  9*  [cdr ...
   128: 10*   [vector-ref #f {1}]

  /usr/share/guile/1.8/ice-9/regex.scm:128:20: In procedure vector-ref in expression (vector-ref match matchnum):
  /usr/share/guile/1.8/ice-9/regex.scm:128:20: Wrong type argument in position 2: 1
  \-------------------------------

  BTW, my use case for "refdes=?" is indeed sub sheet symbols. If the
  urefs of a heirarchy are mangled, I'd still like to keep them as short
  as possible -- A single character. If I need mor than one sub sheet
  per sheet, the character has to be unique. In addition, they should
  not interfere with the usual letters for components. Pure digits fit
  this agenda.

  ---<)kaimartin(>---

To manage notifications about this bug go to:
https://bugs.launchpad.net/geda/+bug/804898/+subscriptions


_______________________________________________
geda-bug mailing list
geda-bug@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-bug