1*22028508SToomas Soome /* linenoise.h -- VERSION 1.0 2*22028508SToomas Soome * 3*22028508SToomas Soome * Guerrilla line editing library against the idea that a line editing lib 4*22028508SToomas Soome * needs to be 20,000 lines of C code. 5*22028508SToomas Soome * 6*22028508SToomas Soome * See linenoise.c for more information. 7*22028508SToomas Soome * 8*22028508SToomas Soome * ------------------------------------------------------------------------ 9*22028508SToomas Soome * 10*22028508SToomas Soome * Copyright (c) 2010-2014, Salvatore Sanfilippo <antirez at gmail dot com> 11*22028508SToomas Soome * Copyright (c) 2010-2013, Pieter Noordhuis <pcnoordhuis at gmail dot com> 12*22028508SToomas Soome * 13*22028508SToomas Soome * All rights reserved. 14*22028508SToomas Soome * 15*22028508SToomas Soome * Redistribution and use in source and binary forms, with or without 16*22028508SToomas Soome * modification, are permitted provided that the following conditions are 17*22028508SToomas Soome * met: 18*22028508SToomas Soome * 19*22028508SToomas Soome * * Redistributions of source code must retain the above copyright 20*22028508SToomas Soome * notice, this list of conditions and the following disclaimer. 21*22028508SToomas Soome * 22*22028508SToomas Soome * * Redistributions in binary form must reproduce the above copyright 23*22028508SToomas Soome * notice, this list of conditions and the following disclaimer in the 24*22028508SToomas Soome * documentation and/or other materials provided with the distribution. 25*22028508SToomas Soome * 26*22028508SToomas Soome * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27*22028508SToomas Soome * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28*22028508SToomas Soome * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29*22028508SToomas Soome * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30*22028508SToomas Soome * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31*22028508SToomas Soome * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32*22028508SToomas Soome * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33*22028508SToomas Soome * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34*22028508SToomas Soome * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35*22028508SToomas Soome * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36*22028508SToomas Soome * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37*22028508SToomas Soome */ 38*22028508SToomas Soome 39*22028508SToomas Soome #ifndef __LINENOISE_H 40*22028508SToomas Soome #define __LINENOISE_H 41*22028508SToomas Soome 42*22028508SToomas Soome #ifdef __cplusplus 43*22028508SToomas Soome extern "C" { 44*22028508SToomas Soome #endif 45*22028508SToomas Soome 46*22028508SToomas Soome typedef struct linenoiseCompletions { 47*22028508SToomas Soome size_t len; 48*22028508SToomas Soome char **cvec; 49*22028508SToomas Soome } linenoiseCompletions; 50*22028508SToomas Soome 51*22028508SToomas Soome typedef void(linenoiseCompletionCallback)(const char *, linenoiseCompletions *); 52*22028508SToomas Soome void linenoiseSetCompletionCallback(linenoiseCompletionCallback *); 53*22028508SToomas Soome void linenoiseAddCompletion(linenoiseCompletions *, const char *); 54*22028508SToomas Soome 55*22028508SToomas Soome char *linenoise(const char *prompt); 56*22028508SToomas Soome int linenoiseHistoryAdd(const char *line); 57*22028508SToomas Soome int linenoiseHistorySetMaxLen(int len); 58*22028508SToomas Soome int linenoiseHistorySave(const char *filename); 59*22028508SToomas Soome int linenoiseHistoryLoad(const char *filename); 60*22028508SToomas Soome void linenoiseClearScreen(void); 61*22028508SToomas Soome void linenoiseSetMultiLine(int ml); 62*22028508SToomas Soome void linenoisePrintKeyCodes(void); 63*22028508SToomas Soome 64*22028508SToomas Soome #ifdef __cplusplus 65*22028508SToomas Soome } 66*22028508SToomas Soome #endif 67*22028508SToomas Soome 68*22028508SToomas Soome #endif /* __LINENOISE_H */ 69