summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2010-01-05 18:29:31 -0800
committerKaz Kylheku <kaz@kylheku.com>2010-01-05 18:29:31 -0800
commitf70f76d6e8ada0e386c3708673eafa2e8abb8ca8 (patch)
tree878d3a4d473298f347eeacd73bc2f557a75a5572 /lib.c
parentb553f54bca43cda8ac0eaca5c21469dd36415d2b (diff)
parentf9ea3b7c156391758aa0356c7636983393184a39 (diff)
downloadtxr-f70f76d6e8ada0e386c3708673eafa2e8abb8ca8.tar.gz
txr-f70f76d6e8ada0e386c3708673eafa2e8abb8ca8.tar.bz2
txr-f70f76d6e8ada0e386c3708673eafa2e8abb8ca8.zip
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/txr
Conflicts: ChangeLog
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/lib.c b/lib.c
index b41a7cc5..55e961bf 100644
--- a/lib.c
+++ b/lib.c
@@ -1103,16 +1103,17 @@ val make_sym(val name)
val make_package(val name)
{
- if (find_package(name))
+ if (find_package(name)) {
uw_throwf(error_s, lit("make_package: ~a exists already"), name, nao);
+ } else {
+ val obj = make_obj();
+ obj->pk.type = PKG;
+ obj->pk.name = name;
+ obj->pk.symhash = make_hash(nil, nil);
- val obj = make_obj();
- obj->pk.type = PKG;
- obj->pk.name = name;
- obj->pk.symhash = make_hash(nil, nil);
-
- push(cons(name, obj), &packages);
- return obj;
+ push(cons(name, obj), &packages);
+ return obj;
+ }
}
val find_package(val name)
@@ -1123,6 +1124,7 @@ val find_package(val name)
val intern(val str, val package)
{
val new_p;
+ val *place;
if (nullp(package)) {
package = user_package;
@@ -1134,7 +1136,7 @@ val intern(val str, val package)
type_check (package, PKG);
- val *place = gethash_l(package->pk.symhash, str, &new_p);
+ place = gethash_l(package->pk.symhash, str, &new_p);
if (!new_p) {
return *place;