Eliminated use of swigkeys.h/.c files.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9632 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Dave Beazley 2007-01-03 20:58:19 +00:00
commit ff41049b1c
20 changed files with 993 additions and 1279 deletions

View file

@ -15,7 +15,6 @@
char cvsroot_fragment_c[] = "$Id$";
#include "swig.h"
#include "swigkeys.h"
#include "swigwarn.h"
static Hash *fragments = 0;
@ -35,8 +34,8 @@ void Swig_fragment_register(Node *fragment) {
Swig_fragment_emit(fragment);
return;
} else {
String *name = Copy(Getattr(fragment, k_value));
String *type = Getattr(fragment, k_type);
String *name = Copy(Getattr(fragment, "value"));
String *type = Getattr(fragment, "type");
if (type) {
SwigType *rtype = SwigType_typedef_resolve_all(type);
String *mangle = Swig_string_mangle(type);
@ -51,11 +50,11 @@ void Swig_fragment_register(Node *fragment) {
}
if (!Getattr(fragments, name)) {
String *section = Copy(Getattr(fragment, "section"));
String *ccode = Copy(Getattr(fragment, k_code));
Hash *kwargs = Getattr(fragment, k_kwargs);
String *ccode = Copy(Getattr(fragment, "code"));
Hash *kwargs = Getattr(fragment, "kwargs");
Setmeta(ccode, "section", section);
if (kwargs) {
Setmeta(ccode, k_kwargs, kwargs);
Setmeta(ccode, "kwargs", kwargs);
}
Setattr(fragments, name, ccode);
if (debug)
@ -94,11 +93,11 @@ void Swig_fragment_emit(Node *n) {
}
name = Getattr(n, k_value);
name = Getattr(n, "value");
if (!name) {
name = n;
}
type = Getattr(n, k_type);
type = Getattr(n, "type");
if (type) {
mangle = Swig_string_mangle(type);
}
@ -120,14 +119,14 @@ void Swig_fragment_emit(Node *n) {
code = Getattr(fragments, name);
if (debug)
Printf(stdout, "looking subfragment %s\n", name);
if (code && (Strcmp(code, k_ignore) != 0)) {
if (code && (Strcmp(code, "ignore") != 0)) {
String *section = Getmeta(code, "section");
Hash *nn = Getmeta(code, k_kwargs);
Hash *nn = Getmeta(code, "kwargs");
if (!looking_fragments)
looking_fragments = NewHash();
Setattr(looking_fragments, name, "1");
while (nn) {
if (Equal(Getattr(nn, k_name), "fragment")) {
if (Equal(Getattr(nn, "name"), "fragment")) {
if (debug)
Printf(stdout, "emitting fragment %s %s\n", nn, type);
Setfile(nn, Getfile(n));
@ -148,14 +147,14 @@ void Swig_fragment_emit(Node *n) {
Printf(f, "%s\n", code);
if (debug)
Printf(f, "/* end fragment %s */\n\n", name);
Setattr(fragments, name, k_ignore);
Setattr(fragments, name, "ignore");
Delattr(looking_fragments, name);
}
}
} else if (!code && type) {
SwigType *rtype = SwigType_typedef_resolve_all(type);
if (!Equal(type, rtype)) {
String *name = Copy(Getattr(n, k_value));
String *name = Copy(Getattr(n, "value"));
String *mangle = Swig_string_mangle(type);
Append(name, mangle);
Setfile(name, Getfile(n));