summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-10-16 20:07:20 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-10-16 20:07:20 +0000
commit3cd040b6ef9ddfd9373083498a7537436f7ed0bb (patch)
treef0edbde7c7fb43658ef81f9232c87779a0031fd6 /parse.y
parentb06a606278f48ff10ef6dfecb2f819f7caac8c19 (diff)
* encoding.c (rb_primary_encoding): added Encoding.primary_encoding.
* parse.y (rb_parser_encoding): added. * ruby.c (proc_options): added -E and --encoding options. * ruby.c (process_options): set primary encoding from command line option if set, or source encoding. * include/ruby/encoding.h (rb_enc_from_encoding, rb_get_primary_encoding, rb_set_primary_encoding): prototypes. * include/ruby/node.h (rb_parser_encoding): prototype. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13729 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y16
1 files changed, 16 insertions, 0 deletions
diff --git a/parse.y b/parse.y
index 2708415446..a6e8637f8e 100644
--- a/parse.y
+++ b/parse.y
@@ -8895,6 +8895,21 @@ rb_parser_end_seen_p(VALUE vparser)
return ruby__end__seen ? Qtrue : Qfalse;
}
+/*
+ * call-seq:
+ * ripper#encoding -> encoding
+ *
+ * Return encoding of the source.
+ */
+VALUE
+rb_parser_encoding(VALUE vparser)
+{
+ struct parser_params *parser;
+
+ Data_Get_Struct(vparser, struct parser_params, parser);
+ return rb_enc_from_encoding(parser->enc);
+}
+
#ifdef YYMALLOC
#define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
#define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
@@ -9415,6 +9430,7 @@ Init_ripper(void)
rb_define_method(Ripper, "column", ripper_column, 0);
rb_define_method(Ripper, "lineno", ripper_lineno, 0);
rb_define_method(Ripper, "end_seen?", rb_parser_end_seen_p, 0);
+ rb_define_method(Ripper, "encoding", rb_parser_encoding, 0);
#ifdef RIPPER_DEBUG
rb_define_method(rb_mKernel, "assert_Qundef", ripper_assert_Qundef, 2);
rb_define_method(rb_mKernel, "rawVALUE", ripper_value, 1);