1/*- 2 * Copyright (c) 1996 3 * Keith Bostic. All rights reserved. 4 * Copyright (c) 1996 5 * Sven Verdoolaege. All rights reserved. 6 * 7 * See the LICENSE file for redistribution information. 8 */ 9 10#include <sys/cdefs.h> 11#if 0 12#ifndef lint 13static const char sccsid[] = "Id: perlsfio.c,v 8.3 2000/04/30 17:00:15 skimo Exp (Berkeley) Date: 2000/04/30 17:00:15 "; 14#endif /* not lint */ 15#else 16__RCSID("$NetBSD$"); 17#endif 18 19#include <sys/types.h> 20#include <sys/queue.h> 21#include <sys/time.h> 22 23#include <bitstring.h> 24#include <ctype.h> 25#include <limits.h> 26#include <signal.h> 27#include <stdio.h> 28#include <stdlib.h> 29#include <string.h> 30#include <termios.h> 31#include <unistd.h> 32 33#include <EXTERN.h> 34#include <perl.h> 35#include <XSUB.h> 36 37/* perl redefines them 38 * avoid warnings 39 */ 40#undef USE_DYNAMIC_LOADING 41#undef DEBUG 42#undef PACKAGE 43#undef ARGS 44#define ARGS ARGS 45 46#include "config.h" 47 48#include "../common/common.h" 49#include "perl_api_extern.h" 50 51/* 52 * PUBLIC: #ifdef USE_SFIO 53 */ 54#ifdef USE_SFIO 55 56#define NIL(type) ((type)0) 57 58static int 59sfnviwrite(f, buf, n, disc) 60Sfio_t* f; /* stream involved */ 61char* buf; /* buffer to read into */ 62int n; /* number of bytes to read */ 63Sfdisc_t* disc; /* discipline */ 64{ 65 SCR *scrp; 66 67 scrp = (SCR *)SvIV((SV*)SvRV(perl_get_sv("curscr", FALSE))); 68 msgq(scrp, M_INFO, "%.*s", n, buf); 69 return n; 70} 71 72/* 73 * sfdcnewnvi -- 74 * Create nvi discipline 75 * 76 * PUBLIC: Sfdisc_t* sfdcnewnvi __P((SCR*)); 77 */ 78 79Sfdisc_t * 80sfdcnewnvi(scrp) 81 SCR *scrp; 82{ 83 Sfdisc_t* disc; 84 85 MALLOC(scrp, disc, Sfdisc_t*, sizeof(Sfdisc_t)); 86 if (!disc) return disc; 87 88 disc->readf = (Sfread_f)NULL; 89 disc->writef = sfnviwrite; 90 disc->seekf = (Sfseek_f)NULL; 91 disc->exceptf = (Sfexcept_f)NULL; 92 return disc; 93} 94 95/* 96 * PUBLIC: #endif 97 */ 98#endif /* USE_SFIO */ 99