annotate nt/installer/Wise/files.py @ 4502:8748a3f7ceb4

Handle varalias chains, custom variables in #'user-variable-p. src/ChangeLog addition: 2008-08-23 Aidan Kehoe <kehoea@parhasard.net> * eval.c (Fuser_variable_p): Moved to symbols.c * symbols.c (Fcustom_variable_p): Moved here from custom.el. (user_variable_alias_check_fun): Mapper function used in `user-variable-p'. (Fuser_variable_p): Moved here from eval.c, to allow it to examine the variable alias chain. Expanded to check each entry in the variable alias chain for signs of being a user variable; documentation updated, noting the differences between GNU's behaviour and ours (ours is a little more sensible) (map_varalias_chain): New. Given a C function, call it at least once for each symbol in a symbol's varalias chain, signalling an error if there's a cycle, and returning immediately if the function returns something other than Qzero. (Fdefvaralias): Correct the use of the word "alias" in the docstring and in the argument name. Motivate this in a comment. Add support for a DOCSTRING argument, something GNU has too, and document this * gc.c (vars_of_gc): Start the docstring of `garbage-collection-messages' with an asterisk, to indicate that it's a user variable. lisp/ChangeLog addition: 2008-08-23 Aidan Kehoe <kehoea@parhasard.net> * custom.el: Move #'custom-variable-p to C, since it's now called from #'user-variable-p.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 23 Aug 2008 16:38:51 +0200
parents 74fd4e045ea6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
1 import os
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
2 import dirs
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
3
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
4 def listdir_recursive(basedir):
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
5 ret = []
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
6 for f in os.listdir(basedir):
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
7 if os.path.isfile(basedir+"\\"+f):
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
8 ret.append(f)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
9 elif os.path.isdir(basedir+"\\"+f):
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
10 for f1 in listdir_recursive(basedir+"\\"+f):
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
11 ret.append(f+"\\"+f1)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
12 return ret
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
13
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
14 install = []
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
15
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
16 for f in os.listdir(dirs.source+"\\lib-src"):
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
17 if f == "DOC" or f[-4:]==".exe":
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
18 install.append((f,dirs.source+"\\lib-src",dirs.bin_dst))
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
19
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
20
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
21 for f in ['runemacs.exe', 'xemacs.exe']:
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
22 install.append((f,dirs.source+"\\src",dirs.bin_dst))
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
23
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
24 for f in listdir_recursive(dirs.source+"\\lisp"):
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
25 install.append((f,dirs.source+"\\lisp",dirs.lisp_dst))
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
26
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
27 for f in listdir_recursive(dirs.source+"\\etc"):
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
28 install.append((f,dirs.source+"\\etc",dirs.etc_dst))
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
29
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
30
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
31 for f in os.listdir(dirs.source+"\\info"):
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
32 install.append((f,dirs.source+"\\info",dirs.info_dst))
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
33
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
34
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
35
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
36