ftp.nice.ch/pub/next/unix/calendars/remind.3.0.13.N.bs.tar.gz#/remind-3.0.13/os2func.c

This is os2func.c in view mode; [Download] [Up]

/***************************************************************/
/*                                                             */
/*  OS2FUNC.C                                                  */
/*                                                             */
/*  Functions to support OS/2.                                 */
/*                                                             */
/*  This file is part of REMIND.                               */
/*                                                             */
/*  This file is Copyright (C) 1993 by Russ Herman.            */
/*  REMIND is Copyright (C) 1993, 1994 by David F. Skoll       */
/*                                                             */
/***************************************************************/
#ifdef OS2_POPUP
#define INCL_VIO
#define INCL_KBD
#endif

#ifdef _MSC_VER
#define INCL_DOSPROCESS
#endif

#if defined(OS2_POPUP) || defined(_MSC_VER)
#include <os2.h>
#endif

#ifdef OS2_POPUP
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef OS2DBG
#include <dos.h>
#include <stdlib.h>
#endif
#include "config.h"
#include "globals.h"

/* EMX defines PS_TYPE, so we undefine it here to avoid
   a redefinition warning when we include "types.h" */
#ifdef PS_TYPE
#undef PS_TYPE
#endif

#include "types.h"
#include "protos.h"

#ifdef _MSC_VER
typedef USHORT APIRET;
#endif

static APIRET apiret = 0;
static KBDKEYINFO kbci;
static char *pszPressAny = "\r\nPress any key to continue";
static USHORT pflags = VP_WAIT;  /* | VP_TRANSPARENT; */
static HKBD hkbd = 0;
static char VioSubstBuffer[SHELLSIZE + 1];

void StartPopUp()
{
  if (OS2MODE)
    if (!(DebugFlag & DB_ECHO_LINE))
       VioPopUp(&pflags, 0);
}

void EndPopUp()
{
    if (DebugFlag & DB_ECHO_LINE)
	return;
    if (OS2MODE) {
      VioWrtTTY(pszPressAny, strlen(pszPressAny), 0);
      KbdCharIn(&kbci, IO_WAIT, hkbd);
      VioEndPopUp(0);
    }
}

int PutsPopUp(char *s)
{
    char c, *os = VioSubstBuffer;

    if (DebugFlag & DB_ECHO_LINE)
	printf("%s", s);
    else {
	do {
	    /* Convert \n to \r\n in auxiliary buffer for VIO */
	    if ((c= *s++) == '\n')
		*os++ = '\r';
	    *os++ = c;
	} while (c > 0);
	VioWrtTTY(VioSubstBuffer, strlen(VioSubstBuffer), 0);
    }
    return(0);
}

int PutlPopUp(char *s)
{
    StartPopUp();
    PutsPopUp(s);
    if (DebugFlag & DB_ECHO_LINE)
	fputc('\n', stdout);
    else
	VioWrtTTY("\r\n", 2, 0);
    EndPopUp();
    return(0);
}


int PutcPopUp(int c)
{
    char *s = " ";

    if (DebugFlag & DB_ECHO_LINE)
	fputc(c, stdout);
    else {
	switch (c) {
	case '\n':
	    VioWrtTTY("\r\n", 2, 0);
	    break;
	default:
	    s[0] = c;
	    VioWrtTTY(s, 1, 0);
	    break;
	}
    }
    return(0);
}

#ifdef OS2DBG
#define DB_ECHO_LINE 16
int DebugFlag = 0;
void main(/* int argc, char **argv */)
{
    int ret;

    ret = os2fputs("Test VIO PopUp Writing");
    if (ret)
	fprintf(stderr, "Test VIO PopUP Writing returned %d %ld",
		ret, apiret);
    exit(ret);
}
#endif
#endif

#ifdef _MSC_VER
unsigned sleep(unsigned sec)
{
  return DosSleep(sec * 1000L);
}
#endif

#ifndef __EMX__ 
int fork()
{
    return(-1);
}
#endif

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.