#include "SysUser.h"

#include <link/io.h>
#include <link/user.h>

int Print_User(char *name)
{
   char string[80];

   ASPrintf(NULL,data2[0].data,SA[2118],User.Alias);
   ASPrintf(NULL,data2[1].data,SA[2119],User.Address);
   Get_Computer_Type(User.Computer_Type,data2[2].data);

   ASPrintf(NULL,data2[3].data,SA[2120],User.City);
   ASPrintf(NULL,data2[4].data,SA[2121],User.Password);
   ASPrintf(NULL,data2[5].data,SA[2122],User.Prov);
   SMDate(User.DateJoined,string);

   ASPrintf(NULL,data2[6].data,SA[2123],string);
   ASPrintf(NULL,data2[7].data,SA[2124],User.Country);
   ASPrintf(NULL,data2[8].data,SA[2125],User.Last_Login);
   ASPrintf(NULL,data2[9].data,SA[2126],User.postal);
   ASPrintf(NULL,data2[10].data,SA[2127],User.Birth_Day,User.Birth_Month,User.Birth_Year);
   ASPrintf(NULL,data2[11].data,SA[2128],User.Phone);

   switch(User.Help_Level)
   {
      case 0:
               ASPrintf(NULL,data3[0].data,SA[2129],SA[2130]);
               break;

      case 1:
               ASPrintf(NULL,data3[0].data,SA[2129],SA[2131]);
               break;

      case 2:
               ASPrintf(NULL,data3[0].data,SA[2129],SA[2132]);
               break;
   }

   ASPrintf(NULL,data3[1].data,SA[2133],User.User_Level);
   ASPrintf(NULL,data3[2].data,SA[2134],User.Screen_Len);
   ASPrintf(NULL,data3[3].data,SA[2135],(User.More_Flag) ? SA[2136]:SA[2137]);
   ASPrintf(NULL,data3[4].data,SA[2138],User.Daily_Limit);
   ASPrintf(NULL,data3[5].data,SA[2139],User.Screen_Width);
   ASPrintf(NULL,data3[6].data,SA[2140],(User.Ansi_Flag&ANSI_COLOR)?'C':'-',
                                        (User.Ansi_Flag&ANSI_POS)?'P':'-',
                                        (User.Ansi_Flag&ANSI_CLR)?'S':'-',
                                        (User.Ansi_Flag&ANSI_SCROLL)?'T':'-');
 
   ASPrintf(NULL,data3[7].data,SA[2141],User.Session_Limit);
   ASPrintf(NULL,data3[8].data,SA[2142],User.Messages_Read);
   ASPrintf(NULL,data3[9].data,SA[2143],(User.Hot_Keys)?SA[2144]:SA[2145]);
   ASPrintf(NULL,data3[10].data,SA[2146],User.Daily_Used);
   ASPrintf(NULL,data3[11].data,SA[2147],User.Files_Uploaded);
   ASPrintf(NULL,data3[12].data,SA[2148],(User.Lex_Flag)?SA[2149]:SA[2150]);
   ASPrintf(NULL,data3[13].data,SA[2151],User.Total_Calls);
   ASPrintf(NULL,data3[14].data,SA[2152],(unsigned long)User.Bytes_Uploaded/1024L);
   ASPrintf(NULL,data3[15].data,SA[2153],(User.Pop_Screen)?SA[2154]:SA[2155]);
   ASPrintf(NULL,data3[16].data,SA[2156],User.DirLimit);
   ASPrintf(NULL,data3[17].data,SA[2157],User.Files_Downloaded);

   if (User.UUCP==2)
   {
      ASPrintf(NULL,data3[18].data,SA[2158],SA[2159]);
   }
   else
   {
      ASPrintf(NULL,data3[18].data,SA[2160],(User.UUCP)?SA[2161]:SA[2162]);
   }

   ASPrintf(NULL,data3[19].data,SA[2163],User.Messages_Entered);
   ASPrintf(NULL,data3[20].data,SA[2164],User.Bytes_Downloaded/1024L);
   ASPrintf(NULL,data3[21].data,SA[2165],User.Online_Time);
   ASPrintf(NULL,data3[22].data,SA[2166],User.Last_Area);
   ASPrintf(NULL,data3[23].data,SA[2167],User.Sysop_Pages);
   ASPrintf(NULL,data3[24].data,SA[2168],(User.Bulletin_Access)?SA[2169]:SA[2170]);
   ASPrintf(NULL,data3[25].data,SA[2171],User.Last_File_Area);

   if (User.Ratio>0)
   {
      ASPrintf(NULL,data3[26].data,SA[2172],User.Ratio);
   }
   else
   {
      ASPrintf(NULL,data3[26].data,SA[2173]);
   }

   ASPrintf(NULL,data3[27].data,SA[2174],User.credit);
   ASPrintf(NULL,data3[28].data,SA[2175],(User.send!='\0') ? User.send : '-',(User.receive!='\0') ? User.receive : '-');

   if (!User.captureflags)
   {
      ASPrintf(NULL,data3[29].data,SA[2176]);
   }
   else
   {
      ASPrintf(NULL,data3[29].data,SA[2177],(User.captureflags&2)?'A':'-',(User.captureflags&4)?'M':'-');
   }

   ASPrintf(NULL,data3[30].data,SA[2178],User.Editor);
   ASPrintf(NULL,data3[31].data,SA[2179],(User.NetMail&1)?SA[2180]:SA[2181],(User.NetMail&2)?SA[2182]:SA[2183]);
 
   ASPrintf(NULL,data3[35].data,SA[2184],User.archiver);
   ASPrintf(NULL,data3[36].data,SA[2185],User.menuset);
   ASPrintf(NULL,data3[37].data,SA[2186],User.charset);

   if (!Show_User(name,(struct twocoldata *)&data2,12,(struct threecoldata *)&data3,38))
   {
      AFPrintf(&UserDat,sout,SA[2187], User.stack);
      AFPrintf(&UserDat,sout,SA[2188]);
      AFPrintf(&UserDat,sout,SA[2189]);
      AFPrintf(NULL,sout,"\n");
      return(0);
   }

   return(-1);
}

