diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4e760588e4a2501aad0fcb0b5490724e8c130cce..efcaac777e6e87667867076f7a00fedfa07539ad 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2004-02-11  Eric Christopher  <echristo@redhat.com>
+
+	* cppcharset.c (_cpp_interpret_string_notranslate): Rename and
+	duplicate argument structure of cpp_interpret_string.
+	* cpphash.h: Move prototype...
+	* cpplib.h: Here.
+	* cpplib.c: Fix calls to match new function signature.
+
 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
 
 	PR c/456
@@ -117,7 +125,7 @@
 	source_location.
 
 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
-	
+
 	* config/rs6000/altivec.md (*movv4si_internal): At least one
 	operand must be register_operand.
 	(*movv8hi_internal1): Likewise.
@@ -150,7 +158,7 @@
 	Set AltiVec ABI and vrsave as default for ppc64 linux.
 	(init_cumulative_args): Post error, if try to return
 	value in AltiVec register without enable AltiVec.
-	(function_arg_advance): Ditto for passing arguments. 
+	(function_arg_advance): Ditto for passing arguments.
 
 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
 
diff --git a/gcc/cppcharset.c b/gcc/cppcharset.c
index b73128d60e9b293d3fbe7102080cc039b1fb8280..b46f47a1fe0461c5129c1a43b7da00d9bcd7c890 100644
--- a/gcc/cppcharset.c
+++ b/gcc/cppcharset.c
@@ -1186,8 +1186,8 @@ cpp_interpret_string (cpp_reader *pfile, const cpp_string *from, size_t count,
 /* Subroutine of do_line and do_linemarker.  Convert escape sequences
    in a string, but do not perform character set conversion.  */
 bool
-_cpp_interpret_string_notranslate (cpp_reader *pfile, const cpp_string *in,
-				   cpp_string *out)
+cpp_interpret_string_notranslate (cpp_reader *pfile, const cpp_string *from,
+				  size_t count,	cpp_string *to, bool wide)
 {
   struct cset_converter save_narrow_cset_desc = pfile->narrow_cset_desc;
   bool retval;
@@ -1195,7 +1195,7 @@ _cpp_interpret_string_notranslate (cpp_reader *pfile, const cpp_string *in,
   pfile->narrow_cset_desc.func = convert_no_conversion;
   pfile->narrow_cset_desc.cd = (iconv_t) -1;
 
-  retval = cpp_interpret_string (pfile, in, 1, out, false);
+  retval = cpp_interpret_string (pfile, from, count, to, wide);
 
   pfile->narrow_cset_desc = save_narrow_cset_desc;
   return retval;
diff --git a/gcc/cpphash.h b/gcc/cpphash.h
index d704c092d0f0617d09c6fd7afdfcb0c4d341a1c1..5c14a64e07fc8f11a24943b1cd461e4fccf35f6c 100644
--- a/gcc/cpphash.h
+++ b/gcc/cpphash.h
@@ -595,9 +595,6 @@ extern size_t _cpp_replacement_text_len (const cpp_macro *);
 extern cppchar_t _cpp_valid_ucn (cpp_reader *, const uchar **,
 				 const uchar *, int);
 extern void _cpp_destroy_iconv (cpp_reader *);
-extern bool _cpp_interpret_string_notranslate (cpp_reader *,
-					       const cpp_string *,
-					       cpp_string *);
 extern uchar *_cpp_convert_input (cpp_reader *, const char *, uchar *,
 				  size_t, size_t, off_t *);
 extern const char *_cpp_default_encoding (void);
diff --git a/gcc/cpplib.c b/gcc/cpplib.c
index 3165351f28d6f03eff0daff9f30916b817a40a74..f2556b385a09022d3697f089cf2b22299968d09c 100644
--- a/gcc/cpplib.c
+++ b/gcc/cpplib.c
@@ -804,7 +804,8 @@ do_line (cpp_reader *pfile)
   if (token->type == CPP_STRING)
     {
       cpp_string s = { 0, 0 };
-      if (_cpp_interpret_string_notranslate (pfile, &token->val.str, &s))
+      if (cpp_interpret_string_notranslate (pfile, &token->val.str, 1,
+					    &s, false))
 	new_file = (const char *)s.text;
       check_eol (pfile);
     }
@@ -855,7 +856,8 @@ do_linemarker (cpp_reader *pfile)
   if (token->type == CPP_STRING)
     {
       cpp_string s = { 0, 0 };
-      if (_cpp_interpret_string_notranslate (pfile, &token->val.str, &s))
+      if (cpp_interpret_string_notranslate (pfile, &token->val.str,
+					    1, &s, false))
 	new_file = (const char *)s.text;
 
       new_sysp = 0;
diff --git a/gcc/cpplib.h b/gcc/cpplib.h
index 11838212ea51f9c541f6ea7d80ca1c8482fec3a0..dbbf85b06c46ad9a35a8f3b4451b2bcfa22e4666 100644
--- a/gcc/cpplib.h
+++ b/gcc/cpplib.h
@@ -581,6 +581,9 @@ extern cppchar_t cpp_interpret_charconst (cpp_reader *, const cpp_token *,
 extern bool cpp_interpret_string (cpp_reader *,
 				  const cpp_string *, size_t,
 				  cpp_string *, bool);
+extern bool cpp_interpret_string_notranslate (cpp_reader *,
+					      const cpp_string *, size_t,
+					      cpp_string *, bool);
 
 /* Used to register macros and assertions, perhaps from the command line.
    The text is the same as the command line argument.  */