]> jfr.im git - irc/gunnarbeutner/shroudbnc.git/commitdiff
Strip new-line chars from Windows error messages when using them for QUIT.
authorGunnar Beutner <redacted>
Fri, 15 Jul 2011 15:53:35 +0000 (17:53 +0200)
committerGunnar Beutner <redacted>
Fri, 15 Jul 2011 15:53:35 +0000 (17:53 +0200)
src/ClientConnection.cpp
src/IRCConnection.cpp
src/utility.cpp
src/utility.h

index cfce38cec82586c8121c70aab6369efe308d944b..8958948a3dbfb5b094d6e12d0e0690f5caf00f84 100644 (file)
@@ -2539,6 +2539,9 @@ void CClientConnection::SetQuitReason(const char *Reason) {
        if (Reason != NULL) {
                m_QuitReason = strdup(Reason);
 
+               StrTrim(m_QuitReason, '\r');
+               StrTrim(m_QuitReason, '\n');
+
                if (AllocFailed(m_QuitReason)) {
                        return;
                }
index 897da8c98d6ea1abb5ddbc21bd6b8b4ecfd5f566..0b94e3e4d0cda5147b03ea865457630519b38a94 100644 (file)
@@ -678,7 +678,7 @@ bool CIRCConnection::ParseLineArgV(int argc, const char **argv) {
                                        return false;
                                }
 
-                               StrTrim(Nick);
+                               StrTrim(Nick, ' ');
 
                                while (IsNickPrefix(*Nick)) {
                                        Nick++;
index 0ff0215c398066b959d2b159dcf0e292d79e71dd..5bbc1fe5b3d53cecf23be98eb7920738a9ce2cc8 100644 (file)
@@ -903,17 +903,17 @@ int CompareAddress(const sockaddr *pA, const sockaddr *pB) {
 /**
  * StrTrim
  *
- * Removes leading and trailing spaces from a string.
+ * Removes the specified char from the start and end of the string.
  *
  * @param String the string
  */
-void StrTrim(char *String) {
+void StrTrim(char *String, char Character) {
        size_t Length = strlen(String);
        size_t Offset = 0, i;
 
-       // remove leading spaces
+       // remove leading chars
        for (i = 0; i < Length; i++) {
-               if (String[i] == ' ') {
+               if (String[i] == Character) {
                        Offset++;
                } else {
                        break;
@@ -926,8 +926,8 @@ void StrTrim(char *String) {
                }
        }
 
-       // remove trailing spaces
-       while (String[strlen(String) - 1] == ' ') {
+       // remove trailing chars
+       while (String[strlen(String) - 1] == Character) {
                String[strlen(String) - 1] = '\0';
        }
 }
index 22390b5625ae2f83de5005630efe712912e514f8..e4bd59cc544f52a8cb536b37832898a59ea4c44c 100644 (file)
@@ -89,7 +89,7 @@ SBNCAPI int CmpCommandT(const void *pA, const void *pB);
 extern const char *g_ErrorFile;
 extern unsigned int g_ErrorLine;
 
-void StrTrim(char *String);
+void StrTrim(char *String, char Character);
 
 char *strmcpy(char *Destination, const char *Source, size_t Size);
 char *strmcat(char *Destination, const char *Source, size_t Size);