gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/asobj/Sound.cpp server/a...


From: John Gilmore
Subject: [Gnash-commit] gnash ChangeLog server/asobj/Sound.cpp server/a...
Date: Wed, 18 Apr 2007 14:07:34 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     John Gilmore <jgilmore> 07/04/18 14:07:33

Modified files:
        .              : ChangeLog 
        server/asobj   : Sound.cpp SoundFfmpeg.cpp SoundGst.cpp 
                         SoundMad.cpp Stage.cpp System.cpp 
                         TextSnapshot.cpp Video.cpp gen-asclass.pl 
                         gen-asclass.sh string.cpp xml.cpp xmlnode.cpp 
                         xmlsocket.cpp 
        server/parser  : BitmapMovieDefinition.cpp action_buffer.cpp 
                         button_character_def.cpp 
                         edit_text_character_def.cpp 
                         morph2_character_def.cpp movie_def_impl.cpp 
                         shape_character_def.cpp sprite_definition.cpp 
                         sprite_definition.h text_character_def.cpp 
        server/swf     : DefineFontAlignZonesTag.cpp PlaceObject2Tag.cpp 
                         tag_loaders.cpp 
        server/vm      : ASHandlers.cpp ActionExec.cpp action.cpp 
        libbase        : curl_adapter.cpp extension.cpp log.cpp 
                         network.cpp FLVParser.cpp FLVParser.h 

Log message:
        * Internationalization, phase 2.
        
        * These modules have had their printed messages passed through
          _(...).  Those messages have also been cleaned up, thusly:
            *  Stray \n's removed
            *  Exclamation points and periods removed at ends of messages
            *  Typos corrected, and English language wording adjusted.
            *  Misplaced UPPER CASE shouting removed.
            *  Many complaints about unknown types, values, etc, now include
               the offending value, for ease of remote diagnosis.
            *  C++-style << printouts converted to log_xxx calls.
            *  Direct accesses to dbglogfile converted to log_xxx calls.
            *  printf converted to log_xxx calls.
            *  Function name debug prints converted to GNASH_REPORT_FUNCTION.
          These changes should also make the messages easier to translate.
        * Commented-out messages were also cleaned up as above.
        * Many modules have also had log_warning calls changed to log_msg,
          log_error, log_aserror, log_swferror, or log_unimp, according to
          the documentation checked in earlier by strk and gnu.
          IF_VERBOSE_xxx macros were inserted around some calls that
          lacked them.
        * Header comments (at the top of the file) added or adjusted, to
          describe each file in its initial line, and to correct whitespace
          in the copyright notices.  Eliminate trailing spaces and tabs.
        
        * The list of files affected by the above changes:
          server/asobj/Sound.cpp
          server/asobj/SoundFfmpeg.cpp
          server/asobj/SoundGst.cpp
          server/asobj/SoundMad.cpp
          server/asobj/Stage.cpp        
          server/asobj/System.cpp       
          server/asobj/TextSnapshot.cpp 
          server/asobj/Video.cpp        
          server/asobj/gen-asclass.pl
          server/asobj/gen-asclass.sh
          server/asobj/string.cpp
          server/asobj/xml.cpp
          server/asobj/xmlnode.cpp
          server/asobj/xmlsocket.cpp
          server/parser/BitmapMovieDefinition.cpp
          server/parser/action_buffer.cpp
          server/parser/button_character_def.cpp
          server/parser/edit_text_character_def.cpp
          server/parser/morph2_character_def.cpp
          server/parser/movie_def_impl.cpp
          server/parser/shape_character_def.cpp
          server/parser/sprite_definition.cpp
          server/parser/sprite_definition.h
          server/parser/text_character_def.cpp
          server/swf/DefineFontAlignZonesTag.cpp        
          server/swf/PlaceObject2Tag.cpp
          server/swf/tag_loaders.cpp
          server/vm/ASHandlers.cpp
          server/vm/ActionExec.cpp
          server/vm/action.cpp
          libbase/curl_adapter.cpp
          libbase/extension.cpp
          libbase/log.cpp
          libbase/network.cpp
        
        * 2007 copyright notices were inserted in:
          libbase/curl_adapter.cpp
        
        * New 2006, 2007 Free Software Foundation copyrights applied (to
          formerly public domain code):
          server/parser/button_character_def.cpp
          server/parser/edit_text_character_def.cpp
          server/parser/morph2_character_def.cpp
          server/parser/movie_def_impl.cpp
          server/parser/shape_character_def.cpp
         
        * server/asobj/gen-asclass.{pl,sh}:  Use log_unimpl in generated code.
          Improve whitespace, and generate header line describing the file.
        * text_character_def.cpp:  Remove commented-out includes.
        * FLVParser.{cpp,h}:  Fix compiler warning (signed/unsigned).
        
        I'm sure that I've missed some messages that ought to get 
        translated (with _(...)).  Those will be fixed over time.
        All new messages should be created with _(...) so they can
        be translated.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2910&r2=1.2911
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Sound.cpp?cvsroot=gnash&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/SoundFfmpeg.cpp?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/SoundGst.cpp?cvsroot=gnash&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/SoundMad.cpp?cvsroot=gnash&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Stage.cpp?cvsroot=gnash&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/System.cpp?cvsroot=gnash&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/TextSnapshot.cpp?cvsroot=gnash&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Video.cpp?cvsroot=gnash&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/gen-asclass.pl?cvsroot=gnash&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/gen-asclass.sh?cvsroot=gnash&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/string.cpp?cvsroot=gnash&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xml.cpp?cvsroot=gnash&r1=1.39&r2=1.40
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xmlnode.cpp?cvsroot=gnash&r1=1.32&r2=1.33
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/xmlsocket.cpp?cvsroot=gnash&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/BitmapMovieDefinition.cpp?cvsroot=gnash&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/action_buffer.cpp?cvsroot=gnash&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/button_character_def.cpp?cvsroot=gnash&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/edit_text_character_def.cpp?cvsroot=gnash&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/morph2_character_def.cpp?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/movie_def_impl.cpp?cvsroot=gnash&r1=1.66&r2=1.67
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/shape_character_def.cpp?cvsroot=gnash&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/sprite_definition.cpp?cvsroot=gnash&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/sprite_definition.h?cvsroot=gnash&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/text_character_def.cpp?cvsroot=gnash&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/DefineFontAlignZonesTag.cpp?cvsroot=gnash&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/PlaceObject2Tag.cpp?cvsroot=gnash&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/tag_loaders.cpp?cvsroot=gnash&r1=1.88&r2=1.89
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.96&r2=1.97
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ActionExec.cpp?cvsroot=gnash&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/action.cpp?cvsroot=gnash&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/curl_adapter.cpp?cvsroot=gnash&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/extension.cpp?cvsroot=gnash&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/log.cpp?cvsroot=gnash&r1=1.46&r2=1.47
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/network.cpp?cvsroot=gnash&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/FLVParser.cpp?cvsroot=gnash&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/FLVParser.h?cvsroot=gnash&r1=1.2&r2=1.3

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2910
retrieving revision 1.2911
diff -u -b -r1.2910 -r1.2911
--- ChangeLog   18 Apr 2007 13:57:25 -0000      1.2910
+++ ChangeLog   18 Apr 2007 14:07:32 -0000      1.2911
@@ -51,6 +51,7 @@
               the offending value, for ease of remote diagnosis.
            *  C++-style << printouts converted to log_xxx calls.
            *  Direct accesses to dbglogfile converted to log_xxx calls.
+           *  printf converted to log_xxx calls.
            *  Function name debug prints converted to GNASH_REPORT_FUNCTION.
          These changes should also make the messages easier to translate.
        * Commented-out messages were also cleaned up as above.
@@ -61,7 +62,7 @@
          lacked them.
        * Header comments (at the top of the file) added or adjusted, to
          describe each file in its initial line, and to correct whitespace
-         in the copyright notices.
+         in the copyright notices.  Eliminate trailing spaces and tabs.
        
        * The list of files affected by the above changes:
          backend/sound_handler_sdl.cpp
@@ -112,6 +113,40 @@
          server/asobj/Object.cpp
          server/asobj/Selection.cpp
          server/asobj/SharedObject.cpp
+         server/asobj/Sound.cpp
+         server/asobj/SoundFfmpeg.cpp
+         server/asobj/SoundGst.cpp
+         server/asobj/SoundMad.cpp
+         server/asobj/Stage.cpp        
+         server/asobj/System.cpp       
+         server/asobj/TextSnapshot.cpp 
+         server/asobj/Video.cpp        
+         server/asobj/gen-asclass.pl
+         server/asobj/gen-asclass.sh
+         server/asobj/string.cpp
+         server/asobj/xml.cpp
+         server/asobj/xmlnode.cpp
+         server/asobj/xmlsocket.cpp
+         server/parser/BitmapMovieDefinition.cpp
+         server/parser/action_buffer.cpp
+         server/parser/button_character_def.cpp
+         server/parser/edit_text_character_def.cpp
+         server/parser/morph2_character_def.cpp
+         server/parser/movie_def_impl.cpp
+         server/parser/shape_character_def.cpp
+         server/parser/sprite_definition.cpp
+         server/parser/sprite_definition.h
+         server/parser/text_character_def.cpp
+         server/swf/DefineFontAlignZonesTag.cpp        
+         server/swf/PlaceObject2Tag.cpp
+         server/swf/tag_loaders.cpp
+         server/vm/ASHandlers.cpp
+         server/vm/ActionExec.cpp
+         server/vm/action.cpp
+          libbase/curl_adapter.cpp
+         libbase/extension.cpp
+         libbase/log.cpp
+         libbase/network.cpp
        
        * 2007 copyright notices were inserted in:
          backend/sound_handler_sdl.cpp
@@ -120,11 +155,17 @@
          plugin/klash/klash.cpp
          plugin/win32/plugin.cpp
          server/generic_character.cpp
+          libbase/curl_adapter.cpp
        
        * New 2006, 2007 Free Software Foundation copyrights applied (to
          formerly public domain code):
          server/font.cpp
          server/text.cpp
+         server/parser/button_character_def.cpp
+         server/parser/edit_text_character_def.cpp
+         server/parser/morph2_character_def.cpp
+         server/parser/movie_def_impl.cpp
+         server/parser/shape_character_def.cpp
         
        * backend/sound_handler_sdl.cpp: Move stray FORMAT_VORBIS comment.
        * gui/gui.cpp: Commented out "Resize request when no movie" error
@@ -137,6 +178,10 @@
          function, so it can use log_xxx functions.
        * server/sprite_instance.cpp (sprite_attach_movie):  Comment out
          log_msg about initializing properties.
+        * server/asobj/gen-asclass.{pl,sh}:  Use log_unimpl in generated code.
+         Improve whitespace, and generate header line describing the file.
+       * text_character_def.cpp:  Remove commented-out includes.
+       * FLVParser.{cpp,h}:  Fix compiler warning (signed/unsigned).
        
        I'm sure that I've missed some messages that ought to get 
        translated (with _(...)).  Those will be fixed over time.

Index: server/asobj/Sound.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Sound.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- server/asobj/Sound.cpp      16 Apr 2007 18:23:06 -0000      1.14
+++ server/asobj/Sound.cpp      18 Apr 2007 14:07:32 -0000      1.15
@@ -1,3 +1,4 @@
+// Sound.cpp:  ActionScript Sound output stub class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -5,12 +6,12 @@
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation; either version 2 of the License, or
 // (at your option) any later version.
-
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
@@ -83,7 +84,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
 }
@@ -94,7 +95,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
 }
@@ -105,7 +106,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
 }
@@ -116,7 +117,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
 }
@@ -136,10 +137,10 @@
 void
 Sound::loadSound(std::string file, bool /*streaming*/)
 {
-       log_msg("%s is still testing!!", __FUNCTION__);
+       log_msg(_("%s is still testing!"), __FUNCTION__);
 
        if (connection) {
-               log_warning("This sound already has a connection?? (We try to 
handle this by deleting the old one...)");
+               log_error(_("%s: This sound already has a connection?  (We try 
to handle this by deleting the old one...)"), __FUNCTION__);
                delete connection;
        }
        externalURL = file;
@@ -154,7 +155,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
 }
@@ -165,7 +166,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
 }
@@ -213,7 +214,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: only works when ffmpeg, gstreamer or libmad is 
enabled", __FUNCTION__);
+               log_error(_("%s: only works when ffmpeg, gstreamer or libmad is 
enabled"), __FUNCTION__);
                warned = true;
        }
        return 0;
@@ -225,7 +226,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_error("%s: only works when ffmpeg, gstreamer or libmad is 
enabled", __FUNCTION__);
+               log_error(_("%s: only works when ffmpeg, gstreamer or libmad is 
enabled"), __FUNCTION__);
                warned = true;
        }
        return 0;
@@ -252,7 +253,9 @@
 as_value
 sound_start(const fn_call& fn)
 {
-       log_action("-- start sound");
+       IF_VERBOSE_ACTION (
+       log_action(_("-- start sound"));
+       )
        boost::intrusive_ptr<Sound> so = ensureType<Sound>(fn.this_ptr);
        int loop = 0;
        int secondOffset = 0;
@@ -275,7 +278,9 @@
 as_value
 sound_stop(const fn_call& fn)
 {
-       log_action("-- stop sound ");
+       IF_VERBOSE_ACTION (
+       log_action(_("-- stop sound "));
+       )
        boost::intrusive_ptr<Sound> so = ensureType<Sound>(fn.this_ptr);
 
        int si = -1;
@@ -290,7 +295,7 @@
                if (res == NULL)
                {
                        IF_VERBOSE_MALFORMED_SWF(
-                   log_swferror("import error: resource '%s' is not exported", 
name.c_str());
+                   log_swferror(_("import error: resource '%s' is not 
exported"), name.c_str());
                        );
                    return as_value();
                }
@@ -304,7 +309,7 @@
                }
                else
                {
-                   log_error("sound sample is NULL (doesn't cast to 
sound_sample)");
+                   log_error(_("sound sample is NULL (doesn't cast to 
sound_sample)"));
                    return as_value();
                }
 
@@ -316,11 +321,13 @@
 as_value
 sound_attachsound(const fn_call& fn)
 {
-    log_action("-- attach sound");
+    IF_VERBOSE_ACTION (
+    log_action(_("-- attach sound"));
+    )
     if (fn.nargs < 1)
        {
                IF_VERBOSE_ASCODING_ERRORS(
-           log_aserror("attach sound needs one argument");
+           log_aserror(_("attach sound needs one argument"));
                );
            return as_value();
        }
@@ -330,7 +337,7 @@
     const std::string& name = fn.arg(0).to_string(&(fn.env()));
     if (name.empty()) {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("attachSound need a non-empty string");
+               log_aserror(_("attachSound needs a non-empty string"));
                );
                return as_value();
        }
@@ -342,7 +349,7 @@
        if (res == NULL)
        {
                IF_VERBOSE_MALFORMED_SWF(
-               log_swferror("import error: resource '%s' is not exported", 
name.c_str());
+               log_swferror(_("import error: resource '%s' is not exported"), 
name.c_str());
                        );
                return as_value();
        }
@@ -356,7 +363,7 @@
        }
        else
        {
-               log_error("sound sample is NULL (doesn't cast to 
sound_sample)");
+               log_error(_("sound sample is NULL (doesn't cast to 
sound_sample)"));
                return as_value();
        }
 
@@ -372,7 +379,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
        return as_value();
@@ -384,7 +391,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
        return as_value();
@@ -396,7 +403,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
        return as_value();
@@ -408,7 +415,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
        return as_value();
@@ -431,7 +438,7 @@
 {
        if (fn.nargs != 2) {
                IF_VERBOSE_ASCODING_ERRORS(
-           log_aserror("loadSound needs 2 arguments!");
+           log_aserror(_("loadSound needs 2 arguments"));
                );
            return as_value();          
        }
@@ -448,7 +455,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
        return as_value();
@@ -460,7 +467,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
        return as_value();
@@ -472,7 +479,7 @@
        if (fn.nargs < 1)
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("set volume of sound needs one argument");
+               log_aserror(_("set volume of sound needs one argument"));
                );
                return as_value();
        }
@@ -497,7 +504,7 @@
        static bool warned = false;
        if ( ! warned )
        {
-               log_warning("%s: unimplemented", __FUNCTION__);
+               log_unimpl (__FUNCTION__);
                warned = true;
        }
        return as_value();
@@ -579,4 +586,3 @@
 }
 
 } // end of gnash namespace
-

Index: server/asobj/SoundFfmpeg.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/SoundFfmpeg.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- server/asobj/SoundFfmpeg.cpp        4 Apr 2007 20:30:45 -0000       1.6
+++ server/asobj/SoundFfmpeg.cpp        18 Apr 2007 14:07:32 -0000      1.7
@@ -1,3 +1,4 @@
+// SoundFfmpeg.cpp:  Gnash sound output via FFMPEG library.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -5,12 +6,12 @@
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation; either version 2 of the License, or
 // (at your option) any later version.
-
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
@@ -88,7 +89,8 @@
        // Pass stuff from/to the NetConnection object.
        assert(so);
        if ( !nc->openConnection(so->externalURL.c_str(), so) ) {
-               log_warning("Gnash could not open audio url: %s", 
so->externalURL.c_str());
+               log_error(_("%s could not open audio url: %s"), 
+                               __FUNCTION__, so->externalURL.c_str());
                delete so->lock;
                return;
        }
@@ -110,7 +112,8 @@
        pd->buf_size = 2048;
 
        if (readPacket(so, pd->buf, pd->buf_size) < 1){
-               log_warning("Gnash could not read from audio url: %s", 
so->externalURL.c_str());
+               log_error(_("%s: could not read from audio url: %s"), 
+                               __FUNCTION__, so->externalURL.c_str());
                delete[] pd->buf;
                delete so->lock;
                return;
@@ -130,7 +133,7 @@
 
        // Open the stream. the 4th argument is the filename, which we ignore.
        if(av_open_input_stream(&so->formatCtx, &so->ByteIOCxt, "", inputFmt, 
NULL) < 0){
-               log_error("Couldn't open file '%s' for decoding", 
so->externalURL.c_str());
+               log_error(_("Couldn't open file '%s' for decoding"), 
so->externalURL.c_str());
                delete so->lock;
                return;
        }
@@ -140,7 +143,7 @@
        int ret = av_find_stream_info(so->formatCtx);
        if (ret < 0)
        {
-               log_error("Couldn't find stream information from '%s', error 
code: %d", so->externalURL.c_str(), ret);
+               log_error(_("Couldn't find stream information from '%s', error 
code: %d"), so->externalURL.c_str(), ret);
                delete so->lock;
                return;
        }
@@ -166,14 +169,16 @@
                        case CODEC_TYPE_DATA:
                        case CODEC_TYPE_SUBTITLE:
                        case CODEC_TYPE_UNKNOWN:
-                               log_warning("Non-audio data found in file 
%s\n", so->externalURL.c_str());
+                               log_error(_("Non-audio data (type %d) found in 
file %s"),
+                                  enc->codec_type, so->externalURL.c_str());
+               
                                break;
                }
        }
 
        if (so->audioIndex < 0)
        {
-               log_error("Didn't find a audio stream from '%s'", 
so->externalURL.c_str());
+               log_error(_("Didn't find a audio stream from '%s'"), 
so->externalURL.c_str());
                return;
        }
 
@@ -184,7 +189,8 @@
        AVCodec* pACodec = avcodec_find_decoder(so->audioCodecCtx->codec_id);
     if(pACodec == NULL)
        {
-               log_error("No available AUDIO decoder to process file: '%s'", 
so->externalURL.c_str());
+               log_error(_("No available audio decoder %d to process file: 
'%s'"),
+                  so->audioCodecCtx->codec_id, so->externalURL.c_str());
                delete so->lock;
                return;
        }
@@ -192,7 +198,8 @@
        // Open codec
        if (avcodec_open(so->audioCodecCtx, pACodec) < 0)
        {
-               log_error("Could not open AUDIO codec");
+               log_error(_("Could not open audio codec %d for %s"),
+                  so->audioCodecCtx->codec_id, so->externalURL.c_str());
                delete so->lock;
                return;
        }
@@ -310,7 +317,7 @@
 
                                // Seek to begining of file
                                if (av_seek_frame(so->formatCtx, 
so->audioIndex, 0, 0) < 0) {
-                                       log_warning("seeking to start of file 
(for looping) failed\n");
+                                       log_error(_("seeking to start of file 
(for looping) failed"));
                                        so->remainingLoops = 0;
                                }
                        } else {
@@ -362,7 +369,7 @@
        remainingLoops = 0;
 
        if (connection) {
-               log_warning("This sound already has a connection?? (We try to 
handle this by deleting the old one...)\n");
+               log_error(_("This sound already has a connection.  (We try to 
handle this by deleting the old one...)"));
                delete connection;
        }
        externalURL = file;
@@ -392,7 +399,8 @@
                        long newpos = (long)(offset / timebase);
 
                        if (av_seek_frame(formatCtx, audioIndex, newpos, 0) < 
0) {
-                               log_warning("seeking to offset failed\n");
+                               log_error(_("%s: seeking to offset failed"),
+                                       __FUNCTION__);
                        }
                }
                // Save how many loops to do
@@ -459,4 +467,3 @@
 }
 
 } // end of gnash namespace
-

Index: server/asobj/SoundGst.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/SoundGst.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- server/asobj/SoundGst.cpp   23 Mar 2007 00:30:10 -0000      1.4
+++ server/asobj/SoundGst.cpp   18 Apr 2007 14:07:32 -0000      1.5
@@ -1,3 +1,4 @@
+// SoundGst.cpp:  Produce sound for gnash, via Gstreamer library.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -5,12 +6,12 @@
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation; either version 2 of the License, or
 // (at your option) any later version.
-
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
@@ -104,7 +105,7 @@
 void
 SoundGst::callback_newpad (GstElement* /*decodebin*/, GstPad *pad, gboolean 
/*last*/, gpointer data)
 {
-printf("new pad found\n");
+       log_msg(_("%s: new pad found"), __FUNCTION__);
        SoundGst* so = static_cast<SoundGst*>(data);
        GstCaps *caps;
        GstStructure *str;
@@ -118,14 +119,14 @@
        if (g_strrstr (gst_structure_get_name (str), "audio")) {
                // link'n'play
                gst_pad_link (pad, audiopad);
-printf("new pad connected\n");
+               log_msg(_("%s: new pad connected"), __FUNCTION__);
        } else {
                gst_object_unref (audiopad);
-               log_warning("Non-audio data found in file %s\n", 
so->externalURL.c_str());
+               log_error(_("%s: Non-audio data found in file %s"), 
__FUNCTION__,
+                               so->externalURL.c_str());
        }
        gst_caps_unref (caps);
        return;
-
 }
 
 void
@@ -138,7 +139,7 @@
        // Pass stuff from/to the NetConnection object.
        assert(so);
        if ( !nc->openConnection(so->externalURL.c_str(), so) ) {
-               log_warning("Gnash could not open audio url: %s", 
so->externalURL.c_str());
+               log_error(_("could not open audio url: %s"), 
so->externalURL.c_str());
                delete so->lock;
                return;
        }
@@ -167,11 +168,11 @@
 
        // Check if the creation of the gstreamer pipeline and audiosink was a 
succes
        if (!so->pipeline) {
-               gnash::log_error("The gstreamer pipeline element could not be 
created\n");
+               gnash::log_error(_("Could not create gstreamer pipeline 
element"));
                return;
        }
        if (!so->audiosink) {
-               gnash::log_error("The gstreamer audiosink element could not be 
created\n");
+               gnash::log_error(_("Could not create gstreamer audiosink 
element"));
                return;
        }
 
@@ -194,7 +195,7 @@
 
 
        if (!so->source || !so->audioconv || !so->volume || !so->decoder) {
-               gnash::log_error("Gstreamer element(s) for movie handling could 
not be created\n");
+               gnash::log_error(_("Could not create Gstreamer element(s) for 
movie handling"));
                return;
        }
 
@@ -225,7 +226,7 @@
        remainingLoops = 0;
 
        if (connection) {
-               log_warning("This sound already has a connection?? (We try to 
handle this by deleting the old one...)\n");
+               log_error(_("%s: This sound already has a connection?  (We try 
to handle this by deleting the old one...)"), __FUNCTION__);
                delete connection;
        }
        externalURL = file;
@@ -253,7 +254,8 @@
                        if (!gst_element_seek (pipeline, 1.0, GST_FORMAT_TIME, 
GST_SEEK_FLAG_FLUSH,
                                GST_SEEK_TYPE_SET, GST_SECOND * 
static_cast<long>(offset),
                                GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE)) {
-                               log_warning("seeking to offset failed\n");
+                               log_error(_("%s: seeking to offset failed"), 
+                                       __FUNCTION__);
                        }
 
                }
@@ -330,4 +332,3 @@
 }
 
 } // end of gnash namespace
-

Index: server/asobj/SoundMad.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/SoundMad.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- server/asobj/SoundMad.cpp   27 Feb 2007 09:10:20 -0000      1.3
+++ server/asobj/SoundMad.cpp   18 Apr 2007 14:07:32 -0000      1.4
@@ -1,3 +1,4 @@
+// SoundMad.cpp:  Play sounds using libmad (MP3 audio decoder), for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -5,12 +6,12 @@
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation; either version 2 of the License, or
 // (at your option) any later version.
-
+//
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
@@ -79,7 +80,7 @@
        // Pass stuff from/to the NetConnection object.
        assert(so);
        if ( !nc->openConnection(so->externalURL.c_str(), so) ) {
-               log_warning("Gnash could not open audio url: %s", 
so->externalURL.c_str());
+               log_error(_("Gnash could not open audio url: %s"), 
so->externalURL.c_str());
                delete so->lock;
                return;
        }
@@ -116,7 +117,7 @@
                // Error handling is done by relooping (max. 8 times) and just 
hooping that it will work...
                if (loops > 8) break;
                if (ret == -1 && so->stream.error != MAD_ERROR_BUFLEN && 
MAD_RECOVERABLE(so->stream.error)) {
-                       log_warning("Recoverable error while decoding MP3, MAD 
error: %s", mad_stream_errorstr (&so->stream));
+                       log_error(_("Recoverable error while decoding MP3, MAD 
error: %s"), mad_stream_errorstr (&so->stream));
                        continue;
                }
                break;
@@ -203,7 +204,7 @@
                                        // Error handling is done by relooping 
(max. 8 times) and just hooping that it will work...
                                        if (loops > 8) break;
                                        if (ret == -1 && so->stream.error != 
MAD_ERROR_BUFLEN && MAD_RECOVERABLE(so->stream.error)) {
-                                               log_warning("Recoverable error 
while decoding MP3, MAD error: %s", mad_stream_errorstr (&so->stream));
+                                               log_error(_("Recoverable error 
while decoding MP3, MAD error: %s"), mad_stream_errorstr (&so->stream));
                                                continue;
                                        }
                                        
@@ -211,7 +212,7 @@
                                }
 
                                if (ret == -1 && so->stream.error != 
MAD_ERROR_BUFLEN) {
-                                       log_error("Unrecoverable error while 
decoding MP3, MAD error: %s", mad_stream_errorstr (&so->stream));
+                                       log_error(_("Unrecoverable error while 
decoding MP3, MAD error: %s"), mad_stream_errorstr (&so->stream));
                                        bufSize = 0;
                                        loop = false;
                                } else if (ret == -1 && so->stream.error == 
MAD_ERROR_BUFLEN) {
@@ -266,9 +267,9 @@
                                        s->convert_raw_data(&adjusted_data, 
&adjusted_size, tmp_raw_buffer, sample_count, 0, 
                                                        
so->frame.header.samplerate, so->frame.header.mode);
 
-                                       // Hopefully this wont happen
+                                       // Hopefully this won't happen
                                        if (!adjusted_data) {
-                                               log_warning("Error in sound 
sample convertion");
+                                               log_error(_("Error in sound 
sample convertion"));
                                                continue;
                                        }
 
@@ -347,7 +348,7 @@
        remainingLoops = 0;
 
        if (connection) {
-               log_warning("This sound already has a connection?? (We try to 
handle this by deleting the old one...)\n");
+               log_error(_("This sound already has a connection?  (We try to 
handle this by deleting the old one...)"));
                delete connection;
        }
        externalURL = file;
@@ -436,4 +437,3 @@
 }
 
 } // end of gnash namespace
-

Index: server/asobj/Stage.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Stage.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- server/asobj/Stage.cpp      16 Apr 2007 18:23:06 -0000      1.11
+++ server/asobj/Stage.cpp      18 Apr 2007 14:07:32 -0000      1.12
@@ -1,3 +1,4 @@
+// Stage.cpp:  All the world is one, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -157,7 +158,7 @@
        if ( fn.nargs < 1 )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Stage.addListener() needs one argument");
+               log_aserror(_("Stage.addListener() needs one argument"));
                );
                return as_value();
        }
@@ -168,7 +169,7 @@
                IF_VERBOSE_ASCODING_ERRORS(
                std::stringstream ss;
                fn.dump_args(ss);
-               log_aserror("Invalid call to Stage.addListener(%s) : first arg 
doesn't cast to an object",
+               log_aserror(_("Invalid call to Stage.addListener(%s) : first 
arg doesn't cast to an object"),
                        ss.str().c_str());
                );
                return as_value();
@@ -185,7 +186,7 @@
        if ( fn.nargs < 1 )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Stage.removeListener() needs one argument");
+               log_aserror(_("Stage.removeListener() needs one argument"));
                );
                return as_value();
        }
@@ -196,7 +197,7 @@
                IF_VERBOSE_ASCODING_ERRORS(
                std::stringstream ss;
                fn.dump_args(ss);
-               log_aserror("Invalid call to Stage.removeListener(%s) : first 
arg doesn't cast to an object",
+               log_aserror(_("Invalid call to Stage.removeListener(%s) : first 
arg doesn't cast to an object"),
                        ss.str().c_str());
                );
                return as_value();
@@ -231,12 +232,8 @@
 // extern (used by Global.cpp)
 void stage_class_init(as_object& global)
 {
-
        static boost::intrusive_ptr<as_object> obj = new Stage();
        global.init_member("Stage", obj.get());
-
 }
 
-
 } // end of gnash namespace
-

Index: server/asobj/System.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/System.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- server/asobj/System.cpp     19 Mar 2007 17:11:14 -0000      1.11
+++ server/asobj/System.cpp     18 Apr 2007 14:07:32 -0000      1.12
@@ -1,3 +1,4 @@
+// System.cpp:  ActionScript "System" class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,12 +11,10 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-// 
-//
 //
 
 #ifdef HAVE_CONFIG_H
@@ -41,31 +40,31 @@
 void
 System::security_allowDomain()
 {
-    log_msg("%s: unimplemented \n", __PRETTY_FUNCTION__);
+    log_unimpl (__PRETTY_FUNCTION__);
 }
 
 void
 System::security_allowInsecureDomain()
 {
-    log_msg("%s: unimplemented \n", __PRETTY_FUNCTION__);
+    log_unimpl (__PRETTY_FUNCTION__);
 }
 
 void
 System::security_loadPolicyFile()
 {
-    log_msg("%s: unimplemented \n", __PRETTY_FUNCTION__);
+    log_unimpl (__PRETTY_FUNCTION__);
 }
 
 void
 System::setClipboard()
 {
-    log_msg("%s: unimplemented \n", __PRETTY_FUNCTION__);
+    log_unimpl (__PRETTY_FUNCTION__);
 }
 
 void
 System::showSettings()
 {
-    log_msg("%s: unimplemented \n", __PRETTY_FUNCTION__);
+    log_unimpl (__PRETTY_FUNCTION__);
 }
 
 #endif
@@ -137,27 +136,27 @@
 }
 
 as_value system_security_allowdomain(const fn_call& /*fn*/) {
-    log_msg("%s: unimplemented \n", __PRETTY_FUNCTION__);
+    log_unimpl (__PRETTY_FUNCTION__);
     return as_value();
 }
 
 as_value system_security_allowinsecuredomain(const fn_call& /*fn*/) {
-    log_msg("%s: unimplemented \n", __PRETTY_FUNCTION__);
+    log_unimpl (__PRETTY_FUNCTION__);
     return as_value();
 }
 
 as_value system_security_loadpolicyfile(const fn_call& /*fn*/) {
-    log_msg("%s: unimplemented \n", __PRETTY_FUNCTION__);
+    log_unimpl (__PRETTY_FUNCTION__);
     return as_value();
 }
 
 as_value system_setclipboard(const fn_call& /*fn*/) {
-    log_msg("%s: unimplemented \n", __PRETTY_FUNCTION__);
+    log_unimpl (__PRETTY_FUNCTION__);
     return as_value();
 }
 
 as_value system_showsettings(const fn_call& /*fn*/) {
-    log_msg("%s: unimplemented \n", __PRETTY_FUNCTION__);
+    log_unimpl (__PRETTY_FUNCTION__);
     return as_value();
 }
 
@@ -171,6 +170,4 @@
        global.init_member("System", obj.get());
 }
 
-
-} // end of gnaash namespace
-
+} // end of gnash namespace

Index: server/asobj/TextSnapshot.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/TextSnapshot.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- server/asobj/TextSnapshot.cpp       19 Mar 2007 17:11:14 -0000      1.7
+++ server/asobj/TextSnapshot.cpp       18 Apr 2007 14:07:32 -0000      1.8
@@ -1,3 +1,4 @@
+// TextSnapshot.cpp:  ActionScript "TextSnapshot" class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -85,35 +86,35 @@
 };
 
 as_value textsnapshot_findtext(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value textsnapshot_getcount(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value textsnapshot_getselected(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value textsnapshot_getselectedtext(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value textsnapshot_gettext(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value textsnapshot_hittesttextnearpos(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value textsnapshot_setselectcolor(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value textsnapshot_setselected(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 
@@ -137,14 +138,10 @@
                // replicate all interface to class, to be able to access
                // all methods as static functions
                attachTextSnapshotInterface(*cl);
-                    
        }
 
        // Register _global.TextSnapshot
        global.init_member("TextSnapshot", cl.get());
-
 }
 
-
 } // end of gnash namespace
-

Index: server/asobj/Video.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Video.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- server/asobj/Video.cpp      19 Mar 2007 17:11:14 -0000      1.8
+++ server/asobj/Video.cpp      18 Apr 2007 14:07:32 -0000      1.9
@@ -1,3 +1,4 @@
+// Video.cpp:  ActionScript "Video" class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -70,11 +71,11 @@
 };
 
 as_value video_attachvideo(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 as_value video_clear(const fn_call& /*fn*/) {
-    log_warning("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 
@@ -98,14 +99,10 @@
                // replicate all interface to class, to be able to access
                // all methods as static functions
                attachVideoInterface(*cl);
-                    
        }
 
        // Register _global.Video
        global.init_member("Video", cl.get());
-
 }
 
-
 } // end of gnash namespace
-

Index: server/asobj/gen-asclass.pl
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/gen-asclass.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- server/asobj/gen-asclass.pl 29 Mar 2007 12:06:44 -0000      1.2
+++ server/asobj/gen-asclass.pl 18 Apr 2007 14:07:32 -0000      1.3
@@ -18,8 +18,7 @@
 
 our $VERBOSE = 0;  ## default setting; can be changed by command-line option
 
-our $LICENSE = q|
-// 
+our $LICENSE = q|//
 // Copyright (C) | . (join ', ', (2005..((localtime)[5]+1900))) .
 q| Free Software Foundation, Inc.
 //
@@ -53,6 +52,9 @@
     open ($fh, '>', $args{headerfile}) or die
         "Cannot open file '$args{headerfile}': $!\n";
     notify("Creating file '$args{headerfile}'.");
+    print $fh <<EOF;
+// $args{headerfile}:  ActionScript "$args{class}" class, for Gnash.
+EOF
     print $fh $LICENSE;
 
     ## The text between the EOFs will be printed in the header file.
@@ -81,7 +83,6 @@
 
 // __GNASH_ASOBJ_$args{up}_H__
 #endif
-
 EOF
 
     close $fh;
@@ -96,6 +97,9 @@
     open ($fh, '>', $args{cppfile}) or die
         "Cannot open file '$args{cppfile}': $!\n";
     notify("Creating file '$args{cppfile}'.");
+    print $fh <<EOF;
+// $args{cppfile}:  ActionScript "$args{class}" class, for Gnash.
+EOF
     print $fh $LICENSE;
 
 
@@ -119,12 +123,12 @@
           qq|\n    o.init_member("$m", new builtin_function($args{lc}_$m));|;
 
         $implementations .=
-          qq|static as_value\n$args{lc}_| .$m. 
+          qq|\nstatic as_value\n$args{lc}_| .$m.
           qq|(const fn_call& fn) 
 {   
         $args{lc}_as_object* ptr = 
ensureType<$args{lc}_as_object>(fn.this_ptr);  
         UNUSED(ptr);
-        log_warning("%s: unimplemented", __FUNCTION__);
+       log_unimpl (__FUNCTION__);
         return as_value();
 }
 |;
@@ -152,9 +156,7 @@
 
 static void
 attach$args{class}Interface(as_object& o)
-{
-$registrations
-
+{$registrations
 }
 
 static as_object*
@@ -187,7 +189,6 @@
 };
 
 $implementations
-
 as_value
 $args{lc}_ctor(const fn_call& fn)
 {
@@ -208,16 +209,13 @@
                // replicate all interface to class, to be able to access
                // all methods as static functions
                attach$args{class}Interface(*cl);
-                    
        }
 
        // Register _global.$args{class}
        global.init_member("$args{class}", cl.get());
-
 }
 
 } // end of gnash namespace
-
 EOF
 
     close $fh;

Index: server/asobj/gen-asclass.sh
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/gen-asclass.sh,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- server/asobj/gen-asclass.sh 20 Mar 2007 10:36:45 -0000      1.11
+++ server/asobj/gen-asclass.sh 18 Apr 2007 14:07:32 -0000      1.12
@@ -65,6 +65,7 @@
 #
 rm -f ${outname}
 cat <<EOF>>${outname}
+// ${outname}:  ActionScript "${asname}" class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -106,15 +107,14 @@
 
 // __GNASH_ASOBJ_${upname}_H__
 #endif
-
 EOF
-
 ##############################################################
 # now generate the source file
 #
 
 # start with the header part
 cat <<EOF>>${srcname}
+// ${srcname}:  ActionScript "${asname}" class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -207,12 +207,13 @@
 # DO NOT CONVERT CASE, SWF7+ is case-sensitive 
 newi=`echo $i | sed -e 's/)//g'` # | tr '[A-Z]' '[a-z]'
 cat <<EOF>>${srcname}
+
 static as_value
 ${lowname}_${newi}const fn_call& fn)
 {
        ${lowname}_as_object* ptr = 
ensureType<${lowname}_as_object>(fn.this_ptr);
        UNUSED(ptr);
-       log_warning("%s: unimplemented", __FUNCTION__);
+       log_unimpl (__FUNCTION__);
        return as_value();
 }
 EOF
@@ -240,17 +241,11 @@
                // replicate all interface to class, to be able to access
                // all methods as static functions
                attach${asname}Interface(*cl);
-                    
        }
 
        // Register _global.${asname}
        global.init_member("${asname}", cl.get());
-
 }
 
-
 } // end of gnash namespace
-
 EOF
-
-

Index: server/asobj/string.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/string.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- server/asobj/string.cpp     16 Apr 2007 18:23:06 -0000      1.28
+++ server/asobj/string.cpp     18 Apr 2007 14:07:32 -0000      1.29
@@ -1,3 +1,4 @@
+// string.cpp:  ActionScript "String" class, for Gnash.
 //
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 //
@@ -14,9 +15,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-/* $Id: string.cpp,v 1.28 2007/04/16 18:23:06 strk Exp $ */
-
-// Implementation of ActionScript String class.
+/* $Id: string.cpp,v 1.29 2007/04/18 14:07:32 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -37,13 +36,13 @@
 #define ENSURE_FN_ARGS(min, max, rv)                                    \
     if (fn.nargs < min) {                                               \
         IF_VERBOSE_ASCODING_ERRORS(                                     \
-            log_aserror("%s needs one argument", __FUNCTION__);         \
+            log_aserror(_("%s needs one argument"), __FUNCTION__);         \
             )                                                           \
          return as_value(rv);                                           \
     }                                                                   \
     IF_VERBOSE_ASCODING_ERRORS(                                         \
         if (fn.nargs > max)                                             \
-            log_aserror("%s has more than one argument", __FUNCTION__); \
+            log_aserror(_("%s has more than one argument"), __FUNCTION__); \
     )
 
 
@@ -361,7 +360,7 @@
 
             if (end < start) {
                 IF_VERBOSE_ASCODING_ERRORS(
-                    log_aserror("string.slice() called with end < start");
+                    log_aserror(_("string.slice() called with end < start"));
                 )
                 swap(&end, &start);
             }
@@ -424,7 +423,7 @@
 
     if (fn.nargs == 0) {
         IF_VERBOSE_ASCODING_ERRORS(
-            log_aserror("string.charCodeAt needs one argument");
+            log_aserror(_("string.charCodeAt needs one argument"));
         )
         as_value rv;
         rv.set_nan();
@@ -433,7 +432,7 @@
 
     IF_VERBOSE_ASCODING_ERRORS(
         if (fn.nargs > 1) {
-            log_aserror("string.charCodeAt has more than one argument");
+            log_aserror(_("string.charCodeAt has more than one argument"));
         }
     )
 

Index: server/asobj/xml.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/xml.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -b -r1.39 -r1.40
--- server/asobj/xml.cpp        17 Apr 2007 10:38:16 -0000      1.39
+++ server/asobj/xml.cpp        18 Apr 2007 14:07:32 -0000      1.40
@@ -1,3 +1,4 @@
+// xml.cpp:  XML markup language support, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,11 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-/* $Id: xml.cpp,v 1.39 2007/04/17 10:38:16 strk Exp $ */
+/* $Id: xml.cpp,v 1.40 2007/04/18 14:07:32 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -91,9 +94,9 @@
 {
     //GNASH_REPORT_FUNCTION;
 #ifdef DEBUG_MEMORY_ALLOCATION
-    log_msg("Creating XML data at %p \n", this);
+    log_msg(_("Creating XML data at %p"), this);
 #endif
-    //log_msg("%s: %p \n", __FUNCTION__, this);
+    //log_msg("%s: %p", __FUNCTION__, this);
     attachXMLProperties(*this);
 }
 
@@ -109,7 +112,7 @@
 {
     //GNASH_REPORT_FUNCTION;
 #ifdef DEBUG_MEMORY_ALLOCATION
-    log_msg("Creating XML data at %p \n", this);
+    log_msg(_("Creating XML data at %p"), this);
 #endif
     parseXML(xml_in);
 }
@@ -124,9 +127,9 @@
 {
     GNASH_REPORT_FUNCTION;
 #ifdef DEBUG_MEMORY_ALLOCATION
-    log_msg("\tCreating XML data at %p \n", this);
+    log_msg(_("\tCreating XML data at %p"), this);
 #endif
-    //log_msg("%s: %p \n", __FUNCTION__, this);
+    //log_msg("%s: %p", __FUNCTION__, this);
 }
 
 bool
@@ -158,7 +161,7 @@
         else if ( name == "loaded" )
         {
                 bool b = val.to_bool();
-               log_msg("set_member 'loaded' (%s) became boolean %d", 
val.to_debug_string().c_str(), b);
+               log_msg(_("set_member 'loaded' (%s) became boolean %d"), 
val.to_debug_string().c_str(), b);
                 if ( b ) _loaded = 1;
                 else _loaded = 0;
                 return;
@@ -172,7 +175,7 @@
     GNASH_REPORT_FUNCTION;
     
 #ifdef DEBUG_MEMORY_ALLOCATION
-    log_msg("\tDeleting XML top level node at %p", this);
+    log_msg(_("\tDeleting XML top level node at %p"), this);
 #endif
   
 }
@@ -237,20 +240,20 @@
     xmlChar *ptr = NULL;
     boost::intrusive_ptr<XMLNode> child;
 
-//    log_msg("Created new element for %s at %p\n", node->name, element);
+//    log_msg(_("Created new element for %s at %p"), node->name, element);
 
-//    log_msg("%s: extracting node %s\n", __FUNCTION__, node->name);
+//    log_msg(_("%s: extracting node %s"), __FUNCTION__, node->name);
 
     // See if we have any Attributes (properties)
     attr = node->properties;
     while (attr != NULL)
     {
-        //log_msg("extractNode %s has property %s, value is %s\n",
+        //log_msg(_("extractNode %s has property %s, value is %s"),
         //          node->name, attr->name, attr->children->content);
         XMLAttr attrib(reinterpret_cast<const char*>(attr->name),
                        reinterpret_cast<const char*>(attr->children->content));
 
-        //log_msg("\tPushing attribute %s for element %s has value %s\n",
+        //log_msg(_("\tPushing attribute %s for element %s has value %s"),
         //        attr->name, node->name, attr->children->content);
         element._attributes.push_back(attrib);
         attr = attr->next;
@@ -274,7 +277,7 @@
                 {
                     if (node->content)
                     {
-                        //log_msg("extractChildNode from text for %s has 
contents '%s'", node->name, ptr);
+                        //log_msg(_("extractChildNode from text for %s has 
contents '%s'"), node->name, ptr);
                         std::string val(reinterpret_cast<const char*>(ptr));
                         element.nodeValueSet(val);
                     }
@@ -305,7 +308,7 @@
     xmlNodePtr cur;
 
     if (document == 0) {
-        log_error("Can't load XML file!");
+        log_error(_("Can't load XML file"));
         return false;
     }
 
@@ -329,10 +332,10 @@
 {
     //GNASH_REPORT_FUNCTION;
 
-    //log_msg("Parse XML from memory: %s", xml_in.c_str());
+    //log_msg(_("Parse XML from memory: %s"), xml_in.c_str());
 
     if (xml_in.empty()) {
-        log_error("XML data is empty!");
+        log_error(_("XML data is empty"));
         return false;
     }
 
@@ -347,7 +350,7 @@
     xmlInitParser();
     _doc = xmlParseMemory(xml_in.c_str(), xml_in.size());
     if (_doc == 0) {
-        log_error("Can't parse XML data!\n");
+        log_error(_("Can't parse XML data"));
         return false;
     }
     ret = parseDoc(_doc, true);
@@ -370,17 +373,17 @@
 {
 //    GNASH_REPORT_FUNCTION;
   
-    //log_msg("%s: mem is %d\n", __FUNCTION__, mem);
+    //log_msg(_("%s: mem is %d"), __FUNCTION__, mem);
 
     std::auto_ptr<tu_file> str ( 
StreamProvider::getDefaultInstance().getStream(url) );
     if ( ! str.get() ) 
     {
-        log_error("Can't load XML file: %s (security?)", url.str().c_str());
+        log_error(_("Can't load XML file: %s (security?)"), url.str().c_str());
         onLoadEvent(false);
         return false;
     }
 
-    log_msg("Loading XML file from url: '%s'", url.str().c_str());
+    log_msg(_("Loading XML file from url: '%s'"), url.str().c_str());
 
     initParser();
 
@@ -391,7 +394,7 @@
     {
        xmlFreeDoc(_doc);
         _doc = 0;
-        log_error("Can't read XML file %s (stream error %d)!", 
url.str().c_str(), str->get_error());
+        log_error(_("Can't read XML file %s (stream error %d)"), 
url.str().c_str(), str->get_error());
         _loaded = 0;
         onLoadEvent(false);
         return false;
@@ -402,7 +405,7 @@
     if (_doc == 0)
     {
         xmlErrorPtr err = xmlGetLastError();
-        log_error("Can't read XML file %s (%s)!", url.str().c_str(), 
err->message);
+        log_error(_("Can't read XML file %s (%s)"), url.str().c_str(), 
err->message);
         _loaded = 0;
         onLoadEvent(false);
         return false;
@@ -425,7 +428,7 @@
 bool
 XML::onLoad()
 {
-    log_msg("%s: FIXME: onLoad Default event handler\n", __FUNCTION__);
+    log_msg(_("%s: FIXME: onLoad Default event handler"), __FUNCTION__);
 
     return(_loaded);
 }
@@ -449,32 +452,32 @@
 void
 XML::addRequestHeader(const char * /* name */, const char * /* value */)
 {
-    log_msg("%s:unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
 }
 
 
 void
 XML::load()
 {
-    log_msg("%s:unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
 }
 
 void
 XML::parseXML()
 {
-    log_msg("%s: unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
 }
 
 void
 XML::send()
 {
-    log_msg("%s:unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
 }
 
 void
 XML::sendAndLoad()
 {
-    log_msg("%s:unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
 }
 
 
@@ -553,7 +556,7 @@
     boost::intrusive_ptr<XML> xml_obj;
     //const char    *data;
   
-    // log_msg("%s: nargs=%d\n", __FUNCTION__, fn.nargs);
+    // log_msg(_("%s: nargs=%d"), __FUNCTION__, fn.nargs);
   
     if ( fn.nargs > 0 )
     {
@@ -563,7 +566,7 @@
             xml_obj = boost::dynamic_pointer_cast<XML>(obj);
             if ( xml_obj )
             {
-                log_msg("\tCloned the XML object at %p\n", xml_obj.get());
+                log_msg(_("\tCloned the XML object at %p"), xml_obj.get());
                 return as_value(xml_obj->cloneNode(true).get());
             }
         }
@@ -572,7 +575,7 @@
         if ( xml_in.empty() )
         {
             IF_VERBOSE_ASCODING_ERRORS(
-            log_aserror("First arg given to XML constructor (%s) evaluates to 
the empty string",
+            log_aserror(_("First arg given to XML constructor (%s) evaluates 
to the empty string"),
                     fn.arg(0).to_debug_string().c_str());
             );
         }
@@ -584,7 +587,7 @@
     }
 
     xml_obj = new XML;
-    //log_msg("\tCreated New XML object at %p\n", xml_obj);
+    //log_msg(_("\tCreated New XML object at %p"), xml_obj);
 
     return as_value(xml_obj.get());
 }
@@ -597,11 +600,11 @@
 as_value xml_addrequestheader(const fn_call& fn)
 {
     GNASH_REPORT_FUNCTION;
-    log_msg("%s: %d args\n", __PRETTY_FUNCTION__, fn.nargs);
+    log_msg(_("%s: %d args"), __PRETTY_FUNCTION__, fn.nargs);
     
 //    return as_value(ptr->getAllocated());
 //    ptr->addRequestHeader();
-    log_msg("%s:unimplemented \n", __FUNCTION__);
+    log_unimpl (__FUNCTION__);
     return as_value();
 }
 
@@ -630,7 +633,7 @@
        return as_value(xml_obj);
        
     } else {
-        log_msg("ERROR: no text for element creation!\n");
+        log_error(_("no text for element creation"));
     }
     return as_value();
 }
@@ -657,9 +660,9 @@
        xml_obj->nodeValueSet(text);
        xml_obj->nodeTypeSet(XMLNode::tText);
        return as_value(xml_obj);
-//     log_msg("%s: xml obj is %p\n", __PRETTY_FUNCTION__, xml_obj);
+//     log_msg(_("%s: xml obj is %p"), __PRETTY_FUNCTION__, xml_obj);
     } else {
-       log_msg("ERROR: no text for text node creation!\n");
+       log_error(_("no text for text node creation"));
     }
     return as_value();
 }
@@ -785,7 +788,7 @@
     vsnprintf (tmp, BUFFER_SIZE, fmt, ap);
     tmp[BUFFER_SIZE-1] = '\0';
 
-    log_warning("XML parser: %s", tmp);
+    log_error(_("XML parser: %s"), tmp);
     
     va_end (ap);    
 }

Index: server/asobj/xmlnode.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/xmlnode.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- server/asobj/xmlnode.cpp    17 Apr 2007 12:58:20 -0000      1.32
+++ server/asobj/xmlnode.cpp    18 Apr 2007 14:07:32 -0000      1.33
@@ -1,3 +1,4 @@
+// xmlnode.cpp:  ActionScript "XMLNode" class, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -14,7 +15,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-/* $Id: xmlnode.cpp,v 1.32 2007/04/17 12:58:20 strk Exp $ */
+/* $Id: xmlnode.cpp,v 1.33 2007/04/18 14:07:32 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -77,9 +78,9 @@
     _parent(0),
     _type(tElement)
 {
-    //log_msg("%s: %p \n", __PRETTY_FUNCTION__, this);
+    //log_msg("%s: %p", __PRETTY_FUNCTION__, this);
 #ifdef DEBUG_MEMORY_ALLOCATION
-    log_msg("\tCreating XMLNode data at %p \n", this);
+    log_msg(_("\tCreating XMLNode data at %p"), this);
 #endif
 }
 
@@ -89,9 +90,9 @@
     _parent(0),
     _type(tElement)
 {
-    //log_msg("%s: %p \n", __PRETTY_FUNCTION__, this);
+    //log_msg("%s: %p", __PRETTY_FUNCTION__, this);
 #ifdef DEBUG_MEMORY_ALLOCATION
-    log_msg("\tCreating XMLNode data at %p \n", this);
+    log_msg(_("\tCreating XMLNode data at %p"), this);
 #endif
 }
 
@@ -103,7 +104,7 @@
     _value(tpl._value),
     _type(tpl._type)
 {
-    // only clone childs if in deep mode
+    // only clone children if in deep mode
     if ( deep ) 
     {
         const ChildList& from=tpl._children;
@@ -117,9 +118,9 @@
 
 XMLNode::~XMLNode()
 {
-    //log_msg("%s: %p \n", __PRETTY_FUNCTION__, this);
+    //log_msg("%s: %p", __PRETTY_FUNCTION__, this);
 #ifdef DEBUG_MEMORY_ALLOCATION
-    log_msg("\tDeleting XMLNode data %s at %p", this->_name.c_str(), this);
+    log_msg(_("\tDeleting XMLNode data %s at %p"), this->_name.c_str(), this);
 #endif
 }
 
@@ -147,7 +148,7 @@
        //GNASH_REPORT_FUNCTION;
        if ( _children.empty() )
        {
-                       log_msg("XMLNode %p has no childrens", (void*)this);
+                       log_msg(_("XMLNode %p has no children"), (void*)this);
                        return NULL;
        }
        return _children.back();
@@ -166,14 +167,14 @@
         oldparent->_children.remove(node);
     }
 
-//  log_msg("%s: partially unimplemented\n", __PRETTY_FUNCTION__);
+//  log_unimpl("%s: partially unimplemented", __PRETTY_FUNCTION__);
 }
 
 boost::intrusive_ptr<XMLNode> 
 XMLNode::cloneNode(bool deep)
 {
     //GNASH_REPORT_FUNCTION;
-    //log_msg("%s: deep is %d", __PRETTY_FUNCTION__, deep);
+    //log_msg(_("%s: deep is %d"), __PRETTY_FUNCTION__, deep);
 
     boost::intrusive_ptr<XMLNode> newnode = new XMLNode(*this, deep);
 
@@ -188,7 +189,7 @@
     if ( it == _children.end() )
     {
         IF_VERBOSE_ASCODING_ERRORS(
-        log_aserror("XMLNode.insertBefore(): positional parameter is not a 
child of this node");
+        log_aserror(_("XMLNode.insertBefore(): positional parameter is not a 
child of this node"));
         );
         return;
     }
@@ -231,7 +232,7 @@
     {
         if (itx->get() == this)
         {
-            // log_msg("Found the previous XMLNode child !!!! %s <%p>\n", 
(*itx)->nodeName(), (void*)*itx);
+            // log_msg("Found the previous XMLNode child !!!! %s <%p>", 
(*itx)->nodeName(), (void*)*itx);
                    return previous_node;
                }
                previous_node = itx->get();
@@ -288,10 +289,10 @@
     NodeType type = xml.nodeType();
 
 
-//    log_msg("%s: processing for object %s <%p>\n", __PRETTY_FUNCTION__, 
nodename, xml);
+//    log_msg("%s: processing for object %s <%p>", __PRETTY_FUNCTION__, 
nodename, xml);
 
 #ifdef GNASH_DEBUG
-    log_msg("Stringifying node %p with name %s, value %s, %u attributes and %u 
childs",
+    log_msg(_("Stringifying node %p with name %s, value %s, %u attributes and 
%u children"),
                     (void*)&xml, nodename, nodevalue, xml._attributes.size(), 
xml._children.size());
 #endif
 
@@ -312,7 +313,7 @@
         xmlout << ">";
     }
 
-    // Node value first, then childs
+    // Node value first, then children
     if ( type == tText )
     {
            xmlout << nodevalue;
@@ -322,7 +323,7 @@
     ChildList::const_iterator itx;
     for (itx = xml._children.begin(); itx != xml._children.end(); itx++)
     {
-//      log_msg("Found One XMLNode child !!!! %s <%p>\n", 
(*itx)->nodeName().c_str(), (void*)*itx);
+//      log_msg(_("Found One XMLNode child.  %s <%p>"), 
(*itx)->nodeName().c_str(), (void*)*itx);
 //      cerr << "<" << (*it)->nodeName() << ">" << endl;
         (*itx)->toString(xmlout);
     }
@@ -439,7 +440,7 @@
        if ( ! fn.nargs )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("XMLNode::appendChild() needs at least one 
argument");
+               log_aserror(_("XMLNode::appendChild() needs at least one 
argument"));
                );
                return as_value();
        }
@@ -448,7 +449,7 @@
        if ( ! xml_obj )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("First argument to XMLNode::appendChild() is not an 
XMLNode");
+               log_aserror(_("First argument to XMLNode::appendChild() is not 
an XMLNode"));
                );
                return as_value();
        }
@@ -462,7 +463,7 @@
 xmlnode_clonenode(const fn_call& fn)
 {
     //GNASH_REPORT_FUNCTION;
-//    log_msg("%s: %d args\n", __PRETTY_FUNCTION__, fn.nargs);
+//    log_msg("%s: %d args", __PRETTY_FUNCTION__, fn.nargs);
     boost::intrusive_ptr<XMLNode> ptr = ensureType<XMLNode>(fn.this_ptr);
 
     bool deep = false;
@@ -482,7 +483,7 @@
        {
                IF_VERBOSE_ASCODING_ERRORS(
                std::stringstream ss; fn.dump_args(ss);
-               log_aserror("XMLNode.insertBefore(%s) needs at least two 
argument", ss.str().c_str());
+               log_aserror(_("XMLNode.insertBefore(%s) needs at least two 
argument"), ss.str().c_str());
                );
                return as_value();
        }
@@ -492,7 +493,7 @@
        {
                IF_VERBOSE_ASCODING_ERRORS(
                std::stringstream ss; fn.dump_args(ss);
-               log_aserror("First argument to XMLNode.insertBefore(%s) is not 
an XMLNode",
+               log_aserror(_("First argument to XMLNode.insertBefore(%s) is 
not an XMLNode"),
                 ss.str().c_str());
                );
                return as_value();
@@ -503,7 +504,7 @@
        {
                IF_VERBOSE_ASCODING_ERRORS(
         std::stringstream ss; fn.dump_args(ss);
-               log_aserror("Second argument to XMLNode.insertBefore(%s) is not 
an XMLNode",
+               log_aserror(_("Second argument to XMLNode.insertBefore(%s) is 
not an XMLNode"),
                 ss.str().c_str());
                );
                return as_value();
@@ -514,7 +515,7 @@
     
 //    return as_value(ptr->obj.getAllocated());
 //    ptr->obj.insertBefore();
-    log_msg("%s:unimplemented \n", __PRETTY_FUNCTION__);
+    log_unimpl (__PRETTY_FUNCTION__);
     return as_value();
 }
 

Index: server/asobj/xmlsocket.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/xmlsocket.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- server/asobj/xmlsocket.cpp  16 Apr 2007 18:23:06 -0000      1.25
+++ server/asobj/xmlsocket.cpp  18 Apr 2007 14:07:32 -0000      1.26
@@ -1,3 +1,4 @@
+// xmlsocket.cpp:  Network socket for XML-encoded information, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -13,6 +14,7 @@
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -173,14 +175,14 @@
 bool XMLSocket::processingData()
 {
     //GNASH_REPORT_FUNCTION;
-    //printf("%s: processing flags is is %d\n", __FUNCTION__, _processing);
+    //log_msg(_("%s: processing flag is %d"), __FUNCTION__, _processing);
     return _processing;
 }
 
 void XMLSocket::processing(bool x)
 {
     GNASH_REPORT_FUNCTION;
-    //printf("%s: set processing flag to %d\n", __FUNCTION__, x);
+    //log_msg(_("%s: set processing flag to %d"), __FUNCTION__, x);
     _processing = x;
 }
 
@@ -202,7 +204,7 @@
     
     
     if (fd <= 0) {
-       log_msg("fd <= 0, returning false (timer not unregistered while socket 
disconnected?");
+       log_error(_("%s: fd <= 0, returning false (timer not unregistered while 
socket disconnected?"), __FUNCTION__);
         return false;
     }
     
@@ -217,36 +219,36 @@
         
         // If interupted by a system call, try again
         if (ret == -1 && errno == EINTR) {
-            log_msg("The socket for fd #%d was interupted by a system call!",
+            log_msg(_("The socket for fd #%d was interupted by a system call"),
                     fd);
             continue;
         }
         if (ret == -1) {
-            log_error("%s: The socket for fd #%d never was available!",
+            log_error(_("%s: The socket for fd #%d never was available"),
                 __FUNCTION__, fd);
             return false;
         }
         if (ret == 0) {
-            //log_msg("%s: There is no data in the socket for fd #%d!",
+            //log_msg(_("%s: There is no data in the socket for fd #%d"),
             //   __FUNCTION__, fd);
             return false;
         }
         if (ret > 0) {
-            //log_msg("%s: There is data in the socket for fd #%d!",
+            //log_msg(_("%s: There is data in the socket for fd #%d"),
             //    __FUNCTION__, fd);
         }
         memset(buf, 0, INBUF);
         ret = ::read(_sockfd, buf, INBUF-2);
         cr = strlen(buf);
-        log_msg("%s: read %d bytes, first msg terminates at %d\n", 
__FUNCTION__, ret, cr);
-        //log_msg("%s: read (%d,%d) %s\n", __FUNCTION__, buf[0], buf[1], buf);
+        log_msg(_("%s: read %d bytes, first msg terminates at %d"), 
__FUNCTION__, ret, cr);
+        //log_msg(_("%s: read (%d,%d) %s"), __FUNCTION__, buf[0], buf[1], buf);
         ptr = buf;
         // If we get a single XML message, do less work
         if (ret == cr + 1)
                {
             adjusted_size = memadjust(ret + 1);
             packet = new char[adjusted_size];
-            printf("Packet size is %d at %p\n", ret + 1, packet);
+            log_msg(_("Packet size is %d at %p"), ret + 1, packet);
             memset(packet, 0, adjusted_size);
             strcpy(packet, ptr);
             eom = strrchr(packet, '\n'); // drop the CR off the end if there 
is one
@@ -254,7 +256,7 @@
                 *eom = 0;
             }
             msgs.push_back( packet );
-            printf("%d: Pushing Packet of size " SIZET_FMT " at %p\n", 
__LINE__, strlen(packet), packet);
+            log_msg(_("%d: Pushing Packet of size " SIZET_FMT " at %p"), 
__LINE__, strlen(packet), packet);
             processing(false);
             return true;
         }
@@ -264,8 +266,8 @@
         while (strchr(ptr, '\n') > 0) {
             if (leftover) {
                 processing(false);
-                //printf("%s: The remainder is: \"%s\"\n", __FUNCTION__, 
leftover);
-                //printf("%s: The rest of the message is: \"%s\"\n", 
__FUNCTION__, ptr);
+                //log_msg(_("%s: The remainder is: \"%s\""), __FUNCTION__, 
leftover);
+                //log_msg(_("%s: The rest of the message is: \"%s\""), 
__FUNCTION__, ptr);
                 adjusted_size = memadjust(cr + strlen(leftover) + 1);
                 packet = new char[adjusted_size];
                 memset(packet, 0, adjusted_size);
@@ -275,7 +277,7 @@
                 if (eom) {
                     *eom = 0;
                 }
-                //printf("%s: The whole message is: \"%s\"\n", __FUNCTION__, 
packet);
+                //log_msg(_("%s: The whole message is: \"%s\""), __FUNCTION__, 
packet);
                 ptr = strchr(ptr, '\n') + 2; // messages are delimited by a 
"\n\0"
                 delete leftover;
                 leftover = 0;
@@ -287,20 +289,20 @@
                 ptr += cr + 1;
             } // end of if remainder
             if (*packet == '<') {
-                //printf("%d: Pushing Packet #%d of size %d at %p: %s\n", 
__LINE__,
+                //log_msg(_("%d: Pushing Packet #%d of size %d at %p: %s"), 
__LINE__,
                 //       data.size(), strlen(packet), packet, packet);
                 eom = strrchr(packet, '\n'); // drop the CR off the end there 
is one
                 if (eom) {
                     *eom = 0;
                 }
-                //printf("Allocating new packet at %p\n", packet);
+                //log_msg(_("Allocating new packet at %p"), packet);
                 //data.push_back(packet);
                 msgs.push_back( std::string(packet) );
             } else {
-                log_error("Throwing out partial packet %s\n", packet);
+                log_error(_("Throwing out partial packet %s"), packet);
             }
             
-            //log_msg("%d messages in array now\n", data.size());
+            //log_msg(_("%d messages in array now"), data.size());
             cr = strlen(ptr);
         } // end of while (cr)
         
@@ -308,11 +310,11 @@
             leftover = new char[strlen(ptr) + 1];
             strcpy(leftover, ptr);
             processing(true);
-            //printf("%s: Adding remainder: \"%s\"\n", __FUNCTION__, leftover);
+            //log_msg(_("%s: Adding remainder: \"%s\""), __FUNCTION__, 
leftover);
         }
         
         processing(false);
-        printf("Returning %d messages\n", index);
+        log_msg(_("%s: Returning %d messages"), __FUNCTION__, index);
         return true;
         
     } // end of while (retires)
@@ -327,14 +329,14 @@
     
     if ( ! connected() )
     {
+        log_error(_("%s: socket not initialized"), __FUNCTION__);
        assert(!_sockfd);
-        log_warning("socket not initialized at XMLSocket.send() call time");
        return false;
     }
     
     int ret = write(_sockfd, str.c_str(), str.size());
     
-    log_msg("%s: sent %d bytes, data was %s\n", __FUNCTION__, ret, 
str.c_str());
+    log_msg(_("%s: sent %d bytes, data was %s"), __FUNCTION__, ret, 
str.c_str());
     if (ret == static_cast<signed int>(str.size())) {
         return true;
     } else {
@@ -394,19 +396,19 @@
     
     // If interupted by a system call, try again
     if (ret == -1 && errno == EINTR) {
-        log_msg("%s: The socket for fd #%d was interupted by a system call in 
this thread!",
+        log_msg(_("%s: The socket for fd #%d was interupted by a system call 
in this thread"),
                 __FUNCTION__, fd);
     }
     if (ret == -1) {
-        log_error("%s: The socket for fd #%d never was available!",
+        log_error(_("%s: The socket for fd #%d never was available"),
             __FUNCTION__, fd);
     }
     if (ret == 0) {
-        log_msg("%s: There is no data in the socket for fd #%d!",
+        log_msg(_("%s: There is no data in the socket for fd #%d"),
             __FUNCTION__, fd);
     }
     if (ret > 0) {
-        log_msg("%s: There is data in the socket for fd #%d!",
+        log_msg(_("%s: There is data in the socket for fd #%d"),
             __FUNCTION__, fd);
     }
     
@@ -424,14 +426,14 @@
 #ifdef GNASH_XMLSOCKET_DEBUG
     std::stringstream ss;
     fn.dump_args(ss);
-    log_msg("XMLSocket.connect(%s) called", ss.str().c_str());
+    log_msg(_("XMLSocket.connect(%s) called"), ss.str().c_str());
 #endif
 
     boost::intrusive_ptr<xmlsocket_as_object> ptr = 
ensureType<xmlsocket_as_object>(fn.this_ptr);
 
     if (ptr->obj.connected())
     {
-        log_warning("XMLSocket.connect() called while already connected, 
ignored");
+        log_error(_("XMLSocket.connect() called while already connected, 
ignored"));
     }
     
     as_value hostval = fn.arg(0);
@@ -450,7 +452,7 @@
        boost::intrusive_ptr<as_function> handler = 
ptr->getEventHandler("onConnect");
     if ( handler )
     {
-        log_msg("XMLSocket.connect(): calling onConnect");
+        log_msg(_("XMLSocket.connect(): calling onConnect"));
         as_environment env;
         env.push(success);
         val = call_method(handler.get(), &env, ptr.get(), 1, 
env.stack_size()-1); 
@@ -458,7 +460,7 @@
            
     if ( success )
     {
-        log_warning("Setting up timer for calling XMLSocket.onData()");
+        log_msg(_("Setting up timer for calling XMLSocket.onData()"));
 
         Timer timer;
         boost::intrusive_ptr<builtin_function> ondata_handler = new 
builtin_function(&xmlsocket_inputChecker, NULL);
@@ -466,7 +468,7 @@
         timer.setInterval(*ondata_handler, interval, 
boost::dynamic_pointer_cast<as_object>(ptr));
         VM::get().getRoot().add_interval_timer(timer);
 
-        log_warning("Timer set");
+        log_msg(_("Timer set"));
     }
 
     return as_value(success);
@@ -480,7 +482,7 @@
     
     boost::intrusive_ptr<xmlsocket_as_object> ptr = 
ensureType<xmlsocket_as_object>(fn.this_ptr);
     const std::string& object = fn.arg(0).to_string(&fn.env());
-    //  log_msg("%s: host=%s, port=%g\n", __FUNCTION__, host, port);
+    //  log_msg(_("%s: host=%s, port=%g"), __FUNCTION__, host, port);
     return as_value(ptr->obj.send(object));
 }
 
@@ -500,14 +502,14 @@
 xmlsocket_new(const fn_call& fn)
 {
     //GNASH_REPORT_FUNCTION;
-    //log_msg("%s: nargs=%d\n", __FUNCTION__, nargs);
+    //log_msg(_("%s: nargs=%d"), __FUNCTION__, nargs);
     
     boost::intrusive_ptr<as_object> xmlsock_obj = new xmlsocket_as_object;
 
 #ifdef GNASH_XMLSOCKET_DEBUG
     std::stringstream ss;
     fn.dump_args(ss);
-    log_msg("new XMLSocket(%s) called - created object at %p", 
ss.str().c_str(), (void*)xmlsock_obj.get());
+    log_msg(_("new XMLSocket(%s) called - created object at %p"), 
ss.str().c_str(), (void*)xmlsock_obj.get());
 #else
     UNUSED(fn);
 #endif
@@ -527,7 +529,7 @@
     boost::intrusive_ptr<xmlsocket_as_object> ptr = 
ensureType<xmlsocket_as_object>(fn.this_ptr);
     if ( ! ptr->obj.connected() )
     {
-        log_warning("XMLSocket not connected at xmlsocket_inputChecker call");
+        log_error(_("%s: not connected"), __FUNCTION__);
         return as_value();
     }
 
@@ -549,8 +551,8 @@
     boost::intrusive_ptr<as_function> onXMLEvent = 
ptr->getEventHandler("onXML");
     if ( ! onXMLEvent )
     {
-            log_msg("Builtin XMLSocket.onData doing nothing as no "
-                            "onXML event is defined on XMLSocket %p",
+            log_msg(_("Builtin XMLSocket.onData doing nothing as no "
+                            "onXML event is defined on XMLSocket %p"),
                             (void*)ptr.get());
             return as_value();
     }
@@ -558,7 +560,7 @@
     if ( fn.nargs < 1 )
     {
         IF_VERBOSE_ASCODING_ERRORS(
-        log_aserror("Builtin XMLSocket.onData() needs an argument");
+        log_aserror(_("Builtin XMLSocket.onData() needs an argument"));
         );
         return as_value();
     }
@@ -568,8 +570,8 @@
 
     if ( xmlin.empty() )
     {
-            log_error("Builtin XMLSocket.onData() called with an argument "
-                            "that resolves to the empty string: %s",
+            log_error(_("Builtin XMLSocket.onData() called with an argument "
+                            "that resolves to the empty string: %s"),
                             fn.arg(0).to_debug_string().c_str());
             return as_value();
     }
@@ -619,7 +621,7 @@
     if ( cl == NULL )
     {
         cl=new builtin_function(&xmlsocket_new, getXMLSocketInterface());
-        // Do not replicate all interface to class !
+        // Do not replicate all interface to class!
         //attachXMLSocketInterface(*cl);
     }
     
@@ -649,7 +651,7 @@
     assert(obj.connected());
 
     if (obj.processingData()) {
-        log_msg("Still processing data!");
+        log_msg(_("Still processing data"));
     }
     
 #ifndef USE_DMALLOC
@@ -659,16 +661,16 @@
     std::vector<std::string > msgs;
     if (obj.anydata(msgs))
     {
-        log_msg("Got " SIZET_FMT " messages: ", msgs.size());
+        log_msg(_("Got " SIZET_FMT " messages: "), msgs.size());
         for (size_t i=0; i<msgs.size(); ++i)
         {
-            log_msg(" Message " SIZET_FMT " : %s ", i, msgs[i].c_str());
+            log_msg(_(" Message " SIZET_FMT " : %s "), i, msgs[i].c_str());
         }
 
         boost::intrusive_ptr<as_function> onDataHandler = 
getEventHandler("onData");
         if ( onDataHandler )
         {
-            //log_msg("Got %d messages from XMLsocket", msgs.size());
+            //log_msg(_("Got %d messages from XMLsocket"), msgs.size());
             for (XMLSocket::MessageList::iterator it=msgs.begin(),
                                                        itEnd=msgs.end();
                            it != itEnd; ++it)
@@ -690,7 +692,7 @@
         }
         else
         {
-            log_error("Couldn't find onData!");
+            log_error(_("%s: Couldn't find onData"), __FUNCTION__);
         }
 
     }

Index: server/parser/BitmapMovieDefinition.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/BitmapMovieDefinition.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- server/parser/BitmapMovieDefinition.cpp     19 Feb 2007 11:08:22 -0000      
1.8
+++ server/parser/BitmapMovieDefinition.cpp     18 Apr 2007 14:07:32 -0000      
1.9
@@ -1,3 +1,4 @@
+// BitmapMovieDefinition.cpp:  , for Gnash.
 // 
 //   Copyright (C) 2007 Free Software Foundation, Inc.
 // 
@@ -10,11 +11,10 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-// 
 //
 
 #ifdef HAVE_CONFIG_H
@@ -61,7 +61,7 @@
        float w = _framesize.width()/20;
        float h = _framesize.height()/20;
 
-       log_msg("Creating a shape_definition wrapping a %g x %g bitmap", w, h);
+       log_msg(_("Creating a shape_definition wrapping a %g x %g bitmap"), w, 
h);
 
        path bmPath(w, h, fillLeft, 0, 0);
        bmPath.drawLineTo(w, 0);

Index: server/parser/action_buffer.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/action_buffer.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- server/parser/action_buffer.cpp     13 Apr 2007 07:35:56 -0000      1.16
+++ server/parser/action_buffer.cpp     18 Apr 2007 14:07:32 -0000      1.17
@@ -1,5 +1,6 @@
+// action_buffer.cpp:  holds actions for later execution, for Gnash.
 // 
-//   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
@@ -10,11 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-/* $Id: action_buffer.cpp,v 1.16 2007/04/13 07:35:56 bjacques Exp $ */
+/* $Id: action_buffer.cpp,v 1.17 2007/04/18 14:07:32 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -99,8 +102,8 @@
     }
     
     if (m_decl_dict_processed_at != -1)        {
-       log_warning("process_decl_dict(" SIZET_FMT ", " SIZET_FMT "): decl_dict 
was already processed at %d. "
-               "Skipping (or maybe we should append, or replace?).",
+       log_msg(_("process_decl_dict(" SIZET_FMT ", " SIZET_FMT "): decl_dict 
was already processed at %d. "
+               "Skipping (or maybe we should append, or replace?)."),
                  start_pc, stop_pc, m_decl_dict_processed_at);
        return;
     }
@@ -113,7 +116,7 @@
     uint16_t count = uint16_t(read_int16(i+3)); 
     i += 2;
     
-//log_msg("Start at %d, stop at %d, length read was %d, count read was %d", 
start_pc, stop_pc, length, count);
+//log_msg(_("Start at %d, stop at %d, length read was %d, count read was %d"), 
start_pc, stop_pc, length, count);
 
     assert(start_pc + 3 + length == stop_pc);
     
@@ -127,7 +130,7 @@
        while (m_buffer[3 + i]) {
            // safety check.
            if (i >= stop_pc) {
-               log_error("action buffer dict length exceeded\n");
+               log_error(_("action buffer dict length exceeded"));
                
                // Jam something into the remaining (invalid) entries.
                while (ct < count) {
@@ -450,7 +453,6 @@
 
 }
 
-
 // Local Variables:
 // mode: C++
 // indent-tabs-mode: t

Index: server/parser/button_character_def.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/button_character_def.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- server/parser/button_character_def.cpp      22 Mar 2007 10:33:11 -0000      
1.10
+++ server/parser/button_character_def.cpp      18 Apr 2007 14:07:32 -0000      
1.11
@@ -1,10 +1,25 @@
-// -- Thatcher Ulrich <address@hidden> 2003
-
-// This source code has been donated to the Public Domain.  Do
-// whatever you want with it.
+// button_character_def.cpp:  Mouse-sensitive SWF buttons, for Gnash.
+//
+//   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-// SWF buttons.  Mouse-sensitive update/display, actions, etc.
+/* $Id: button_character_def.cpp,v 1.11 2007/04/18 14:07:32 jgilmore Exp $ */
 
+// Based on the public domain work of Thatcher Ulrich <address@hidden> 2003
 
 #include "button_character_def.h"
 #include "button_character_instance.h" // for create_character_instance()
@@ -40,7 +55,7 @@
        }
 
        IF_VERBOSE_PARSE (
-       log_parse("-- actions in button\n"); // @@ need more info about which 
actions
+       log_parse(_("-- actions in button\n")); // @@ need more info about 
which actions
        );
 
        // Read actions.
@@ -81,9 +96,9 @@
        // definition, we print an error, but keep parsing.
        if ( ! m_character_def )
        {
-               log_error("button record refer to "
+               log_error(_("button record refer to "
                        "character with id %d, which is not found "
-                       "in the chars dictionary", m_character_id);
+                       "in the chars dictionary"), m_character_id);
        }
 
        m_button_layer = in->read_u16(); 
@@ -207,7 +222,7 @@
                assert(m_sound == NULL);        // redefinition button sound is 
error
                m_sound = new button_sound_def();
                IF_VERBOSE_PARSE(
-               log_parse("button sound options: ");
+               log_parse(_("button sound options: "));
                );
                for (int i = 0; i < 4; i++)
                {
@@ -257,7 +272,7 @@
                if ( next_action_pos >= in->get_tag_end_position() )
                {
                        IF_VERBOSE_MALFORMED_SWF(
-                       log_swferror("Next Button2 actionOffset (%u) points 
past the end of tag", button_2_action_offset);
+                       log_swferror(_("Next Button2 actionOffset (%u) points 
past the end of tag"), button_2_action_offset);
                        );
                        return;
                }
@@ -283,7 +298,7 @@
                        if ( next_action_pos >= in->get_tag_end_position() )
                        {
                                IF_VERBOSE_MALFORMED_SWF(
-                               log_swferror("Next action offset (%u) in 
Button2ActionConditions points past the end of tag",
+                               log_swferror(_("Next action offset (%u) in 
Button2ActionConditions points past the end of tag"),
                                        next_action_offset);
                                );
                                break;
@@ -318,7 +333,6 @@
 
 }
 
-
 // Local Variables:
 // mode: C++
 // c-basic-offset: 8 

Index: server/parser/edit_text_character_def.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/edit_text_character_def.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- server/parser/edit_text_character_def.cpp   28 Mar 2007 20:38:35 -0000      
1.7
+++ server/parser/edit_text_character_def.cpp   18 Apr 2007 14:07:32 -0000      
1.8
@@ -1,10 +1,25 @@
-// text.cpp    -- Thatcher Ulrich <address@hidden> 2003
+// edit_text_character_def.cpp:  Text tags, for Gnash.
+//
+//   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-// This source code has been donated to the Public Domain.  Do
-// whatever you want with it.
-
-// Code for the text tags.
+/* $Id: edit_text_character_def.cpp,v 1.8 2007/04/18 14:07:32 jgilmore Exp $ */
 
+// Based on the public domain text.cpp of Thatcher Ulrich <address@hidden> 2003
 
 #include "stream.h"
 #include "log.h"
@@ -102,7 +117,7 @@
                m_font = m_root_def->get_font(m_font_id);
                if (m_font == NULL)
                {
-                       log_error("error: text style with undefined font; 
font_id = %d", m_font_id);
+                       log_error(_("error: text style with undefined font; 
font_id = %d"), m_font_id);
                }
        }
 
@@ -141,12 +156,9 @@
        return ch;
 }
 
-
 } // namespace gnash
 
-
 // Local Variables:
 // mode: C++
 // indent-tabs-mode: t
 // End:
-

Index: server/parser/morph2_character_def.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/morph2_character_def.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- server/parser/morph2_character_def.cpp      3 Apr 2007 16:13:07 -0000       
1.6
+++ server/parser/morph2_character_def.cpp      18 Apr 2007 14:07:32 -0000      
1.7
@@ -1,10 +1,27 @@
-// morph2.cpp
-// -- Thatcher Ulrich <address@hidden>, Mike Shaver <address@hidden> 2003, 
Vitalij Alexeev <address@hidden> 2004.
-
-// This source code has been donated to the Public Domain.  Do
-// whatever you want with it.
-
-// Loading and rendering of morphing shapes using gnash_shape.
+// morph2_character_def.cpp:   Load and render morphing shapes, for Gnash.
+//
+//   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+/* $Id: morph2_character_def.cpp,v 1.7 2007/04/18 14:07:32 jgilmore Exp $ */
+
+// Based on the public domain morph2.cpp of:
+// Thatcher Ulrich <address@hidden>, Mike Shaver <address@hidden> 2003,
+// Vitalij Alexeev <address@hidden> 2004.
 
 #include "morph2_character_def.h"
 #include "stream.h"
@@ -223,7 +240,7 @@
                        fs2.m_type = fs1.m_type;
 
                        IF_VERBOSE_PARSE(
-                         log_parse("morph fill style type = 0x%X",
+                         log_parse(_("morph fill style type = 0x%X"),
                            fs1.m_type);
                        );
 
@@ -233,9 +250,9 @@
                                fs2.m_color.read_rgba(in);
 
                                IF_VERBOSE_PARSE(
-                                 log_parse("morph fill style begin color: ");
+                                 log_parse(_("morph fill style begin color: 
"));
                                  fs1.m_color.print();
-                                 log_parse("morph fill style end color: ");
+                                 log_parse(_("morph fill style end color: "));
                                  fs2.m_color.print();
                                );
                        }
@@ -283,7 +300,7 @@
                                }
 
                                IF_VERBOSE_PARSE(
-                                 log_parse("morph fsr: num_gradients = %d",
+                                 log_parse(_("morph fsr: num_gradients = %d"),
                                    num_gradients);
                                );
 
@@ -299,7 +316,7 @@
 
                                int     bitmap_char_id = in->read_u16();
                                IF_VERBOSE_PARSE(
-                                 log_parse("morph fsr bitmap_char = %d",
+                                 log_parse(_("morph fsr bitmap_char = %d"),
                                    bitmap_char_id);
                                );
 
@@ -367,17 +384,17 @@
 
                if ( m_shape1->m_paths.size() != m_shape2->m_paths.size() )
                {
-                       log_swferror("Different number of paths "
+                       log_swferror(_("Different number of paths "
                                "in start (" SIZET_FMT ") and end (" SIZET_FMT
-                               ") shapes of a morph",
+                               ") shapes of a morph"),
                                m_shape1->m_paths.size(),
                                m_shape2->m_paths.size());
                }
                else if ( edges_count1 != edges_count2 )
                {
-                       log_swferror("Different number of edges "
+                       log_swferror(_("Different number of edges "
                                "in start (%u) and end (%u) shapes "
-                               "of a morph",
+                               "of a morph"),
                                edges_count1, edges_count1);
                }
 
@@ -386,8 +403,6 @@
        }
 }
 
-
-
 // Local Variables:
 // mode: C++
 // c-basic-offset: 8 

Index: server/parser/movie_def_impl.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/movie_def_impl.cpp,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -b -r1.66 -r1.67
--- server/parser/movie_def_impl.cpp    14 Apr 2007 15:53:17 -0000      1.66
+++ server/parser/movie_def_impl.cpp    18 Apr 2007 14:07:32 -0000      1.67
@@ -1,5 +1,6 @@
+// movie_def_impl.cpp:  Load in Movie definitions, for Gnash.
 // 
-//   Copyright (C) 2005, 200, 2007 Free Software Foundation, Inc.
+//   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
@@ -10,9 +11,11 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -127,6 +130,7 @@
 //
 // some utility stuff
 //
+// FIXME, this needs work now that log_msg always ends with a newline.
 
 void   dump_tag_bytes(stream* in)
     // Log the contents of the current tag, in hex.
@@ -273,7 +277,7 @@
 
                     if (res == NULL)
                         {
-                            log_error("import error: resource '%s' is not 
exported from movie '%s'",
+                            log_error(_("import error: resource '%s' is not 
exported from movie '%s'"),
                                       inf.m_symbol.c_str(), 
source_url.c_str());
                         }
                     else if (font* f = res->cast_to_font())
@@ -290,7 +294,7 @@
                         }
                     else
                         {
-                            log_error("import error: resource '%s' from movie 
'%s' has unknown type",
+                            log_error(_("import error: resource '%s' from 
movie '%s' has unknown type"),
                                       inf.m_symbol.c_str(), 
source_url.c_str());
                         }
 
@@ -319,7 +323,7 @@
     // make sure character_id is resolved
     if (in_import_table(character_id))
         {
-            log_error("get_character_def(): character_id %d is still waiting 
to be imported",
+            log_error(_("get_character_def(): character_id %d is still waiting 
to be imported"),
                       character_id);
         }
 #endif // not NDEBUG
@@ -341,7 +345,7 @@
     // make sure font_id is resolved
     if (in_import_table(font_id))
         {
-            log_error("get_font(): font_id %d is still waiting to be imported",
+            log_error(_("get_font(): font_id %d is still waiting to be 
imported"),
                       font_id);
         }
 #endif // not NDEBUG
@@ -365,7 +369,7 @@
                bitmap_character_def* ch)
 {
     assert(ch);
-    //log_msg("Add bitmap character %d", character_id);
+    //log_msg(_("Add bitmap character %d"), character_id);
     //m_bitmap_characters.add(character_id, ch);
     m_bitmap_characters.insert(make_pair(character_id, 
boost::intrusive_ptr<bitmap_character_def>(ch)));
 
@@ -388,7 +392,7 @@
 void movie_def_impl::add_sound_sample(int character_id, sound_sample* sam)
 {
     assert(sam);
-       log_msg("Add sound sample %d", character_id);
+       log_msg(_("Add sound sample %d"), character_id);
     m_sound_samples.insert(make_pair(character_id,
             boost::intrusive_ptr<sound_sample>(sam)));
 }
@@ -416,33 +420,33 @@
                && (header & 0x0FFFFFF) != 0x00535743)
         {
                // ERROR
-               log_error("gnash::movie_def_impl::read() -- "
-                       "file does not start with a SWF header!\n");
+               log_error(_("gnash::movie_def_impl::read() -- "
+                       "file does not start with a SWF header"));
                return false;
         }
        bool    compressed = (header & 255) == 'C';
     
        IF_VERBOSE_PARSE(
-               log_parse("version = %d, file_length = %d",
+               log_parse(_("version = %d, file_length = %d"),
                        m_version, m_file_length);
        );
 
        if ( m_version > 7 )
        {
-               log_warning("SWF%d is not fully supported, trying anyway "
-                       "but don't expect it to work", m_version);
+               log_unimpl(_("SWF%d is not fully supported, trying anyway "
+                       "but don't expect it to work"), m_version);
        }
 
        if (compressed)
         {
 #if TU_CONFIG_LINK_TO_ZLIB == 0
-               log_error("movie_def_impl::read(): unable to read "
-                       "zipped SWF data; TU_CONFIG_LINK_TO_ZLIB is 0");
+               log_error(_("movie_def_impl::read(): unable to read "
+                       "zipped SWF data; TU_CONFIG_LINK_TO_ZLIB is 0"));
                return false;
 #endif
 
                IF_VERBOSE_PARSE(
-                       log_parse("file is compressed.");
+                       log_parse(_("file is compressed"));
                );
 
                // Uncompress the input as we read it.
@@ -470,7 +474,7 @@
 
        IF_VERBOSE_PARSE(
                m_frame_size.print();
-               log_parse("frame rate = %f, frames = " SIZET_FMT,
+               log_parse(_("frame rate = %f, frames = " SIZET_FMT),
                        m_frame_rate, m_frame_count);
        );
 
@@ -498,7 +502,7 @@
        // Start the loading frame
        if ( ! _loader.start() )
        {
-               log_error("Could not start loading thread");
+               log_error(_("Could not start loading thread"));
                return false;
        }
 
@@ -542,12 +546,12 @@
        if ( framenum <= _frames_loaded ) return true;
 
        _waiting_for_frame = framenum;
-        //log_msg("Waiting for frame %u to be loaded", framenum);
+        //log_msg(_("Waiting for frame %u to be loaded"), framenum);
 
        // TODO: return false on timeout 
        _frame_reached_condition.wait(lock);
 
-        //log_msg("Condition reached (_frames_loaded=%u)", _frames_loaded);
+        //log_msg(_("Condition reached (_frames_loaded=%u)"), _frames_loaded);
 
        return ( framenum <= _frames_loaded );
 }
@@ -650,13 +654,13 @@
     in->read_bytes(header, 4);
     if (header[0] != 'g' || header[1] != 's' || header[2] != 'c')
         {
-            log_error("cache file does not have the correct format; 
skipping\n");
+            log_error(_("cache file does not have the correct format; 
skipping"));
             return;
         }
     else if (header[3] != CACHE_FILE_VERSION)
         {
             log_error(
-                "cached data is version %d, but we require version %d; 
skipping\n",
+                _("cached data is version %d, but we require version %d; 
skipping"),
                 int(header[3]), CACHE_FILE_VERSION);
             return;
         }
@@ -671,12 +675,12 @@
         {
             if (in->get_error() != TU_FILE_NO_ERROR)
                 {
-                    log_error("error reading cache file (characters); 
skipping\n");
+                    log_error(_("error reading cache file (characters); 
skipping"));
                     return;
                 }
             if (in->get_eof())
                 {
-                    log_error("unexpected eof reading cache file (characters); 
skipping\n");
+                    log_error(_("unexpected eof reading cache file 
(characters); skipping"));
                     return;
                 }
 
@@ -691,8 +695,8 @@
                 }
             else
                 {
-                    log_error("sync error in cache file (reading characters)!  
"
-                              "Skipping rest of cache data.\n");
+                    log_error(_("sync error in cache file (reading 
characters).  "
+                              "Skipping rest of cache data."));
                     return;
                 }
         }
@@ -725,7 +729,7 @@
        for ( const_iterator it=begin(), endIt=end();
                it != endIt; ++it )
        {
-               log_msg("Character %d @ %p", it->first, 
static_cast<void*>(it->second.get()));
+               log_msg(_("Character %d @ %p"), it->first, 
static_cast<void*>(it->second.get()));
                //character_def* cdef = it->second;
        }
 }
@@ -737,7 +741,7 @@
        if ( it == _map.end() )
        {
                IF_VERBOSE_PARSE(
-               log_parse("Could not find char %d, dump is:", id);
+               log_parse(_("Could not find char %d, dump is:"), id);
                dump_chars();
                );
                return boost::intrusive_ptr<character_def>();
@@ -748,7 +752,7 @@
 void
 CharacterDictionary::add_character(int id, boost::intrusive_ptr<character_def> 
c)
 {
-       //log_msg("CharacterDictionary: add char %d", id);
+       //log_msg(_("CharacterDictionary: add char %d"), id);
        _map[id] = c;
        //dump_chars();
 }
@@ -771,16 +775,16 @@
        nextframe += FRAMELOAD_CHUNK; // load in chunks of 10 frames 
        if ( nextframe > framecount ) nextframe = framecount;
 #endif
-       //log_msg("Framecount: %u, Lastloaded: %u", framecount, lastloaded);
+       //log_msg(_("Framecount: %u, Lastloaded: %u"), framecount, lastloaded);
        if ( nextframe <= framecount )
        {
 #ifdef DEBUG_FRAMES_LOAD // debugging
-               log_msg("Ensure load of frame %u/%u (last loaded is: %u)",
+               log_msg(_("Ensure load of frame %u/%u (last loaded is: %u)"),
                        nextframe, framecount, lastloaded);
 #endif
                if ( ! ensure_frame_loaded(nextframe) )
                {
-                       log_error("Could not advance to frame " SIZET_FMT "!",
+                       log_error(_("Could not advance to frame " SIZET_FMT),
                                nextframe);
                        // these kind of errors should be handled by callers
                        assert(0);
@@ -789,7 +793,7 @@
 #ifdef DEBUG_FRAMES_LOAD
        else
        {
-               log_msg("No more frames to load. Framecount: %u, Lastloaded: 
%u, next to load: %u", framecount, lastloaded, nextframe);
+               log_msg(_("No more frames to load. Framecount: %u, Lastloaded: 
%u, next to load: %u"), framecount, lastloaded, nextframe);
        }
 #endif
 }
@@ -815,7 +819,7 @@
        while ( (uint32_t) str.get_position() < _swf_end_pos )
        {
        
-               //log_msg("Loading thread iteration %u", it++);
+               //log_msg(_("Loading thread iteration %u"), it++);
 
                SWF::tag_type tag_type = str.open_tag();
 
@@ -845,9 +849,9 @@
                                if ( tag_type != SWF::END )
                                {
                                        IF_VERBOSE_MALFORMED_SWF(
-                                       log_swferror("last expected SHOWFRAME "
+                                       log_swferror(_("last expected SHOWFRAME 
"
                                                "in SWF stream '%s' isn't "
-                                               "followed by an END (%d).",
+                                               "followed by an END (%d)."),
                                                get_url().c_str(), tag_type);
                                        );
                                }
@@ -864,7 +868,7 @@
                else
                {
                        // no tag loader for this tag type.
-                       log_error("*** no tag loader for type %d (movie)",
+                       log_error(_("*** no tag loader for type %d (movie)"),
                                tag_type);
                        IF_VERBOSE_PARSE(
                                dump_tag_bytes(&str);
@@ -877,15 +881,17 @@
 
                if (tag_type == SWF::END)
                 {
+                   IF_VERBOSE_MALFORMED_SWF(
                        if ((unsigned int) str.get_position() != _swf_end_pos)
                         {
                                // Safety break, so we don't read past
                                // the end of the  movie.
-                               log_warning("hit stream-end tag, "
+                               log_swferror(_("Hit stream-end tag, "
                                        "but not at the advertised SWF end; "
-                                       "stopping for safety.");
+                                       "stopping for safety."));
                                break;
                        }
+                   )
                }
        }
 
@@ -896,14 +902,14 @@
                //        Also, we should probably call _loader.unlock()
                //        and make sure any wait_for_frame call is
                //        released (condition set and false result)
-               log_error("Parsing exception: %s", e.what());
+               log_error(_("Parsing exception: %s"), e.what());
        }
 
        if ( ! m_playlist[_frames_loaded].empty() || ! 
m_init_action_list[_frames_loaded].empty() )
        {
                IF_VERBOSE_MALFORMED_SWF(
-               log_swferror(SIZET_FMT " action blocks and " SIZET_FMT " init 
action blocks are NOT followed by"
-                       " a SHOWFRAME tag",
+               log_swferror(_(SIZET_FMT " action blocks and " SIZET_FMT " init 
action blocks are NOT followed by"
+                       " a SHOWFRAME tag"),
                        m_playlist[_frames_loaded].size(),
                        m_init_action_list[_frames_loaded].size());
                );
@@ -912,15 +918,14 @@
        if ( m_frame_count > _frames_loaded )
        {
                IF_VERBOSE_MALFORMED_SWF(
-               log_swferror(SIZET_FMT " frames advertised in header, but only 
" SIZET_FMT " SHOWFRAME tags "
-                       "found in stream. Updating total frames count", 
m_frame_count, _frames_loaded);
+               log_swferror(_(SIZET_FMT " frames advertised in header, but 
only " SIZET_FMT " SHOWFRAME tags "
+                       "found in stream. Updating total frames count"), 
m_frame_count, _frames_loaded);
                );
                boost::mutex::scoped_lock lock(_frames_loaded_mutex);
                m_frame_count = _frames_loaded;
                // Notify any thread waiting on frame reached condition
                _frame_reached_condition.notify_all();
        }
-
 }
 
 size_t
@@ -939,11 +944,11 @@
        if ( _frames_loaded > m_frame_count )
        {
                IF_VERBOSE_MALFORMED_SWF(
-                       log_swferror("number of SHOWFRAME tags "
+                       log_swferror(_("number of SHOWFRAME tags "
                                "in SWF stream '%s' (" SIZET_FMT
                                ") exceeds "
                                "the advertised number in header ("
-                               SIZET_FMT ").",
+                               SIZET_FMT ")."),
                                get_url().c_str(), _frames_loaded,
                                m_frame_count);
                );
@@ -952,7 +957,7 @@
        }
 
 #ifdef DEBUG_FRAMES_LOAD
-       log_msg("Loaded frame %u/%u",
+       log_msg(_("Loaded frame %u/%u"),
                _frames_loaded, m_frame_count);
 #endif
 
@@ -964,7 +969,6 @@
                // See: http://boost.org/doc/html/condition.html
                _frame_reached_condition.notify_all();
        }
-
 }
 
 void
@@ -983,7 +987,7 @@
        boost::intrusive_ptr<resource> res;
 
 #ifdef DEBUG_EXPORTS
-       log_msg("get_exported_resource called, frame count=%u", m_frame_count);
+       log_msg(_("get_exported_resource called, frame count=%u"), 
m_frame_count);
 #endif
 
        // Don't call get_exported_resource() from this movie loader
@@ -1019,8 +1023,8 @@
 
                if ( new_loading_frame != loading_frame )
                {
-                       log_msg("frame load advancement (from "
-                               SIZET_FMT " to " SIZET_FMT ")",
+                       log_msg(_("frame load advancement (from "
+                               SIZET_FMT " to " SIZET_FMT ")"),
                                loading_frame, new_loading_frame);
                        loading_frame = new_loading_frame;
                        timeout = def_timeout;
@@ -1029,12 +1033,12 @@
                {
                        if ( ! timeout-- )
                        {
-                               log_warning("No frame progress in movie %s "
+                               log_error(_("No frame progress in movie %s "
                                        "after %lu milliseconds "
                                        "(%lu microseconds = %lu iterations), "
                                        "giving up on "
                                        "get_exported_resource(%s): "
-                                       "circular IMPORTS?",
+                                       "circular IMPORTS?"),
                                        get_url().c_str(),
                                        (def_timeout*naptime)/1000,
                                        def_timeout*naptime,
@@ -1043,23 +1047,23 @@
                                return res;
                        }
 
-                       log_warning("no frame progress at iteration %lu", 
timeout);
+                       log_error(_("no frame progress at iteration %lu"), 
timeout);
 
                        continue; // not worth checking
                }
 
                if ( loading_frame >= m_frame_count )
                {
-                       log_msg("At end of stream, still no '%s' symbol found "
+                       log_error(_("At end of stream, still no '%s' symbol 
found "
                                "in m_exports (" SIZET_FMT " entries in it, "
-                               "follow)", symbol.c_str(), m_exports.size());
+                               "follow)"), symbol.c_str(), m_exports.size());
                        return res;
                }
 
 #ifdef DEBUG_EXPORTS
-               log_msg("We haven't finished loading (loading frame %u), "
+               log_msg(_("We haven't finished loading (loading frame %u), "
                        "and m_exports.get returned no entries, "
-                       "sleeping a bit and trying again",
+                       "sleeping a bit and trying again"),
                        get_loading_frame());
 #endif
 
@@ -1072,7 +1076,7 @@
 void
 movie_def_impl::add_frame_name(const std::string& n)
 {
-       //log_msg("labelframe: frame %d, name %s", _frames_loaded, name);
+       //log_msg(_("labelframe: frame %d, name %s"), _frames_loaded, name);
        assert(_frames_loaded < m_frame_count);
     m_named_frames[n] = _frames_loaded;
 }
@@ -1086,6 +1090,4 @@
     return true;
 }
 
-
 } // namespace gnash
-

Index: server/parser/shape_character_def.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/shape_character_def.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- server/parser/shape_character_def.cpp       12 Apr 2007 05:37:33 -0000      
1.15
+++ server/parser/shape_character_def.cpp       18 Apr 2007 14:07:32 -0000      
1.16
@@ -1,12 +1,27 @@
-// shape.cpp   -- Thatcher Ulrich <address@hidden> 2003
-
-// This source code has been donated to the Public Domain.  Do
-// whatever you want with it.
+// shape_character_def.cpp:  Quadratic bezier outline shapes, for Gnash.
+//
+//   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-// Quadratic bezier outline shapes, the basis for most SWF rendering.
+/* $Id: shape_character_def.cpp,v 1.16 2007/04/18 14:07:32 jgilmore Exp $ */
 
+// Based on the public domain shape.cpp of Thatcher Ulrich <address@hidden> 
2003
 
-/* $Id: shape_character_def.cpp,v 1.15 2007/04/12 05:37:33 strk Exp $ */
+// Quadratic bezier outline shapes are the basis for most SWF rendering.
 
 #include "shape_character_def.h"
 
@@ -67,7 +82,7 @@
        }
 
        IF_VERBOSE_PARSE (
-               log_parse("  read_fill_styles: count = %u", fill_style_count);
+               log_parse(_("  read_fill_styles: count = %u"), 
fill_style_count);
        );
 
        // Read the styles. 
@@ -102,7 +117,7 @@
     
                IF_VERBOSE_PARSE
                (
-    log_parse("  read_line_styles: count = %d", line_style_count);
+    log_parse(_("  read_line_styles: count = %d"), line_style_count);
                );
 
     // @@ does the 0xFF flag apply to all tag types?
@@ -112,7 +127,7 @@
        line_style_count = in->read_u16();
                IF_VERBOSE_PARSE
                (
-       log_parse("  read_line_styles: count2 = %d", line_style_count);
+       log_parse(_("  read_line_styles: count2 = %d"), line_style_count);
                );
     }
     // }
@@ -162,7 +177,7 @@
                IF_VERBOSE_PARSE
                (
                 std::string b = m_bound.toString();
-    log_parse("  bound rect: %s", b.c_str()); 
+    log_parse(_("  bound rect: %s"), b.c_str());
                );
 
        read_fill_styles(m_fill_styles, in, tag_type, m);
@@ -174,7 +189,7 @@
 
                IF_VERBOSE_PARSE
                (
-    log_parse("  shape_character_def read: nfillbits = %d, nlinebits = %d", 
num_fill_bits, num_line_bits);
+    log_parse(_("  shape_character_def read: nfillbits = %d, nlinebits = %d"), 
num_fill_bits, num_line_bits);
                );
 
     // These are state variables that keep the
@@ -231,7 +246,7 @@
                IF_VERBOSE_PARSE
                (
                if (SHAPE_LOG) 
-                   log_parse("  shape_character read: moveto %4g %4g", x, y);
+                   log_parse(_("  shape_character read: moveto %4g %4g"), x, 
y);
                );
            }
            if ((flags & 0x02) && num_fill_bits > 0) {
@@ -250,7 +265,7 @@
                IF_VERBOSE_PARSE
                (
                if (SHAPE_LOG) {
-                   log_parse("  shape_character read: fill0 (left) = %d", 
current_path.getLeftFill());
+                   log_parse(_("  shape_character read: fill0 (left) = %d"), 
current_path.getLeftFill());
                }
                );
                
@@ -270,7 +285,7 @@
                current_path.setRightFill(style); // getRightFill() = style;
                IF_VERBOSE_PARSE (
                if (SHAPE_LOG) {
-                   log_parse("  shape_character read: fill1 (right) = %d", 
current_path.getRightFill());
+                   log_parse(_("  shape_character read: fill1 (right) = %d"), 
current_path.getRightFill());
                }
                );
            }
@@ -290,7 +305,7 @@
                IF_VERBOSE_PARSE (
                if (SHAPE_LOG)
                {
-                   log_parse("  shape_character_read: line = %d", 
current_path.getLineStyle());
+                   log_parse(_("  shape_character_read: line = %d"), 
current_path.getLineStyle());
                }
                );
            }
@@ -301,7 +316,7 @@
                assert(tag_type >= 22);
 
                IF_VERBOSE_PARSE (
-               log_parse("  shape_character read: more fill styles");
+               log_parse(_("  shape_character read: more fill styles"));
                );
 
                // Store the current path if any.
@@ -337,7 +352,7 @@
                IF_VERBOSE_PARSE (
                if (SHAPE_LOG)
                {
-                   log_parse("  shape_character read: curved edge   = %4g %4g 
- %4g %4g - %4g %4g", x, y, cx, cy, ax, ay);
+                   log_parse(_("  shape_character read: curved edge   = %4g 
%4g - %4g %4g - %4g %4g"), x, y, cx, cy, ax, ay);
                }
                );
 
@@ -368,7 +383,7 @@
                IF_VERBOSE_PARSE (
                if (SHAPE_LOG)
                {
-                   log_parse("  shape_character_read: straight edge = %4g %4g 
- %4g %4g", x, y, x + dx, y + dy);
+                   log_parse(_("  shape_character_read: straight edge = %4g 
%4g - %4g %4g"), x, y, x + dx, y + dy);
                }
                );
 
@@ -664,7 +679,6 @@
 
 }      // end namespace gnash
 
-
 // Local Variables:
 // mode: C++
 // indent-tabs-mode: t

Index: server/parser/sprite_definition.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/sprite_definition.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- server/parser/sprite_definition.cpp 13 Apr 2007 07:35:56 -0000      1.12
+++ server/parser/sprite_definition.cpp 18 Apr 2007 14:07:32 -0000      1.13
@@ -1,3 +1,4 @@
+// sprite_definition.cpp:  for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,11 +11,10 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-// 
 //
 
 #ifdef HAVE_CONFIG_H
@@ -39,7 +39,7 @@
                int id)
 {
 #ifdef DEBUG_REGISTER_CLASS
-       log_msg("Instanciating sprite_def %p", (void*)this);
+       log_msg(_("Instantiating sprite_def %p"), (void*)this);
 #endif
        sprite_instance* si = new sprite_instance(this,
                parent->get_root(), parent, id);
@@ -78,7 +78,7 @@
        m_playlist.resize(m_frame_count);
 
                IF_VERBOSE_PARSE (
-       log_parse("  frames = " SIZET_FMT, m_frame_count);
+       log_parse(_("  frames = " SIZET_FMT), m_frame_count);
                );
 
        m_loading_frame = 0;
@@ -89,11 +89,13 @@
 
                SWF::TagLoadersTable::loader_function lf = NULL;
 
+               IF_VERBOSE_MALFORMED_SWF(
                if (tag_type == SWF::DEFINESPRITE)
                {
-                       log_error("DefineSprite tag inside sprite "
-                               "definition - Malformed SWF!");
+                       log_swferror(_("DefineSprite tag inside sprite "
+                               "definition"));
                }
+               );
 
                if (tag_type == SWF::SHOWFRAME)
                {
@@ -101,9 +103,9 @@
                        ++m_loading_frame;
 
                        IF_VERBOSE_PARSE (
-                               log_parse("  show_frame "
+                               log_parse(_("  show_frame "
                                        SIZET_FMT "/" SIZET_FMT
-                                       " (sprite)",
+                                       " (sprite)"),
                                        m_loading_frame,
                                        m_frame_count);
                        );
@@ -116,10 +118,10 @@
                                while ( in->open_tag() != SWF::END )
                                {
                                        IF_VERBOSE_MALFORMED_SWF(
-                                       log_warning("last SHOWFRAME of a "
+                                       log_swferror(_("last SHOWFRAME of a "
                                                "DEFINESPRITE tag "
                                                "isn't followed by an END."
-                                               " Seeking to next END tag.");
+                                               " Seeking to next END tag."));
                                        );
                                        in->close_tag();
                                }
@@ -136,7 +138,8 @@
                else
                {
                        // no tag loader for this tag type.
-                    log_error("*** no tag loader for type %d (sprite)",
+                       // FIXME, should this be a log_swferror instead?
+                    log_error(_("*** no tag loader for type %d (sprite)"),
                               tag_type);
                }
 
@@ -144,7 +147,7 @@
        }
 
                IF_VERBOSE_PARSE (
-       log_parse("  -- sprite END --");
+       log_parse(_("  -- sprite END --"));
                );
 }
 
@@ -152,7 +155,7 @@
 void
 sprite_definition::add_frame_name(const std::string& name)
 {
-       //log_msg("labelframe: frame %d, name %s", m_loading_frame, name);
+       //log_msg(_("labelframe: frame %d, name %s"), m_loading_frame, name);
        assert(m_loading_frame < m_frame_count);
     m_named_frames[name] = m_loading_frame;
 }
@@ -202,12 +205,11 @@
 {
        registeredClass = the_class;
 #ifdef DEBUG_REGISTER_CLASS
-       log_msg("Registered class %p for sprite_def %p", 
(void*)registeredClass.get(), (void*)this);
+       log_msg(_("Registered class %p for sprite_def %p"), 
(void*)registeredClass.get(), (void*)this);
        as_object* proto = registeredClass->getPrototype();
-       log_msg(" Exported interface: ");
+       log_msg(_(" Exported interface: "));
        proto->dump_members();
 #endif
 }
 
-
 } // namespace gnash

Index: server/parser/sprite_definition.h
===================================================================
RCS file: /sources/gnash/gnash/server/parser/sprite_definition.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- server/parser/sprite_definition.h   10 Apr 2007 15:48:39 -0000      1.16
+++ server/parser/sprite_definition.h   18 Apr 2007 14:07:32 -0000      1.17
@@ -1,3 +1,4 @@
+// sprite_definition.h:  Holds immutable data for a sprite, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,11 +11,10 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-// 
 //
 
 #ifndef GNASH_SPRITE_DEFINITION_H
@@ -156,8 +156,7 @@
        virtual void add_font(int /*id*/, font* /*ch*/)
        {
                IF_VERBOSE_MALFORMED_SWF (
-               log_warning("add_font tag appears in sprite tags! "
-                       "Malformed SWF?\n");
+               log_swferror(_("add_font tag appears in sprite tags"));
                );
        }
 
@@ -178,8 +177,7 @@
                        bitmap_character_def* /*ch*/)
        {
                IF_VERBOSE_MALFORMED_SWF (
-               log_warning("add_bitmap_character_def appears in sprite tags!"
-                       " Malformed SWF?");
+               log_swferror(_("add_bitmap_character_def appears in sprite 
tags"));
                );
        }
 
@@ -193,8 +191,7 @@
        virtual void add_sound_sample(int /*id*/, sound_sample* /*sam*/)
        {
                IF_VERBOSE_MALFORMED_SWF (
-               log_warning("add sam appears in sprite tags!"
-                       " Malformed SWF?");
+               log_swferror(_("add sam appears in sprite tags"));
                );
        }
 
@@ -217,7 +214,7 @@
                        resource* /*res*/)
        {
                IF_VERBOSE_MALFORMED_SWF (
-               log_swferror("Can't export from sprite!");
+               log_swferror(_("Can't export from sprite"));
                );
        }
 
@@ -246,8 +243,7 @@
        virtual void add_character(int /*id*/, character_def* /*ch*/)
        {
                IF_VERBOSE_MALFORMED_SWF (
-               log_warning("add_character tag appears in sprite tags!"
-                               " Maformed SWF?");
+               log_swferror(_("add_character tag appears in sprite tags"));
                );
        }
 
@@ -277,7 +273,7 @@
        virtual void    add_init_action(execute_tag* /*c*/)
        {
                IF_VERBOSE_MALFORMED_SWF (
-               log_warning("sprite_definition::add_init_action called!  
Ignored. (Malformed SWF?)\n");
+               log_swferror(_("sprite_definition::add_init_action called!  
Ignored"));
                );
        }
 
@@ -313,9 +309,9 @@
                // TODO: return false on timeout 
                while ( m_loading_frame < framenum )
                {
-                       log_msg("sprite_definition: "
+                       log_msg(_("sprite_definition: "
                                "loading of frame " SIZET_FMT " requested "
-                               "(we are at " SIZET_FMT "/" SIZET_FMT ")",
+                               "(we are at " SIZET_FMT "/" SIZET_FMT ")"),
                                framenum, m_loading_frame, m_frame_count);
                        // Could this ever happen ?
                        assert(0);

Index: server/parser/text_character_def.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/text_character_def.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- server/parser/text_character_def.cpp        8 Nov 2006 07:28:21 -0000       
1.2
+++ server/parser/text_character_def.cpp        18 Apr 2007 14:07:32 -0000      
1.3
@@ -1,24 +1,15 @@
-// text.cpp    -- Thatcher Ulrich <address@hidden> 2003
+// text_character_def.cpp:  Read text character definitions, for Gnash.
+
+// Derived from text.cpp       -- Thatcher Ulrich <address@hidden> 2003
 
 // This source code has been donated to the Public Domain.  Do
 // whatever you want with it.
 
 // Code for the text tags.
 
-
-//#include "utf8.h"
-//#include "utility.h"
-//#include "impl.h"
-//#include "shape.h"
-//#include "shape_character_def.h"
 #include "stream.h"
 #include "log.h"
-//#include "font.h"
-//#include "fontlib.h"
-//#include "render.h"
-//#include "textformat.h"
 #include "text_character_def.h"
-//#include "movie_definition.h"
 
 namespace gnash {
 
@@ -35,7 +26,7 @@
        int     advance_bits = in->read_u8();
 
        IF_VERBOSE_PARSE(
-       log_parse("begin text records");
+       log_parse(_("begin text records"));
        );
 
        bool    last_record_was_style_change = false;
@@ -49,7 +40,7 @@
                {
                        // This is the end of the text records.
                        IF_VERBOSE_PARSE(
-                       log_parse("end text records");
+                       log_parse(_("end text records"));
                        );
                        break;
                }
@@ -68,7 +59,7 @@
                        bool    has_x_offset = (first_byte >> 0) & 1;
 
                        IF_VERBOSE_PARSE(
-                       log_parse("  text style change");
+                       log_parse(_("  text style change"));
                        );
 
                        if (has_font)
@@ -77,7 +68,7 @@
                                style.m_font_id = font_id;
                                style.resolve_font(m);
                                IF_VERBOSE_PARSE(
-                               log_parse("  has_font: font id = %d", font_id);
+                               log_parse(_("  has_font: font id = %d"), 
font_id);
                                );
                        }
                        if (has_color)
@@ -92,7 +83,7 @@
                                        style.m_color.read_rgba(in);
                                }
                                IF_VERBOSE_PARSE(
-                               log_parse("  has_color");
+                               log_parse(_("  has_color"));
                                );
                        }
                        if (has_x_offset)
@@ -100,7 +91,7 @@
                                style.m_has_x_offset = true;
                                style.m_x_offset = in->read_s16();
                                IF_VERBOSE_PARSE(
-                               log_parse("  has_x_offset = %g", 
style.m_x_offset);
+                               log_parse(_("  has_x_offset = %g"), 
style.m_x_offset);
                                );
                        }
                        else
@@ -113,7 +104,7 @@
                                style.m_has_y_offset = true;
                                style.m_y_offset = in->read_s16();
                                IF_VERBOSE_PARSE(
-                               log_parse("  has_y_offset = %g", 
style.m_y_offset);
+                               log_parse(_("  has_y_offset = %g"), 
style.m_y_offset);
                                );
                        }
                        else
@@ -125,7 +116,7 @@
                        {
                                style.m_text_height = in->read_u16();
                                IF_VERBOSE_PARSE(
-                               log_parse("  text_height = %g", 
style.m_text_height);
+                               log_parse(_("  text_height = %g"), 
style.m_text_height);
                                );
                        }
                }
@@ -148,7 +139,7 @@
                        m_text_glyph_records.back().read(in, glyph_count, 
glyph_bits, advance_bits);
 
                        IF_VERBOSE_PARSE(
-                       log_parse("  glyph_records: count = %d", glyph_count);
+                       log_parse(_("  glyph_records: count = %d"), 
glyph_count);
                        );
                }
        }
@@ -161,7 +152,4 @@
                m_text_glyph_records, m_root_def);
 }
 
-
 }      // end namespace gnash
-
-

Index: server/swf/DefineFontAlignZonesTag.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/DefineFontAlignZonesTag.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- server/swf/DefineFontAlignZonesTag.cpp      4 Apr 2007 20:30:45 -0000       
1.2
+++ server/swf/DefineFontAlignZonesTag.cpp      18 Apr 2007 14:07:33 -0000      
1.3
@@ -1,3 +1,4 @@
+// DefineFontAlignZonesTag.cpp:  for Gnash.
 // 
 //   Copyright (C) 2007 Free Software Foundation, Inc.
 // 
@@ -10,11 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-/* $Id: DefineFontAlignZonesTag.cpp,v 1.2 2007/04/04 20:30:45 bjacques Exp $ */
+/* $Id: DefineFontAlignZonesTag.cpp,v 1.3 2007/04/18 14:07:33 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -47,7 +50,7 @@
        if ( ! referencedFont )
        {
                IF_VERBOSE_MALFORMED_SWF(
-               log_swferror("DefineFontAlignZones tag references an undefined 
font %d", ref);
+               log_swferror(_("DefineFontAlignZones tag references an 
undefined font %d"), ref);
                );
                in->skip_to_tag_end();
                return;
@@ -61,11 +64,11 @@
        //      - register the tag with the referencedFont
 
        IF_VERBOSE_PARSE (
-       log_parse("  DefinFontAlignZones: font=%d, flags=%d", ref, flags);
+       log_parse(_("  DefinFontAlignZones: font=%d, flags=%d"), ref, flags);
        );
 
        in->skip_to_tag_end();
-       log_error("FIXME: DefineFontAlignZoneTag unfinished ");
+       log_error(_("FIXME: DefineFontAlignZoneTag unfinished"));
 
 
 }

Index: server/swf/PlaceObject2Tag.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/PlaceObject2Tag.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- server/swf/PlaceObject2Tag.cpp      18 Apr 2007 13:57:25 -0000      1.3
+++ server/swf/PlaceObject2Tag.cpp      18 Apr 2007 14:07:33 -0000      1.4
@@ -1,3 +1,4 @@
+// PlaceObject2Tag.cpp:  for Gnash.
 // 
 //   Copyright (C) 2007 Free Software Foundation, Inc.
 // 
@@ -10,11 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-/* $Id: PlaceObject2Tag.cpp,v 1.3 2007/04/18 13:57:25 udog Exp $ */
+/* $Id: PlaceObject2Tag.cpp,v 1.4 2007/04/18 14:07:33 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -41,8 +44,8 @@
 
        IF_VERBOSE_PARSE
        (
-               log_parse("  char_id = %d", m_character_id);
-               log_parse("  depth = %d (%d)", m_depth, 
m_depth-character::staticDepthOffset);
+               log_parse(_("  char_id = %d"), m_character_id);
+               log_parse(_("  depth = %d (%d)"), m_depth, 
m_depth-character::staticDepthOffset);
                m_matrix.print();
        );
 
@@ -52,7 +55,7 @@
 
                IF_VERBOSE_PARSE
                (
-                       log_parse("  cxform:");
+                       log_parse(_("  cxform:"));
                        m_color_transform.print();
                );
 
@@ -74,7 +77,7 @@
        UNUSED(all_flags);
 
        IF_VERBOSE_PARSE (
-               log_parse("  actions: flags = 0x%X", all_flags);
+               log_parse(_("  actions: flags = 0x%X"), all_flags);
        );
 
        // Read swf_events.
@@ -95,10 +98,10 @@
                if ( in->get_tag_end_position()-in->get_position() <  
event_length )
                {
                        IF_VERBOSE_MALFORMED_SWF(
-                       log_swferror("swf_event::read(), "
+                       log_swferror(_("swf_event::read(), "
                                "even_length = %u, but only %lu bytes left "
                                "to the end of current tag."
-                               " Breaking for safety.",
+                               " Breaking for safety."),
                                event_length, 
in->get_tag_end_position()-in->get_position());
                        );
                        break;
@@ -120,10 +123,10 @@
                if (readlen > event_length)
                {
                        IF_VERBOSE_MALFORMED_SWF(
-                       log_swferror("swf_event::read(), "
+                       log_swferror(_("swf_event::read(), "
                                "event_length = %d, "
                                "but read " SIZET_FMT
-                               ". Breaking for safety.",
+                               ". Breaking for safety."),
                                event_length, readlen);
                        );
                        // or should we just continue here ?
@@ -132,10 +135,10 @@
                else if ( readlen < event_length )
                {
                        IF_VERBOSE_MALFORMED_SWF(
-                       log_swferror("swf_event::read(), "
+                       log_swferror(_("swf_event::read(), "
                                "event_length = %d, "
                                "but read " SIZET_FMT 
-                               ". Skipping excessive bytes.",
+                               ". Skipping excessive bytes."),
                                event_length, readlen);
                        );
                        in->skip_bytes(event_length - readlen);
@@ -171,7 +174,7 @@
                if ((pow(2.0, int( sizeof(s_code_bits) / sizeof(s_code_bits[0]) 
)) - 1) < flags)
                {
                        IF_VERBOSE_MALFORMED_SWF(
-                       log_swferror("swf_event::read() -- unknown / unhandled 
event type received, flags = 0x%x", flags);
+                       log_swferror(_("swf_event::read() -- unknown / 
unhandled event type received, flags = 0x%x"), flags);
                        );
                }
 
@@ -257,26 +260,24 @@
        }
 
        IF_VERBOSE_PARSE (
-               log_parse("  PLACEOBJECT2: depth = %d (%d)", m_depth, 
m_depth-character::staticDepthOffset);
-               if ( has_char ) log_parse("  char id = %d", m_character_id);
+               log_parse(_("  PLACEOBJECT2: depth = %d (%d)"), m_depth, 
m_depth-character::staticDepthOffset);
+               if ( has_char ) log_parse(_("  char id = %d"), m_character_id);
                if ( has_matrix ) 
                {
-                       log_parse("  mat:");
+                       log_parse(_("  mat:"));
                        m_matrix.print();
                }
                if ( has_cxform )
                {
-                       log_parse("  cxform:");
+                       log_parse(_("  cxform:"));
                        m_color_transform.print();
                }
-               if ( has_ratio ) log_parse("  ratio: %f", m_ratio);
-               if ( has_name ) log_parse("  name = %s", m_name ? m_name : 
"<null>");
-               if ( has_clip_bracket ) log_parse("  clip_depth = %d (%d)", 
m_clip_depth, m_clip_depth-character::staticDepthOffset);
-               log_parse(" m_place_type: %d", m_place_type);
+               if ( has_ratio ) log_parse(_("  ratio: %f"), m_ratio);
+               if ( has_name ) log_parse(_("  name = %s"), m_name ? m_name : 
"<null>");
+               if ( has_clip_bracket ) log_parse(_("  clip_depth = %d (%d)"), 
m_clip_depth, m_clip_depth-character::staticDepthOffset);
+               log_parse(_(" m_place_type: %d"), m_place_type);
        );
                        
-
-                       
        //log_msg("place object at depth %i", m_depth);
 }
 
@@ -379,7 +380,7 @@
          if (last_add) {
              last_add->execute_state(m);
          } else {
-             log_error("reverse REPLACE can't find previous replace or add 
tag(%d, %d)",
+             log_error(_("reverse REPLACE can't find previous replace or add 
tag(%d, %d)"),
                        frame, m_depth);
              
          }

Index: server/swf/tag_loaders.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/tag_loaders.cpp,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -b -r1.88 -r1.89
--- server/swf/tag_loaders.cpp  11 Apr 2007 14:20:21 -0000      1.88
+++ server/swf/tag_loaders.cpp  18 Apr 2007 14:07:33 -0000      1.89
@@ -1,3 +1,4 @@
+// tag_loaders.cpp:  for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,11 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-/* $Id: tag_loaders.cpp,v 1.88 2007/04/11 14:20:21 strk Exp $ */
+/* $Id: tag_loaders.cpp,v 1.89 2007/04/18 14:07:33 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -136,13 +139,13 @@
        {
                if ( end_tag == curr_pos + 1 )
                {
-       log_warning("FIXME: anchor-labeled frame not supported");
+       log_unimpl(_("anchor-labeled frame not supported"));
                }
                else
                {
                        IF_VERBOSE_MALFORMED_SWF(
-       log_swferror("frame_label_loader end position " SIZET_FMT ", "
-                       "read up to " SIZET_FMT,
+       log_swferror(_("frame_label_loader end position " SIZET_FMT ", "
+                       "read up to " SIZET_FMT),
                        end_tag, curr_pos);
                        );
                }
@@ -176,7 +179,7 @@
 
                IF_VERBOSE_PARSE
                (
-           log_parse("  set_background_color: (%d %d %d)",
+           log_parse(_("  set_background_color: (%d %d %d)"),
                      m_color.m_r, m_color.m_g, m_color.m_b);
                );
        }
@@ -205,7 +208,7 @@
 
        IF_VERBOSE_PARSE
        (
-    log_parse("  jpeg_tables_loader");
+    log_parse(_("  jpeg_tables_loader"));
        );
 
 #if TU_CONFIG_LINK_TO_JPEGLIB
@@ -243,7 +246,7 @@
            //bi = render::create_bitmap_info_rgb(im);
            //delete im;
 #else
-           log_error("gnash is not linked to jpeglib -- can't load jpeg image 
data!");
+           log_error(_("gnash is not linked to jpeglib -- can't load jpeg 
image data"));
            return;
 #endif
 
@@ -255,7 +258,7 @@
                if ( m->get_bitmap_character_def(character_id) )
                {
                        IF_VERBOSE_MALFORMED_SWF(
-                       log_swferror("DEFINEBITS: Duplicate id (%d) for bitmap 
character - discarding it", character_id);
+                       log_swferror(_("DEFINEBITS: Duplicate id (%d) for 
bitmap character - discarding it"), character_id);
                        );
                }
                else
@@ -276,7 +279,7 @@
 
        IF_VERBOSE_PARSE
        (
-               log_parse("  define_bits_jpeg2_loader: charid = %d pos = %lx",
+               log_parse(_("  define_bits_jpeg2_loader: charid = %d pos = 
%lx"),
                        character_id, in->get_position());
        );
 
@@ -292,7 +295,7 @@
            //bi = render::create_bitmap_info_rgb(im);
            //delete im;
 #else
-           log_error("gnash is not linked to jpeglib -- can't load jpeg image 
data!");
+           log_error(_("gnash is not linked to jpeglib -- can't load jpeg 
image data"));
            return;
 #endif
 
@@ -301,7 +304,7 @@
                if ( m->get_bitmap_character_def(character_id) )
                {
                        IF_VERBOSE_MALFORMED_SWF(
-                       log_swferror("DEFINEBITSJPEG2: Duplicate id (%d) for 
bitmap character - discarding it", character_id);
+                       log_swferror(_("DEFINEBITSJPEG2: Duplicate id (%d) for 
bitmap character - discarding it"), character_id);
                        );
                }
                else
@@ -338,7 +341,7 @@
 
     int err = inflateInit(&d_stream);
     if (err != Z_OK) {
-       log_error("inflate_wrapper() inflateInit() returned %d", err);
+       log_error(_("inflate_wrapper() inflateInit() returned %d"), err);
        return;
     }
 
@@ -354,14 +357,14 @@
        if (err == Z_STREAM_END) break;
        if (err != Z_OK)
            {
-               log_error("inflate_wrapper() inflate() returned %d", err);
+               log_error(_("inflate_wrapper() inflate() returned %d"), err);
            }
     }
 
     err = inflateEnd(&d_stream);
     if (err != Z_OK)
        {
-           log_error("inflate_wrapper() inflateEnd() return %d", err);
+           log_error(_("inflate_wrapper() inflateEnd() return %d"), err);
        }
 }
 #endif // TU_CONFIG_LINK_TO_ZLIB
@@ -378,7 +381,7 @@
 
        IF_VERBOSE_PARSE
        (
-               log_parse("  define_bits_jpeg3_loader: charid = %d pos = %lx",
+               log_parse(_("  define_bits_jpeg3_loader: charid = %d pos = 
%lx"),
                        character_id, in->get_position());
        );
 
@@ -389,7 +392,7 @@
        {
 
 #if TU_CONFIG_LINK_TO_JPEGLIB == 0 || TU_CONFIG_LINK_TO_ZLIB == 0
-           log_error("gnash is not linked to jpeglib/zlib -- can't load 
jpeg/zipped image data!");
+           log_error(_("gnash is not linked to jpeglib/zlib -- can't load 
jpeg/zipped image data"));
            return;
 #else
            //
@@ -437,8 +440,8 @@
 
        IF_VERBOSE_PARSE
        (
-               log_parse("  defbitslossless2: tag = %d, id = %d, "
-                       "fmt = %d, w = %d, h = %d",
+               log_parse(_("  defbitslossless2: tag = %d, id = %d, "
+                       "fmt = %d, w = %d, h = %d"),
                        tag,
                        character_id,
                        bitmap_format,
@@ -450,7 +453,7 @@
     if (m->get_create_bitmaps() == DO_LOAD_BITMAPS)
        {
 #if TU_CONFIG_LINK_TO_ZLIB == 0
-           log_error("gnash is not linked to zlib -- can't load zipped image 
data!");
+           log_error(_("gnash is not linked to zlib -- can't load zipped image 
data"));
            return;
 #else
            if (tag == SWF::DEFINELOSSLESS) // 20
@@ -556,7 +559,7 @@
                        if ( m->get_bitmap_character_def(character_id) )
                        {
                                IF_VERBOSE_MALFORMED_SWF(
-                               log_swferror("DEFINEBITSLOSSLESS: Duplicate id 
(%d) for bitmap character - discarding it", character_id);
+                               log_swferror(_("DEFINEBITSLOSSLESS: Duplicate 
id (%d) for bitmap character - discarding it"), character_id);
                                );
                        }
                        else
@@ -686,7 +689,7 @@
 void
 fixme_loader(stream* /*in*/, tag_type tag, movie_definition* /*m*/)
 {
-    log_error("  FIXME: tagtype = %d", tag);
+    log_unimpl(_("  FIXME: tagtype = %d"), tag);
 }
 
 void define_shape_loader(stream* in, tag_type tag, movie_definition* m)
@@ -698,7 +701,7 @@
     uint16_t   character_id = in->read_u16();
                IF_VERBOSE_PARSE
                (
-    log_parse("  shape_loader: id = %d", character_id);
+    log_parse(_("  shape_loader: id = %d"), character_id);
                );
 
     shape_character_def*       ch = new shape_character_def;
@@ -714,7 +717,7 @@
 
                IF_VERBOSE_PARSE
                (
-    log_parse("  shape_morph_loader: id = %d", character_id);
+    log_parse(_("  shape_morph_loader: id = %d"), character_id);
                );
 
     morph2_character_def* morph = new morph2_character_def;
@@ -761,8 +764,8 @@
        else
        {
                IF_VERBOSE_MALFORMED_SWF(
-               log_swferror("define_font_info_loader: "
-                       "can't find font w/ id %d", font_id);
+               log_swferror(_("define_font_info_loader: "
+                       "can't find font w/ id %d"), font_id);
                );
        }
 }
@@ -774,7 +777,7 @@
 
     IF_VERBOSE_PARSE
     (
-    log_parse("  place_object_2");
+    log_parse(_("  place_object_2"));
     );
 
     // TODO: who owns and is going to remove this tag ?
@@ -794,7 +797,7 @@
 
                IF_VERBOSE_PARSE
                (
-       log_parse("  sprite:  char id = %d", character_id);
+       log_parse(_("  sprite:  char id = %d"), character_id);
                );
 
        // A DEFINESPRITE tag as part of a DEFINESPRITE
@@ -802,7 +805,7 @@
        if ( ! dynamic_cast<movie_def_impl*>(m) )
        {
                IF_VERBOSE_MALFORMED_SWF(
-               log_swferror("nested DEFINESPRITE tags");
+               log_swferror(_("nested DEFINESPRITE tags"));
                );
        }
 
@@ -869,7 +872,7 @@
                }
            else
                {
-                   log_error("reverse REMOVE can't find previous replace or 
add tag(%d, %d)",
+                   log_error(_("reverse REMOVE can't find previous replace or 
add tag(%d, %d)"),
                              frame, m_depth);
                                        
                }
@@ -888,7 +891,7 @@
 
                IF_VERBOSE_PARSE
                (
-    log_parse("  remove_object_2(%d)", t->m_depth);
+    log_parse(_("  remove_object_2(%d)"), t->m_depth);
                );
 
     m->add_execute_tag(t);
@@ -919,7 +922,7 @@
 
                IF_VERBOSE_PARSE
                (
-    log_parse("  button character loader: char_id = %d", character_id);
+    log_parse(_("  button character loader: char_id = %d"), character_id);
                );
 
     button_character_definition*       ch = new button_character_definition;
@@ -943,7 +946,7 @@
 
                IF_VERBOSE_PARSE
                (
-    log_parse("  export: count = %d", count);
+    log_parse(_("  export: count = %d"), count);
                );
 
     // Read the exports.
@@ -952,7 +955,7 @@
            uint16_t    id = in->read_u16();
            char*       symbol_name = in->read_string();
                IF_VERBOSE_PARSE (
-           log_parse("  export: id = %d, name = %s", id, symbol_name);
+           log_parse(_("  export: id = %d, name = %s"), id, symbol_name);
                );
 
            if (font* f = m->get_font(id))
@@ -971,8 +974,8 @@
                }
            else
                {
-                   log_warning("don't know how to export resource '%s' "
-                              "with id %d (can't find that id)",
+                   log_error(_("don't know how to export resource '%s' "
+                              "with id %d (can't find that id)"),
                              symbol_name, id);
                }
 
@@ -1008,8 +1011,7 @@
 
        IF_VERBOSE_PARSE
        (
-       log_parse("  import: version = %u, source_url = %s (%s), count = %d", 
import_version, abs_url.str().c_str(), source_url, count);
-       //log_parse("  import: version = %u, source_url = %s (%s), count = %d", 
import_version, abs_url.str().c_str(), source_url, count);
+       log_parse(_("  import: version = %u, source_url = %s (%s), count = 
%d"), import_version, abs_url.str().c_str(), source_url, count);
        );
 
 
@@ -1021,13 +1023,13 @@
                try {
                        source_movie = create_library_movie(abs_url);
                } catch (gnash::GnashException& e) {
-                       log_error("%s", e.what());
+                       log_error(_("Exception: %s"), e.what());
                        source_movie = NULL;
                }
                if (source_movie == NULL)
                {
                    // Give up on imports.
-                   log_error("can't import movie from url %s", 
abs_url.str().c_str());
+                   log_error(_("can't import movie from url %s"), 
abs_url.str().c_str());
                    return;
                }
 
@@ -1036,7 +1038,7 @@
                if (source_movie == m)
                {
                    IF_VERBOSE_MALFORMED_SWF(
-                   log_swferror("Movie attempts to import symbols from 
itself.");
+                   log_swferror(_("Movie attempts to import symbols from 
itself."));
                    );
                    return;
                }
@@ -1049,7 +1051,7 @@
            char*       symbol_name = in->read_string();
                IF_VERBOSE_PARSE
                (
-           log_parse("  import: id = %d, name = %s", id, symbol_name);
+           log_parse(_("  import: id = %d, name = %s"), id, symbol_name);
                );
            
            if (s_no_recurse_while_loading)
@@ -1065,7 +1067,7 @@
                    boost::intrusive_ptr<resource> res = 
source_movie->get_exported_resource(symbol_name);
                    if (res == NULL)
                        {
-                           log_warning("import error: could not find resource 
'%s' in movie '%s'",
+                           log_error(_("import error: could not find resource 
'%s' in movie '%s'"),
                                      symbol_name, source_url);
                        }
                    else if (font* f = res->cast_to_font())
@@ -1080,7 +1082,7 @@
                        }
                    else
                        {
-                           log_error("import error: resource '%s' from movie 
'%s' has unknown type",
+                           log_error(_("import error: resource '%s' from movie 
'%s' has unknown type"),
                                      symbol_name, source_url);
                        }
                }
@@ -1101,7 +1103,7 @@
        edit_text_character_def* ch = new edit_text_character_def(m);
                IF_VERBOSE_PARSE
                (
-       log_parse("edit_text_char, id = %d", character_id);
+       log_parse(_("edit_text_char, id = %d"), character_id);
                );
        ch->read(in, tag, m);
 
@@ -1119,7 +1121,7 @@
        text_character_def* ch = new text_character_def(m);
                IF_VERBOSE_PARSE
                (
-       log_parse("text_character, id = %d", character_id);
+       log_parse(_("text_character, id = %d"), character_id);
                );
        ch->read(in, tag, m);
 
@@ -1140,8 +1142,8 @@
 {
                IF_VERBOSE_PARSE
                (
-    log_parse("tag %d: do_action_loader", tag);
-    log_parse("-- actions in frame " SIZET_FMT,
+    log_parse(_("tag %d: do_action_loader"), tag);
+    log_parse(_("-- actions in frame " SIZET_FMT),
               m->get_loading_frame());
                );
     
@@ -1166,8 +1168,8 @@
 
                IF_VERBOSE_PARSE
                (
-       log_parse("  tag %d: do_init_action_loader", tag);
-       log_parse("  -- init actions for sprite %d",
+       log_parse(_("  tag %d: do_init_action_loader"), tag);
+       log_parse(_("  -- init actions for sprite %d"),
                   sprite_character_id);
                );
 
@@ -1201,8 +1203,8 @@
 
        IF_VERBOSE_PARSE
        (
-               log_parse("define sound: ch=%d, format=%d, "
-                       "rate=%d, 16=%d, stereo=%d, ct=%d",
+               log_parse(_("define sound: ch=%d, format=%d, "
+                       "rate=%d, 16=%d, stereo=%d, ct=%d"),
                        character_id, int(format), sample_rate,
                        int(sample_16bit), int(stereo), sample_count);
        );
@@ -1217,7 +1219,7 @@
                if (! (sample_rate >= 0 && sample_rate <= 3))
                {
                        IF_VERBOSE_MALFORMED_SWF(
-                       log_swferror("Bad sample rate read from SWF header.");
+                       log_swferror(_("Bad sound sample rate %d read from SWF 
header"), sample_rate);
                        );
                        return;
                }
@@ -1277,9 +1279,9 @@
        else
        {
                // is this nice to do?
-               log_warning("There is not sound handler currently active, "
+               log_error(_("There is no sound handler currently active, "
                        "so character with id %d will NOT be added to "
-                       "the dictionary.",
+                       "the dictionary"),
                        character_id);
        }
 }
@@ -1303,7 +1305,7 @@
 
                IF_VERBOSE_PARSE
                (
-               log_parse("start_sound tag: id=%d, stop = %d, loop ct = %d",
+               log_parse(_("start_sound tag: id=%d, stop = %d, loop ct = %d"),
                          sound_id, int(sst->m_stop_playback), 
sst->m_loop_count);
                );
        }
@@ -1312,7 +1314,7 @@
                if (handler)
                {
                        IF_VERBOSE_MALFORMED_SWF(
-                       log_swferror("start_sound_loader: sound_id %d is not 
defined", sound_id);
+                       log_swferror(_("start_sound_loader: sound_id %d is not 
defined"), sound_id);
                        );
                }
        }
@@ -1355,7 +1357,7 @@
 
                IF_VERBOSE_PARSE
                (
-       log_parse("sound stream head: format=%d, rate=%d, 16=%d, stereo=%d, 
ct=%d",
+       log_parse(_("sound stream head: format=%d, rate=%d, 16=%d, stereo=%d, 
ct=%d"),
                  int(format), sample_rate, int(sample_16bit), int(stereo), 
sample_count);
                );
 
@@ -1365,7 +1367,8 @@
        if (! (sample_rate >= 0 && sample_rate <= 3))
        {
                IF_VERBOSE_MALFORMED_SWF(
-               log_swferror("Bad sample rate read from SWF header.");
+               log_swferror(_("Bad sound sample rate %d read from SWF header"),
+                               sample_rate);
                );
                return;
        }
@@ -1525,17 +1528,17 @@
 
        IF_VERBOSE_PARSE
        (
-               log_parse("  file attributes: has_metadata=%s use_network=%s",
-                       flags.has_metadata ? "true" : "false",
-                       flags.use_network ? "true" : "false")
+               log_parse(_("  file attributes: has_metadata=%s 
use_network=%s"),
+                       flags.has_metadata ? _("true") : _("false"),
+                       flags.use_network ? _("true") : _("false"))
        );
 
        if ( ! flags.use_network )
        {
-               log_warning("FileAttributes tag in the SWF requests that "
+               log_warning(_("FileAttributes tag in the SWF requests that "
                        "network access is not granted to this movie "
-                       "(or application?). Anyway Gnash won't care "
-                       "use white/black listing in your .gnashrc instead");
+                       "(or application?). Anyway Gnash won't care; "
+                       "use white/black listing in your .gnashrc instead"));
        }
 
        // TODO: attach info to movie_definition 
@@ -1551,10 +1554,10 @@
        char* metadata = in->read_string();
 
        IF_VERBOSE_PARSE (
-               log_parse("  metadata = [[\n%s\n]]", metadata);
+               log_parse(_("  metadata = [[\n%s\n]]"), metadata);
        );
 
-       log_warning("METADATA tag parsed but unused");
+       log_unimpl(_("METADATA tag unused: %s"), metadata);
 
        // TODO: attach to movie_definition instead
        //       (should we parse the XML maybe?)
@@ -1572,10 +1575,10 @@
        in->read_string_with_length(in->get_tag_length(), serial);
 
        IF_VERBOSE_PARSE (
-               log_parse("  serialnumber = [[\n%s\n]]", serial.c_str());
+               log_parse(_("  serialnumber = [[\n%s\n]]"), serial.c_str());
        );
 
-       log_msg("SERIALNUMBER: %s", serial.c_str());
+       log_msg(_("SERIALNUMBER: %s"), serial.c_str());
 
        // attach to movie_definition ?
 

Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -b -r1.96 -r1.97
--- server/vm/ASHandlers.cpp    16 Apr 2007 18:23:06 -0000      1.96
+++ server/vm/ASHandlers.cpp    18 Apr 2007 14:07:33 -0000      1.97
@@ -1,3 +1,4 @@
+// ASHandlers.cpp:  ActionScript handlers, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,11 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-/* $Id: ASHandlers.cpp,v 1.96 2007/04/16 18:23:06 strk Exp $ */
+/* $Id: ASHandlers.cpp,v 1.97 2007/04/18 14:07:33 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -56,7 +59,6 @@
 using namespace std;
 
 namespace {
-static gnash::LogFile& dbglogfile = gnash::LogFile::getDefaultInstance();
 #ifdef USE_DEBUGGER
 static gnash::Debugger& debugger = gnash::Debugger::getDefaultInstance();
 #endif
@@ -96,7 +98,7 @@
 
 static void unsupported_action_handler(ActionExec& thread)
 {
-       log_error("Unsupported action handler invoked, code at pc is %d", 
thread.code[thread.pc]);
+       log_error(_("Unsupported action handler invoked, code at pc is %d"), 
thread.code[thread.pc]);
 }
 
 ActionHandler::ActionHandler()
@@ -177,7 +179,7 @@
        // based on version (would make sense)
        if ( ! VM::isInitialized() )
        {
-               log_error("FIXME: VM not initialized at SWFHandlers 
construction time, can't set action handlers based on SWF version");
+               log_error(_("FIXME: VM not initialized at SWFHandlers 
construction time, can't set action handlers based on SWF version"));
        }
 
     vector<std::string> & property_names = get_property_names();
@@ -461,7 +463,7 @@
        assert( code[thread.pc] == SWF::ACTION_END );
 #endif
 
-       dbglogfile << __PRETTY_FUNCTION__ << ": CHECKME: was broken" << endl;
+       log_error (_("%s: CHECKME: was broken"), __PRETTY_FUNCTION__);
        thread.next_pc=thread.stop_pc;
 }
 void
@@ -541,7 +543,7 @@
     const action_buffer& code = thread.code;
 
     assert( code[thread.pc] == SWF::ACTION_TOGGLEQUALITY );
-    dbglogfile << __PRETTY_FUNCTION__ << ": unimplemented!" << endl;
+    log_unimpl (__PRETTY_FUNCTION__);
 }
 
 void
@@ -604,7 +606,7 @@
        const char* target = code.read_string(pc+3+url_len);
 
                IF_VERBOSE_ACTION (
-       log_action("GetUrl: target=%s url=%s", target, url);
+       log_action(_("GetUrl: target=%s url=%s"), target, url);
                );
 
        CommonGetUrl(env, target, url, 0u);
@@ -624,8 +626,10 @@
        size_t tag_len = code.read_int16(thread.pc+1);
        if ( tag_len != 3 )
        {
-               log_warning("Malformed SWF: ActionWaitForFrame (0x%X) tag 
length == " SIZET_FMT
-                           " (expected 3)", SWF::ACTION_WAITFORFRAME, tag_len);
+               IF_VERBOSE_MALFORMED_SWF (
+               log_swferror(_("ActionWaitForFrame (0x%X) tag length == " 
SIZET_FMT
+                           " (expected 3)"), SWF::ACTION_WAITFORFRAME, 
tag_len);
+               );
        }
 
        // If we haven't loaded a specified frame yet, then 
@@ -638,7 +642,8 @@
        sprite_instance* target_sprite = target->to_movie();
        if ( ! target_sprite )
        {
-               log_error("environment target is not a sprite_instance while 
executing ActionWaitForFrame");
+               log_error(_("%s: environment target is not a sprite_instance"),
+                               __FUNCTION__);
                return;
        }
 
@@ -651,12 +656,12 @@
        size_t lastloaded = target_sprite->get_loaded_frames();
        if ( lastloaded < framenum )
        {
-               //log_msg("ActionWaitForFrame: frame %u not reached yet (loaded 
%u), skipping next %u actions", framenum, lastloaded, skip);
+               //log_msg(_("%s: frame %u not reached yet (loaded %u), skipping 
next %u actions"), __FUNCTION__, framenum, lastloaded, skip);
                // better delegate this to ActionExec
                thread.skip_actions(skip);
        }
 
-       //dbglogfile << __PRETTY_FUNCTION__ << ": testing" << endl;
+       //log_msg(_("%s: testing"), __PRETTY_FUNCTION__);
 }
 
 void
@@ -688,7 +693,8 @@
        sprite_instance *target_sprite = target->to_movie();
        if ( ! target_sprite )
        {
-               log_error("environment target is not a sprite_instance while 
executing ActionGotoLabel");
+               log_error(_("%s: environment target is not a sprite_instance"),
+                       __FUNCTION__);
        }
        else
        {
@@ -852,8 +858,8 @@
     // input checks
     if ( string_val.is_undefined() || string_val.is_null() )
     {
-       log_warning("Undefined or null string passed to ActionSubString, "
-               "returning undefined");
+       log_error(_("Undefined or null string passed to ActionSubString, "
+               "returning undefined"));
        env.drop(2);
        env.top(0).set_undefined();
        return;
@@ -867,8 +873,8 @@
 
     if ( size < 0 )
     {
-       log_warning("Negative size passed to ActionSubString, "
-               "taking as whole length");
+       log_error(_("Negative size passed to ActionSubString, "
+               "taking as whole length"));
        size = str.length();
     }
 
@@ -878,8 +884,8 @@
     if ( base < 1 )
     {
        IF_VERBOSE_ASCODING_ERRORS (
-       log_aserror("Less then 1 base in ActionSubString, "
-               "setting to 1.");
+       log_aserror(_("Base is less then 1 in ActionSubString, "
+               "setting to 1."));
        );
        base=1;
     }
@@ -887,8 +893,8 @@
     else if ( unsigned(base) > str.length() )
     {
        IF_VERBOSE_ASCODING_ERRORS (
-       log_aserror("base goes beyond input string in ActionSubString, "
-               "returning the empty string.");
+       log_aserror(_("base goes beyond input string in ActionSubString, "
+               "returning the empty string."));
        );
        env.drop(2);
        env.top(0).set_string("");
@@ -901,8 +907,8 @@
     if ( unsigned(base+size) > str.length() )
     {
        IF_VERBOSE_ASCODING_ERRORS (
-       log_aserror("base+size goes beyond input string in ActionSubString, "
-               "adjusting size");
+       log_aserror(_("base+size goes beyond input string in ActionSubString, "
+               "adjusting size"));
        );
        size = str.length()-base;
     }
@@ -912,7 +918,7 @@
     assert(unsigned(base) < str.length() );
     assert(size >= 0);
 
-    //log_msg("string: %s, size: %d, base: %d", str.c_str(), size, base);
+    //log_msg(_("string: %s, size: %d, base: %d"), str.c_str(), size, base);
 
     // Keep base within range.
     //base = iclamp(base, 0, str.length());
@@ -969,11 +975,11 @@
        (
                boost::intrusive_ptr<as_object> obj=top_value.to_object();
                if (obj == NULL) {
-                       log_action("-- get var: %s=%s",
+                       log_action(_("-- get var: %s=%s"),
                                var_string.c_str(),
                                top_value.to_debug_string().c_str());
                } else {
-                       log_action("-- get var: %s=%s at %p",
+                       log_action(_("-- get var: %s=%s at %p"),
                                var_string.c_str(),
                                top_value.to_string(&env).c_str(),
                                (void*)obj.get());
@@ -998,7 +1004,7 @@
        thread.setVariable(name, env.top(0));
 
         IF_VERBOSE_ACTION (
-            log_action("-- set var: %s = %s", name.c_str(), 
env.top(0).to_debug_string().c_str());
+            log_action(_("-- set var: %s = %s"), name.c_str(), 
env.top(0).to_debug_string().c_str());
             );
 
        // TODO: move this to ActionExec::setVariable !
@@ -1055,12 +1061,12 @@
        {
                as_object* obj = thread.getTarget();
 
-               //log_msg("ActionGetProperty(<empty>) called, target is %p", 
(void*)obj);
+               //log_msg(_("ActionGetProperty(<empty>) called, target is %p"), 
(void*)obj);
 
                target = dynamic_cast<character*>(obj);
                if ( ! target )
                {
-                       log_warning("ActionGetProperty(<empty>) called, but 
current target is not a character");
+                       log_error(_("ActionGetProperty(<empty>) called, but 
current target is not a character"));
                }
        }
        else
@@ -1083,8 +1089,8 @@
                }
                else
                {
-                       log_error("invalid property query, property "
-                               "number %d", prop_number);
+                       log_error(_("invalid property query, property "
+                               "number %d"), prop_number);
                        env.top(1) = as_value();
                }
        }
@@ -1092,7 +1098,7 @@
        {
                // ASCODING error ? (well, last time it was a gnash error ;)
                IF_VERBOSE_ASCODING_ERRORS (
-               log_aserror("Could not find GetProperty target (%s)",
+               log_aserror(_("Could not find GetProperty target (%s)"),
                                tgt_val.to_debug_string().c_str());
                );
                env.top(1) = as_value();
@@ -1123,7 +1129,9 @@
        else
        {
            // Malformed SWF ? (don't think this is possible to do with 
syntactically valid ActionScript)
-           log_error("invalid set_property, property number %d", prop_number);
+           IF_VERBOSE_MALFORMED_SWF (
+           log_swferror(_("invalid set_property, property number %d"), 
prop_number);
+           )
        }
         
     }
@@ -1146,7 +1154,7 @@
        if ( ! ch )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Path given to duplicateMovieClip(%s) doesn't point 
to a character",
+               log_aserror(_("Path given to duplicateMovieClip(%s) doesn't 
point to a character"),
                        path.c_str());
                );
                env.drop(3);
@@ -1157,7 +1165,7 @@
        if ( ! sprite )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Path given to duplicateMovieClip(%s) is not a 
sprite",
+               log_aserror(_("Path given to duplicateMovieClip(%s) is not a 
sprite"),
                        path.c_str());
                );
                env.drop(3);
@@ -1182,7 +1190,7 @@
        if ( ! ch )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Path given to removeMovieClip(%s) doesn't point to 
a character",
+               log_aserror(_("Path given to removeMovieClip(%s) doesn't point 
to a character"),
                        path.c_str());
                );
                return;
@@ -1192,7 +1200,7 @@
        if ( ! sprite )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Path given to removeMovieClip(%s) is not a sprite",
+               log_aserror(_("Path given to removeMovieClip(%s) is not a 
sprite"),
                        path.c_str());
                );
                return;
@@ -1231,7 +1239,7 @@
        if ( tgt ) {
                st.setCharacter( tgt );
        } else {
-               log_error("start_drag of invalid target '%s'.",
+               log_error(_("start_drag of invalid target '%s'"),
                        env.top(0).to_debug_string().c_str());
        }
     
@@ -1255,7 +1263,7 @@
                if ( y1 < y0 )
                {
                        IF_VERBOSE_MALFORMED_SWF(
-                       log_msg("Y values in ActionStartDrag swapped, fixing");
+                       log_swferror(_("Y values in ActionStartDrag swapped, 
fixing"));
                        );
                        swap(y1, y0);
                }
@@ -1263,7 +1271,7 @@
                if ( x1 < x0 )
                {
                        IF_VERBOSE_MALFORMED_SWF(
-                       log_msg("X values in ActionStartDrag swapped, fixing");
+                       log_swferror(_("X values in ActionStartDrag swapped, 
fixing"));
                        );
                        swap(x1, x0);
                }
@@ -1307,7 +1315,7 @@
 {
 //    GNASH_REPORT_FUNCTION;
     //as_environment& env = thread.env;
-    dbglogfile << __PRETTY_FUNCTION__ << ": unimplemented!" << endl;
+    log_unimpl (__PRETTY_FUNCTION__);
 }
 
 void
@@ -1329,7 +1337,7 @@
        if (!super || ! instance)
        {
                IF_VERBOSE_ACTION (
-               log_action("-- %s cast_to %s (invalid args?)",
+               log_action(_("-- %s cast_to %s (invalid args?)"),
                        env.top(1).to_debug_string().c_str(),
                        env.top(0).to_debug_string().c_str());
                );
@@ -1349,7 +1357,7 @@
                env.top(0) = as_value();
        }
 
-       log_warning("ActionCastOp TESTING");
+       log_msg(_("ActionCastOp TESTING"));
 }
 
 void
@@ -1360,7 +1368,7 @@
        // assert(thread.code[thread.pc] == SWF::ACTION_IMPLEMENTSOP);
 
        //as_environment& env = thread.env;
-       dbglogfile << __PRETTY_FUNCTION__ << ": unimplemented!" << endl;
+    log_unimpl (__PRETTY_FUNCTION__);
 }
 
 void
@@ -1381,7 +1389,7 @@
 {
 //    GNASH_REPORT_FUNCTION;
 //    as_environment& env = thread.env;
-    dbglogfile << __PRETTY_FUNCTION__ << ": unimplemented!" << endl;
+    log_unimpl (__PRETTY_FUNCTION__);
 }
 
 void
@@ -1436,7 +1444,7 @@
 {
 //    GNASH_REPORT_FUNCTION;
 //    as_environment& env = thread.env;
-    dbglogfile << __PRETTY_FUNCTION__ << ": unimplemented!" << endl;
+    log_unimpl (__PRETTY_FUNCTION__);
 }
 
 void
@@ -1444,7 +1452,7 @@
 {
 //    GNASH_REPORT_FUNCTION;
 //    as_environment& env = thread.env;
-    dbglogfile << __PRETTY_FUNCTION__ << ": unimplemented!" << endl;
+    log_unimpl (__PRETTY_FUNCTION__);
 }
 
 void
@@ -1452,7 +1460,7 @@
 {
 //    GNASH_REPORT_FUNCTION;
 //    as_environment& env = thread.env;
-    dbglogfile << __PRETTY_FUNCTION__ << ": unimplemented!" << endl;
+    log_unimpl (__PRETTY_FUNCTION__);
 }
 
 // also known as WaitForFrame2
@@ -1476,8 +1484,8 @@
        sprite_instance* target_sprite = target->to_movie();
        if ( ! target_sprite )
        {
-               log_error("environment target is not a sprite_instance "
-                       "while executing ActionWaitForFrameExpression");
+               log_error(_("%s: environment target is not a sprite_instance"),
+                       __FUNCTION__);
                return;
        }
 
@@ -1485,9 +1493,9 @@
         if ( ! target_sprite->get_frame_number(framespec, framenum) )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Frame spec found on stack "
+               log_aserror(_("Frame spec found on stack "
                        "at ActionWaitForFrame doesn't evaluate "
-                       "to a valid frame: %s",
+                       "to a valid frame: %s"),
                        framespec.to_debug_string().c_str());
                );
                return;
@@ -1501,12 +1509,12 @@
        size_t lastloaded = target_sprite->get_loaded_frames();
        if ( lastloaded < framenum )
        {
-               //log_msg("ActionWaitForFrameExpression: frame %u not reached 
yet (loaded %u), skipping next %u actions", framenum, lastloaded, skip);
+               //log_msg(_("ActionWaitForFrameExpression: frame %u not reached 
yet (loaded %u), skipping next %u actions"), framenum, lastloaded, skip);
                // better delegate this to ActionExec
                thread.skip_actions(skip);
        }
 
-       //dbglogfile << __PRETTY_FUNCTION__ << ": testing" << endl;
+       //log_msg(_("%s: testing"), __PRETTY_FUNCTION__);
 }
 
 void
@@ -1550,7 +1558,7 @@
 
 #if 0 // is this really useful ?
         IF_VERBOSE_ACTION (
-            log_action("[push length=%d]", length);
+            log_action(_("[push length=%d]"), length);
             );
 #endif
 
@@ -1569,10 +1577,10 @@
                        default:
                        {
                                IF_VERBOSE_MALFORMED_SWF(
-                                       log_warning("Unknown push type %d."
+                                       log_swferror(_("Unknown push type %d."
                                                " Execution will continue "
                                                "but it is likely to fail "
-                                               "due to lost sync.", type);
+                                               "due to lost sync."), type);
                                );
                                continue;
                        }
@@ -1619,8 +1627,8 @@
                                {
                                        env.push(as_value());
                                        IF_VERBOSE_MALFORMED_SWF(
-                                       log_warning("register %d "
-                                               "out of bounds!", reg);
+                                       log_swferror(_("register %d "
+                                               "out of bounds"), reg);
                                        );
                                }
                                else
@@ -1665,8 +1673,8 @@
                                else
                                {
                                        IF_VERBOSE_MALFORMED_SWF(
-                                       log_warning("dict_lookup %d "
-                                       "is out of bounds!", id);
+                                       log_swferror(_("dict_lookup %d "
+                                       "is out of bounds"), id);
                                        );
                                        env.push(0);
                                }
@@ -1684,8 +1692,8 @@
                                else
                                {
                                        IF_VERBOSE_MALFORMED_SWF(
-                                       log_warning("dict_lookup %d "
-                                       "is out of bounds!", id);
+                                       log_swferror(_("dict_lookup %d "
+                                       "is out of bounds"), id);
                                        );
                                        env.push(0);
                                }
@@ -1696,11 +1704,11 @@
                IF_VERBOSE_ACTION (
                if ( type == pushDict8 || type == pushDict16 )
                {
-                       log_action("\t" SIZET_FMT ") type=%s (%d), value=%s", 
count, pushType[type], id, env.top(0).to_debug_string().c_str());
+                       log_action(_("\t" SIZET_FMT ") type=%s (%d), 
value=%s"), count, pushType[type], id, env.top(0).to_debug_string().c_str());
                }
                else
                {
-                       log_action("\t" SIZET_FMT ") type=%s, value=%s", count, 
pushType[type], env.top(0).to_debug_string().c_str());
+                       log_action(_("\t" SIZET_FMT ") type=%s, value=%s"), 
count, pushType[type], env.top(0).to_debug_string().c_str());
                }
                ++count;
                );
@@ -1751,7 +1759,7 @@
 
        if ( *url_c == '\0' )
        {
-               log_warning("Bogus GetUrl url (empty) in SWF file, skipping");
+               log_error(_("Bogus empty GetUrl url in SWF file, skipping"));
                return;
        }
 
@@ -1766,8 +1774,8 @@
        // handle malformed sendVarsMethod
        if ( sendVarsMethod == 3 )
        {
-               log_warning("Bogus GetUrl2 send vars method "
-                       " in SWF file (both GET and POST requested), set to 0");
+               log_error(_("Bogus GetUrl2 send vars method "
+                       " in SWF file (both GET and POST requested), set to 
0"));
                sendVarsMethod=0;
        }
 
@@ -1794,7 +1802,7 @@
        // a print request.
        if (strncmp(url_c, "print:", 6) == 0)
        {
-               log_error("Printing unimplemented");
+               log_unimpl("print: URL");
                return;
        }
 
@@ -1819,7 +1827,7 @@
        const URL& baseurl = get_base_url();
        URL url(url_s, baseurl);
 
-       log_msg("get url: target=%s, url=%s (%s)", target_string.c_str(),
+       log_msg(_("get url: target=%s, url=%s (%s)"), target_string.c_str(),
                url.str().c_str(), url_c);
 
        if ( loadTargetFlag )
@@ -1827,7 +1835,7 @@
                character* target_ch = env.find_target(target);
                if ( ! target_ch )
                {
-                       log_error("get url: target %s not found",
+                       log_error(_("get url: target %s not found"),
                                target_string.c_str());
                        return;
                }
@@ -1835,21 +1843,21 @@
                sprite_instance* target_movie = target_ch->to_movie();
                if ( ! target_movie ) 
                {
-                       log_error("get url: target %s is not a sprite",
+                       log_error(_("get url: target %s is not a sprite"),
                                target_string.c_str());
                        return;
                }
 
                if ( loadVariableFlag )
                {
-                       log_msg("getURL2 loadVariable");
+                       log_msg(_("getURL2 loadVariable"));
 
-                       //log_warning("Unhandled GetUrl2 loadVariable flag. 
loadTargetFlag=%d, target=%s (%s)", loadTargetFlag, target.typeOf(), 
target.to_string(&env).c_str());
+                       //log_unimpl("Unhandled GetUrl2 loadVariable flag. 
loadTargetFlag=%d, target=%s (%s)", loadTargetFlag, target.typeOf(), 
target.to_string(&env).c_str());
                        target_movie->loadVariables(url, sendVarsMethod);
                }
                else
                {
-                       log_msg("getURL2 target load");
+                       log_msg(_("getURL2 target load"));
                      
                        // Check host security
                        if ( ! URLAccessManager::allow(url) )
@@ -1860,8 +1868,8 @@
 
                        if ( sendVarsMethod )
                        {
-                               log_warning("Unhandled GetUrl2 
sendVariableMethod (%d)"
-                                       " with loadTargetFlag and ! 
loadVariablesFlag",
+                               log_unimpl(_("Unhandled GetUrl2 
sendVariableMethod (%d)"
+                                       " with loadTargetFlag and ! 
loadVariablesFlag"),
                                        sendVarsMethod);
                        }
 
@@ -1873,8 +1881,8 @@
        {
                if ( sendVarsMethod )
                {
-                       log_warning("Unhandled GetUrl2 sendVariableMethod (%d)"
-                               " with no loadTargetFlag",
+                       log_unimpl (_("Unhandled GetUrl2 sendVariableMethod 
(%d)"
+                               " with no loadTargetFlag"),
                                sendVarsMethod);
                }
 
@@ -1887,7 +1895,7 @@
                }
 #endif
                command += ")\"";
-               dbglogfile << "Launching URL... " << command << endl;
+               log_msg (_("Launching URL... %s"), command.c_str());
                system(command.c_str());
        }
 }
@@ -1912,8 +1920,8 @@
        {
                IF_VERBOSE_ASCODING_ERRORS (
                log_aserror(
-                       "Couldn't find movie \"%s\" to set target to!"
-                       " Not setting target at all...",
+                       _("Couldn't find movie \"%s\" to set target to!"
+                       " Not setting target at all..."),
                        target_name.c_str());
                );
        }
@@ -1940,7 +1948,7 @@
        as_value url_val = env.top(1);
        if ( url_val.is_undefined() )
        {
-               log_warning("Undefined GetUrl2 url on stack, skipping");
+               log_error(_("Undefined GetUrl2 url on stack, skipping"));
        }
        else
        {
@@ -1976,9 +1984,11 @@
                      
                if (next_pc > stop_pc)
                {
-                       log_error("branch to offset " SIZET_FMT "  -- "
-                               " this section only runs to " SIZET_FMT ". "
-                               " Malformed SWF !.", next_pc, stop_pc);
+                       IF_VERBOSE_MALFORMED_SWF (
+                       log_swferror(_("branch to offset " SIZET_FMT "  -- "
+                               " this section only runs to " SIZET_FMT),
+                               next_pc, stop_pc);
+                       )
                }
        }
 }
@@ -2013,10 +2023,12 @@
        }
        else
        {
-               log_aserror(
+               IF_VERBOSE_ASCODING_ERRORS (
+               log_aserror(_(
                        "Couldn't find target_sprite \"%s\" in ActionCallFrame!"
-                       " target frame actions will not be called...",
+                       " target frame actions will not be called..."),
                        target_path.c_str());
+               )
        }
 
        env.drop(1);
@@ -2075,9 +2087,9 @@
                if ( ! target_sprite->get_frame_number(frame_var, frame_number) 
)
                {
                        IF_VERBOSE_ASCODING_ERRORS(
-                       log_aserror("Frame spec found on stack "
+                       log_aserror(_("Frame spec found on stack "
                                "at ActionGotoExpression doesn't evaluate "
-                       "to a valid frame: %s",
+                               "to a valid frame: %s"),
                                target_frame.c_str());
                        );
                        return;
@@ -2087,10 +2099,12 @@
        }
        else
        {
-               log_aserror(
-                       "Couldn't find target_sprite \"%s\" in 
ActionGotoExpression!"
-                       " will not goto taget_frame...",
+               IF_VERBOSE_ASCODING_ERRORS (
+               log_aserror(_(
+                       "Couldn't find target sprite \"%s\" in 
ActionGotoExpression. "
+                       " Will not go to target frame..."),
                        target_frame.c_str());
+               )
        }                 
 }
 
@@ -2108,9 +2122,9 @@
        if ( stacksize < 1 )
        {
                IF_VERBOSE_MALFORMED_SWF(
-                       log_warning("No elements on the stack "
+                       log_swferror(_("No elements on the stack "
                                "at ActionDelete (0x3A). "
-                               "Returning FALSE.");
+                               "Returning FALSE."));
                );
                env.push(as_value(false));
                return;
@@ -2147,7 +2161,7 @@
     thread.setLocalVariable(varname.to_string(&env), value);
 
     IF_VERBOSE_ACTION (
-    log_action("-- set local var: %s = %s", varname.to_string(&env).c_str(), 
value.to_debug_string().c_str());
+    log_action(_("-- set local var: %s = %s"), 
varname.to_string(&env).c_str(), value.to_debug_string().c_str());
     );
 
     env.drop(2);
@@ -2178,14 +2192,18 @@
 
        if ( ! function.is_object() ) 
        {
-               log_aserror("ActionCallFunction: %s is not an object", 
env.top(0).to_string(&env).c_str());
+               IF_VERBOSE_ASCODING_ERRORS (
+               log_aserror(_("ActionCallFunction: %s is not an object"), 
env.top(0).to_string(&env).c_str());
+               )
        }
        else if ( ! function.is_function() ) 
        {
                boost::intrusive_ptr<as_object> obj = function.to_object();
                if ( ! obj->get_member("constructor", &function) )
                {
-                       log_aserror("Object doensn't have a construcor");
+                       IF_VERBOSE_ASCODING_ERRORS (
+                       log_aserror(_("Object doensn't have a constructor"));
+                       )
                }
        }
 
@@ -2195,14 +2213,14 @@
        if ( available_args < nargs )
        {
                IF_VERBOSE_MALFORMED_SWF(
-               log_swferror("Attempt to call a function with %u arguments "
-                       "while only %u are available on the stack.",
+               log_swferror(_("Attempt to call a function with %u arguments "
+                       "while only %u are available on the stack."),
                        nargs, available_args);
                );
                nargs = available_args;
        }
 
-       //log_msg("Function's nargs: %d", nargs);
+       //log_msg(_("Function's nargs: %d"), nargs);
     
 #ifdef USE_DEBUGGER
 //        cerr << "entering function: " << function_name << endl;
@@ -2212,7 +2230,7 @@
        as_value result = call_method(function, &env, this_ptr,
                                  nargs, env.get_top_index() - 2);
 
-       //log_msg("Function's result: %s", result.to_string(&env));
+       //log_msg(_("Function's result: %s"), result.to_string(&env));
     
        env.drop(nargs + 1);
        env.top(0) = result;
@@ -2229,7 +2247,7 @@
        as_environment& env = thread.env;
        as_value* retval = thread.retval;
 
-       //log_msg("Before top/drop (retval=%p)", (void*)retval);
+       //log_msg(_("Before top/drop (retval=%p)"), (void*)retval);
        //env.dump_stack();
 
        thread.ensureStack(1); // ret value
@@ -2246,7 +2264,7 @@
         debugger.callStackPop();
 #endif
 
-       //log_msg("After top/drop");
+       //log_msg(_("After top/drop"));
        //env.dump_stack();
     
        // Skip the rest of this buffer (return from this action_buffer).
@@ -2270,7 +2288,7 @@
     result = fmod(x, y);
 //  env.top(1).set_double(fmod(env.top(1).to_bool() && env.top(0).to_bool());
 //  env.drop(1);
-//  log_error("modulo x=%f, y=%f, z=%f",x,y,result.to_number(&env));
+//  log_error(_("modulo x=%f, y=%f, z=%f"), x, y, result.to_number(&env));
     env.push(result);
 }
 
@@ -2286,7 +2304,7 @@
        const string& classname = val.to_string(&env);
 
        IF_VERBOSE_ACTION (
-               log_action("---new object: %s",
+               log_action(_("---new object: %s"),
                        classname.c_str());
        );
 
@@ -2299,8 +2317,8 @@
        if ( ! constructor )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("ActionNew: "
-                       "'%s' is NOT a constructor", classname.c_str());
+               log_aserror(_("ActionNew: "
+                       "'%s' is not a constructor"), classname.c_str());
                );
                env.drop(nargs);
                env.push(as_value()); // should we push an object anyway ?
@@ -2339,7 +2357,7 @@
     else
     {
        IF_VERBOSE_ASCODING_ERRORS(
-       log_aserror("The 'var whatever' syntax in timeline context is a 
no-op.");
+       log_aserror(_("The 'var whatever' syntax in timeline context is a 
no-op."));
        );
     }
     env.drop(1);
@@ -2358,7 +2376,7 @@
 
     thread.ensureStack((unsigned int)array_size); // array elements
     
-    //log_msg("xxx init array: size = %d, top of stack = %d", array_size, 
env.get_top_index());//xxxxx
+    //log_msg(_("xxx init array: size = %d, top of stack = %d"), array_size, 
env.get_top_index());//xxxxx
     
     // Call the array constructor, to create an empty array.
     as_value   result;
@@ -2379,7 +2397,7 @@
     
     env.push(result);
     
-    //log_msg("xxx init array end: top of stack = %d, trace(top(0)) =", 
env.get_top_index());//xxxxxxx
+    //log_msg(_("xxx init array end: top of stack = %d, trace(top(0)) ="), 
env.get_top_index());//xxxxxxx
     
     //as_global_trace(fn_call(NULL, NULL, env, 1, env.get_top_index()));       
//xxxx
     
@@ -2417,7 +2435,7 @@
     }
     
     // @@ TODO
-    //log_error("checkme opcode: %02X", action_id);
+    //log_error(_("checkme opcode: %02X"), action_id);
     
     as_value new_obj;
     new_obj.set_as_object(new_obj_ptr.get());
@@ -2455,7 +2473,7 @@
        else
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Argument to TargetPath(%s) doesn't cast to a 
movieclip",
+               log_aserror(_("Argument to TargetPath(%s) doesn't cast to a 
MovieClip"),
                        env.top(0).to_debug_string().c_str());
                );
                env.top(0).set_undefined();
@@ -2493,8 +2511,8 @@
        if ( ! variable.is_object() )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Top of stack not an object (%s) at "
-                       "ActionEnumerate execution",
+               log_aserror(_("Top of stack not an object (%s) at "
+                       "ActionEnumerate execution"),
                        variable.to_debug_string().c_str());
                );
                return;
@@ -2516,7 +2534,7 @@
     as_value& v1 = env.top(0);
     as_value& v2 = env.top(1);
 
-    //log_msg("ActionNewAdd(%s, %s) called", v1.to_debug_string().c_str(), 
v2.to_debug_string().c_str());
+    //log_msg(_("ActionNewAdd(%s, %s) called"), v1.to_debug_string().c_str(), 
v2.to_debug_string().c_str());
 
 
     if (v1.is_string() || v2.is_string() )
@@ -2530,9 +2548,9 @@
     {
        // use numeric semantic
        double v2num = v2.to_number(&env);
-       //log_msg("v2 num = %g", v2num);
+       //log_msg(_("v2 num = %g"), v2num);
        double v1num = v1.to_number(&env);
-       //log_msg("v1 num = %g", v1num);
+       //log_msg(_("v1 num = %g"), v1num);
 
         v2.set_double(v2num + v1num); // modify env.top(1)
     }
@@ -2642,16 +2660,16 @@
     
     boost::intrusive_ptr<as_object> obj = target.to_object();
     if (!obj) {
-//         IF_VERBOSE_DEBUG(log_msg("getMember called against "
+//         IF_VERBOSE_DEBUG(log_msg(_("getMember called against "
 //                                  "a value that does not cast "
-//                                  "to an as_object: %s", 
target.to_string(&env).c_str()));
+//                                  "to an as_object: %s"), 
target.to_string(&env).c_str()));
         env.top(1).set_undefined();
         env.drop(1);
         return;
     }
     
        IF_VERBOSE_ACTION (
-    log_action(" ActionGetMember: target: %s (object %p)",
+    log_action(_(" ActionGetMember: target: %s (object %p)"),
                target.to_debug_string().c_str(), (void*)obj.get());
        );
     
@@ -2667,7 +2685,7 @@
         }
         
        IF_VERBOSE_ACTION (
-        log_action("-- get_member %s.%s=%s",
+        log_action(_("-- get_member %s.%s=%s"),
                   target.to_debug_string().c_str(),
                    member_name.to_debug_string().c_str(),
                    env.top(1).to_debug_string().c_str());
@@ -2693,7 +2711,7 @@
        {
                thread.setObjectMember(*obj, member_name, member_value);
                IF_VERBOSE_ACTION (
-                       log_action("-- set_member %s.%s=%s",
+                       log_action(_("-- set_member %s.%s=%s"),
                                env.top(2).to_debug_string().c_str(),
                                member_name.c_str(),
                                member_value.to_debug_string().c_str());
@@ -2702,9 +2720,10 @@
        else
        {
                // Malformed SWF ? (don't think this is possible to do with 
ActionScript syntax)
+               // FIXME, should this be log_swferror?
                IF_VERBOSE_ACTION (
                        // Invalid object, can't set.
-                       log_action("-- set_member %s.%s=%s on invalid object!",
+                       log_action(_("-- set_member %s.%s=%s on invalid 
object!"),
                                env.top(2).to_debug_string().c_str(),
                                member_name.c_str(),
                                member_value.to_debug_string().c_str());
@@ -2759,8 +2778,8 @@
        if ( available_args < nargs )
        {
                IF_VERBOSE_MALFORMED_SWF(
-               log_swferror("Attempt to call a method with %u arguments "
-                       "while only %u are available on the stack.",
+               log_swferror(_("Attempt to call a method with %u arguments "
+                       "while only %u are available on the stack."),
                        nargs, available_args);
                );
                nargs = available_args;
@@ -2768,9 +2787,9 @@
 
 
        IF_VERBOSE_ACTION (
-       log_action(" method name: %s", method_name.to_debug_string().c_str());
-       log_action(" method object/func: %s", 
obj_value.to_debug_string().c_str());
-       log_action(" method nargs: %d", nargs);
+       log_action(_(" method name: %s"), 
method_name.to_debug_string().c_str());
+       log_action(_(" method object/func: %s"), 
obj_value.to_debug_string().c_str());
+       log_action(_(" method nargs: %d"), nargs);
        );
 
        string method_string = method_name.to_string(&env);
@@ -2785,18 +2804,18 @@
                {
                        if ( ! obj )
                        {
-                               log_error("ActionCallMethod invoked with "
+                               log_error(_("ActionCallMethod invoked with "
                                                "undefined method_name "
-                                               "and non-object object/func");
+                                               "and non-object object/func"));
                                env.drop(nargs+2);
                                env.top(0).set_undefined();
                                return;
                        }
 
 #ifdef GNASH_DEBUG
-                       log_warning("Function object given to ActionCallMethod"
+                       log_error(_("Function object given to ActionCallMethod"
                                       " is not a function, will try to use"
-                                      " its 'constructor' member");
+                                      " its 'constructor' member"));
 #endif
 
                        // TODO: all this crap should go into an 
as_object::getConstructor instead
@@ -2804,7 +2823,7 @@
                        if ( ! obj->get_member("constructor", &ctor) )
                        {
                                IF_VERBOSE_ASCODING_ERRORS(
-                               log_aserror("ActionCallMethod: object has no 
constructor");
+                               log_aserror(_("ActionCallMethod: object has no 
constructor"));
                                );
                                env.drop(nargs+2);
                                env.top(0).set_undefined();
@@ -2813,7 +2832,7 @@
                        if ( ! ctor.is_function() )
                        {
                                IF_VERBOSE_ASCODING_ERRORS(
-                               log_aserror("ActionCallMethod: object 
constructor is not a function");
+                               log_aserror(_("ActionCallMethod: object 
constructor is not a function"));
                                );
                                env.drop(nargs+2);
                                env.top(0).set_undefined(); 
@@ -2829,8 +2848,8 @@
                {
                        // SWF integrity check 
                        IF_VERBOSE_ASCODING_ERRORS(
-                       log_aserror("ActionCallMethod: "
-                               "Tried to invoke method '%s' on non-object 
value %s.",
+                       log_aserror(_("ActionCallMethod: "
+                               "Tried to invoke method '%s' on non-object 
value %s."),
                                method_name.to_debug_string().c_str(),
                                obj_value.typeOf());
                        );
@@ -2842,8 +2861,8 @@
                if ( ! thread.getObjectMember(*obj, method_string, method_val) )
                {
                        IF_VERBOSE_ASCODING_ERRORS(
-                       log_aserror("ActionCallMethod: "
-                               "Can't find method %s of object %s",
+                       log_aserror(_("ActionCallMethod: "
+                               "Can't find method %s of object %s"),
                                method_name.to_debug_string().c_str(),
                                obj_value.to_debug_string().c_str());
                        );
@@ -2854,7 +2873,7 @@
        }
 
 #ifdef USE_DEBUGGER
-//     cerr << "FIXME: method name is: " << method_name << endl;
+//     log_msg (_("FIXME: method name is: %s"), method_namexxx);
 //     // IT IS NOT GUARANTEE WE DO HAVE A METHOD NAME HERE !
        if ( ! method_name.is_undefined() )
        {
@@ -2865,7 +2884,7 @@
        {
                static bool warned=false;
                if ( ! warned ) {
-                       log_warning("FIXME: debugger doesn't deal with 
anonymous function calls");
+                       log_unimpl(_("FIXME: debugger doesn't deal with 
anonymous function calls"));
                        warned=true;
                }
        }
@@ -2878,7 +2897,7 @@
        env.top(0) = result;
 
        // This is to check stack status after call method
-       //log_msg("at doActionCallMethod() end, stack: "); env.dump_stack();
+       //log_msg(_("at doActionCallMethod() end, stack: ")); env.dump_stack();
     
 }
 
@@ -2902,8 +2921,8 @@
        if ( available_args < nargs )
        {
                IF_VERBOSE_MALFORMED_SWF(
-               log_swferror("Attempt to call a constructor with %u arguments "
-                       "while only %u are available on the stack.",
+               log_swferror(_("Attempt to call a constructor with %u arguments 
"
+                       "while only %u are available on the stack."),
                        nargs, available_args);
                );
                nargs = available_args;
@@ -2913,9 +2932,9 @@
        if ( ! obj )
        {
                // SWF integrity check 
-               log_warning(
-                       "On ActionNewMethod: "
-                       "no object found on stack on ActionMethod");
+               // FIXME, should this be log_swferror?  Or log_aserror?
+               log_error(_("On ActionNewMethod: "
+                       "no object found on stack on ActionMethod"));
                env.drop(nargs);
                env.push(as_value());
                return;
@@ -2932,8 +2951,8 @@
                if ( ! thread.getObjectMember(*obj, method_string, method_val) )
                {
                        IF_VERBOSE_ASCODING_ERRORS(
-                       log_aserror("ActionNewMethod: "
-                               "can't find method %s of object %s",
+                       log_aserror(_("ActionNewMethod: "
+                               "can't find method %s of object %s"),
                                method_string.c_str(), 
obj_val.to_debug_string().c_str());
                        );
                        env.drop(nargs);
@@ -2946,9 +2965,9 @@
        if ( ! method )
        {
                IF_VERBOSE_MALFORMED_SWF(
-               log_swferror("ActionNewMethod: "
+               log_swferror(_("ActionNewMethod: "
                        "method name is undefined, "
-                       "and object is not a function");
+                       "and object is not a function"));
                );
                env.drop(nargs);
                env.push(as_value()); // should we push an object anyway ?
@@ -2959,7 +2978,7 @@
        boost::intrusive_ptr<as_object> new_obj = construct_object(method.get(),
                        env, nargs, env.get_top_index());
 
-       //log_msg("%s( [%d args] ) returned %s", method_val.to_string(&env),
+       //log_msg(_("%s( [%d args] ) returned %s"), method_val.to_string(&env),
        //      nargs, new_obj.to_string(&env));
 
 
@@ -2985,7 +3004,7 @@
     // Invalid args!
     if (!super || ! instance) {
         IF_VERBOSE_ACTION(
-        log_action("-- %s instanceof %s (invalid args?)",
+        log_action(_("-- %s instanceof %s (invalid args?)"),
                 env.top(1).to_debug_string().c_str(),
                 env.top(0).to_debug_string().c_str());
         );
@@ -3019,8 +3038,8 @@
        if ( ! obj_val.is_object() )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Top of stack not an object %s at ActionEnum2 "
-                       " execution",
+               log_aserror(_("Top of stack not an object %s at ActionEnum2 "
+                       " execution"),
                        obj_val.to_debug_string().c_str());
                );
                return;
@@ -3196,12 +3215,12 @@
                (
                        if ( ! super )
                        {
-                               log_aserror("ActionExtends: Super is not an 
as_function (%s)",
+                               log_aserror(_("ActionExtends: Super is not an 
as_function (%s)"),
                                        env.top(0).to_debug_string().c_str());
                        }
                        if ( ! sub )
                        {
-                               log_aserror("ActionExtends: Sub is not an 
as_function (%s)",
+                               log_aserror(_("ActionExtends: Sub is not an 
as_function (%s)"),
                                        env.top(1).to_debug_string().c_str());
                        }
                );
@@ -3212,7 +3231,7 @@
 
        sub->extends(*super);
 
-       //dbglogfile << __PRETTY_FUNCTION__ << ": testing!" << endl;
+       //log_msg(_("%s: testing"), __PRETTY_FUNCTION__);
 }
 
 void
@@ -3276,7 +3295,7 @@
                // @@ security: watch out for possible missing terminator here!
                const char* arg = code.read_string(i);
 
-               //log_msg("Setting register %d/%d to %s", arg_register, nargs, 
arg);
+               //log_msg(_("Setting register %d/%d to %s"), arg_register, 
nargs, arg);
 
                func->add_arg(arg_register, arg);
                i += strlen(arg)+1;
@@ -3290,12 +3309,12 @@
        if ( thread.next_pc+code_size > actionbuf_size )
        {
                IF_VERBOSE_MALFORMED_SWF(
-                       log_swferror("function2 code len (%u) "
+                       log_swferror(_("function2 code len (%u) "
                                "overflows DOACTION tag boundaries "
                                "(DOACTION tag len=" SIZET_FMT
                                ", function2 code offset=" SIZET_FMT "). "
                                "Forcing code len to eat the whole buffer "
-                               "(would this work?).",
+                               "(would this work?)."),
                                code_size, actionbuf_size, thread.next_pc);
                );
                code_size = actionbuf_size-thread.next_pc;
@@ -3337,7 +3356,7 @@
 SWFHandlers::ActionTry(ActionExec& /*thread*/)
 {
 //    GNASH_REPORT_FUNCTION;
-    dbglogfile << __PRETTY_FUNCTION__ << ": unimplemented!" << endl;
+    log_unimpl (__PRETTY_FUNCTION__);
 }
 
 /// See: http://sswf.sourceforge.net/SWFalexref.html#action_with
@@ -3357,7 +3376,7 @@
 
        const vector<with_stack_entry>& with_stack = thread.getWithStack();
        IF_VERBOSE_ACTION (
-       log_action("-------------- with block start: stack size is " SIZET_FMT,
+       log_action(_("-------------- with block start: stack size is " 
SIZET_FMT),
                   with_stack.size());
        );
 
@@ -3367,7 +3386,7 @@
        if ( tag_length != 2 )
        {
                IF_VERBOSE_MALFORMED_SWF(
-               log_swferror("ActionWith tag length != 2 - skipping");
+               log_swferror(_("ActionWith tag length != 2; skipping"));
                );
                return;
        }
@@ -3377,7 +3396,7 @@
        if ( block_length == 0 )
        {
                IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror("Empty with() block...");
+               log_aserror(_("Empty with() block..."));
                );
                return;
        }
@@ -3392,9 +3411,10 @@
        if ( ! thread.pushWithEntry(with_stack_entry(with_obj, block_end)) )
        {
                // skip the full block
-               log_warning("With block skipped"
+               // FIXME, is this a log_aserror?
+               log_error(_("With-block skipped"
                        " (with stack size exceeds limit of "
-                       SIZET_FMT " elements)",
+                       SIZET_FMT " elements)"),
                        thread.getWithStackLimit());
                thread.next_pc += block_length;
        }
@@ -3510,7 +3530,7 @@
                env.local_register(reg) = env.top(0);
              
                IF_VERBOSE_ACTION (
-               log_action("-------------- local register[%d] = '%s'",
+               log_action(_("-------------- local register[%d] = '%s'"),
                        reg, env.top(0).to_debug_string().c_str());
                );
        }
@@ -3519,7 +3539,7 @@
                env.global_register(reg) = env.top(0);
                      
                IF_VERBOSE_ACTION (
-               log_action("-------------- global register[%d] = '%s'",
+               log_action(_("-------------- global register[%d] = '%s'"),
                        reg, env.top(0).to_debug_string().c_str() );
                );
 
@@ -3527,7 +3547,7 @@
        else
        {
                IF_VERBOSE_MALFORMED_SWF(
-               log_swferror("store_register[%d] -- register out of bounds!", 
reg);
+               log_swferror(_("store_register[%d] -- register out of 
bounds!"), reg);
                );
        }
                  
@@ -3538,8 +3558,8 @@
 {
        if ( static_cast<size_t>(x) > get_handlers().size() )
        {
-               log_error("at SWFHandlers::action_name(%d) call time, _handlers 
size is " 
-                         SIZET_FMT, x, get_handlers().size());
+               log_error(_("at SWFHandlers::action_name(%d) call time, 
_handlers size is "
+                         SIZET_FMT), x, get_handlers().size());
                return NULL;
        }
        else

Index: server/vm/ActionExec.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ActionExec.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- server/vm/ActionExec.cpp    13 Apr 2007 07:35:56 -0000      1.26
+++ server/vm/ActionExec.cpp    18 Apr 2007 14:07:33 -0000      1.27
@@ -1,3 +1,4 @@
+// ActionExec.cpp:  ActionScript execution, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,11 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-/* $Id: ActionExec.cpp,v 1.26 2007/04/13 07:35:56 bjacques Exp $ */
+/* $Id: ActionExec.cpp,v 1.27 2007/04/18 14:07:33 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -130,10 +133,10 @@
 
 #if DEBUG_STACK
        IF_VERBOSE_ACTION (
-               log_action("at ActionExec operator() start, pc=" SIZET_FMT
+               log_action(_("at ActionExec operator() start, pc=" SIZET_FMT
                           ", stop_pc=" SIZET_FMT ", code.size=" SIZET_FMT
-                          ".", pc, 
-                          stop_pc, code.size());
+                          "."),
+                           pc, stop_pc, code.size());
                stringstream ss;
                env.dump_stack(ss);
                env.dump_global_registers(ss);
@@ -155,6 +158,7 @@
        uint8_t action_id = code[pc];
 
        IF_VERBOSE_ACTION (
+               // FIXME, avoid direct dbglogfile access, use log_action
                dbglogfile << std::endl << "PC:" << pc << " - EX: ";
                code.log_disasm(pc);
        );
@@ -171,15 +175,13 @@
                if ( next_pc > stop_pc )
                {
                        IF_VERBOSE_MALFORMED_SWF(
-                       std::stringstream ss;
-                       ss << "Length " << length << " (" << (int)length << ") 
of action tag"
-                               << " id " << (unsigned)action_id
-                               << " at pc " << pc
-                               << " overflows actions buffer size "
-                               << stop_pc;
-                       //throw ActionException(ss.str());;
-                       log_swferror("%s", ss.str().c_str());
+                       log_swferror(_("Length %u (%d) of action tag"
+                         " id %u at pc " SIZET_FMT
+                         " overflows actions buffer size " SIZET_FMT),
+                         length, (int)length, (unsigned)action_id, pc,
+                         stop_pc);
                        );
+                       //throw ActionException(ss.str());;
                        // Give this action handler a chance anyway.
                        // Maybe it will be able to do something about 
                        // this anyway..
@@ -189,7 +191,8 @@
        // Do we still need this ?
        if ( action_id == SWF::ACTION_END ) {
                // this would turn into an assertion (next_pc==stop_pc)
-               //              log_msg("At ACTION_END next_pc=%d, stop_pc=%d", 
next_pc, stop_pc);
+               //              log_msg(_("At ACTION_END next_pc=" SIZET_FMT
+               //                ", stop_pc=" SIZET_FMT), next_pc, stop_pc);
                break;
        }
 
@@ -205,7 +208,7 @@
        
 #if DEBUG_STACK
        IF_VERBOSE_ACTION (
-               log_action( " After execution, PC is " SIZET_FMT ".", pc);
+               log_action(_(" After execution, PC is " SIZET_FMT "."), pc);
                stringstream ss;
                env.dump_stack(ss);
                env.dump_global_registers(ss);
@@ -223,7 +226,9 @@
     }
     catch (ActionLimitException& ex)
     {
+           IF_VERBOSE_ASCODING_ERRORS (
            log_aserror("%s", ex.what());
+           )
     }
     
     cleanupAfterRun();
@@ -241,15 +246,15 @@
     // check the call stack if not in a function context
     if ( ! isFunction() && env.callStackDepth() > 0 )
     {
-       log_warning("Call stack non-empty at end of ExecutableCode run (limits 
hit?)");
+       log_error(_("Call stack non-empty at end of ExecutableCode run (limits 
hit?)"));
        env.clearCallFrames();
     }
 
     // check if the stack was smashed
     if ( _initial_stack_size > env.stack_size() ) {
-       log_warning("Stack smashed (ActionScript compiler bug?)."
+       log_error(_("Stack smashed (ActionScript compiler bug?)."
                    "Fixing by pushing undefined values to the missing slots, "
-                   " but don't expect things to work afterwards.");
+                   " but don't expect things to work afterwards"));
        size_t missing = _initial_stack_size - env.stack_size();
        for (size_t i=0; i<missing; ++i) {
            env.push(as_value());
@@ -257,8 +262,8 @@
     } else if ( _initial_stack_size < env.stack_size() ) {
        // We can argue this would be an "size-optimized" SWF instead...
        IF_VERBOSE_MALFORMED_SWF(
-           log_warning(SIZET_FMT " elements left on the stack after block 
execution. "
-                   "Cleaning up.", env.stack_size()-_initial_stack_size);
+           log_swferror(_(SIZET_FMT " elements left on the stack after block 
execution.  "
+                   "Cleaning up"), env.stack_size()-_initial_stack_size);
            );
        env.drop(env.stack_size()-_initial_stack_size);
     }
@@ -274,11 +279,13 @@
            // we need to check at every iteration because
            // an action can be longer then a single byte
            if ( next_pc >= stop_pc ) {
-               log_error("End of DoAction block hit while skipping "
+               IF_VERBOSE_MALFORMED_SWF (
+               log_swferror(_("End of DoAction block hit while skipping "
                          SIZET_FMT " action tags (pc:" SIZET_FMT 
-                         ", stop_pc:" SIZET_FMT ") - Mallformed SWF ?"
-                         "(WaitForFrame, probably)", offset, next_pc,
+                         ", stop_pc:" SIZET_FMT ") "
+                         "(WaitForFrame, probably)"), offset, next_pc,
                          stop_pc);
+               )
                next_pc = stop_pc;
                return;
            }
@@ -309,10 +316,10 @@
        // See comment in header about _with_stack_limit
        IF_VERBOSE_ASCODING_ERRORS (
        if (with_stack.size() >= _with_stack_limit) {
-           log_aserror("'With' stack depth (" SIZET_FMT ") "
+           log_aserror(_("'With' stack depth (" SIZET_FMT ") "
                        "exceeds the allowed limit for current SWF "
                        "target version (" SIZET_FMT " for version %d)."
-                       " Don't expect this movie to work with all players.",
+                       " Don't expect this movie to work with all players."),
                        with_stack.size()+1, _with_stack_limit,
                        env.get_version());
        }
@@ -416,14 +423,15 @@
        size_t slots_left = env.stack_size() - _initial_stack_size;
        size_t missing = required-slots_left;
 
-       //IF_VERBOSE_ASCODING_ERRORS(
-       log_warning("Stack underrun: " SIZET_FMT " elements required, "
+       // FIXME, the IF_VERBOSE used to be commented out.  strk, know why?
+       IF_VERBOSE_ASCODING_ERRORS(
+       log_aserror(_("Stack underrun: " SIZET_FMT " elements required, "
                SIZET_FMT "/" SIZET_FMT " available. "
                "Fixing by inserting " SIZET_FMT " undefined values on the"
-               " missing slots.",
+               " missing slots."),
                required, _initial_stack_size, env.stack_size(),
                missing);
-       //);
+       );
 
        env.padStack(_initial_stack_size, missing);
 }

Index: server/vm/action.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/action.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- server/vm/action.cpp        15 Apr 2007 10:52:09 -0000      1.14
+++ server/vm/action.cpp        18 Apr 2007 14:07:33 -0000      1.15
@@ -1,3 +1,4 @@
+// action.cpp:  ActionScript execution, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,9 +11,11 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -134,7 +137,7 @@
        boost::intrusive_ptr<movie_definition> md ( create_library_movie(url) );
        if (md == NULL)
        {
-           log_error("can't create movie_definition for %s\n", 
url.str().c_str());
+           log_error(_("can't create movie_definition for %s"), 
url.str().c_str());
            return;
        }
 
@@ -146,7 +149,7 @@
                extern_movie = create_library_movie_inst(md.get());
                if (extern_movie == NULL)
                {
-                       log_error("can't create extern root sprite for %s\n", 
url.str().c_str());
+                       log_error(_("can't create extern root sprite for %s"), 
url.str().c_str());
                        return;
                }
 
@@ -163,7 +166,7 @@
                extern_movie = md->create_instance();
                if (extern_movie == NULL)
                {
-                       log_error("can't create extern sprite for %s\n", 
url.str().c_str());
+                       log_error(_("can't create extern sprite for %s"), 
url.str().c_str());
                        return;
                }
       
@@ -232,7 +235,7 @@
                }
                else
                {
-                       throw ActionException("Attempt to call a value which is 
neither a C nor an ActionScript function");
+                       throw ActionException(_("Attempt to call a value which 
is neither a C nor an ActionScript function"));
                }
        }
        catch (ActionException& ex)
@@ -264,7 +267,7 @@
     // Printf-like vararg interface for calling ActionScript.
     // Handy for external binding.
 {
-    log_msg("FIXME(%d): %s\n", __LINE__, __FUNCTION__);
+    log_msg(_("FIXME(%d): %s"), __LINE__, __FUNCTION__);
 
 #if 0
     static const int   BUFSIZE = 1000;
@@ -383,7 +386,7 @@
                                }
                            else
                                {
-                                   log_error("call_method_parsed('%s','%s') -- 
invalid fmt '%%l%c'\n",
+                                   log_error(_("call_method_parsed('%s','%s') 
-- invalid fmt '%%l%c'"),
                                              method_name,
                                              method_arg_fmt,
                                              c);
@@ -392,7 +395,7 @@
                    else
                        {
                            // Invalid fmt, warn.
-                           log_error("call_method_parsed('%s','%s') -- invalid 
fmt '%%%c'\n",
+                           log_error(_("call_method_parsed('%s','%s') -- 
invalid fmt '%%%c'"),
                                      method_name,
                                      method_arg_fmt,
                                      c);
@@ -408,7 +411,7 @@
                    else
                        {
                            // Invalid arg; warn.
-                           log_error("call_method_parsed('%s','%s') -- invalid 
char '%c'\n",
+                           log_error(_("call_method_parsed('%s','%s') -- 
invalid char '%c'"),
                                      method_name,
                                      method_arg_fmt,
                                      c);
@@ -444,7 +447,7 @@
 void
 movie_load()
 {
-    log_action("-- start movie");
+    log_action(_("-- start movie"));
 }
 
 //
@@ -455,7 +458,7 @@
 as_value
 event_test(const fn_call& /*fn*/)
 {
-    log_msg("FIXME: %s\n", __FUNCTION__);
+    log_msg(_("FIXME: %s"), __FUNCTION__);
     return as_value();
 }
        
@@ -601,10 +604,8 @@
        return result;
 }
 
-
 } // end of namespace gnash
 
-
 // Local Variables:
 // mode: C++
 // indent-tabs-mode: t

Index: libbase/curl_adapter.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/curl_adapter.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- libbase/curl_adapter.cpp    17 Apr 2007 10:38:16 -0000      1.26
+++ libbase/curl_adapter.cpp    18 Apr 2007 14:07:33 -0000      1.27
@@ -1,5 +1,6 @@
+// curl_adapter.cpp:  Interface to libcurl to read HTTP streams, for Gnash.
 // 
-//   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
@@ -10,13 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
 // 
 
-/* $Id: curl_adapter.cpp,v 1.26 2007/04/17 10:38:16 strk Exp $ */
+/* $Id: curl_adapter.cpp,v 1.27 2007/04/18 14:07:33 jgilmore Exp $ */
 
 #if defined(_WIN32) || defined(WIN32)
 #define snprintf _snprintf
@@ -273,7 +274,7 @@
                 curl_easy_getinfo(_handle, CURLINFO_RESPONSE_CODE, &code);
                 if ( code == 404 ) // file not found!
                 {
-                        gnash::log_warning("404 response from url %s", 
_url.c_str());
+                        gnash::log_error(_("404 response from url %s"), 
_url.c_str());
                         _error = TU_FILE_OPEN_ERROR;
                        _running = false;
                         return;
@@ -525,7 +526,7 @@
                 curl_easy_getinfo(_handle, CURLINFO_RESPONSE_CODE, &code);
                 if ( code == 404 ) // file not found!
                 {
-                        gnash::log_warning("404 response from url %s", 
_url.c_str());
+                        gnash::log_error(_("404 response from url %s"), 
_url.c_str());
                         _error = TU_FILE_OPEN_ERROR;
                        _running = false;
                         return false;
@@ -708,7 +709,6 @@
 
 #endif // def USE_CURL
 
-
 // Local Variables:
 // mode: C++
 // indent-tabs-mode: t

Index: libbase/extension.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/extension.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- libbase/extension.cpp       8 Apr 2007 23:06:17 -0000       1.8
+++ libbase/extension.cpp       18 Apr 2007 14:07:33 -0000      1.9
@@ -1,5 +1,6 @@
+// extension.cpp:  Read and enable plug-in extensions to Flash, for Gnash.
 // 
-//   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
@@ -14,7 +15,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-/* $Id: extension.cpp,v 1.8 2007/04/08 23:06:17 rsavoye Exp $ */
+/* $Id: extension.cpp,v 1.9 2007/04/18 14:07:33 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -62,8 +63,6 @@
 using namespace std;
 namespace gnash {
 
-LogFile& dbglogfile = LogFile::getDefaultInstance();
-
 Extension::Extension() 
 {
 //    GNASH_REPORT_FUNCTION;
@@ -122,7 +121,7 @@
     vector<string>::iterator it;
     for (it = _modules.begin(); it != _modules.end(); it++) {
         mod = *(it);
-        dbglogfile << "Loading module: " << mod.c_str() << endl;
+        log_msg(_("Loading module: %s"), mod.c_str());
         SharedLib sl;
         initModule(mod.c_str(), obj);
     }   
@@ -138,7 +137,7 @@
     SharedLib *sl;
     string symbol;
 
-    dbglogfile << "Initializing module: \"" << module << "\"" << endl;
+    log_msg(_("Initializing module: \"%s\""), module);
     
     symbol = module;
     if (_plugins[module] == 0) {
@@ -155,7 +154,7 @@
     if (symptr) {    
         symptr(obj);
     } else {
-        log_warning("Couldn't get class_init symbol!");
+        log_error(_("Couldn't get class_init symbol"));
     }
     
     return true;
@@ -190,11 +189,11 @@
     }
     
     while (dir) {
-        dbglogfile << "Scanning directory \"" << dir << "\" for plugins." << 
endl;
+        log_msg(_("Scanning directory \"%s\" for plugins"), dir);
         DIR *library_dir = opendir(dir);
 
         if (library_dir == NULL) {
-            dbglogfile << "Can't open directory " << dir << endl;
+            log_error(_("Can't open directory %s"), dir);
             return false;
         }
         
@@ -216,7 +215,7 @@
             }
             
             *(strrchr(entry->d_name, '.')) = 0;
-            dbglogfile << "Gnash Plugin name: " << entry->d_name << endl;
+            log_msg(_("Gnash Plugin name: %s"), entry->d_name);
             _modules.push_back(entry->d_name);
             
         }

Index: libbase/log.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/log.cpp,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -b -r1.46 -r1.47
--- libbase/log.cpp     16 Apr 2007 10:26:59 -0000      1.46
+++ libbase/log.cpp     18 Apr 2007 14:07:33 -0000      1.47
@@ -1,3 +1,4 @@
+// log.cpp:  Message logging functions, for gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,11 +11,13 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
-/* $Id: log.cpp,v 1.46 2007/04/16 10:26:59 jgilmore Exp $ */
+/* $Id: log.cpp,v 1.47 2007/04/18 14:07:33 jgilmore Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -59,7 +62,7 @@
 
 namespace gnash {
 
-// static data to be hared amongst all classes.
+// static data to be shared amongst all classes.
 ofstream LogFile::_console;
 int LogFile::_verbose = 0;
 bool LogFile::_actiondump = false;
@@ -99,6 +102,7 @@
     return p1;
 }
 
+// FIXME: localize these, so they print local regional timestamps.
 ostream&
 timestamp(ostream& x) {
     time_t t;
@@ -178,11 +182,10 @@
     char tmp[BUFFER_SIZE];
     
     va_start (ap, fmt);
-    //vsprintf (tmp, fmt, ap);
     vsnprintf (tmp, BUFFER_SIZE, fmt, ap);
     tmp[BUFFER_SIZE-1] = '\0';
     
-    dbglogfile << "TRACE: " << tmp << endl;
+    dbglogfile << _("TRACE: ") << tmp << endl;
     
     va_end (ap);
 }
@@ -196,11 +199,15 @@
     char tmp[BUFFER_SIZE];
     
     va_start (ap, fmt);
-    //vsprintf (tmp, fmt, ap);
     vsnprintf (tmp, BUFFER_SIZE, fmt, ap);
     tmp[BUFFER_SIZE-1] = '\0';
     
-    dbglogfile << "DEBUG: " << tmp << endl;
+    // We don't translate DEBUG: because code below here looks for it
+    // in the output of const char strings.  If we translated it, both
+    // its type would change (to non-const char string) and the letters would
+    // change to the local language.  Could perhaps be fixed more cleanly
+    // later...
+    dbglogfile << N_("DEBUG: ") << tmp << endl;
     
     va_end (ap);
 }
@@ -266,7 +273,7 @@
     vsnprintf (tmp, BUFFER_SIZE, fmt, ap);
     tmp[BUFFER_SIZE-1] = '\0';
 
-    dbglogfile << "ERROR: " << tmp << endl;
+    dbglogfile << _("ERROR: ") << tmp << endl;
     
     va_end (ap);    
 }
@@ -283,7 +290,7 @@
     vsnprintf (tmp, BUFFER_SIZE-1, fmt, ap);
     tmp[BUFFER_SIZE-1] = '\0';
     
-    dbglogfile << "ERROR: Unimplemented: " << tmp << endl;
+    dbglogfile << _("ERROR: Unimplemented: ") << tmp << endl;
     
     va_end (ap);    
 }
@@ -300,7 +307,7 @@
     vsnprintf (tmp, BUFFER_SIZE-1, fmt, ap);
     tmp[BUFFER_SIZE-1] = '\0';
     
-    dbglogfile << "SECURITY: " << tmp << endl;
+    dbglogfile << _("SECURITY: ") << tmp << endl;
     
     va_end (ap);    
 }
@@ -317,7 +324,7 @@
     vsnprintf (tmp, BUFFER_SIZE-1, fmt, ap);
     tmp[BUFFER_SIZE-1] = '\0';
     
-    dbglogfile << "MALFORMED SWF: " << tmp << endl;
+    dbglogfile << _("MALFORMED SWF: ") << tmp << endl;
     
     va_end (ap);    
 }
@@ -334,7 +341,7 @@
     vsnprintf (tmp, BUFFER_SIZE-1, fmt, ap);
     tmp[BUFFER_SIZE-1] = '\0';
     
-    dbglogfile << "ACTIONSCRIPT ERROR: " << tmp << endl;
+    dbglogfile << _("ACTIONSCRIPT ERROR: ") << tmp << endl;
     
     va_end (ap);    
 }
@@ -603,7 +610,7 @@
 /// function calls. We always want these to be logged to the disk
 /// file, but optionally printed to the terminal window.
 ///
-/// Since the traceing functions use varargs, they always become a
+/// Since the tracing functions use varargs, they always become a
 /// const char * string after processing the arguments. That means we
 /// can look for the keyword to determine what to do.
 LogFile& 
@@ -615,23 +622,25 @@
     _logentry += ": ";
 
     // See if we have the TRACE keyword
-    if (strstr(str, "DEBUG:")) {
+    if (strstr(str, N_("DEBUG: "))) {
        _trace = true;
     }    
 
+    scoped_lock lock(io_mutex);
+
+#if 0  // Fixed the callers!
     // Since the log_* functions are wrappers for the older API used
     // for logging, we have to strip the CR off the end otr we get
     // blanks lines as the previous implementation required a CR, and
     // now we don't.
     int len = c.length();
-
-    scoped_lock lock(io_mutex);
     if (len > 0) {
        if (c[len-1] == '\n') {
            //c[len-1] = 0;
            c.resize(len-1);
        }
     }
+#endif
     
     if (_stamp == true && (_state == IDLE || _state == OPEN)) {
        _state = INPROGRESS;

Index: libbase/network.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/network.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- libbase/network.cpp 3 Apr 2007 15:24:11 -0000       1.23
+++ libbase/network.cpp 18 Apr 2007 14:07:33 -0000      1.24
@@ -1,3 +1,4 @@
+// network.cpp:  TCP/IP support, for Gnash.
 // 
 //   Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
 // 
@@ -10,9 +11,11 @@
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
+//
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -73,13 +76,13 @@
        _debug(false),
        _timeout(5)
 {
-    //log_msg("%s", __PRETTY_FUNCTION__);
+    //GNASH_REPORT_FUNCTION;
 #ifdef HAVE_WINSOCK_H
     WORD wVersionRequested;
     WSADATA wsaData;
     wVersionRequested = MAKEWORD(1, 1);                // Windows Sockets 1.1
     if (WSAStartup( wVersionRequested, &wsaData ) != 0) {
-        log_error("Could not find a usable WinSock DLL.");
+        log_error(_("Could not find a usable WinSock DLL"));
         exit(1);
     }
 #endif
@@ -88,7 +91,7 @@
 
 Network::~Network() 
 {
-    //log_msg("%s:", __PRETTY_FUNCTION__);
+    //GNASH_REPORT_FUNCTION;
 #ifdef HAVE_WINSOCK_H
     WSACleanup();
 #else
@@ -108,6 +111,7 @@
     return createServer(DEFAULTPORT);
 }
 
+// FIXME: Should also support IPv6 (AF_INET6)
 bool
 Network::createServer(short port)
 {
@@ -120,7 +124,7 @@
     in_addr_t       nodeaddr;
 
     if (port < 1024) {
-       log_error("Can't connect to priviledged port #%d!", port);
+       log_error(_("Can't connect to privileged port #%d"), port);
        return false;
     }
   
@@ -142,8 +146,7 @@
     sock_in.sin_port = htons(port);
   
     if ((ppe = getprotobyname(DEFAULTPROTO)) == 0) {
-        // error, wasn't able to get a protocol entry
-        log_warning("unable to get protocol entry for %s",
+        log_error(_("unable to get protocol entry for %s"),
                 DEFAULTPROTO);
         return false;
     }
@@ -160,14 +163,14 @@
     
     // error, wasn't able to create a socket
     if (_listenfd < 0) {
-        log_warning("unable to create socket: %s", strerror(errno));
+        log_error(_("unable to create socket: %s"), strerror(errno));
         return true;
     }
     
     on = 1;
     if (setsockopt(_listenfd, SOL_SOCKET, SO_REUSEADDR,
                    (char *)&on, sizeof(on)) < 0) {
-        log_warning("setsockopt SO_REUSEADDR failed!");
+        log_error(_("setsockopt SO_REUSEADDR failed"));
         return false;
     }
     
@@ -177,36 +180,27 @@
     while (retries < 5) {
         if (bind(_listenfd, reinterpret_cast<struct sockaddr *>(&sock_in),
                  sizeof(sock_in)) == -1) {
-            log_warning("unable to bind to port %hd! %s",
+            log_error(_("unable to bind to port %hd: %s"),
                     port, strerror(errno));
 //                    inet_ntoa(sock_in.sin_addr), strerror(errno));
             retries++;
         }
 
-#if 0
-        char                ascip[32];
-        inet_ntop(AF_INET, &_ipaddr, ascip, INET_ADDRSTRLEN);
-        log_msg("Host Name is %s, IP is %s", host->h_name, ascip);
-#endif
-    
        if (_debug) {
-           log_msg("Server bound to service on port: %hd, %s using fd #%d",
-                   ntohs(sock_in.sin_port), inet_ntoa(sock_in.sin_addr),
+               char  ascip[INET_ADDRSTRLEN];
+               inet_ntop(sock_in.sin_family, &_ipaddr, ascip, INET_ADDRSTRLEN);
+           log_msg(_("Server bound to service on %s, port %hd, using fd %d"),
+                   ascip, ntohs(sock_in.sin_port),
                    _listenfd);
        }
         
         if (type == SOCK_STREAM && listen(_listenfd, 5) < 0) {
-            log_msg("ERROR: unable to listen on port: %hd: %s ",
+            log_error(_("unable to listen on port: %hd: %s "),
                 port, strerror(errno));
             return false;
         }
 
         _port = port;
-    
-#if 0
-        log_msg("Listening for net traffic on fd #%d", _sockfd);
-#endif
-    
         return true;
     }
     return false;
@@ -238,7 +232,7 @@
     alen = sizeof(struct sockaddr_in);
   
 #ifdef NET_DEBUG
-    log_msg("Trying to accept net traffic on fd #%d", _sockfd);
+    log_msg(_("Trying to accept net traffic on fd %d"), _sockfd);
 #endif
   
     if (_listenfd <= 2) {
@@ -267,24 +261,24 @@
         }
     
         if (FD_ISSET(0, &fdset)) {
-            log_msg("There is data at the console for stdin!");
+            log_msg(_("There is data at the console for stdin"));
             return true;
         }
 
         // If interupted by a system call, try again
         if (ret == -1 && errno == EINTR) {
-            log_msg("The accept() socket for fd #%d was interupted by a system 
call!", _listenfd);
+            log_msg(_("The accept() socket for fd %d was interupted by a 
system call"), _listenfd);
         }
     
         if (ret == -1) {
-            log_warning("The accept() socket for fd #%d never was available 
for writing!",
+            log_msg(_("The accept() socket for fd %d never was available for 
writing"),
                     _listenfd);
             return false;
         }
     
         if (ret == 0) {
             if (_debug) {
-                log_warning("The accept() socket for fd #%d timed out waiting 
to write!",
+                log_msg(_("The accept() socket for fd %d timed out waiting to 
write"),
                         _listenfd);
             }
         }
@@ -296,12 +290,12 @@
     _sockfd = accept(_listenfd, &newfsin, &alen);
   
     if (_sockfd < 0) {
-        log_warning("unable to accept : %s", strerror(errno));
+        log_error(_("unable to accept: %s"), strerror(errno));
         return false;
     }
 
     if (_debug) {
-       log_msg("Accepting tcp/ip connection on fd #%d", _sockfd);
+       log_msg(_("Accepting tcp/ip connection on fd %d"), _sockfd);
     }
 
     return true;
@@ -347,20 +341,20 @@
     assert( ! connected() );
 
     if (port < 1024) {
-        log_error("Can't connect to priviledged port #%hd!", port);
+        log_error(_("Can't connect to privileged port %hd"), port);
         _connected = false;
         return false;
     }
 
-    log_msg("%s: to host %s at port %d", __FUNCTION__, hostname, port);
+    log_msg(_("%s: to host %s at port %d"), __FUNCTION__, hostname, port);
   
     memset(&sock_in, 0, sizeof(struct sockaddr_in));
     memset(&thishostname, 0, MAXHOSTNAMELEN);
     if (strlen(hostname) == 0) {
         if (gethostname(thishostname, MAXHOSTNAMELEN) == 0) {
-            log_msg("The hostname for this machine is %s.", thishostname);
+            log_msg(_("The hostname for this machine is %s"), thishostname);
         } else {
-            log_msg("Couldn't get the hostname for this machine!");
+            log_msg(_("Couldn't get the hostname for this machine"));
             return false;
         }   
     }
@@ -372,9 +366,9 @@
     sock_in.sin_port = ntohs(static_cast<short>(port));
 
 #if 0
-    char ascip[32];
-    inet_ntop(AF_INET, &sock_in.sin_addr.s_addr, ascip, INET_ADDRSTRLEN);
-    log_msg("The IP address for this client socket is %s", ascip);
+    char ascip[INET_ADDRSTRLEN];
+    inet_ntop(sock_in.sin_family, &sock_in.sin_addr.s_addr, ascip, 
INET_ADDRSTRLEN);
+    log_msg(_("The IP address for this client socket is %s"), ascip);
 #endif
 
     proto = ::getprotobyname("TCP");
@@ -382,7 +376,7 @@
     _sockfd = ::socket(PF_INET, SOCK_STREAM, proto->p_proto);
     if (_sockfd < 0)
         {
-            log_error("unable to create socket : %s", strerror(errno));
+            log_error(_("unable to create socket : %s"), strerror(errno));
             _sockfd = -1;
             return false;
         }
@@ -404,14 +398,14 @@
         // If interupted by a system call, try again
         if (ret == -1 && errno == EINTR)
             {
-                log_msg("The connect() socket for fd #%d was interupted by a 
system call!",
+                log_msg(_("The connect() socket for fd %d was interupted by a 
system call"),
                         _sockfd);
                 continue;
             }
     
         if (ret == -1)
             {
-                log_msg("The connect() socket for fd #%d never was available 
for writing!",
+                log_msg(_("The connect() socket for fd %d never was available 
for writing"),
                         _sockfd);
 #ifdef HAVE_WINSOCK_H
                 ::shutdown(_sockfd, 0); // FIXME: was SHUT_BOTH
@@ -422,7 +416,7 @@
                 return false;
             }
         if (ret == 0) {
-            log_error("The connect() socket for fd #%d timed out waiting to 
write!",
+            log_error(_("The connect() socket for fd %d timed out waiting to 
write"),
                       _sockfd);
             continue;
         }
@@ -430,14 +424,16 @@
         if (ret > 0) {
             ret = ::connect(_sockfd, reinterpret_cast<struct sockaddr 
*>(&sock_in), sizeof(sock_in));
             if (ret == 0) {
-                log_msg("\tport %d at IP %s for fd #%d", port,
-                        ::inet_ntoa(sock_in.sin_addr), _sockfd);
+               char ascip[INET_ADDRSTRLEN];
+               inet_ntop(sock_in.sin_family, &sock_in.sin_addr.s_addr, ascip, 
INET_ADDRSTRLEN);
+                log_msg(_("\tport %d at IP %s for fd %d"), port,
+                        ascip, _sockfd);
                 _connected = true;
                 assert(_sockfd > 0);
                 return true;
             }
             if (ret == -1) {
-                log_msg("The connect() socket for fd #%d never was available 
for writing!",
+                log_error(_("The connect() socket for fd %d never was 
available for writing"),
                         _sockfd);
                 _sockfd = -1;      
                 assert(!_connected);
@@ -506,14 +502,14 @@
             }
 #endif 
             if (close(sockfd) < 0) {
-                log_warning("Unable to close the socket for fd #%d: %s",
+                log_error(_("Unable to close the socket for fd %d: %s"),
                         sockfd, strerror(errno));
 #ifndef HAVE_WINSOCK_H
                 sleep(1);
 #endif
                 retries++;
             } else {
-                log_msg("Closed the socket on fd #%d", sockfd);
+                log_msg(_("Closed the socket on fd %d"), sockfd);
                 return true;
             }
         }

Index: libbase/FLVParser.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/FLVParser.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- libbase/FLVParser.cpp       11 Apr 2007 13:03:45 -0000      1.4
+++ libbase/FLVParser.cpp       18 Apr 2007 14:07:33 -0000      1.5
@@ -1,3 +1,4 @@
+// FLVParser.cpp:  Flash Video file parser, for Gnash.
 // 
 //   Copyright (C) 2007 Free Software Foundation, Inc.
 //
@@ -16,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-// $Id: FLVParser.cpp,v 1.4 2007/04/11 13:03:45 bjacques Exp $
+// $Id: FLVParser.cpp,v 1.5 2007/04/18 14:07:33 jgilmore Exp $
 
 #include "FLVParser.h"
 #include "amf.h"

Index: libbase/FLVParser.h
===================================================================
RCS file: /sources/gnash/gnash/libbase/FLVParser.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- libbase/FLVParser.h 28 Mar 2007 16:12:08 -0000      1.2
+++ libbase/FLVParser.h 18 Apr 2007 14:07:33 -0000      1.3
@@ -1,3 +1,4 @@
+// FLVParser.h:  Flash Video file format parser, for Gnash.
 // 
 //   Copyright (C) 2007 Free Software Foundation, Inc.
 //
@@ -16,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-// $Id: FLVParser.h,v 1.2 2007/03/28 16:12:08 tgc Exp $
+// $Id: FLVParser.h,v 1.3 2007/04/18 14:07:33 jgilmore Exp $
 
 // Information about the FLV format can be found at http://osflash.org/flv
 
@@ -235,10 +236,10 @@
        FLVAudioInfo* _audioInfo;
 
        /// Last audio frame returned
-       int32_t _lastAudioFrame;
+       uint32_t _lastAudioFrame;
 
        /// Last video frame returned
-       int32_t _lastVideoFrame;
+       uint32_t _lastVideoFrame;
 
        /// Audio stream is present
        bool _audio;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]