On 2021-01-15, Grant Edwards <grant.b.edwa...@gmail.com> wrote:
> On 2021-01-15, Grant Edwards <grant.b.edwa...@gmail.com> wrote:
>
>> Entities that are parameterized (e.g. goto location) would need to be
>> passed through curses.tiparm() before they're decoded and printed. I'm
>> goign to try that next.
>
> The curses module doesn't expose tiparm, but you can use tparm
> instead

NB: The example code below may fail to work properly if all of the
    below are true.

      * You're using a real, physical terminal
 
      * Connected to a real, physical serial port (not a pty)
 
      * Without flow control
 
      * And the terminal requires "pauses" to allow time for the
        terminal to execute the some commands before it can accept
        further data.

The functionality that is added by tputs() is to insert "padding"
(typically extra NUL bytes) before/after certain certain terminal
operations.

What I _don't_ know at this point is what happens if you're using a
terminfo description that specifies padding, but you're not connected
to a physical terminal via a real serial port.


>     #!/usr/bin/python
>     import curses,sys
>     
>     curses.setupterm()
>     
>     write = sys.stdout.write
>     
>     bold = curses.tigetstr('bold').decode('ascii')
>     norm = curses.tigetstr('sgr0').decode('ascii')
>     cls = curses.tigetstr('clear').decode('ascii')
>     cup = curses.tigetstr('cup')
>     
>     def goto(row,column):
>         write(curses.tparm(cup,row,column).decode('ascii'))
>     
>     def clear():
>         write(cls)
>     
>     clear()    
>     name = input("enter name: ")
>     
>     for row in [3,5,10,20]:
>         goto(row, row+5)
>         write(f'{bold}Hi there {name}{norm}')
>         goto(row+1, row+6)
>         write(f'Hi there {name}')
>     
>     goto(24,0)    
>     input("press enter to exit: ")
>     clear()
>


-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to