fix the encoding problem with unicode literals in the Python binding

This commit is contained in:
kr.angelov
2013-05-21 10:53:20 +00:00
parent 3e30dd78ec
commit b7cbee7940
3 changed files with 6 additions and 7 deletions

View File

@@ -148,7 +148,7 @@ typedef enum {
struct PgfExprParser {
GuExn* err;
GuReader* rdr;
GuIn* in;
GuPool* expr_pool;
GuPool* tmp_pool;
PGF_TOKEN_TAG token_tag;
@@ -159,7 +159,7 @@ struct PgfExprParser {
static void
pgf_expr_parser_getc(PgfExprParser* parser)
{
parser->ch = gu_getc(parser->rdr, parser->err);
parser->ch = gu_in_u8(parser->in, parser->err);
if (!gu_ok(parser->err)) {
gu_exn_clear(parser->err);
parser->ch = EOF;
@@ -353,12 +353,12 @@ pgf_expr_parser_expr(PgfExprParser* parser)
}
PgfExpr
pgf_read_expr(GuReader* rdr, GuPool* pool, GuExn* err)
pgf_read_expr(GuIn* in, GuPool* pool, GuExn* err)
{
GuPool* tmp_pool = gu_new_pool();
PgfExprParser* parser = gu_new(PgfExprParser, tmp_pool);
parser->err = err;
parser->rdr = rdr;
parser->in = in;
parser->expr_pool = pool;
parser->tmp_pool = NULL;
parser->ch = ' ';

View File

@@ -152,7 +152,7 @@ pgf_expr_unapply(PgfExpr expr, GuPool* pool);
PgfExpr
pgf_read_expr(GuReader* rdr, GuPool* pool, GuExn* err);
pgf_read_expr(GuIn* in, GuPool* pool, GuExn* err);
bool
pgf_literal_eq(PgfLiteral lit1, PgfLiteral lit2);

View File

@@ -1663,11 +1663,10 @@ pgf_readExpr(PyObject *self, PyObject *args) {
GuPool* tmp_pool = gu_local_pool();
GuIn* in = gu_data_in(buf, len, tmp_pool);
GuReader* rdr = gu_new_utf8_reader(in, tmp_pool);
GuExn* err = gu_new_exn(NULL, gu_kind(type), tmp_pool);
pyexpr->pool = gu_new_pool();
pyexpr->expr = pgf_read_expr(rdr, pyexpr->pool, err);
pyexpr->expr = pgf_read_expr(in, pyexpr->pool, err);
pyexpr->master = NULL;
if (!gu_ok(err) || gu_variant_is_null(pyexpr->expr)) {