Modify /scan family of commands. Now shows halfops, /scans for shitlist

works, and a few other changes.  Some things might look a bit hinky,
more work needed.


git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@44 13b04d17-f746-0410-82c6-800466cd88b0
This commit is contained in:
Kevin Easton
2008-05-08 14:35:15 +00:00
parent 0ce64de737
commit 0d11b0afbe

View File

@@ -1377,14 +1377,16 @@ int cols = get_int_var(NAMES_COLUMNS_VAR);
{
if (voice && nick_isvoice(nick))
count++;
else if (ops && nick_isop(nick))
else if (ops && (nick_isop(nick) || nick_ishalfop(nick)))
count++;
else if (nops && !nick_isop(nick))
else if (nops && !nick_isop(nick) && !nick_ishalfop(nick))
count++;
else if (ircops && nick_isircop(nick))
count++;
else if (friends && nick->userlist)
count++;
else if (shit && nick->shitlist)
count++;
else if (all)
count++;
}
@@ -1411,6 +1413,9 @@ int cols = get_int_var(NAMES_COLUMNS_VAR);
count = 0;
for (nick = snick; nick; nick = nick->next)
{
char *nick_format;
char nick_sym;
if (match_host)
{
int len = strlen(nick->nick)+strlen(nick->host)+4;
@@ -1420,24 +1425,45 @@ int cols = get_int_var(NAMES_COLUMNS_VAR);
if (!wild_match(match_host, t))
continue;
}
if (all && (nick_isop(nick) || nick_isvoice(nick)))
malloc_strcat(&buffer, convert_output_format(fget_string_var(nick_isop(nick)?FORMAT_NAMES_OPCOLOR_FSET:FORMAT_NAMES_VOICECOLOR_FSET),"%c %s",nick_isop(nick)?'@':'+', nick->nick));
else if (all)
malloc_strcat(&buffer, convert_output_format(fget_string_var(FORMAT_NAMES_NICKCOLOR_FSET),"%c %s",'$', nick->nick));
else if (voice && nick_isvoice(nick))
malloc_strcat(&buffer, convert_output_format(fget_string_var(FORMAT_NAMES_VOICECOLOR_FSET),"%c %s",'+', nick->nick));
else if (ops && nick_isop(nick))
malloc_strcat(&buffer, convert_output_format(fget_string_var(FORMAT_NAMES_OPCOLOR_FSET),"%c %s",'@', nick->nick));
else if (friends && nick->userlist)
malloc_strcat(&buffer, convert_output_format(nick_isop(nick)?fget_string_var(FORMAT_NAMES_FRIENDCOLOR_FSET):fget_string_var(FORMAT_NAMES_NICKCOLOR_FSET),"%c %s",nick_isop(nick)?'@':'<EFBFBD>', nick->nick));
else if (nops && !nick_isop(nick))
malloc_strcat(&buffer, convert_output_format(fget_string_var(FORMAT_NAMES_NICKCOLOR_FSET),"%c %s",'$', nick->nick));
else if (ircops && nick_isircop(nick))
malloc_strcat(&buffer, convert_output_format(fget_string_var(FORMAT_NAMES_OPCOLOR_FSET),"%c %s",'*', nick->nick));
else if (shit && nick->shitlist)
malloc_strcat(&buffer, convert_output_format(fget_string_var(FORMAT_NAMES_SHITCOLOR_FSET),"%c %s",'*', nick->nick));
else
continue;
/* Determine if the nick should be shown. */
if ( (voice && !nick_isvoice(nick))
|| (ops && !nick_isop(nick) && !nick_ishalfop(nick))
|| (nops && (nick_isop(nick) || nick_ishalfop(nick)))
|| (ircops && !nick_isircop(nick))
|| (friends && !nick->userlist)
|| (shit && !nick->shitlist))
continue;
/* Determine the format string to use */
if (nick->userlist)
nick_format = fget_string_var(FORMAT_NAMES_FRIENDCOLOR_FSET);
else if (nick->shitlist)
nick_format = fget_string_var(FORMAT_NAMES_SHITCOLOR_FSET);
else if (nick_isop(nick) || nick_ishalfop(nick))
nick_format = fget_string_var(FORMAT_NAMES_OPCOLOR_FSET);
else if (nick_isvoice(nick))
nick_format = fget_string_var(FORMAT_NAMES_VOICECOLOR_FSET);
else if (nick_isircop(nick))
nick_format = fget_string_var(FORMAT_NAMES_OPCOLOR_FSET);
else
nick_format = fget_string_var(FORMAT_NAMES_NICKCOLOR_FSET);
/* Determine the special symbol, if any, to use. */
if (nick_isop(nick))
nick_sym = '@';
else if (nick_ishalfop(nick))
nick_sym = '%';
else if (nick_isvoice(nick))
nick_sym = '+';
else if (nick_isircop(nick))
nick_sym = '*';
else
nick_sym = '.';
malloc_strcat(&buffer,
convert_output_format(nick_format, "%c %s", nick_sym,
nick->nick));
malloc_strcat(&buffer, space);
if (count++ >= (cols - 1))
{