196 lines
4.3 KiB
C++
196 lines
4.3 KiB
C++
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <ctype.h>
|
|
#include <tswin.hpp>
|
|
#include "proboard.hpp"
|
|
|
|
|
|
|
|
void usereditor( char * )
|
|
{
|
|
User rec;
|
|
int cur_user;
|
|
char *loglevels[] = {
|
|
"Friend",
|
|
"Normal",
|
|
"Suspicious",
|
|
"Dangerous" };
|
|
|
|
|
|
for ( cur_user = num_users ; ; )
|
|
{
|
|
rec.read(cur_user-1);
|
|
|
|
io << form( "\f\n\6User record \1%d",
|
|
cur_user );
|
|
|
|
|
|
if ( rec.uFlags & UFLAG_DELETED )
|
|
{
|
|
io << "\7 [DELETED]";
|
|
}
|
|
|
|
|
|
if ( rec.uFlags & UFLAG_NOKILL )
|
|
{
|
|
io << "\7 [NOKILL]";
|
|
}
|
|
|
|
|
|
io << "\n\n";
|
|
|
|
io << form( "\6UserName : \3%s\n\n"
|
|
"\6City : \3%s\n"
|
|
"\6Password : \3%s\n\n",
|
|
rec.name,
|
|
rec.city,
|
|
rec.passWord );
|
|
|
|
io << form( "\6Level : \3%-5u "
|
|
"\6Loglevel : \3%s\n\n"
|
|
"\6# Calls : \3%-5ld "
|
|
"\6Last Call: \3%02d-%s-%04d at %02d:%02d:%02d\n",
|
|
rec.level,
|
|
loglevels[ rec.logLevel ],
|
|
rec.timesCalled,
|
|
rec.lastDate[ 0 ],
|
|
months_short[ rec.lastDate[ 1 ] ],
|
|
rec.lastDate[ 2 ] + 1900,
|
|
rec.lastTime[ 0 ],
|
|
rec.lastTime[ 1 ],
|
|
rec.lastTime[ 2 ] );
|
|
|
|
io << "\n\n\6<\3+/-\6> <\3F\6>irst <\3L\6>ast Le<\3v\6>el <\3Q\6>uit <\3S\6>earch <\3D\6>elete <\3N\6>oKill ";
|
|
|
|
|
|
char k = io.wait( "S+-FLVQDN\r" );
|
|
|
|
|
|
switch ( k )
|
|
{
|
|
case 'Q':
|
|
|
|
return;
|
|
|
|
|
|
case 'D':
|
|
|
|
rec.uFlags ^= UFLAG_DELETED;
|
|
|
|
rec.write( FALSE );
|
|
|
|
break;
|
|
|
|
|
|
case 'N':
|
|
|
|
rec.uFlags ^= UFLAG_NOKILL;
|
|
|
|
rec.write( FALSE );
|
|
|
|
break;
|
|
|
|
|
|
case '+':
|
|
|
|
if ( cur_user < num_users )
|
|
{
|
|
cur_user++;
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
case '-':
|
|
|
|
if ( cur_user > 1 )
|
|
{
|
|
cur_user--;
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
case 'F':
|
|
|
|
cur_user = 1;
|
|
|
|
break;
|
|
|
|
|
|
case 'L':
|
|
|
|
cur_user = num_users;
|
|
|
|
break;
|
|
|
|
|
|
case 'V':
|
|
|
|
io << "\n\nNew level: \3";
|
|
|
|
io.read( int( rec.level ) );
|
|
|
|
rec.write( FALSE );
|
|
|
|
break;
|
|
|
|
|
|
case 'S':
|
|
{
|
|
char s[ 36 ];
|
|
int i;
|
|
|
|
|
|
io << "\n\nSearch for string: \3";
|
|
|
|
io.read( s,
|
|
36,
|
|
READMODE_UPFIRST );
|
|
|
|
if ( ! s[ 0 ] )
|
|
{
|
|
break;
|
|
}
|
|
|
|
|
|
io << "\7\n\nSearching...";
|
|
|
|
|
|
for ( i = 0; i < num_users; i++ )
|
|
{
|
|
rec.read( i );
|
|
|
|
|
|
if ( strstrl( rec.name, s ) )
|
|
{
|
|
cur_user = i + 1;
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
if ( i == num_users )
|
|
{
|
|
cur_user = 1;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void edit_user()
|
|
{
|
|
user.write( FALSE );
|
|
|
|
shell( String( form( "*Q*N*SPROCFG.EXE UE %d",
|
|
user_recnr + 1 ) ) );
|
|
|
|
user.read( user_recnr );
|
|
}
|
|
|