1199767f8SToomas Soome /* linenoise.h -- VERSION 1.0 2199767f8SToomas Soome * 3199767f8SToomas Soome * Guerrilla line editing library against the idea that a line editing lib 4199767f8SToomas Soome * needs to be 20,000 lines of C code. 5199767f8SToomas Soome * 6199767f8SToomas Soome * See linenoise.c for more information. 7199767f8SToomas Soome * 8199767f8SToomas Soome * ------------------------------------------------------------------------ 9199767f8SToomas Soome * 10199767f8SToomas Soome * Copyright (c) 2010-2014, Salvatore Sanfilippo <antirez at gmail dot com> 11199767f8SToomas Soome * Copyright (c) 2010-2013, Pieter Noordhuis <pcnoordhuis at gmail dot com> 12199767f8SToomas Soome * 13199767f8SToomas Soome * All rights reserved. 14199767f8SToomas Soome * 15199767f8SToomas Soome * Redistribution and use in source and binary forms, with or without 16199767f8SToomas Soome * modification, are permitted provided that the following conditions are 17199767f8SToomas Soome * met: 18199767f8SToomas Soome * 19199767f8SToomas Soome * * Redistributions of source code must retain the above copyright 20199767f8SToomas Soome * notice, this list of conditions and the following disclaimer. 21199767f8SToomas Soome * 22199767f8SToomas Soome * * Redistributions in binary form must reproduce the above copyright 23199767f8SToomas Soome * notice, this list of conditions and the following disclaimer in the 24199767f8SToomas Soome * documentation and/or other materials provided with the distribution. 25199767f8SToomas Soome * 26199767f8SToomas Soome * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27199767f8SToomas Soome * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28199767f8SToomas Soome * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29199767f8SToomas Soome * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30199767f8SToomas Soome * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31199767f8SToomas Soome * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32199767f8SToomas Soome * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33199767f8SToomas Soome * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34199767f8SToomas Soome * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35199767f8SToomas Soome * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36199767f8SToomas Soome * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37199767f8SToomas Soome */ 38199767f8SToomas Soome 39199767f8SToomas Soome #ifndef __LINENOISE_H 40199767f8SToomas Soome #define __LINENOISE_H 41199767f8SToomas Soome 42199767f8SToomas Soome #ifdef __cplusplus 43199767f8SToomas Soome extern "C" { 44199767f8SToomas Soome #endif 45199767f8SToomas Soome 46199767f8SToomas Soome typedef struct linenoiseCompletions { 47199767f8SToomas Soome size_t len; 48199767f8SToomas Soome char **cvec; 49199767f8SToomas Soome } linenoiseCompletions; 50199767f8SToomas Soome 51199767f8SToomas Soome typedef void(linenoiseCompletionCallback)(const char *, linenoiseCompletions *); 52199767f8SToomas Soome void linenoiseSetCompletionCallback(linenoiseCompletionCallback *); 53199767f8SToomas Soome void linenoiseAddCompletion(linenoiseCompletions *, const char *); 54199767f8SToomas Soome 55199767f8SToomas Soome char *linenoise(const char *prompt); 56199767f8SToomas Soome int linenoiseHistoryAdd(const char *line); 57199767f8SToomas Soome int linenoiseHistorySetMaxLen(int len); 58199767f8SToomas Soome int linenoiseHistorySave(const char *filename); 59199767f8SToomas Soome int linenoiseHistoryLoad(const char *filename); 60199767f8SToomas Soome void linenoiseClearScreen(void); 61199767f8SToomas Soome void linenoiseSetMultiLine(int ml); 62199767f8SToomas Soome void linenoisePrintKeyCodes(void); 63199767f8SToomas Soome 64199767f8SToomas Soome #ifdef __cplusplus 65199767f8SToomas Soome } 66199767f8SToomas Soome #endif 67199767f8SToomas Soome 68199767f8SToomas Soome #endif /* __LINENOISE_H */ 69