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