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: References: <20111130211002 DOT 32B5081F6275 AT turkos DOT aspodata DOT se> <20111203133340 DOT E09A181D541B AT turkos DOT aspodata DOT se> <20111203215549 DOT 238A581D5424 AT turkos DOT aspodata DOT se> Comments: In-reply-to Luigi Salvatore Palese message dated "Mon, 05 Dec 2011 00:54:35 +0100." Mime-Version: 1.0 Content-Type: multipart/mixed ; boundary="==_Exmh_1323118552_29410" Message-Id: <20111205212547.84B9F81D543C@turkos.aspodata.se> Date: Mon, 5 Dec 2011 22:25:47 +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 Precedence: bulk This is a multipart MIME message. --==_Exmh_1323118552_29410 Content-Type: text/plain; charset="iso-8859-1" Luigi: > In attachment a new version of the script with my attempt to solve the > empty folders issue... some cleanup is required but i hope this can perform > well. I got some lines not sorted well (see attachment, I searched for gnd.sym), though I could correct that with: $ diff -u local-symbols-library.scm.~1~ local-symbols-library.scm --- local-symbols-library.scm.~1~ 2011-12-05 21:34:15.000000000 +0100 +++ local-symbols-library.scm 2011-12-05 21:44:12.000000000 +0100 @@ -65,7 +65,7 @@ (define component-library-add-tree (lambda (prefix mainfolder) - (display (build-path mainfolder)) + ;(display (build-path mainfolder)) ; Building the list of folders (set! mainfolder (string-trim-right (string-trim-both mainfolder char-set:whitespace) #\/)) (ftw mainfolder build-symbols-list) @@ -73,6 +73,6 @@ (lambda (dir) (component-library dir (string-append prefix (string-copy dir (string-length mainfolder)))) ) - folderlist) + (sort-list! folderlist string>?)) ) ) /// If we go for a opendir/readdir/closedir implementation instead of ftw, maybe we should ignore all directories and files starting with ".", and directories named "CVS". But the code is beginning to be hard to read and understand. Regards, /Karl Hammar ----------------------------------------------------------------------- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 --==_Exmh_1323118552_29410 Content-Type: image/jpeg ; name="sort.jpg" Content-Description: sort.jpg Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="sort.jpg" /9j/4AAQSkZJRgABAQAAAQABAAD//gBYQ1JFQVRPUjogWFYgVmVyc2lvbiAzLjEwYSAgUmV2 OiAxMi8yOS85NCAoUE5HIHBhdGNoIDEuMikgIFF1YWxpdHkgPSAzNCwgU21vb3RoaW5nID0g MAr/2wBDABgQEhUSDxgVExUaGRgcIzsmIyAgI0gzNis7VUtaWFRLUlFeaodzXmSAZVFSdqB3 gIyQl5mXW3GmsqWTsIeUl5L/2wBDARkaGiMfI0UmJkWSYVJhkpKSkpKSkpKSkpKSkpKSkpKS kpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpL/wAARCAEHAYsDASIAAhEBAxEB/8QA HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQID AAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6 Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QA HwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAEC AxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5 OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk paanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oA DAMBAAIRAxEAPwDmv4hyPveldPpf+r0v/dk/lXMZ+YfMfvV0+l/6vS/92T+VUtmRLdG8vRvp /Wm05ejfT+tNqCyS3YiEf7zf+hGpd59qpS3QtLQStFJIu4g7MfL8x5OSOKI74vdLbm1nRiu4 klCFHqcMaYF3efajefam1UF+rKzpBO0YBIkCjDY9Oc9vpQBd3n2o3n2qrNeQwojsSVdS4IGc KBkn6f4ilguGlbDW80XGQXAwfyJ/WgCzvPtRvPtVBL4lNxjaQvIyxJGOWUcZ5OP/ANYqO3vH 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 iigAooooAKKKKACiiigAooooA//Z --==_Exmh_1323118552_29410--