projects
/
jscl.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2d702ed
)
Add EXTERNAL-ONLY (as seen in SBCL).
author
Olof-Joachim Frahm
<olof@macrolet.net>
Wed, 21 Aug 2013 18:04:55 +0000
(20:04 +0200)
committer
Olof-Joachim Frahm
<olof@macrolet.net>
Thu, 29 Aug 2013 10:48:41 +0000
(12:48 +0200)
src/package.lisp
patch
|
blob
|
history
diff --git
a/src/package.lisp
b/src/package.lisp
index
317ab41
..
b93fe02
100644
(file)
--- a/
src/package.lisp
+++ b/
src/package.lisp
@@
-155,6
+155,10
@@
(dolist (package *package-list*)
(map-for-in function (%package-symbols package))))
(dolist (package *package-list*)
(map-for-in function (%package-symbols package))))
+(defun %map-all-external-symbols (function)
+ (dolist (package *package-list*)
+ (map-for-in function (%package-external-symbols package))))
+
(defmacro do-symbols ((var &optional (package '*package*) result-form)
&body body)
`(block nil
(defmacro do-symbols ((var &optional (package '*package*) result-form)
&body body)
`(block nil
@@
-175,9
+179,12
@@
(defmacro do-all-symbols ((var &optional result-form) &body body)
`(block nil (%map-all-symbols (lambda (,var) ,@body)) ,result-form))
(defmacro do-all-symbols ((var &optional result-form) &body body)
`(block nil (%map-all-symbols (lambda (,var) ,@body)) ,result-form))
-(defun find-all-symbols (string)
+(defmacro do-all-external-symbols ((var &optional result-form) &body body)
+ `(block nil (%map-all-external-symbols (lambda (,var) ,@body)) ,result-form))
+
+(defun find-all-symbols (string &optional external-only)
(let (symbols)
(dolist (package *package-list* symbols)
(multiple-value-bind (symbol status) (find-symbol string package)
(let (symbols)
(dolist (package *package-list* symbols)
(multiple-value-bind (symbol status) (find-symbol string package)
- (when status
+ (when (if external-only (eq status :external) status)
(pushnew symbol symbols :test #'eq))))))
(pushnew symbol symbols :test #'eq))))))