Changeset 24b8bbb for root_commands.c


Ignore:
Timestamp:
2010-04-12T00:06:49Z (9 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
89c11e7
Parents:
e21c0f8
Message:

Start handling CTCPs, in a saner way than before.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • root_commands.c

    re21c0f8 r24b8bbb  
    3434void root_command_string( irc_t *irc, char *command )
    3535{
    36         char *cmd[IRC_MAX_ARGS];
    37         char *s;
    38         int k;
    39         char q = 0;
    40        
    41         memset( cmd, 0, sizeof( cmd ) );
    42         cmd[0] = command;
    43         k = 1;
    44         for( s = command; *s && k < ( IRC_MAX_ARGS - 1 ); s ++ )
    45                 if( *s == ' ' && !q )
    46                 {
    47                         *s = 0;
    48                         while( *++s == ' ' );
    49                         if( *s == '"' || *s == '\'' )
    50                         {
    51                                 q = *s;
    52                                 s ++;
    53                         }
    54                         if( *s )
    55                         {
    56                                 cmd[k++] = s;
    57                                 s --;
    58                         }
    59                         else
    60                         {
    61                                 break;
    62                         }
    63                 }
    64                 else if( *s == '\\' && ( ( !q && s[1] ) || ( q && q == s[1] ) ) )
    65                 {
    66                         char *cpy;
    67                        
    68                         for( cpy = s; *cpy; cpy ++ )
    69                                 cpy[0] = cpy[1];
    70                 }
    71                 else if( *s == q )
    72                 {
    73                         q = *s = 0;
    74                 }
    75         cmd[k] = NULL;
    76        
    77         root_command( irc, cmd );
     36        root_command( irc, split_command_parts( command ) );
    7837}
    7938
Note: See TracChangeset for help on using the changeset viewer.