aboutsummaryrefslogtreecommitdiff
path: root/sys/libc/freadline.c
diff options
context:
space:
mode:
authorJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
committerJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
commit40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch)
tree4464880c571602d54f6ae114729bf62a89518057 /sys/libc/freadline.c
downloadiraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'sys/libc/freadline.c')
-rw-r--r--sys/libc/freadline.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/sys/libc/freadline.c b/sys/libc/freadline.c
new file mode 100644
index 00000000..b335ee20
--- /dev/null
+++ b/sys/libc/freadline.c
@@ -0,0 +1,34 @@
+/* Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
+*/
+
+#define import_spp
+#define import_libc
+#define import_stdio
+#include <iraf.h>
+
+
+/* FREADLINE -- Get a line from a user with editing. This is a libc
+ * interface to the host readline() interface. The host readline()
+ * returns a buffer allocated which we free here, what's returned to
+ * the caller is a static buffer containing the input string.
+ */
+char *
+freadline (
+ char *prompt /* user supplied output buffer */
+)
+{
+ char *cmd = (char *) NULL;
+ static char line[SZ_LINE];
+ char *readline (char *prompt);
+
+
+ memset (line, 0, SZ_LINE);
+ if ((cmd = readline (prompt)) == (char *) NULL) {
+ return ((char *) NULL);
+ } else {
+ strcpy (line, cmd); /* save to static buffer */
+ zfree_ ((void *) cmd); /* free readline() buffer */
+ }
+
+ return ((char *) line);
+}