2009-12-10 19 views
9

En un proyecto en el que estoy trabajando, trato de que acepte comandos de usuario y proporcione el historial con la flecha hacia arriba. Mi objetivo es mantener este proyecto libre de dependencias, y no quiero tener que pedirle a la gente que también instale los archivos de desarrollo de readline solo para compilar mi proyecto. ¿Alguien sabe de un simple reemplazo directo para GNU Readline que proporciona solo una funcionalidad simple?¿Existe una alternativa simple a Readline?

Respuesta

7

mayoría de los sistemas de readline han instalado, por lo que no ver que por ser demasiado de un problema.

En segundo lugar, no creo que haya ninguna gota en el reemplazo para la biblioteca GNU Readline. Vas a tener que seguir con eso. :(

Edición 11/05/2016: Esta respuesta es obsoleta, y cualquier edición que haría sería tomar prestado casi por completo de las otras respuestas correctas, más Resumen:.. linenoise ver y editline de alternativas modernas readline

+0

Sí, no parece que lo esté solucionando. Revisé las alternativas, como Editline y libtecla, pero no cumplen el requisito "simple". Voy a tener que agruparlo. –

+0

Prefiero no decir eso. [clisp] (http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/doc/Why-CLISP-is-under-GPL) es el primero en convertir a GPL debido a readline. [aquí] (http://lwn.net/Articles/428111/) es un artículo sobre readline y GPL. –

+0

Actualizaría esta respuesta, ni Windows ni Mac OS X tienen readline instalada, ¡eso es una gran proporción de usuarios! –

22

Editline tiene una licencia de tipo BSD

EDIT:.... Las versiones anteriores de editline eran bastante simples Aquí está uno con just two C files and a header, un total de cerca de 1500 líneas de código Hemos estado usando durante años.

1

editline (libedit) aún no admite caracteres de varios bytes.

También estoy de acuerdo con Dan Loewenherz, la biblioteca readline está muy difundido. Por ejemplo, la mayoría de las distribuciones de linux envían bash con readline. La mayoría de la distribución de Python también se envía con readline. Si su proyecto necesita una biblioteca similar a readline, es una buena idea usar la biblioteca GNU readline ya que es una opción popular y los usuarios pueden tenerla instalada en el sistema operativo.

+2

A partir del 2010-04-24 editline se puede construir con soporte utf-8 utilizando './configure--enable-widec'. –

+1

A partir del 2016-06-18 editline siempre se crea con soporte unicode (wide-char/UTF-8), y la bandera '--enable-widec' está en desuso. – AndreyT

13

Encontré una. antirez de la fama de Redis ha llegado con linenoise, una alternativa mucho más simple.

+1

Estoy seguro de que los usuarios no ingleses les encanta cuando su programa barfs en el texto que intenta escribir en su propio idioma .... –

2

BusyBox contiene un código de edición de línea de comandos similar a readline, pero mucho más pequeño y simple, con soporte completo para UTF-8. Probablemente sería fácil convertirlo en una biblioteca independiente.

+1

Es GPL demasiado sin embargo. – Demi

2

La biblioteca editline es otra alternativa. Desde el README:

La biblioteca editline fue creado por Simmule Turner y Rich Salz en 1992. En el momento que eligieron para distribuir el código bajo un derecho de autor "C-News-like", ver el archivo LICENSE para detalles.

[...]

Esta versión de la biblioteca editline es un tenedor de las fuentes minix3. Otras conocen versiones, a menudo basadas en los comp.sources originales.UNIX publicación son:

Los parches más intersting y error las correcciones de cada tenedor se han fusionado aquí.

Cuestiones relacionadas