view pwplib/win32con.c @ 30:72d1c04c788b

Return a meaningless value.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 24 May 2010 00:20:21 +0300
parents acb5694e93d9
children 5d819ba6891c
line wrap: on
line source

#include "config.h"

#ifdef DRIVE_WIN32

#include "pwplib.h"

#include <windows.h>

/******************** vcsa code ********************/

struct{
   HANDLE hstdout;
   COORD  size;

   CHAR_INFO*buf;
}pwp_win32;

/********************************************************/

void pwpwrite(char*z)
{
/*   fprintf(stderr,"%s\n",z); */
}

void win32con_dump_attr()
{
   u8*s=pwplib_buf;
   CHAR_INFO*d=pwp_win32.buf;
   int i=80*50;

   for(;i;i--)
   {
      d->Char.AsciiChar=*s++;
      d->Attributes=*s++;
      d++;
   }

   {
      const COORD bufsize = {80,50};
      const COORD bufcoord = {0,0};
      const SMALL_RECT writerect = { 0,0,79,49 };

      WriteConsoleOutput(pwp_win32.hstdout,pwp_win32.buf,
                         bufsize,bufcoord,&writerect);
   }
}

int win32con_probe()
{
   if(GetStdHandle(STD_OUTPUT_HANDLE) != INVALID_HANDLE_VALUE)
      return 1; else return 0;
}

int win32con_init()
{
   AllocConsole();

   pwp_win32.hstdout = GetStdHandle(STD_OUTPUT_HANDLE);

   { int ret=-1;
     const COORD sz = {80,50};
     const SMALL_RECT area = { 0,0,79,49 };

     ret &= SetConsoleScreenBufferSize(pwp_win32.hstdout,sz);
     ret &= SetConsoleWindowInfo(pwp_win32.hstdout,1,&area);

     if(!ret)
     {
        FreeConsole();
        AllocConsole();

        pwp_win32.hstdout = CreateConsoleScreenBuffer(
            GENERIC_WRITE, FILE_SHARE_WRITE, NULL,
            CONSOLE_TEXTMODE_BUFFER, NULL);

        SetConsoleActiveScreenBuffer(pwp_win32.hstdout);
        SetConsoleScreenBufferSize(pwp_win32.hstdout,sz);
        SetConsoleWindowInfo(pwp_win32.hstdout,1,&area);
     }

     SetConsoleTitle("pwp");
   }

     pwp_win32.buf=malloc(sizeof(CHAR_INFO)*80*50);

     pwplib.videobuf.width  = 80;
     pwplib.videobuf.height = 100;

     pwplib.dump_attr=win32con_dump_attr;

     conv_init(2,0,0);

//   {int i=0;for(;i<20;i++)pwplib.setup[i]=0;}
/*
     tty_init();
     pwplib.setup[SETUP_TRANS] =
     pwplib.setup[SETUP_COLORS] =
     pwplib.setup[SETUP_RASTER] = -1;
     pwplib.setup[SETUP_HALVE]=1;
     conv_init(2,0,0);
*/
     pwplib.dump_attr=win32con_dump_attr;
     
     return 1;
}

#endif