Do not show "[#channel (500,)]" in a !myaccess list.
authorMichael Poole <mdpoole@troilus.org>
Mon, 31 Oct 2011 03:58:10 +0000 (23:58 -0400)
committerMichael Poole <mdpoole@troilus.org>
Mon, 31 Oct 2011 03:58:10 +0000 (23:58 -0400)
Fixes SourceForge bug #3072634.

src/chanserv.c (cmd_myaccess): Record where the comma was, and remove
    it if nothing was added after it.

src/chanserv.c

index 30e77236f10ec44de351b5717cae9358c7a82b2a..2ba265f1ab6cc778baceed3c9fae8cb4c50a534c 100644 (file)
@@ -3661,6 +3661,7 @@ static CHANSERV_FUNC(cmd_myaccess)
     for(uData = target_handle->channels; uData; uData = uData->u_next)
     {
         struct chanData *cData = uData->channel;
+        unsigned int base_len;
 
         if(uData->access > UL_OWNER)
             continue;
@@ -3669,9 +3670,8 @@ static CHANSERV_FUNC(cmd_myaccess)
            && !GetTrueChannelAccess(cData, user->handle_info))
             continue;
         sbuf.used = 0;
-        string_buffer_append_printf(&sbuf, "[%s (%d", cData->channel->name, uData->access);
-        if(uData->flags != USER_AUTO_OP)
-            string_buffer_append(&sbuf, ',');
+        string_buffer_append_printf(&sbuf, "[%s (%d,", cData->channel->name, uData->access);
+        base_len = sbuf.used;
         if(IsUserSuspended(uData))
             string_buffer_append(&sbuf, 's');
         if(IsUserAutoOp(uData))
@@ -3683,6 +3683,8 @@ static CHANSERV_FUNC(cmd_myaccess)
         }
         if(IsUserAutoInvite(uData) && (uData->access >= cData->lvlOpts[lvlInviteMe]))
             string_buffer_append(&sbuf, 'i');
+        if(sbuf.used==base_len)
+            sbuf.used--;
         if(uData->info)
             string_buffer_append_printf(&sbuf, ")] %s", uData->info);
         else