Skip to content
Snippets Groups Projects
Commit f4f08df9 authored by Henrik (Grubba) Grubbström's avatar Henrik (Grubba) Grubbström
Browse files

Added decode_charset().

Rev: lib/master.pike.in:1.39
parent bc861da9
No related branches found
No related tags found
No related merge requests found
/* $Id: master.pike.in,v 1.38 1999/02/04 23:45:12 mast Exp $ /* $Id: master.pike.in,v 1.39 1999/02/26 01:08:52 grubba Exp $
* *
* Master-file for Pike. * Master-file for Pike.
* *
...@@ -473,6 +473,11 @@ class dirnode ...@@ -473,6 +473,11 @@ class dirnode
int _cache_full; int _cache_full;
void fill_cache() void fill_cache()
{ {
#ifdef RESOLV_DEBUG
werror(describe_backtrace(({ sprintf("Filling cache in dirnode %O\n",
dirname),
backtrace() })));
#endif /* RESOLV_DEBUG */
if (_cache_full) { if (_cache_full) {
return; return;
} }
...@@ -569,6 +574,10 @@ class joinnode ...@@ -569,6 +574,10 @@ class joinnode
int _cache_full; int _cache_full;
void fill_cache() void fill_cache()
{ {
#ifdef RESOLV_DEBUG
werror(describe_backtrace(({ "Filling cache in joinnode\n",
backtrace() })));
#endif /* RESOLV_DEBUG */
if (_cache_full) { if (_cache_full) {
return; return;
} }
...@@ -957,6 +966,38 @@ void compile_warning(string file,int line,string err) ...@@ -957,6 +966,38 @@ void compile_warning(string file,int line,string err)
} }
static mixed _charset_mod;
/* This function is called by cpp() when it wants to do
* character code conversion.
*/
string decode_charset(string data, string charset)
{
werror(sprintf("decode_charset(%O, %O)\n", data, charset));
if (!_charset_mod) {
mixed mod = resolv("Locale");
_charset_mod = mod && mod["Charset"];
if (!_charset_mod) {
compile_warning("-", 0, "No Locale.Charset module!");
return 0;
}
}
object decoder;
catch {
decoder = _charset_mod->decoder(charset);
};
if (!decoder) {
compile_warning("-", 0, sprintf("Unknown charset %O!", charset));
return 0;
}
return decoder->feed(data)->drain();
}
/* This function is called whenever an #include directive is encountered /* This function is called whenever an #include directive is encountered
* it receives the argument for #include and should return the file name * it receives the argument for #include and should return the file name
* of the file to include * of the file to include
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment