mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-06 05:10:52 +02:00
+ Fake readline library to allow building IDE without useless libreadline.
git-svn-id: trunk@6661 -
This commit is contained in:
parent
bc3a21e1a1
commit
f4375d547a
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -774,6 +774,7 @@ packages/base/gdbint/Makefile svneol=native#text/plain
|
||||
packages/base/gdbint/Makefile.fpc svneol=native#text/plain
|
||||
packages/base/gdbint/fpmake.inc svneol=native#text/plain
|
||||
packages/base/gdbint/fpmake.pp svneol=native#text/plain
|
||||
packages/base/gdbint/freadlin.pp svneol=native#text/x-pascal
|
||||
packages/base/gdbint/gdbcon.pp svneol=native#text/plain
|
||||
packages/base/gdbint/gdbint.pp svneol=native#text/plain
|
||||
packages/base/gdbint/gdbobjs.inc svneol=native#text/plain
|
||||
|
239
packages/base/gdbint/freadlin.pp
Normal file
239
packages/base/gdbint/freadlin.pp
Normal file
@ -0,0 +1,239 @@
|
||||
unit freadlin;
|
||||
{**********************************************************************
|
||||
Copyright (c) 2007 by Daniel Mantione
|
||||
|
||||
A fake read line library which allows us to use libgdb in the IDE
|
||||
without linking the bloated and unused GNU readline library.
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
for details about the copyright.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
{$calling cdecl}
|
||||
|
||||
interface
|
||||
|
||||
implementation
|
||||
|
||||
uses ctypes;
|
||||
|
||||
var rl_end:cint;public name 'rl_end'; {The number of characters in the readline buffer.}
|
||||
rl_point:cint;public name 'rl_point'; {The cursor position in the readline buffer.}
|
||||
rl_prompt:Pchar;public name 'rl_prompt'; {The prompt readline should use.}
|
||||
rl_instream:pointer;public name 'rl_instream'; {The FILE* for input.}
|
||||
rl_outstream:pointer;public name 'rl_outstream';{The FILE* for output.}
|
||||
rl_terminal_name:pointer;public name 'rl_terminal_name'; {The terminal (set by TERM) readline thinks it is using.}
|
||||
rl_prep_term_function:pointer;public name 'rl_prep_term_function'; {Procedure to initialize terminal.}
|
||||
rl_getc_function:pointer;public name 'rl_getc_function'; {The function to get a char from input.}
|
||||
rl_line_buffer:Pchar;public name 'rl_line_buffer'; {The buffer readline is currently reading into.}
|
||||
rl_completer_word_break_characters:Pchar;public name 'rl_completer_word_break_characters';
|
||||
rl_completer_quote_characters:Pchar;public name 'rl_completer_quote_characters';
|
||||
rl_already_prompted:cint;public name 'rl_already_prompted';
|
||||
readline_echoing_p:cint;public name 'readline_echoing_p';
|
||||
rl_startup_hook:pointer;public name 'rl_startup_hook';
|
||||
emacs_ctlx_keymap:pointer;public name 'emacs_ctlx_keymap';
|
||||
rl_readline_name:Pchar;public name 'rl_readline_name';
|
||||
rl_deprep_term_function:pointer;public name 'rl_deprep_term_function';
|
||||
rl_redisplay_function:pointer;public name 'rl_redisplay_function';
|
||||
rl_pre_input_hook:pointer;public name 'rl_pre_input_hook';
|
||||
rl_completion_entry_function:pointer;public name 'rl_completion_entry_function';
|
||||
rl_filename_completion_desired:cint;public name 'rl_filename_completion_desired';
|
||||
rl_completion_display_matches_hook:pointer;public name 'rl_completion_display_matches_hook';
|
||||
rl_completion_query_items:cint;public name 'rl_completion_query_items';
|
||||
rl_ignore_completion_duplicates:cint;public name 'rl_ignore_completion_duplicates';
|
||||
rl_print_completions_horizontally:cint;public name '_rl_print_completions_horizontally';
|
||||
|
||||
function rl_initialize:cint;public;alias:'rl_initialize';
|
||||
|
||||
{Should initialize readline and return 0 if successfull.}
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
function rl_reset_terminal(terminal:Pchar):cint;public;alias:'rl_reset_terminal';
|
||||
|
||||
begin
|
||||
{Called by gdb, do nothing.}
|
||||
end;
|
||||
|
||||
function rl_tilde_expand(s:Pchar):Pchar;public;alias:'tilde_expand';
|
||||
|
||||
begin
|
||||
{Called by gdb, don't expand, return original string.}
|
||||
rl_tilde_expand:=s;
|
||||
end;
|
||||
|
||||
function rl_newline(count,key:cint):cint;public;alias:'rl_newline';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
procedure rl_get_screen_size(var rows,cols:cint);public;alias:'rl_get_screen_size';
|
||||
|
||||
begin
|
||||
{Called by gdb. Fake a 80x25 screen.}
|
||||
{Gdb can call using nil pointers.}
|
||||
if @rows<>nil then
|
||||
rows:=25;
|
||||
if @cols<>nil then
|
||||
cols:=80;
|
||||
end;
|
||||
|
||||
procedure rl_set_screen_size(rows,cols:cint);public;alias:'rl_set_screen_size';
|
||||
|
||||
begin
|
||||
{Called by gdb, do nothing.}
|
||||
end;
|
||||
|
||||
function rl_bind_key_in_map(key:cint;rl_command_func_t:pointer;map:pointer):cint;public;alias:'rl_bind_key_in_map';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
procedure rl_set_keymap(keymap:pointer);public;alias:'rl_set_keymap';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
function rl_get_keymap:pointer;public;alias:'rl_get_keymap';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
function rl_make_bare_keymap:pointer;public;alias:'rl_make_bare_keymap';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
function rl_add_defun(name:Pchar;rl_command_func_t:pointer;key:cint):cint;public;alias:'rl_add_defun';
|
||||
|
||||
begin
|
||||
{Called by gdb, do nothing.}
|
||||
end;
|
||||
|
||||
function rl_insert(count,c:cint):cint;public;alias:'rl_insert';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
function rl_kill_text(start,stop:cint):cint;public;alias:'rl_kill_text';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
procedure rl_prep_terminal(meta_flag:cint);public;alias:'rl_prep_terminal';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
procedure rl_deprep_terminal;public;alias:'rl_deprep_terminal';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
procedure rl_callback_handler_install(prompt:Pchar;lhandler:pointer);public;alias:'rl_callback_handler_install';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
procedure rl_callback_handler_remove;public;alias:'rl_callback_handler_remove';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
function rl_filename_completion_function(text:Pchar;state:cint):Pchar;public;alias:'rl_filename_completion_function';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
procedure rl_callback_read_char;public;alias:'rl_callback_read_char';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
procedure rl_redisplay;public;alias:'rl_redisplay';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
function rl_generic_bind(_type:cint;keyseq,data:Pchar;map:pointer):cint;public;alias:'rl_generic_bind';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
function rl_get_previous_history(count,key:cint):cint;public;alias:'rl_get_previous_history';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
function rl_read_key:cint;public;alias:'rl_read_key';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
function rl_abort_internal:cint;public;alias:'_rl_abort_internal';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
function readline(prompt:Pchar):Pchar;public;alias:'readline';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
function rl_qsort_string_compare(s1,s2:Pchar):cint;public;alias:'_rl_qsort_string_compare';
|
||||
|
||||
begin
|
||||
runerror(254);
|
||||
end;
|
||||
|
||||
begin
|
||||
rl_end:=0;
|
||||
rl_point:=0;
|
||||
rl_prompt:=nil;
|
||||
rl_instream:=nil;
|
||||
rl_outstream:=nil;
|
||||
rl_terminal_name:=nil;
|
||||
rl_already_prompted:=0;
|
||||
rl_completer_word_break_characters:=nil;
|
||||
rl_completer_quote_characters:=nil;
|
||||
rl_line_buffer:=nil;
|
||||
rl_getc_function:=nil;
|
||||
rl_prep_term_function:=nil;
|
||||
rl_startup_hook:=nil;
|
||||
readline_echoing_p:=0;
|
||||
emacs_ctlx_keymap:=nil;
|
||||
rl_readline_name:=nil;
|
||||
rl_deprep_term_function:=nil;
|
||||
rl_redisplay_function:=nil;
|
||||
rl_completion_entry_function:=nil;
|
||||
rl_filename_completion_desired:=0;
|
||||
rl_completion_display_matches_hook:=nil;
|
||||
rl_ignore_completion_duplicates:=0;
|
||||
rl_print_completions_horizontally:=0;
|
||||
end.
|
Loading…
Reference in New Issue
Block a user