File: editline.h

package info (click to toggle)
speech-tools 1:2.5.0-5
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 9,848 kB
  • sloc: cpp: 67,350; ansic: 12,175; sh: 4,047; java: 3,748; makefile: 1,109; lisp: 711; perl: 501; awk: 85; xml: 9
file content (164 lines) | stat: -rw-r--r-- 6,214 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
/****************************************************************************/
/*                                                                          */
/* Copyright 1992 Simmule Turner and Rich Salz.  All rights reserved.       */
/*                                                                          */
/* This software is not subject to any license of the American Telephone    */
/* and Telegraph Company or of the Regents of the University of California. */
/*                                                                          */
/* Permission is granted to anyone to use this software for any purpose on  */
/* any computer system, and to alter it and redistribute it freely, subject */
/* to the following restrictions:                                           */
/* 1. The authors are not responsible for the consequences of use of this   */
/*    software, no matter how awful, even if they arise from flaws in it.   */
/* 2. The origin of this software must not be misrepresented, either by     */
/*    explicit claim or by omission.  Since few users ever read sources,    */
/*    credits must appear in the documentation.                             */
/* 3. Altered versions must be plainly marked as such, and must not be      */
/*    misrepresented as being the original software.  Since few users       */
/*    ever read sources, credits must appear in the documentation.          */
/* 4. This notice may not be removed or altered.                            */
/*                                                                          */
/****************************************************************************/
/*                                                                          */
/*  This is a line-editing library, it can be linked into almost any        */
/*  program to provide command-line editing and recall.                     */
/*                                                                          */
/*  Posted to comp.sources.misc Sun, 2 Aug 1992 03:05:27 GMT                */
/*      by rsalz@osf.org (Rich $alz)                                        */
/*                                                                          */
/****************************************************************************/
/*                                                                          */
/*  The version contained here has some modifications by awb@cstr.ed.ac.uk  */
/*  (Alan W Black) in order to integrate it with the Edinburgh Speech Tools */
/*  library and Scheme-in-one-defun in particular.  All modifications to    */
/*  to this work are continued with the same copyright above.  That is      */
/*  this version of editline does not have the the "no commercial use"      */
/*  restriction that some of the rest of the EST library may have           */
/*  awb Dec 30 1998                                                         */
/*                                                                          */
/****************************************************************************/
/*  $Revision: 1.2 $
**
**  Internal header file for editline library.
**
*/

/* Explicit configuration for Unix environment which will effectively be */
/* set up by the Speech Tools configuration by this point  -- awb */
#define ANSI_ARROWS
#define HAVE_TCGETATTR
#define HAVE_STDLIB
#define HIDE
#define USE_DIRENT
#define SYS_UNIX
/* will all work without this except long lines */
#define USE_TERMCAP

/*
**  Command status codes (moved from editline.h).
*/
typedef enum _STATUS {
    CSdone, CSeof, CSmove, CSdispatch, CSstay
} STATUS;

typedef STATUS (*Keymap_Function)();


#include <stdio.h>
#if	defined(HAVE_STDLIB)
#include <stdlib.h>
#include <string.h>
#endif	/* defined(HAVE_STDLIB) */
#if	defined(SYS_UNIX)
#include "el_unix.h"
#endif	/* defined(SYS_UNIX) */
#if	defined(SYS_OS9)
#include "os9.h"
#endif	/* defined(SYS_OS9) */

#if	!defined(ESIZE_T)
#define ESIZE_T	unsigned int
#endif	/* !defined(ESIZE_T) */

typedef unsigned char	ECHAR;

#if	defined(HIDE)
#define STATIC	static
#else
#define STATIC	/* NULL */
#endif	/* !defined(HIDE) */

#if	!defined(CONST)
#if	defined(__STDC__)
#define CONST	const
#else
#define CONST
#endif	/* defined(__STDC__) */
#endif	/* !defined(CONST) */


#define MEM_INC		64
#define SCREEN_INC	256

#if 0
#define DISPOSE(p)	free((char *)(p))
#define NEW(T, c)	\
	((T *)malloc((unsigned int)(sizeof (T) * (c))))
#define RENEW(p, T, c)	\
	(p = (T *)realloc((char *)(p), (unsigned int)(sizeof (T) * (c))))
#define STRDUP(X) strdup(X)
#endif
#define COPYFROMTO(new, p, len)	\
	(void)memcpy((char *)(new), (char *)(p), (int)(len))
/* CSTR EST replacements -- awb */
#include "EST_walloc.h"
#define DISPOSE(p) wfree(p)
#define NEW(T,c) walloc(T,c)
#define RENEW(p,T,c) (p = wrealloc(p,T,c))
#define STRDUP(X) wstrdup(X)

/*
**  Variables and routines internal to this package.
*/
extern int	rl_eof;
extern int	rl_erase;
extern int	rl_intr;
extern int	rl_kill;
extern int	rl_quit;
extern int	el_user_intr;  /* with SIGINT if non-zero */
extern int      el_no_echo;    /* e.g under emacs, don't echo except prompt */
extern char	*rl_complete(char *pathname, int *unique);
extern int	rl_list_possib(char *pathname,char ***avp);
extern char *editline_history_file;
void rl_ttyset(int Reset);
void rl_add_slash(char *path,char *p);
int el_is_directory(char *path);
void do_user_intr();

#if	!defined(HAVE_STDLIB)
extern char	*getenv();
extern char	*malloc();
extern char	*realloc();
extern char	*memcpy();
extern char	*strcat();
extern char	*strchr();
extern char	*strrchr();
extern char	*strcpy();
extern char	*strdup();
extern int	strcmp();
extern int	strlen();
extern int	strncmp();

#endif	/* !defined(HAVE_STDLIB) */

/* Added prototypes for available functions in editline -- awb */
char * readline(CONST char* prompt);
void add_history(char *p);
void read_history(const char *history_file);
void write_history(const char *history_file);
typedef char **EL_USER_COMPLETION_FUNCTION_TYPE(char *text,int start, int end);
extern EL_USER_COMPLETION_FUNCTION_TYPE*el_user_completion_function;
char *el_current_sym();
void el_redisplay();
void el_bind_key_in_metamap(char c, Keymap_Function func);