www.delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2011/12/03/16:56:05

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
X-Mailer: exmh version 2.7.2 01/07/2005 (debian 1:2.7.2-18) with nmh-1.3
X-Exmh-Isig-CompType: repl
X-Exmh-Isig-Folder: inbox
To: geda-user AT delorie DOT com
Subject: Re: [geda-user] Dynamic loading personal components (with subfolder) into the search component tree of gschem
In-reply-to: <CAAVSQ3tQLSsBoCjzDE+qAGrVAzCJKzocACyMOkxVBPUqyLBD7Q@mail.gmail.com>
References: <CAAVSQ3vnFZkWdWn=LCbf+WSM0vOx9pwW+OaeTs47EdO8nfmC_w AT mail DOT gmail DOT com> <20111130211002 DOT 32B5081F6275 AT turkos DOT aspodata DOT se> <CAAVSQ3tkg3es-uBn+yFroysi5xAOtNqW5hTs2yAWQfo47rUaVQ AT mail DOT gmail DOT com> <20111203133340 DOT E09A181D541B AT turkos DOT aspodata DOT se> <CAAVSQ3tQLSsBoCjzDE+qAGrVAzCJKzocACyMOkxVBPUqyLBD7Q AT mail DOT gmail DOT com>
Comments: In-reply-to Luigi Salvatore Palese <ultrabit AT gmail DOT com>
message dated "Sat, 03 Dec 2011 21:10:56 +0100."
Mime-Version: 1.0
Message-Id: <20111203215549.238A581D5424@turkos.aspodata.se>
Date: Sat, 3 Dec 2011 22:55:48 +0100 (CET)
From: karl AT aspodata DOT se (Karl Hammar)
X-Virus-Scanned: ClamAV using ClamSMTP
Reply-To: geda-user AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: geda-user AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

This is a multipart MIME message.

--==_Exmh_1322948109_29410
Content-Type: text/plain; charset="iso-8859-1"

Luigi:
> On Sat, Dec 3, 2011 at 2:33 PM, Karl Hammar <karl AT aspodata DOT se> wrote:
...
> To manage $HOME substitution you need getenv:
>   (component-library-add-tree "cvs" (build-path (getenv "HOME") "/Net/cvs/
> cvs.gedasymbols.org/www/user"))

Hmm, my c version [1] got that for free. How should I do to take a
string and substitute all $VAR's, it's annoying to do that manually
in the gafrc file ?

...
> > "personal/Generic capacitors"
> > "personal/Generic capacitors/AVX Capacitors"
> >
> >
> The version in attachment builds description in that way.
> Now the first parameter is a prefix which adds to the folders.
> The second parameter is the main folder and will be excluded from the
> description string.
> 
> so as example a line such:
> (component-library-add-tree "cvs" (build-path (getenv "HOME") "/Net/cvs/
> cvs.gedasymbols.org/www/user"))
> 
> will produce as result:
> cvs/Capacitors
> cvs/Capacitors/AVX
> ...

Your script works fine, except that there can be a lot of directories
without .sym files, see attachment to see what can happen.
BTW, wouldn't it be easier to write 'directory instead of
(string->symbol "directory") ?

Your script is much faster than mine [2], how could I speed it up?

Regards,
/Karl Hammar

[1] http://archives.seul.org/geda/user/May-2011/msg00556.html
[2] http://www.delorie.com/archives/browse.cgi?p=geda-user/2011/12/03/15:41:27

-----------------------------------------------------------------------
Aspö Data
Lilla Aspö 148
S-742 94 Östhammar
Sweden
+46 173 140 57


--==_Exmh_1322948109_29410
Content-Type: image/jpeg ; name="lib_browser.jpg"
Content-Description: lib_browser.jpg
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="lib_browser.jpg"

/9j/4AAQSkZJRgABAQAAAQABAAD//gBYQ1JFQVRPUjogWFYgVmVyc2lvbiAzLjEwYSAgUmV2
OiAxMi8yOS85NCAoUE5HIHBhdGNoIDEuMikgIFF1YWxpdHkgPSAzMywgU21vb3RoaW5nID0g
MAr/2wBDABgREhUSDxgVFBUbGhgdJDwnJCEhJEo1OCw8WE1cW1ZNVVNhbYt2YWeDaFNVeaV6
g4+UnJ2cXnSrt6mXtYuZnJX/2wBDARobGyQgJEcnJ0eVZFVklZWVlZWVlZWVlZWVlZWVlZWV
lZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZX/wAARCACrANQDASIAAhEBAxEB/8QA
HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQID
AAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6
Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QA
HwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAEC
AxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5
OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk
paanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oA
DAMBAAIRAxEAPwDmT/FyvX0pf4jyPvelISPm57/3RS5G4/73pQBp6H9285B/cN0FdVZ/8eUH
/XNf5VyuhnK3n/XBu2K6qz/48oP+ua/yqnsiF8TLD/fb60Q/8fI/3D/MUP8Afb60Q/8AHyP9
w/zFQWWqKKKYFSVppr028cxhVIw5ZVBLEkjHIIwMfrUcl1LaNcLK3mMIw8XGNx+6R/31j/vq
rM9rDcFWkVty8BlcqcemQQcUPZwSGEtGD5P+r5PHT/AflQBRlkuoHP2i4mjRFXEqRKyHgZLc
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
--==_Exmh_1322948109_29410--


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019