Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v4.9 74 lines 1.2 kB view raw
1#include <stdio.h> 2#include <stdlib.h> 3#include <string.h> 4 5#include "../debug.h" 6#include "helpline.h" 7#include "ui.h" 8#include "../util.h" 9 10char ui_helpline__current[512]; 11 12static void nop_helpline__pop(void) 13{ 14} 15 16static void nop_helpline__push(const char *msg __maybe_unused) 17{ 18} 19 20static int nop_helpline__show(const char *fmt __maybe_unused, 21 va_list ap __maybe_unused) 22{ 23 return 0; 24} 25 26static struct ui_helpline default_helpline_fns = { 27 .pop = nop_helpline__pop, 28 .push = nop_helpline__push, 29 .show = nop_helpline__show, 30}; 31 32struct ui_helpline *helpline_fns = &default_helpline_fns; 33 34void ui_helpline__pop(void) 35{ 36 helpline_fns->pop(); 37} 38 39void ui_helpline__push(const char *msg) 40{ 41 helpline_fns->push(msg); 42} 43 44void ui_helpline__vpush(const char *fmt, va_list ap) 45{ 46 char *s; 47 48 if (vasprintf(&s, fmt, ap) < 0) 49 vfprintf(stderr, fmt, ap); 50 else { 51 ui_helpline__push(s); 52 free(s); 53 } 54} 55 56void ui_helpline__fpush(const char *fmt, ...) 57{ 58 va_list ap; 59 60 va_start(ap, fmt); 61 ui_helpline__vpush(fmt, ap); 62 va_end(ap); 63} 64 65void ui_helpline__puts(const char *msg) 66{ 67 ui_helpline__pop(); 68 ui_helpline__push(msg); 69} 70 71int ui_helpline__vshow(const char *fmt, va_list ap) 72{ 73 return helpline_fns->show(fmt, ap); 74}