| 
									
										
										
										
											2016-08-29 22:49:24 +02:00
										 |  |  | /* vi:set ts=8 sts=4 sw=4 noet:
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * VIM - Vi IMproved	by Bram Moolenaar | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Do ":help uganda"  in Vim to read copying and usage conditions. | 
					
						
							|  |  |  |  * Do ":help credits" in Vim to see a list of people who contributed. | 
					
						
							|  |  |  |  * See README.txt for an overview of the Vim source code. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * if_perlsfio.c: Special I/O functions for Perl interface. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _memory_h	/* avoid memset redeclaration */
 | 
					
						
							|  |  |  | #define IN_PERL_FILE	/* don't include if_perl.pro from prot.h */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "vim.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if defined(USE_SFIO) || defined(PROTO)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef USE_SFIO	/* just generating prototypes */
 | 
					
						
							|  |  |  | # define Sfio_t int
 | 
					
						
							|  |  |  | # define Sfdisc_t int
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define NIL(type)	((type)0)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     static int | 
					
						
							| 
									
										
										
										
											2016-01-30 17:24:07 +01:00
										 |  |  | sfvimwrite( | 
					
						
							|  |  |  |     Sfio_t	    *f,		/* stream involved */ | 
					
						
							|  |  |  |     char	    *buf,	/* buffer to read from */ | 
					
						
							|  |  |  |     int		    n,		/* number of bytes to write */ | 
					
						
							|  |  |  |     Sfdisc_t	    *disc)	/* discipline */ | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     char_u *str; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     str = vim_strnsave((char_u *)buf, n); | 
					
						
							|  |  |  |     if (str == NULL) | 
					
						
							|  |  |  | 	return 0; | 
					
						
							|  |  |  |     msg_split((char *)str); | 
					
						
							|  |  |  |     vim_free(str); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return n; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * sfdcnewnvi -- | 
					
						
							|  |  |  |  *  Create Vim discipline | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  |     Sfdisc_t * | 
					
						
							| 
									
										
										
										
											2016-01-30 17:24:07 +01:00
										 |  |  | sfdcnewvim(void) | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     Sfdisc_t	*disc; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     disc = (Sfdisc_t *)alloc((unsigned)sizeof(Sfdisc_t)); | 
					
						
							|  |  |  |     if (disc == NULL) | 
					
						
							|  |  |  | 	return NULL; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     disc->readf = (Sfread_f)NULL; | 
					
						
							|  |  |  |     disc->writef = sfvimwrite; | 
					
						
							|  |  |  |     disc->seekf = (Sfseek_f)NULL; | 
					
						
							|  |  |  |     disc->exceptf = (Sfexcept_f)NULL; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return disc; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* USE_SFIO */
 |