Message 1 of 7
I'm trying to save-add zwcad11 search path using a free lisp, that i found in internet, i have just modified it so i can save the courrent SRCHPATH in a text file but I don't be able to load the new settings.
;;; By Jimmy Bergmark
;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
;;; Website: www.jtbworld.com
;;; E-mail: firstname.lastname@example.org
;;; Save and loads support paths to a text file
;;; Change the path as wished
(defun C:saveSupportPaths (/ paths f)
(setq paths (vl-registry-read "HKEY_CURRENT_USER'Software'ZWSoft'ZWCAD 2011 Ita'Profiles'Default'Config" "SRCHPATH")) ;(vla-get-supportpath files))
(setq f (open "C:'paths.txt" "w"))
(write-line paths f)
(defun C:loadSupportPaths (/ paths f)
(setq f (open "C:'paths.txt" "r"))
(setq paths (read-line f))
(vla-put-supportpath files paths)
above the modified lisp, the first part
Message 2 of 7
As you know, ZWCAD doesn't support "VLA-PUT-SUPPORTPATH", but you can do the same thing by writing the paths directly into registry, just like how you read it from registry.
vl-registry-read is for reading, and vl-registry-write is to write back.
You can refer to Developer help to know the detail about how to use vl-registry-write function. Thanks!
Message 3 of 7
Message 4 of 7
Message 5 of 7
We have confirmed that, even the vl-register-write function wrote the value into registry correctly, but when you do operation (like insert) , it still use the value in ZWCAD. that means, ZWCAD doesn't get the refreshed value from registry at once.
Currentyly we can't come up with a temporary solution. We have reported this problem to develop team to fix it, and also ask for the new function: vla-put-supportpath
Thanks for your understanding!
Message 6 of 7
?User Option: load-path
The value of this variable is a list of directories to search when loading files with load. Each element is a string (which must be a directory name) or nil (which stands for the current working directory).
The value of load-path is initialized from the environment variable EMACSLOADPATH, if that exists; otherwise its default value is specified in emacs/src/epaths.h when Emacs is built. Then the list is expanded by adding subdirectories of the directories in the list.
The syntax of EMACSLOADPATH is the same as used for PATH; ??(or ?? according to the operating system) separates directory names, and ??is used for the current default directory. Here is an example of how to set your EMACSLOADPATH variable from a csh .login file:
setenv EMACSLOADPATH .:/user/bil/emacs:/usr/local/share/emacs/20.3/lisp
Here is how to set it using sh:
Here is an example of code you can place in your init file (see Init File) to add several directories to the front of your default load-path:
(append (list nil "/user/bil/emacs"
In this example, the path searches the current working directory first, followed then by the /user/bil/emacs directory, the /usr/local/lisplib directory, and the ~/emacs directory, which are then followed by the standard directories for Lisp code.
Dumping Emacs uses a special value of load-path. If the value of load-path at the end of dumping is unchanged (that is, still the same special value), the dumped Emacs switches to the ordinary load-path value when it starts up, as described above. But if load-path has any other value at the end of dumping, that value is used for execution of the dumped Emacs also.
Therefore, if you want to change load-path temporarily for loading a few libraries in site-init.el or site-load.el, you should bind load-path locally with let around the calls to load.
The default value of load-path, when running an Emacs which has been installed on the system, includes two special directories (and their subdirectories as well):
The first one is for locally installed packages for a particular Emacs version; the second is for locally installed packages meant for use with all installed Emacs versions.
everglades bass fishing