• Guido van Rossum's avatar
    Restructured quite a bit, hopefully Lee Busby will find this useful. · fbd64c87
    Guido van Rossum yazdı
    Also grandly renamed.
    
    Here's the new interface:
    
    When WITH_READLINE is defined, two functions are defined:
    
      - PyOS_GnuReadline (what used to be my_readline() with WITH_READLINE)
      - PyOS_ReadlineInit (for Dave Ascher)
    
    Always, these functions are defined:
    
      - PyOS_StdioReadline (what used to be my_readline() without WITH_READLINE)
      - PyOS_Readline (the interface used by tokenizer.c and [raw_]input().
    
    There's a global function pointer PyOS_ReadlineFunctionPointer,
    initialized to NULL.  When PyOS_Readline finds this to be NULL, it
    sets it to either PyOS_GnuReadline or PyOS_StdioReadline depending on
    which one makes more sense (i.e. it uses GNU only if it is defined
    *and* stdin is indeed a tty device).
    
    An embedding program that has its own wishes can set the function
    pointer to a function of its own design.  It should take a char*
    prompt argument (which may be NULL) and return a string *ending in a
    \n character* -- or "" for EOF or NULL for a user interrupt.
    
    --Guido van Rossum (home page: http://www.python.org/~guido/)
    fbd64c87
myreadline.c 5.28 KB