Hi Tomas,

> time fails with "bad suffix" error as the var @Z in '_htSet' was
> rebound by my call to 'match'.  It looks like there is some unwanted

Using transient symbols would be always an option, but I think it should
not be necessary here.

Actually, we have two bugs:

- Your "*.l" file should properly bind its pattern variables locally
  (e.g. 'let' or 'use'). In that respect, it is like a function. This
  would make the bug disappear, but just fix the symptom, not the main
  reason, because:

- '_htSet' is not correct. Though it protects the pattern variables
  ('@N', '@V' and '@Z') with 'use', it does not initialize '@Z'. So if
  the 'match' in '_htSet' succeeds, '@Z' will be bound to a new value
  and everything is OK. But if the 'match' fails, '@Z' is not bound and
  may contain any random value.

Now I changed the third line of '_htSet' :

   (de _htSet ("Var" Val)
      (use (@N @V @Z)
         (off @N @Z)  # added '@Z'
         (setq "Var"

Many thanks!

- Alex
UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe

Reply via email to