system_readline(3f) - [M_readline] Call readline(3c) from Fortran (LICENSE:PD)
Synopsis
Description
Examples
Author
License
character(kind=c_char,len=*),intent(in) :: prompt character(kind=c_char,len=*),intent(out) :: line
The system_readline(3f) uses the ISO_C_BINDING module to create a binding to the GNU readline(3c) procedure from Fortran programs.
The test program is basically just a read loop that prompts for lines of input read with readline(3c). You can edit the line being read with readline(3c) per its documentation. At a minimum, you can probably move around the line with the left and right arrow keys, and insert characters by typing them wherever you moved the cursor to, and use the DEL/ RUBOUT key to delete characters and such. If you use a GNU/Linux shell with command line editing, you are probably familiar with readline(3c)s function.
It quits if you enter q on an input line, and it dumps the history if you enter h.
It is presented here as a Bourne shell script that creates the necessary files and does a "compile, load, and go"
the test program
program demo_system_readline
use m_readline, only : system_readline
implicit none
character(len=256) :: line
integer :: cstat
character(len=256) :: sstat
write(*,*) ____________________________________________________________
write(*,*) Your input lines are now editable using the GNU
write(*,*) readline(3C) procedure. By default, up-arrow and
write(*,*) down-arrow go thru the history lines; left and right arrow
write(*,*) keys and delete and just typing characters let you do
write(*,*) simple editing. Far more input control is available.
write(*,*) See the browser pages and man(1) pages for readline(3c).
write(*,*) ____________________________________________________________
write(*,*) Enter text and then edit it. "q" quits; "h" display history:
do
call system_readline(line,readline>) ! read editable input line
if(line.eq.q) stop
call execute_command_line(trim(line),cmdstat=cstat,cmdmsg=sstat)
enddo
end program demo_system_readline
John S. Urban
Public DomainAlthough this interface to readline(3c) is released as Public Domain, note that the Readline library itself is free software, distributed under the terms of the [GNU] General Public License, version 2.
| Nemo Release 3.1 | system_readline (3) | June 29, 2025 |
