2009-12-10 13 views
9

Su un progetto su cui sto lavorando, sto cercando di far sì che accetti i comandi dell'utente e fornisca la cronologia con la freccia su. Il mio obiettivo è di mantenere questo progetto privo di dipendenze, e non voglio richiedere alle persone di installare anche i file di sviluppo readline solo per compilare il mio progetto. Qualcuno sa di una semplice sostituzione drop-in per GNU Readline che fornisce solo funzionalità semplici?Esiste una semplice alternativa a Readline?

risposta

7

La maggior parte dei sistemi ha una readline installata, quindi non vedo che sia un problema eccessivo.

In secondo luogo, non penso ci sia alcun rimpiazzo di sostituzione per la libreria GNU Readline. Dovrai attenervisi. :(

Edit 2016/05/11: Questa risposta è obsoleto, e qualsiasi modifica che vorrei fare sarebbe stato preso in prestito quasi completamente dalle altre risposte, più corrette Riassunto:.. Vedi linenoise e editline per le moderne alternative readline

+0

Sì, non sembra che me ne vada in giro. Ho controllato le alternative, come Editline e libtecla, ma non soddisfano il requisito "semplice". Devo solo metterlo in ordine. –

+0

Preferisco non dirlo. [clisp] (http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/doc/Why-CLISP-is-under-GPL) è il primo da convertire in GPL a causa della readline. [qui] (http://lwn.net/Articles/428111/) è un articolo su readline e GPL. –

+0

Aggiungo questa risposta: né Windows né Mac OS X hanno readline installato: si tratta di una percentuale molto ampia di utenti! –

22

Editline ha una licenza BSD-style

EDIT:.... versioni più vecchie di cui esiste EDITLINE erano abbastanza semplici Ecco uno con just two C files and a header, per un totale di circa 1500 linee di codice Abbiamo usato per anni

1

editline (libedit) non supporta ancora caratteri multi-byte.

Sono anche d'accordo con Dan Loewenherz, la libreria readline è molto diffusa. Ad esempio, la maggior parte delle distribuzioni Linux si basa su readline. La maggior parte della distribuzione Python viene fornita anche con readline. Se il tuo progetto ha bisogno di una libreria di tipo readline, è una buona idea usare la libreria GNU readline poiché è una scelta popolare e gli utenti potrebbero averla già installata sul sistema operativo.

+2

A partire dal 2010-04-24 è possibile creare editline con il supporto di utf-8 usando './configure --enable-widec'. –

+1

A partire dal 2016-06-18 editline è sempre compilato con supporto unicode (wide-char/UTF-8) e il flag '--enable-widec' è deprecato. – AndreyT

13

Ne ho trovato uno. l'antirez della fama di Redis ha inventato lo linenoise, un'alternativa molto più semplice.

+1

Sono sicuro che gli utenti non inglesi lo adoreranno quando il programma si blocca sul testo che cercano di digitare nella propria lingua ... –

2

BusyBox contiene il codice di modifica della riga di comando simile a readline, ma molto più piccolo e semplice, con supporto completo per UTF-8. Probabilmente sarebbe facile trasformarlo in una biblioteca indipendente.

+1

Anche la GPL è valida. – Demi

2

La libreria editline è un'altra alternativa. Dal README:

La biblioteca esiste EDITLINE è stato creato da Simmule Turner e Rich Salz nel 1992. Al momento hanno scelto di distribuire il codice sotto un copyright "C News-like", vedere il file LICENSE per dettagli.

[...]

Questa versione della libreria esiste EDITLINE è una forchetta al largo delle fonti Minix3. Altre conoscono le versioni, spesso basate su fonti originali.unix distacco sono:

Le patch più intersting e bug le correzioni di ogni fork sono state unite qui.