From 267de7fe8ab542c10573dbdd7b973f9c080d67b3 Mon Sep 17 00:00:00 2001 From: Koichi Murase Date: Thu, 1 Dec 2022 17:24:42 +0900 Subject: [PATCH] complete: suppress errors for non-bash_completion "_parse_help" --- docs/ChangeLog.md | 1 + lib/core-complete.sh | 10 +++++----- note.txt | 17 +++++++++++++++++ 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/docs/ChangeLog.md b/docs/ChangeLog.md index 70a6cdbe..99e6da1c 100644 --- a/docs/ChangeLog.md +++ b/docs/ChangeLog.md @@ -318,6 +318,7 @@ - global: quote `return $?` `#D1884` 801d14a - canvas (`ble/canvas/trace`): fix text justification for empty lines (reported by rashil2000) `#D1894` xxxxxxx - main: fix adjustments of bash options (reported by rashil2000) `#D1895` xxxxxxx +- complete: suppress error messages for non-bash_completion `_parse_help` (reported by nik312123) `#D1900` xxxxxxx ## Documentation diff --git a/lib/core-complete.sh b/lib/core-complete.sh index 9ca89881..15f2bbad 100644 --- a/lib/core-complete.sh +++ b/lib/core-complete.sh @@ -4795,11 +4795,11 @@ function ble/complete/mandb:help/generate-cache { function ble/complete/mandb:_parse_help/inject { ble/is-function _parse_help || return 0 - ble/function#advice before _parse_help 'ble/complete/mandb:_parse_help/generate-cache "${ADVICE_WORDS[1]}" "${ADVICE_WORDS[2]}"' - ble/function#advice before _longopt 'ble/complete/mandb:_parse_help/generate-cache "${ADVICE_WORDS[1]}"' - ble/function#advice before _parse_usage 'ble/complete/mandb:_parse_help/generate-cache "${ADVICE_WORDS[1]}" "${ADVICE_WORDS[2]}" usage' - function ble/complete/mandb:_parse_help/inject { return 0; } -} + ble/function#advice before _parse_help 'ble/complete/mandb:_parse_help/generate-cache "${ADVICE_WORDS[1]}" "${ADVICE_WORDS[2]}"' && + ble/function#advice before _longopt 'ble/complete/mandb:_parse_help/generate-cache "${ADVICE_WORDS[1]}"' && + ble/function#advice before _parse_usage 'ble/complete/mandb:_parse_help/generate-cache "${ADVICE_WORDS[1]}" "${ADVICE_WORDS[2]}" usage' && + function ble/complete/mandb:_parse_help/inject { return 0; } +} 2>/dev/null # _parse_help が別の枠組みで定義されている事がある? #D1900 ## @fn ble/string#hash-pjw text [size shift] ## @var[out] ret diff --git a/note.txt b/note.txt index eeb1bb66..fc693fca 100644 --- a/note.txt +++ b/note.txt @@ -6613,6 +6613,23 @@ bash_tips 2022-12-01 + * complete: `#advice: _parse_usage is not a function.` というエラーメッセージ (reported by nik312123) [#D1900] + https://github.com/akinomyoga/ble.sh/issues/251 + + bash_completion の新しい version を使っていると発生するのかもしれない。と思っ + たがそうでもなかった。まだこれらの関数は bash_completion の内部で改名されて + いない。つまり、_parse_help や _longopt を勝手に定義しているが _parse_usage + を定義していない外部の補完ライブラリが存在する。 + + ? no: もしくは、古い bash_completion には _parse_usage は存在していなかった? + と思って調べてみたが _parse_usage も _parse_help も bash_completion + 68f6f1c68 で同時に導入されているので片方だけが定義されていたという時期は + 存在しない様に思われる。 + + 何れにしても _parse_help という関数を勝手に定義する場合を考えると、勝手に他 + の関数も定義されていると想定する訳には行かない。単にエラーを suppress する + 事にした。 + * 2022-10-24 rename to blerc.template [#D1899] https://github.com/akinomyoga/ble.sh/issues/244#issuecomment-1288439503