+GLOBAL CHAR *
+Lists_MakeMask( CHAR *Pattern )
+{
+ /* Hier wird aus einem "beliebigen" Pattern eine gueltige IRC-Mask erzeugt.
+ * Diese ist aber nur bis zum naechsten Aufruf von Lists_MakeMask() gueltig,
+ * da ein einziger globaler Puffer verwendet wird. ->Umkopieren!*/
+
+ STATIC CHAR TheMask[MASK_LEN];
+ CHAR *excl, *at;
+
+ assert( Pattern != NULL );
+
+ excl = strchr( Pattern, '!' );
+ at = strchr( Pattern, '@' );
+
+ if(( at ) && ( at < excl )) excl = NULL;
+
+ if(( ! at ) && ( ! excl ))
+ {
+ /* weder ! noch @ vorhanden: als Nick annehmen */
+ strlcpy( TheMask, Pattern, sizeof( TheMask ) - 5 );
+ strlcat( TheMask, "!*@*", sizeof( TheMask ));
+ return TheMask;
+ }
+
+ if(( ! at ) && ( excl ))
+ {
+ /* Domain fehlt */
+ strlcpy( TheMask, Pattern, sizeof( TheMask ) - 3 );
+ strlcat( TheMask, "@*", sizeof( TheMask ));
+ return TheMask;
+ }
+
+ if(( at ) && ( ! excl ))
+ {
+ /* User fehlt */
+ *at = '\0'; at++;
+ strlcpy( TheMask, Pattern, sizeof( TheMask ) - strlen( at ) - 4 );
+ strlcat( TheMask, "!*@", sizeof( TheMask ));
+ strlcat( TheMask, at, sizeof( TheMask ));
+ return TheMask;
+ }
+
+ /* alle Teile vorhanden */
+ strlcpy( TheMask, Pattern, sizeof( TheMask ));
+ return TheMask;
+} /* Lists_MakeMask */
+
+