Annotation of qemu/roms/ipxe/src/hci/mucurses/print.c, revision 1.1

1.1     ! root        1: #include <curses.h>
        !             2: #include <stdio.h>
        !             3: #include <stddef.h>
        !             4: #include <ipxe/vsprintf.h>
        !             5: #include "mucurses.h"
        !             6: 
        !             7: /** @file
        !             8:  *
        !             9:  * MuCurses printing functions
        !            10:  *
        !            11:  */
        !            12: 
        !            13: FILE_LICENCE ( GPL2_OR_LATER );
        !            14: 
        !            15: /**
        !            16:  * Add a single-byte character and rendition to a window and advance
        !            17:  * the cursor
        !            18:  *
        !            19:  * @v *win     window to be rendered in
        !            20:  * @v ch       character to be added at cursor
        !            21:  * @ret rc     return status code
        !            22:  */
        !            23: int waddch ( WINDOW *win, const chtype ch ) {
        !            24:        _wputch( win, ch, WRAP );
        !            25:        return OK;
        !            26: }
        !            27: 
        !            28: /**
        !            29:  * Add string of single-byte characters to a window
        !            30:  *
        !            31:  * @v *win     window to be rendered in
        !            32:  * @v *str     standard c-style string
        !            33:  * @v n                max number of chars from string to render
        !            34:  * @ret rc     return status code
        !            35:  */
        !            36: int waddnstr ( WINDOW *win, const char *str, int n ) {
        !            37:        _wputstr( win, str, WRAP, n );
        !            38:        return OK;
        !            39: }
        !            40: 
        !            41: struct printw_context {
        !            42:        struct printf_context ctx;
        !            43:        WINDOW *win;
        !            44: };
        !            45: 
        !            46: static void _printw_handler ( struct printf_context *ctx, unsigned int c ) {
        !            47:        struct printw_context *wctx =
        !            48:                container_of ( ctx, struct printw_context, ctx );
        !            49: 
        !            50:        _wputch( wctx->win, c | wctx->win->attrs, WRAP );
        !            51: }
        !            52: 
        !            53: /**
        !            54:  * Print formatted output in a window
        !            55:  *
        !            56:  * @v *win     subject window
        !            57:  * @v *fmt     formatted string
        !            58:  * @v varglist argument list
        !            59:  * @ret rc     return status code
        !            60:  */
        !            61: int vw_printw ( WINDOW *win, const char *fmt, va_list varglist ) {
        !            62:        struct printw_context wctx;
        !            63: 
        !            64:        wctx.win = win;
        !            65:        wctx.ctx.handler = _printw_handler;
        !            66:        vcprintf ( &(wctx.ctx), fmt, varglist );
        !            67:        return OK;
        !            68: }
        !            69: 
        !            70: /**
        !            71:  * Print formatted output to a window
        !            72:  *
        !            73:  * @v *win     subject window
        !            74:  * @v *fmt     formatted string
        !            75:  * @v ...      string arguments
        !            76:  * @ret rc     return status code
        !            77:  */
        !            78: int wprintw ( WINDOW *win, const char *fmt, ... ) {
        !            79:        va_list args;
        !            80:        int i;
        !            81: 
        !            82:        va_start ( args, fmt );
        !            83:        i = vw_printw ( win, fmt, args );
        !            84:        va_end ( args );
        !            85:        return i;
        !            86: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.