From 3cd040b6ef9ddfd9373083498a7537436f7ed0bb Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 16 Oct 2007 20:07:20 +0000 Subject: * 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 --- parse.y | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'parse.y') 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); -- cgit v1.2.3