summary refs log tree commit diff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2022-01-21 21:48:05 -0500
committerJune McEnroe <june@causal.agency>2022-01-21 22:02:56 -0500
commit72ec8e997beac9551685b7939dda34b024a41d29 (patch)
tree1aef5a2dcbd04bc276813a3ae32329c17a33889b /CMakeLists.txt
parentdash: Replace autotools with cmake (diff)
downloaddash-72ec8e997beac9551685b7939dda34b024a41d29.tar.gz
dash-72ec8e997beac9551685b7939dda34b024a41d29.zip
dash: Bind libedit's secret filename completion function
Check if the FreeBSD (and by extension macOS) _el_fn_sh_complete version
of the function exists, which does shell escaping of completed filenames
before _el_fn_complete learned to.

Tab is bound after calling el_set() and el_source() since the default
bindings set tab to something else, and it should always be filename
completion in the shell.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt4
1 files changed, 4 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5385049..9fc4bc8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -140,6 +140,10 @@ if(WITH_LIBEDIT)
 	else()
 		message(SEND_ERROR "Can't find libedit.")
 	endif()
+	set(CMAKE_REQUIRED_LIBRARIES edit)
+	check_symbol_exists(
+		_el_fn_sh_complete "histedit.h" HAVE__EL_FN_SH_COMPLETE
+	)
 else()
 	add_compile_definitions(SMALL)
 endif()