simon@giaea.gi.oz (simon shields) (05/30/91)
ENVIRONMENT - HP9000/825 HP-UX
Hi All
I was wondering if anyone has tried mixing "curses" routines with fortran and
ncargraphics. I tried unsuccessfully. I set up a test program in C which used
curses to read in a character at a time. This worked fine. I put this routine
into a library and linked it with my ncargraphics routines and it got stuck at
the "initscr" curses routine. I then set up a fortran test program (calling the
c routines from within fortran), to do the same thing and it also worked fine.
I put this routine into a library and again "initscr" was the stumbling block.
test.c
-------
/*
FILE
test.c
PURPOSE
To test curses
#include <curses.h>
cc [ flags ] file ... -lcurses [ libraries ]
DESCRIPTION
These routines provide a method for updating screens with
reasonable optimization. To initialize curses routines, the
initscr() routine must be called before calling any other
routine that deals with windows and screens. The endwin()
routine should be called before exiting. To get character-
at-a-time input without echoing, (most interactive, screen
oriented-programs need this) after calling initscr() the
program should call ``nonl(); cbreak(); noecho();''
*/
#include <stdio.h>
#include <curses.h>
main()
{ extern char getach() ; char c ;
putchar(getach(&c)) ;
fflush(stdout) ;
}
char getach(c) char *c ;
{
initscr();
nonl();
cbreak();
noecho();
flushinp() ;
*c=getchar() ;
fflush(stdout) ;
endwin() ;
return(*c) ;
}
flushout()
{
fflush(stdout) ;
}
-----------
test.f
-----------
$ALIAS hpux_read="read" c (%val, %ref, %val)
$ALIAS hpux_initscr="initscr" c
$ALIAS hpux_nonl="nonl" c
$ALIAS hpux_cbreak="cbreak" c
$ALIAS hpux_noecho="noecho" c
$ALIAS hpux_flushinp="flushinp" c
$ALIAS hpux_endwin="endwin" c
subroutine getach(c)
integer read ! (int fildes, char *buf, unsigned nbyte)
integer fildes/0/, nbyte/1/
character c, getchar
call hpux_initscr
call hpux_nonl
call hpux_cbreak
call hpux_noecho
call hpux_flushinp
i = hpux_read (fildes, c, nbyte)
call hpux_endwin
return
end
----------
I used ar to make up the library thus
ar rv 1.a test.o
And the ncar call was
ncargf77 -g +T -o fourier.7 fourier.7.f 1.a -lcurses
Compiling and linking went off without a hitch.
If anyone has a clue please give us a buzz (even if you've got something you
think I should try.
Thanks for trying.