Coverage Report

Created: 2026-11-12 07:04

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/flac/src/metaflac/main.c
Line
Count
Source
1
/* metaflac - Command-line FLAC metadata editor
2
 * Copyright (C) 2001-2009  Josh Coalson
3
 * Copyright (C) 2011-2025  Xiph.Org Foundation
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License along
16
 * with this program; if not, write to the Free Software Foundation, Inc.,
17
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
 */
19
20
#ifdef HAVE_CONFIG_H
21
#  include <config.h>
22
#endif
23
24
#include "operations.h"
25
#include "options.h"
26
#include <locale.h>
27
#include <stdlib.h>
28
#include <string.h>
29
#include "share/compat.h"
30
31
#ifndef FUZZ_TOOL_METAFLAC
32
int main(int argc, char *argv[])
33
#else
34
static int main_to_fuzz(int argc, char *argv[])
35
#endif
36
15.7k
{
37
15.7k
  CommandLineOptions options;
38
15.7k
  int ret = 0;
39
40
#ifdef __EMX__
41
  _response(&argc, &argv);
42
  _wildcard(&argc, &argv);
43
#endif
44
#ifdef _WIN32
45
  if (get_utf8_argv(&argc, &argv) != 0) {
46
    fputs("ERROR: failed to convert command line parameters to UTF-8\n", stderr);
47
    return 1;
48
  }
49
#endif
50
51
#ifdef _WIN32
52
  {
53
    const char *var;
54
    var = getenv("LC_ALL");
55
    if (!var)
56
      var = getenv("LC_NUMERIC");
57
    if (!var)
58
      var = getenv("LANG");
59
    if (!var || strcmp(var, "C") != 0)
60
      setlocale(LC_ALL, "");
61
  }
62
#else
63
15.7k
  setlocale(LC_ALL, "");
64
15.7k
#endif
65
15.7k
  init_options(&options);
66
67
15.7k
  if ((ret = parse_options(argc, argv, &options)) == 0)
68
13.3k
    ret = !do_operations(&options);
69
2.41k
  else
70
2.41k
    ret = 1;
71
72
15.7k
  free_options(&options);
73
74
15.7k
  return ret;
75
15.7k
}