All pastes #989407 Raw Edit

Miscellany

public text v1 · immutable
#989407 ·published 2008-04-19 09:35 UTC
rendered paste body
Index: CliRunnable.cpp

===================================================================

--- CliRunnable.cpp	(revision 5663)

+++ CliRunnable.cpp	(working copy)

@@ -270,12 +270,14 @@

         return;
 
     int linesize = 1+15+2+20+3+15+2+4+1+5+3;                // see format string
-    char* buf = new char[resultDB->GetRowCount()*linesize+1];
-    char* bufPos = buf;
-
-    ///- Circle through accounts
+	std::string sInfo;
+	sInfo.reserve(resultDB->GetRowCount()*linesize+1);
+	sInfo = "";
+	char szLine[512];
+	///- Circle through accounts
     do
     {
+		szLine[0] = '\0';
         Field *fieldsDB = resultDB->Fetch();
         std::string name = fieldsDB[0].GetCppString();
         uint32 account = fieldsDB[1].GetUInt32();
@@ -288,27 +290,25 @@

         if(resultLogin)
         {
             Field *fieldsLogin = resultLogin->Fetch();
-            bufPos+=sprintf(bufPos,"|%15s| %20s | %15s |%4d|%5d|\r\n",
+            sprintf(szLine,"|%15s| %20s | %15s |%4d|%5d|\r\n",
                 fieldsLogin[0].GetString(),name.c_str(),fieldsLogin[1].GetString(),fieldsLogin[2].GetUInt32(),fieldsLogin[3].GetUInt32());
 
             delete resultLogin;
         }
         else
-            bufPos += sprintf(bufPos,"|<Error>        | %20s |<Error>          |<Er>|<Err>|\r\n",name.c_str());
+            sprintf(szLine, "|<Error>        | %20s |<Error>          |<Er>|<Err>|\r\n",name.c_str());
+		sInfo+=szLine;
 
     }while(resultDB->NextRow());
+    sInfo += "\0";
 
-    *bufPos = '\0';
-
     ///- Display the list of account/characters online
     zprintf("=====================================================================\r\n");
     zprintf("|    Account    |       Character      |       IP        | GM | TBC |\r\n");
     zprintf("=====================================================================\r\n");
-    zprintf("%s",buf);
+    zprintf("%s",sInfo.c_str());
     zprintf("=====================================================================\r\n");
-
     delete resultDB;
-    delete[] buf;
 }
 
 /// Display a list of banned accounts and ip addresses