-
- /* alle Member suchen */
- cl2chan = Channel_FirstMember( chan );
- sprintf( str, "NJOIN %s :", Channel_Name( chan ));
- while( cl2chan )
- {
- cl = Channel_GetClient( cl2chan );
- assert( cl != NULL );
-
- /* Nick, ggf. mit Modes, anhaengen */
- if( str[strlen( str ) - 1] != ':' ) strcat( str, "," );
- if( strchr( Channel_UserModes( chan, cl ), 'v' )) strcat( str, "+" );
- if( strchr( Channel_UserModes( chan, cl ), 'o' )) strcat( str, "@" );
- strcat( str, Client_ID( cl ));
-
- if( strlen( str ) > ( LINE_LEN - CLIENT_NICK_LEN - 8 ))
- {
- /* Zeile senden */
- if( ! IRC_WriteStrClient( Client, "%s", str )) return DISCONNECTED;
- sprintf( str, "NJOIN %s :", Channel_Name( chan ));
- }
-
- cl2chan = Channel_NextMember( chan, cl2chan );
- }
-
- /* noch Daten da? */
- if( str[strlen( str ) - 1] != ':')
- {
- /* Ja; Also senden ... */
- if( ! IRC_WriteStrClient( Client, "%s", str )) return DISCONNECTED;
- }
-
- /* naechsten Channel suchen */
- chan = Channel_Next( chan );