[editbox] Allow for password widgets that do not display their contents
[people/lynusvaz/gpxe.git] / src / hci / mucurses / widgets / editbox.c
index 5c066fd..a52089c 100644 (file)
  * @v row              Row
  * @v col              Starting column
  * @v width            Width
- *
+ * @v flags            Flags
  */
 void init_editbox ( struct edit_box *box, char *buf, size_t len,
                    WINDOW *win, unsigned int row, unsigned int col,
-                   unsigned int width ) {
+                   unsigned int width, unsigned int flags ) {
        memset ( box, 0, sizeof ( *box ) );
        box->string.buf = buf;
        box->string.len = len;
@@ -51,6 +51,7 @@ void init_editbox ( struct edit_box *box, char *buf, size_t len,
        box->row = row;
        box->col = col;
        box->width = width;
+       box->flags = flags;
 }
 
 /**
@@ -86,7 +87,11 @@ void draw_editbox ( struct edit_box *box ) {
        len = ( strlen ( box->string.buf ) - first );
        if ( len > width )
                len = width;
-       memcpy ( buf, ( box->string.buf + first ), len );
+       if ( box->flags & EDITBOX_STARS ) {
+               memset ( buf, '*', len );
+       } else {
+               memcpy ( buf, ( box->string.buf + first ), len );
+       }
 
        /* Print box content and move cursor */
        if ( ! box->win )