Fixed [ 642112 ] Constants char bug

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4402 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Dave Beazley 2003-02-26 19:13:28 +00:00
commit 8ab03e95ec
2 changed files with 8 additions and 2 deletions

View file

@ -4120,9 +4120,11 @@ definetype : { /* scanner_check_typedef(); */ } expr {
| CHARCONST { | CHARCONST {
$$.val = NewString($1); $$.val = NewString($1);
if (Len($$.val)) { if (Len($$.val)) {
$$.rawval = NewStringf("\'%(escape)s\'",$$.val); /* $$.rawval = NewStringf("\'%(escape)s\'",$$.val); */
$$.rawval = NewStringf("\'%s\'", $$.val);
} else { } else {
$$.rawval = NewString("\'\\0'"); $$.rawval = NewString("\'\\0'");
$$.val = NewString("\\0");
} }
$$.type = T_CHAR; $$.type = T_CHAR;
$$.bitfield = 0; $$.bitfield = 0;

View file

@ -402,7 +402,11 @@ int Language::constantDirective(Node *n) {
if (!value) { if (!value) {
value = Copy(name); value = Copy(name);
} else { } else {
value = NewStringf("%(escape)s", value); if (checkAttribute(n,"type","char")) {
value = NewString(value);
} else {
value = NewStringf("%(escape)s", value);
}
} }
Setattr(n,"value", value); Setattr(n,"value", value);
this->constantWrapper(n); this->constantWrapper(n);