Coverage Report

Created: 2026-01-10 07:04

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/gnupg/g10/helptext.c
Line
Count
Source
1
/* helptext.c  - English help texts
2
 * Copyright (C) 1998, 1999, 2000, 2001, 2002,
3
 *               2004, 2007 Free Software Foundation, Inc.
4
 *
5
 * This file is part of GnuPG.
6
 *
7
 * GnuPG is free software; you can redistribute it and/or modify
8
 * it under the terms of the GNU General Public License as published by
9
 * the Free Software Foundation; either version 3 of the License, or
10
 * (at your option) any later version.
11
 *
12
 * GnuPG is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 * GNU General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU General Public License
18
 * along with this program; if not, see <https://www.gnu.org/licenses/>.
19
 */
20
21
#include <config.h>
22
#include <stdio.h>
23
#include <stdlib.h>
24
#include <string.h>
25
26
#include "gpg.h"
27
#include "../common/util.h"
28
#include "../common/ttyio.h"
29
#include "main.h"
30
#include "../common/i18n.h"
31
32
33
34
35
/* Helper to get the help through the configurable GnuPG help
36
   system.  */
37
static char *
38
get_help_from_file (const char *keyword)
39
0
{
40
0
  char *key, *result;
41
42
0
  key = xtrymalloc (4 + strlen (keyword) + 1);
43
0
  if (key)
44
0
    {
45
0
      strcpy (stpcpy (key, "gpg."), keyword);
46
0
      result = gnupg_get_help_string (key, 0);
47
0
      xfree (key);
48
0
      if (result && !is_native_utf8 ())
49
0
        {
50
0
          char *tmp = utf8_to_native (result, strlen (result), -1);
51
0
          if (tmp)
52
0
            {
53
0
              xfree (result);
54
0
              result = tmp;
55
0
            }
56
0
        }
57
0
    }
58
0
  else
59
0
    result = NULL;
60
0
  return result;
61
0
}
62
63
64
void
65
display_online_help( const char *keyword )
66
0
{
67
0
  char *result;
68
0
  int need_final_lf = 1;
69
70
0
  tty_kill_prompt();
71
0
  if ( !keyword )
72
0
    tty_printf (_("No help available") );
73
0
  else if ( (result = get_help_from_file (keyword)) )
74
0
    {
75
0
      tty_printf ("%s", result);
76
0
      if (*result && result[strlen (result)-1] == '\n')
77
0
        need_final_lf = 0;
78
0
      xfree (result);
79
0
    }
80
0
  else
81
0
    {
82
0
      tty_printf (_("No help available for '%s'"), keyword );
83
0
    }
84
0
  if (need_final_lf)
85
0
    tty_printf("\n");
86
0
}