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