From 1a3843311df6da4adb332057d6dc724ee1b8a585 Mon Sep 17 00:00:00 2001 From: Martin Nilsson <mani@lysator.liu.se> Date: Fri, 29 Nov 2002 01:52:48 +0100 Subject: [PATCH] Improved _sprintf Rev: lib/modules/ADT.pmod/History.pike:1.7 Rev: lib/modules/ADT.pmod/Relation.pmod/Binary.pike:1.5 Rev: lib/modules/ADT.pmod/Stack.pike:1.9 Rev: lib/modules/Audio.pmod/Codec.pmod:1.8 Rev: lib/modules/Audio.pmod/Format.pmod/module.pmod:1.5 Rev: lib/modules/Filesystem.pmod/System.pike:1.12 Rev: lib/modules/Filesystem.pmod/Tar.pmod:1.18 Rev: lib/modules/Filesystem.pmod/module.pmod:1.11 Rev: lib/modules/Geography.pmod/Countries.pmod:1.18 Rev: lib/modules/Geography.pmod/Position.pike:1.11 Rev: lib/modules/Locale.pmod/module.pmod:1.14 Rev: lib/modules/Parser.pmod/C.pmod:1.32 Rev: lib/modules/Parser.pmod/RCS.pike:1.27 Rev: lib/modules/Parser.pmod/XML.pmod/DOM.pmod:1.9 Rev: lib/modules/Parser.pmod/XML.pmod/NSTree.pmod:1.6 Rev: lib/modules/Parser.pmod/XML.pmod/Validating.pike:1.3 --- lib/modules/ADT.pmod/History.pike | 6 ++---- .../ADT.pmod/Relation.pmod/Binary.pike | 7 ++----- lib/modules/ADT.pmod/Stack.pike | 6 ++---- lib/modules/Audio.pmod/Codec.pmod | 7 ++----- .../Audio.pmod/Format.pmod/module.pmod | 5 +++-- lib/modules/Filesystem.pmod/System.pike | 4 ++-- lib/modules/Filesystem.pmod/Tar.pmod | 21 ++++++++++--------- lib/modules/Filesystem.pmod/module.pmod | 4 ++-- lib/modules/Geography.pmod/Countries.pmod | 4 +--- lib/modules/Geography.pmod/Position.pike | 7 +------ lib/modules/Locale.pmod/module.pmod | 17 +++++++-------- lib/modules/Parser.pmod/C.pmod | 4 ++-- lib/modules/Parser.pmod/RCS.pike | 8 +++---- lib/modules/Parser.pmod/XML.pmod/DOM.pmod | 7 ++++--- lib/modules/Parser.pmod/XML.pmod/NSTree.pmod | 8 +++---- .../Parser.pmod/XML.pmod/Validating.pike | 2 +- 16 files changed, 50 insertions(+), 67 deletions(-) diff --git a/lib/modules/ADT.pmod/History.pike b/lib/modules/ADT.pmod/History.pike index a89be2bf6f..88be71ea14 100644 --- a/lib/modules/ADT.pmod/History.pike +++ b/lib/modules/ADT.pmod/History.pike @@ -1,6 +1,6 @@ #pike __REAL_VERSION__ -// $Id: History.pike,v 1.6 2002/10/19 14:21:12 nilsson Exp $ +// $Id: History.pike,v 1.7 2002/11/29 00:28:44 nilsson Exp $ //! A history is a stack where you can only push entries. When the stack has //! reached a certain size the oldest entries are removed on every push. @@ -171,7 +171,5 @@ array _values() { } string _sprintf(int t) { - if(t=='O') return "ADT.History("+size+"/"+maxsize+")"; - if(t=='t') return "ADT.History"; - error("Can't print History object as '%c'.\n", t); + return t=='O' && sprintf("%O(%d/%d)", this_program, size, maxsize); } diff --git a/lib/modules/ADT.pmod/Relation.pmod/Binary.pike b/lib/modules/ADT.pmod/Relation.pmod/Binary.pike index 05e86ce07a..e10355af1a 100644 --- a/lib/modules/ADT.pmod/Relation.pmod/Binary.pike +++ b/lib/modules/ADT.pmod/Relation.pmod/Binary.pike @@ -1,4 +1,4 @@ -// $Id: Binary.pike,v 1.4 2002/09/12 14:24:49 stensson Exp $ +// $Id: Binary.pike,v 1.5 2002/11/29 00:28:24 nilsson Exp $ // An abstract data type for binary relations. private mapping val = ([]); @@ -231,10 +231,7 @@ array find_shortest_path(mixed from, mixed to, void|multiset avoiding) string _sprintf(int mode) { - if (mode == 'O') - return sprintf("ADT.Relation.Binary(%O)", id); - else - return "ADT.Relation.Binary"; + return mode=='O' && sprintf("%O(%O)", this_program, id); } //! Return the ID value which was given as first argument to create(). diff --git a/lib/modules/ADT.pmod/Stack.pike b/lib/modules/ADT.pmod/Stack.pike index 367e95f32b..56c0b589c0 100644 --- a/lib/modules/ADT.pmod/Stack.pike +++ b/lib/modules/ADT.pmod/Stack.pike @@ -1,6 +1,6 @@ #pike __REAL_VERSION__ -// $Id: Stack.pike,v 1.8 2002/06/14 00:56:33 nilsson Exp $ +// $Id: Stack.pike,v 1.9 2002/11/29 00:30:03 nilsson Exp $ //! This class implements a simple stack. Instead of adding and removing //! elements to an array, and thus making it vary in size for every push @@ -131,7 +131,5 @@ this_program `+(this_program s) { } string _sprintf(int t) { - if(t=='t') return "ADT.Stack"; - if(t=='O') return sprintf("ADT.Stack%O", _values()); - error("Can't display ADT.Stack as %c.", t); + return t=='O' && sprintf("%O%O", this_program, _values()); } diff --git a/lib/modules/Audio.pmod/Codec.pmod b/lib/modules/Audio.pmod/Codec.pmod index 93ac9fe113..a8243eab83 100644 --- a/lib/modules/Audio.pmod/Codec.pmod +++ b/lib/modules/Audio.pmod/Codec.pmod @@ -4,7 +4,7 @@ creator: Honza Petrous, hop@unibase.cz - $Id: Codec.pmod,v 1.7 2002/11/26 12:30:59 grubba Exp $ + $Id: Codec.pmod,v 1.8 2002/11/29 00:30:59 nilsson Exp $ */ @@ -117,10 +117,7 @@ class decoder { } static mixed _sprintf(int|void type) { - if(type == 't') - return "Audio.Codec"; - - return sprintf("Audio.Codec /* %O */", codec); + return type=='O' && sprintf("Audio.Codec(/* %O */)", codec); } } diff --git a/lib/modules/Audio.pmod/Format.pmod/module.pmod b/lib/modules/Audio.pmod/Format.pmod/module.pmod index 77e48b0b4b..6a17ce9a4e 100644 --- a/lib/modules/Audio.pmod/Format.pmod/module.pmod +++ b/lib/modules/Audio.pmod/Format.pmod/module.pmod @@ -4,7 +4,7 @@ // // Author: Honza Petrous, hop@unibase.cz // -// $Id: module.pmod,v 1.4 2002/09/17 12:40:18 hop Exp $ +// $Id: module.pmod,v 1.5 2002/11/29 00:30:37 nilsson Exp $ //#define AUDIO_FORMAT_DEBUG #ifdef AUDIO_FORMAT_DEBUG @@ -90,7 +90,8 @@ class ANY { } string _sprintf(int|void ctype) { - sprintf("Audio.Format.Any(\"%O\",%O)", buffer->fd, nochk); + return ctype=='O' && + sprintf("%O(\"%O\",%O)", this_program, buffer->fd, nochk); } //! diff --git a/lib/modules/Filesystem.pmod/System.pike b/lib/modules/Filesystem.pmod/System.pike index 7862cf0314..39da20b057 100644 --- a/lib/modules/Filesystem.pmod/System.pike +++ b/lib/modules/Filesystem.pmod/System.pike @@ -88,9 +88,9 @@ static void create(void|string directory, // default: cwd wd = directory; } -static string _sprintf() +static string _sprintf(int t) { - return sprintf("Filesystem.System(/* root=%O, wd=%O */)", root, wd); + return t=='O' && sprintf("%O(/* root=%O, wd=%O */)", this_program, root, wd); } Filesystem.Base cd(string directory) diff --git a/lib/modules/Filesystem.pmod/Tar.pmod b/lib/modules/Filesystem.pmod/Tar.pmod index 295f0cd944..b6623f0a65 100644 --- a/lib/modules/Filesystem.pmod/Tar.pmod +++ b/lib/modules/Filesystem.pmod/Tar.pmod @@ -1,5 +1,5 @@ /* - * $Id: Tar.pmod,v 1.17 2002/11/24 15:18:52 marcus Exp $ + * $Id: Tar.pmod,v 1.18 2002/11/29 00:35:51 nilsson Exp $ */ #pike __REAL_VERSION__ @@ -25,9 +25,9 @@ class _Tar // filesystem static private int start, pos, len; - static string _sprintf() + static string _sprintf(int t) { - return sprintf("Filesystems.Tar.ReadFile(%d, %d /* pos = %d */)", + return t=='O' && sprintf("Filesystem.Tar.ReadFile(%d, %d /* pos = %d */)", start, len, pos); } @@ -249,9 +249,9 @@ class _Tar // filesystem filenames = indices(filename_to_entry); } - string _sprintf() + string _sprintf(int t) { - return sprintf("_Tar(/* filename=%O */)", filename); + return t=='O' && sprintf("_Tar(/* filename=%O */)", filename); } }; @@ -280,9 +280,9 @@ class _TarFS parent = _parent; } - string _sprintf() + string _sprintf(int t) { - return sprintf("_TarFS(/* root=%O, wd=%O */)", root, wd); + return t=='O' && sprintf("_TarFS(/* root=%O, wd=%O */)", root, wd); } Filesystem.Stat stat(string file, void|int lstat) @@ -355,10 +355,11 @@ class `() _TarFS::create(tar, "/", "", parent); } - string _sprintf() + string _sprintf(int t) { - return sprintf("Filesystem.Tar(/* tar->filename=%O, root=%O, wd=%O */)", - tar && tar->filename, root, wd); + return t=='O' && + sprintf("Filesystem.Tar(/* tar->filename=%O, root=%O, wd=%O */)", + tar && tar->filename, root, wd); } } diff --git a/lib/modules/Filesystem.pmod/module.pmod b/lib/modules/Filesystem.pmod/module.pmod index 9aa5f07d02..486fa88773 100644 --- a/lib/modules/Filesystem.pmod/module.pmod +++ b/lib/modules/Filesystem.pmod/module.pmod @@ -153,9 +153,9 @@ class Stat path?fullpath:name); } - string _sprintf() + string _sprintf(int t) { - return sprintf("Stat(/* %s */)", lsprint(1)); + return t=='O' && sprintf("Stat(/* %s */)", lsprint(1)); } } diff --git a/lib/modules/Geography.pmod/Countries.pmod b/lib/modules/Geography.pmod/Countries.pmod index 4fd7c710c6..2ddcbf7ed4 100644 --- a/lib/modules/Geography.pmod/Countries.pmod +++ b/lib/modules/Geography.pmod/Countries.pmod @@ -384,9 +384,7 @@ class Country string _sprintf(int t) { - if (t=='O') - return "Country("+name+")"; - return 0; + return t=='O' && sprintf("%O(%s)", this_program, name); } } diff --git a/lib/modules/Geography.pmod/Position.pike b/lib/modules/Geography.pmod/Position.pike index 4bda8a8426..6aaa7595a4 100644 --- a/lib/modules/Geography.pmod/Position.pike +++ b/lib/modules/Geography.pmod/Position.pike @@ -529,10 +529,5 @@ int `>(object pos) //! string _sprintf(int|void t) { - switch(t) - { - case 't': return "Geography.Position"; - case 'O': return "Position("+latitude()+", "+longitude()+")"; - } - return 0; + return t=='O' && sprintf("%O(%s, %s)", latitude(), longitude()); } diff --git a/lib/modules/Locale.pmod/module.pmod b/lib/modules/Locale.pmod/module.pmod index 09bd8381b7..721e2b1143 100644 --- a/lib/modules/Locale.pmod/module.pmod +++ b/lib/modules/Locale.pmod/module.pmod @@ -86,10 +86,10 @@ static class LanguageListObject( array(string) languages ) { int timestamp = time(1); - static string _sprintf() + static string _sprintf(int t) { - return sprintf("LanguageListObject(timestamp: %d, %O)", - timestamp, languages); + return t=='O' && sprintf("%O(timestamp: %d, %O)", this_program, + timestamp, languages); } } @@ -196,10 +196,11 @@ class LocaleObject return size; } - static string _sprintf() + static string _sprintf(int t) { - return sprintf("LocaleObject(timestamp: %d, bindings: %d, functions: %d)", - timestamp, sizeof(bindings), sizeof(functions) ); + return t=='O' && sprintf("%O(timestamp: %d, bindings: %d, functions: %d)", + this_program, timestamp, sizeof(bindings), + sizeof(functions) ); } } @@ -487,9 +488,7 @@ class DeferredLocale( static string project, case 's': return lookup(); case 'O': - return sprintf("DeferredLocale(%O)", lookup()); - default: - error(sprintf("Illegal formatting char '%c'\n", c)); + return sprintf("%O(%O)", this_program, lookup()); } } diff --git a/lib/modules/Parser.pmod/C.pmod b/lib/modules/Parser.pmod/C.pmod index 3d4d1ccd8a..53fcc57c47 100644 --- a/lib/modules/Parser.pmod/C.pmod +++ b/lib/modules/Parser.pmod/C.pmod @@ -4,7 +4,7 @@ // // #pike __REAL_VERSION__ // -// $Id: C.pmod,v 1.31 2002/09/22 18:13:52 nilsson Exp $ +// $Id: C.pmod,v 1.32 2002/11/29 00:38:32 nilsson Exp $ mapping(string:string) global_groupings=(["{":"}","(":")","[":"]"]); @@ -238,7 +238,7 @@ class Token case 's': return text; case 'O': - return sprintf("Token(%O,%O,%d)",text,file,line); + return sprintf("%O(%O,%O,%d)",this_program,text,file,line); } } diff --git a/lib/modules/Parser.pmod/RCS.pike b/lib/modules/Parser.pmod/RCS.pike index 25aaf39d2e..03996e1ae1 100644 --- a/lib/modules/Parser.pmod/RCS.pike +++ b/lib/modules/Parser.pmod/RCS.pike @@ -1,6 +1,6 @@ #pike __REAL_VERSION__ -// $Id: RCS.pike,v 1.26 2002/11/26 21:04:41 grubba Exp $ +// $Id: RCS.pike,v 1.27 2002/11/29 00:52:48 nilsson Exp $ //! A RCS file parser that eats a RCS *,v file and presents nice pike //! data structures of its contents. @@ -75,10 +75,8 @@ mapping(string:string) branches; string _sprintf(int type) { - if(type=='t') - return "RCS"; - return sprintf("RCS(/* %d revisions */)", - revisions && sizeof(revisions)); + return type=='O' && sprintf("%O(/* %d revisions */)", this_program, + revisions && sizeof(revisions)); } //! Data for all revisions of the file. The indices of the mapping are diff --git a/lib/modules/Parser.pmod/XML.pmod/DOM.pmod b/lib/modules/Parser.pmod/XML.pmod/DOM.pmod index 862bd9821a..8ca2a4b678 100644 --- a/lib/modules/Parser.pmod/XML.pmod/DOM.pmod +++ b/lib/modules/Parser.pmod/XML.pmod/DOM.pmod @@ -58,7 +58,8 @@ class DOMException(int code) { static string _sprintf(int mode, mapping options) { - return mode == 'O' && "DOMException(" + (symbolic[code]||code) + ")"; + return mode == 'O' && sprintf("%O(%s)", this_program, + (string)(symbolic[code]||code) ); } }; @@ -1003,8 +1004,8 @@ class ParseException static string _sprintf(int mode, mapping options) { return mode == 'O' && - sprintf("DOM.ParseException(%O /* %O char %d */)", - message, sysid, loc); + sprintf("%O(%O /* %O char %d */)", + this_program, message, sysid, loc); } static void create(string _message, string|void _sysid, string|void _pubid, diff --git a/lib/modules/Parser.pmod/XML.pmod/NSTree.pmod b/lib/modules/Parser.pmod/XML.pmod/NSTree.pmod index 791629b4f6..3389577309 100644 --- a/lib/modules/Parser.pmod/XML.pmod/NSTree.pmod +++ b/lib/modules/Parser.pmod/XML.pmod/NSTree.pmod @@ -244,7 +244,6 @@ class NSNode { } string _sprintf(int t) { - if(t=='t') return "NSNode"; if(t=='O') { mapping nt = ([ XML_ROOT:"ROOT", XML_ELEMENT:"ELEMENT", @@ -256,10 +255,11 @@ class NSNode { XML_ATTR:"ATTR" ]); string n = get_any_name(); if(!n || !sizeof(n)) - return sprintf("NSNode(%s)", nt[get_node_type()] || "UNKNOWN"); - return sprintf("NSNode(%s,%O)", nt[get_node_type()] || "UNKNOWN", n); + return sprintf("%O(%s)", this_program, + nt[get_node_type()] || "UNKNOWN"); + return sprintf("%O(%s,%O)", this_program, + nt[get_node_type()] || "UNKNOWN", n); } - error("Can't show object as %c.\n", t); } } diff --git a/lib/modules/Parser.pmod/XML.pmod/Validating.pike b/lib/modules/Parser.pmod/XML.pmod/Validating.pike index 30e294af79..790209e89d 100644 --- a/lib/modules/Parser.pmod/XML.pmod/Validating.pike +++ b/lib/modules/Parser.pmod/XML.pmod/Validating.pike @@ -71,7 +71,7 @@ static private class Element { string _sprintf(int mode, mapping options) { - return mode=='O' && "Element(\""+name+"\")"; + return mode=='O' && sprintf("%O(%O)", this_program, name); } int accept_element(string name) -- GitLab