私が取り組んでいるプロジェクトでは、ユーザーコマンドを受け入れ、上矢印で履歴を提供できるようにしようとしています。私はこのプロジェクトに依存関係がないようにすることを目指しており、プロジェクトをコンパイルするためだけにreadline開発ファイルもインストールするように人々に要求する必要はありません。単純な機能のみを提供するGNUReadlineの単純なドロップイン置換を知っている人はいますか?
6 に答える
エディットライン。BSD スタイルのライセンスを持っています。
編集: editline の古いバージョンは非常に単純でした。これは、2 つの C ファイルと1 つのヘッダーだけで、合計約 1500 行のコードを含むものです。私たちは何年もそれを使用してきました。
見つけました。Redis で有名な antirezは、はるかに単純な代替手段であるlinenoiseを考え出しました。
ほとんどのシステムには readline がインストールされているので、それほど大きな問題ではないと思います。
第二に、GNU Readline ライブラリのドロップイン代替品はないと思います。あなたはそれに固執する必要があります。:(
編集 2016 年 5 月 11 日: この回答は古くなっています。私が行う編集は、他のより正しい回答からほぼ完全に借用することになります。要約:最新の readline の代替手段については、 linenoiseとeditlineを参照してください。
BusyBox には readline に似たコマンドライン編集コードが含まれていますが、はるかに小さくシンプルで、UTF-8 を完全にサポートしています。独立したライブラリにするのはおそらく簡単でしょう。
editlineライブラリは、さらに別の代替手段です。READMEから:
editline ライブラリは、1992 年に Simmule Turner と Rich Salz によって作成されました。当時、彼らは「C News のような」著作権でコードを配布することを選択しました。詳細については、ファイル LICENSE を参照してください。
[...]
このバージョンの editline ライブラリは、Minix3 ソースから分岐したものです。多くの場合、元の comp.sources.unix 投稿に基づいている他の既知のバージョンは次のとおりです。
- Debian libeditline、http: //packages.qa.debian.org/e/editline.html
- ヘイムダル、http: //www.h5l.org
- フェスティバル スピーチ ツール、http://festvox.org/festival/
- Steve Tell の editline パッチ、http: //www.cs.unc.edu/~tell/dist.html
各フォークからの最も興味深いパッチとバグ修正がここにマージされました。
editline(libedit)は、マルチバイト文字をまだサポートしていません。
私はDanLoewenherzにも同意します。readlineライブラリは広く普及しています。たとえば、ほとんどのLinuxディストリビューションはbashにreadlineを同梱しています。ほとんどのPythonディストリビューションには、readlineも付属しています。プロジェクトにreadlineのようなライブラリが必要な場合は、GNU readlineライブラリを使用することをお勧めします。これは一般的な選択肢であり、ユーザーはすでにOSにインストールしている可能性があるためです。