summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Completion/Base/_value31
1 files changed, 31 insertions, 0 deletions
diff --git a/Completion/Base/_value b/Completion/Base/_value
new file mode 100644
index 000000000..e29c90e79
--- /dev/null
+++ b/Completion/Base/_value
@@ -0,0 +1,31 @@
+#compdef -value-
+
+_value () {
+  #_view_completion_parameters
+  if (( $+functions[_value:$compstate[parameter]] )); then
+    "_value:$compstate[parameter]" "$@"
+  else
+    _default
+  fi
+}
+
+_value:CPPFLAGS () {
+  compset -q
+  if compset -P '-I'; then
+    _files -/ "$@"
+  else
+    _default "$@"
+  fi
+}
+
+_value:LDFLAGS () {
+  compset -q
+  if compset -P '-L'; then
+    _files -/ "$@"
+  elif compset -P '-R'; then
+    compset -P '*:'
+    _files -/ -S/ -r ' :' "$@"
+  else
+    _default "$@"
+  fi
+}