root/tools/perf/ui/helpline.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. nop_helpline__pop
  2. nop_helpline__push
  3. nop_helpline__show
  4. ui_helpline__pop
  5. ui_helpline__push
  6. ui_helpline__vpush
  7. ui_helpline__fpush
  8. ui_helpline__puts
  9. ui_helpline__vshow
  10. ui_helpline__printf

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

/* [<][>][^][v][top][bottom][index][help] */