mirror of
https://github.com/rspamd/rspamd.git
synced 2024-08-20 17:59:22 +02:00
120 lines
3.1 KiB
Markdown
120 lines
3.1 KiB
Markdown
![]() |
# Read Evaluate Print Loop ++
|
||
|
|
||
|
![demo](https://drive.google.com/uc?export=download&id=0B53g2Y3z7rWNT2dCRGVVNldaRnc)
|
||
|
|
||
|
[![Build Status](https://travis-ci.org/AmokHuginnsson/replxx.svg?branch=master)](https://travis-ci.org/AmokHuginnsson/replxx)
|
||
|
|
||
|
A small, portable GNU readline replacement for Linux, Windows and
|
||
|
MacOS which is capable of handling UTF-8 characters. Unlike GNU
|
||
|
readline, which is GPL, this library uses a BSD license and can be
|
||
|
used in any kind of program.
|
||
|
|
||
|
## Origin
|
||
|
|
||
|
This replxx implementation is based on the work by
|
||
|
[ArangoDB Team](https://github.com/arangodb/linenoise-ng) and
|
||
|
[Salvatore Sanfilippo](https://github.com/antirez/linenoise) and
|
||
|
10gen Inc. The goal is to create a zero-config, BSD
|
||
|
licensed, readline replacement usable in Apache2 or BSD licensed
|
||
|
programs.
|
||
|
|
||
|
## Features
|
||
|
|
||
|
* single-line and multi-line editing mode with the usual key bindings implemented
|
||
|
* history handling
|
||
|
* completion
|
||
|
* syntax highlighting
|
||
|
* hints
|
||
|
* BSD license source code
|
||
|
* Only uses a subset of VT100 escapes (ANSI.SYS compatible)
|
||
|
* UTF8 aware
|
||
|
* support for Linux, MacOS and Windows
|
||
|
|
||
|
It deviates from Salvatore's original goal to have a minimal readline
|
||
|
replacement for the sake of supporting UTF8 and Windows. It deviates
|
||
|
from 10gen Inc.'s goal to create a C++ interface to linenoise. This
|
||
|
library uses C++ internally, but to the user it provides a pure C
|
||
|
interface that is compatible with the original linenoise API.
|
||
|
C interface.
|
||
|
|
||
|
## Requirements
|
||
|
|
||
|
To build this library, you will need a C++11-enabled compiler and
|
||
|
some recent version of CMake.
|
||
|
|
||
|
## Build instructions
|
||
|
|
||
|
### *nix
|
||
|
|
||
|
1. Create a build directory
|
||
|
|
||
|
```bash
|
||
|
mkdir -p build && cd build
|
||
|
```
|
||
|
|
||
|
2. Build the library
|
||
|
|
||
|
```bash
|
||
|
cmake -DCMAKE_BUILD_TYPE=Release .. && make
|
||
|
```
|
||
|
|
||
|
3. Install the library at the default target location
|
||
|
|
||
|
```bash
|
||
|
sudo make install
|
||
|
```
|
||
|
|
||
|
The default installation location can be adjusted by setting the `DESTDIR`
|
||
|
variable when invoking `make install`:
|
||
|
|
||
|
```bash
|
||
|
make DESTDIR=/tmp install
|
||
|
```
|
||
|
|
||
|
### Windows
|
||
|
|
||
|
1. Create a build directory in MS-DOS command prompt
|
||
|
|
||
|
```
|
||
|
md build
|
||
|
cd build
|
||
|
```
|
||
|
|
||
|
2. Generate Visual Studio solution file with cmake
|
||
|
|
||
|
* 32 bit:
|
||
|
```bash
|
||
|
cmake -G "Visual Studio 12 2013" -DCMAKE_BUILD_TYPE=Release ..`
|
||
|
```
|
||
|
* 64 bit:
|
||
|
```bash
|
||
|
`cmake -G "Visual Studio 12 2013 Win64" -DCMAKE_BUILD_TYPE=Release ..`
|
||
|
```
|
||
|
|
||
|
3. Open the generated file `replxx.sln` in the `build` subdirectory with Visual Studio.
|
||
|
|
||
|
## Tested with...
|
||
|
|
||
|
* Linux text only console ($TERM = linux)
|
||
|
* Linux KDE terminal application ($TERM = xterm)
|
||
|
* Linux xterm ($TERM = xterm)
|
||
|
* Linux Buildroot ($TERM = vt100)
|
||
|
* Mac OS X iTerm ($TERM = xterm)
|
||
|
* Mac OS X default Terminal.app ($TERM = xterm)
|
||
|
* OpenBSD 4.5 through an OSX Terminal.app ($TERM = screen)
|
||
|
* IBM AIX 6.1
|
||
|
* FreeBSD xterm ($TERM = xterm)
|
||
|
* ANSI.SYS
|
||
|
* Emacs comint mode ($TERM = dumb)
|
||
|
* Windows
|
||
|
|
||
|
Please test it everywhere you can and report back!
|
||
|
|
||
|
## Let's push this forward!
|
||
|
|
||
|
Patches should be provided in the respect of linenoise sensibility for
|
||
|
small and easy to understand code that and the license
|
||
|
restrictions. Extensions must be submitted under a BSD license-style.
|
||
|
A contributor license is required for contributions.
|
||
|
|