X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fipc.cpp;h=4d1db5678f3cef23d4d6a22a8b169327c43311c9;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=ab6748be1bcec1d25d8882a347ba99d8c3b0a5e5;hpb=587ff98fbfd1248c1dd2c440ff59aa9a40b90277;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/ipc.cpp b/synfig-studio/trunk/src/gtkmm/ipc.cpp index ab6748b..4d1db56 100644 --- a/synfig-studio/trunk/src/gtkmm/ipc.cpp +++ b/synfig-studio/trunk/src/gtkmm/ipc.cpp @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -66,6 +67,8 @@ #include #include +#include "general.h" + #endif /* === U S I N G =========================================================== */ @@ -224,8 +227,6 @@ IPC::fifo_path() bool IPC::fifo_activity(Glib::IOCondition cond) { - synfig::info(__FILE__":%d: fifo activity",__LINE__); - if(cond&(Glib::IO_ERR|Glib::IO_HUP|Glib::IO_NVAL)) { if(cond&(Glib::IO_ERR)) @@ -236,7 +237,6 @@ IPC::fifo_activity(Glib::IOCondition cond) synfig::error("IPC::fifo_activity(): IO_NVAL"); return false; } - synfig::info(__FILE__":%d: fifo activity",__LINE__); String command; { @@ -249,6 +249,7 @@ IPC::fifo_activity(Glib::IOCondition cond) } while(tmp!='\n'); } + synfig::info("%s:%d: fifo activity: '%s'", __FILE__, __LINE__, command.c_str()); process_command(command); return true; } @@ -259,11 +260,17 @@ IPC::process_command(const synfig::String& command_line) if(command_line.empty()) return false; - char cmd=command_line[0]; + char cmd = command_line[0]; String args(command_line.begin()+1,command_line.end()); - while(!args.empty() && args[0]==' ') args.erase(args.begin()); - while(!args.empty() && args[args.size()-1]=='\n' || args[args.size()-1]==' ') args.erase(args.end()-1); + + // erase leading spaces + while (!args.empty() && args[0] == ' ') + args.erase(args.begin()); + + // erase trailing newlines and spaces + while (!args.empty() && (args[args.size()-1] == '\n' || args[args.size()-1] == ' ')) + args.erase(args.end()-1); switch(toupper(cmd)) {