ports/devel/gindent/files/patch-src_args.c
Mikael Urankar 15f088e229 devel/gindent: update port
Update of devel/gindent

o Patch buggy patch-src_args.c. It segfaults when used with -orig, -knf, -kr,
  or -gnu.

  The extension of the options struct in args.c by *_PRO_SETTINGS is broken.
  For p_obj a string of a group of options is given. However, in the
  PRO_SETTINGS case, set_option() expects an index for the settings_string
  array instead.

  Details:

        - Remove BSD_PRO_SETTINGS as its string matches exactly
          ORIG_SETTINGS_STRING. So the intended behavior of -orig is already
          available.

        - Remove KR_PRO_SETTINGS as it does not correspond to Kernighan-Ritchie
          style. The flags -sar and -par seem to be missing. Since they are
          included in KR_SETTINGS_STRING, use that string instead.

        - Remove GNU_PRO_SETTINGS as its string matches exactly
          GNU_SETTINGS_STRING; use it instead.

        - Remove KNF_PRO_SETTINGS and introduce KNF_SETTINGS_STRING and use it
          like the other settings strings.

  This makes a version bump necessary, we therefore set PORTREVISION=1.

o Patch Makefile.in to make --htmldir work. Remove post-install target as it's
  not necessary anymore.

o Change PORTVERSION to DISTVERSION (PHB Sect. 5.2.2). Modify DISTNAME
  accordingly.

o Make COMMENT more meaningful.

o Remove MAKE_JOBS_UNSAFE as tests suggest that it's not necessary (anymore).

o Add groff:run to USES variable. This registers a dependency on
  textproc/groff. It's needed to render the manpage.

o Added description for NLS option, which is slightly more verbose then the
  default description.

PR:		250876
Submitted by:	Moritz Schmitt <moritz@schmi.tt> (maintainer)
2020-11-07 16:02:42 +00:00

179 lines
16 KiB
C

--- src/args.c.orig 2018-09-02 20:30:45 UTC
+++ src/args.c
@@ -105,13 +105,20 @@ RCSTAG_CC ("$Id$");
"-npcs\0-nprs\0-npsl\0-sai\0-saf\0-saw\0-ncs\0-nsc\0-sob\0-nfca\0-cp33\0-ss\0" \
"-ts8\0-il1\0-nbs\0"
-const char *settings_strings[6] = {
+#define KNF_SETTINGS_STRING \
+ "-bad\0-bap\0-nbbb\0-nbc\0-bbo\0-br\0-brs\0-nbs\0-c33\0-cd33\0-cdb\0" \
+ "-ce\0-ci4\0-cli0\0-cp33\0-ncs\0-d0\0-di0\0-ndj\0-nfc1\0-nfca\0-hnl\0" \
+ "-i8\0-ip8\0-l79\0-nlp\0-npcs\0-nprs\0-psl\0-sai\0-saf\0-saw\0-sc\0" \
+ "-nsob\0-nss\0"
+
+const char *settings_strings[7] = {
KR_SETTINGS_STRING,
GNU_SETTINGS_STRING,
ORIG_SETTINGS_STRING,
LINUX_SETTINGS_STRING,
"-ip0\0",
- VERSION
+ VERSION,
+ KNF_SETTINGS_STRING
};
#define KR_SETTINGS_IDX (void *)0
@@ -120,6 +127,7 @@ const char *settings_strings[6] = {
#define LINUX_SETTINGS_IDX (void *)3
#define NIP_SETTINGS_IDX (void *)4
#define VERSION_SETTINGS_IDX (void *)5
+#define KNF_SETTINGS_IDX (void *)6
/**
* Profile types. These identify what kind of switches and arguments
@@ -188,6 +196,7 @@ static int exp_hnl = 0;
static int exp_i = 0;
static int exp_il = 0;
static int exp_ip = 0;
+static int exp_knf = 0;
static int exp_kr = 0;
static int exp_l = 0;
static int exp_lc = 0;
@@ -296,66 +305,69 @@ const pro_ty pro[] =
#endif
{"pi", PRO_INT, -1, ONOFF_NA, &settings.paren_indent, &exp_pi},
{"pcs", PRO_BOOL, false, ON, &settings.proc_calls_space, &exp_pcs},
+ {"orig", PRO_SETTINGS, 0, ONOFF_NA, ORIG_SETTINGS_IDX, &exp_orig},
{"o", PRO_BOOL, false, ON, &settings.expect_output_file, &exp_o},
{"nv", PRO_BOOL, false, OFF, &settings.verbose, &exp_v},
- {"nut", PRO_BOOL, true, OFF, &settings.use_tabs, &exp_ut},
- {"nss", PRO_BOOL, false, OFF, &settings.space_sp_semicolon, &exp_ss},
- {"nsob", PRO_BOOL, false, OFF, &settings.swallow_optional_blanklines, &exp_sob},
- {"nsc", PRO_BOOL, true, OFF, &settings.star_comment_cont, &exp_sc},
- {"nsaw", PRO_BOOL, true, OFF, &settings.space_after_while, &exp_saw},
- {"nsai", PRO_BOOL, true, OFF, &settings.space_after_if, &exp_sai},
- {"nsaf", PRO_BOOL, true, OFF, &settings.space_after_for, &exp_saf},
- {"npsl", PRO_BOOL, true, OFF, &settings.procnames_start_line, &exp_psl},
- {"nprs", PRO_BOOL, false, OFF, &settings.parentheses_space, &exp_prs},
+ {"nut", PRO_BOOL, false, OFF, &settings.use_tabs, &exp_ut},
+ {"nss", PRO_BOOL, true, OFF, &settings.space_sp_semicolon, &exp_ss},
+ {"nsob", PRO_BOOL, true, OFF, &settings.swallow_optional_blanklines, &exp_sob},
+ {"nsc", PRO_BOOL, false, OFF, &settings.star_comment_cont, &exp_sc},
+ {"nsaw", PRO_BOOL, false, OFF, &settings.space_after_while, &exp_saw},
+ {"nsai", PRO_BOOL, false, OFF, &settings.space_after_if, &exp_sai},
+ {"nsaf", PRO_BOOL, false, OFF, &settings.space_after_for, &exp_saf},
+ {"npsl", PRO_BOOL, false, OFF, &settings.procnames_start_line, &exp_psl},
+ {"nprs", PRO_BOOL, true, OFF, &settings.parentheses_space, &exp_prs},
{"npro", PRO_IGN, 0, ONOFF_NA, 0, &exp_pro},
#ifdef PRESERVE_MTIME
{"npmt", PRO_BOOL, false, OFF, &settings.preserve_mtime, &exp_pmt},
#endif
- {"npcs", PRO_BOOL, false, OFF, &settings.proc_calls_space, &exp_pcs},
+ {"npcs", PRO_BOOL, true, OFF, &settings.proc_calls_space, &exp_pcs},
{"nlps", PRO_BOOL, false, OFF, &settings.leave_preproc_space, &exp_lps},
{"nlp", PRO_BOOL, true, OFF, &settings.lineup_to_parens, &exp_lp},
{"nip", PRO_SETTINGS, 0, ONOFF_NA, NIP_SETTINGS_IDX, &exp_nip},
- {"nhnl", PRO_BOOL, true, OFF, &settings.honour_newlines, &exp_hnl},
+ {"nhnl", PRO_BOOL, false, OFF, &settings.honour_newlines, &exp_hnl},
{"ngts", PRO_BOOL, false, OFF, &settings.gettext_strings, &exp_gts},
{"nfca", PRO_BOOL, true, OFF, &settings.format_comments, &exp_fca},
{"nfc1", PRO_BOOL, true, OFF, &settings.format_col1_comments, &exp_fc1},
{"neei", PRO_BOOL, false, OFF, &settings.extra_expression_indent, &exp_eei},
- {"ndj", PRO_BOOL, false, OFF, &settings.ljust_decl, &exp_dj},
- {"ncs", PRO_BOOL, true, OFF, &settings.cast_space, &exp_cs},
- {"nce", PRO_BOOL, true, OFF, &settings.cuddle_else, &exp_ce},
+ {"ndj", PRO_BOOL, true, OFF, &settings.ljust_decl, &exp_dj},
+ {"ncs", PRO_BOOL, false, OFF, &settings.cast_space, &exp_cs},
+ {"nce", PRO_BOOL, false, OFF, &settings.cuddle_else, &exp_ce},
{"ncdw", PRO_BOOL, false, OFF, &settings.cuddle_do_while, &exp_cdw},
- {"ncdb", PRO_BOOL, true, OFF, &settings.comment_delimiter_on_blankline, &exp_cdb},
+ {"ncdb", PRO_BOOL, false, OFF, &settings.comment_delimiter_on_blankline, &exp_cdb},
{"nbs", PRO_BOOL, false, OFF, &settings.blank_after_sizeof, &exp_bs},
{"nbfda", PRO_BOOL, false, OFF, &settings.break_function_decl_args, &exp_bfda},
{"nbfde", PRO_BOOL, false, OFF, &settings.break_function_decl_args_end, &exp_bfde},
{"nbc", PRO_BOOL, true, ON, &settings.leave_comma, &exp_bc},
- {"nbbo", PRO_BOOL, true, OFF, &settings.break_before_boolean_operator, &exp_bbo},
- {"nbbb", PRO_BOOL, false, OFF, &settings.blanklines_before_blockcomments, &exp_bbb},
+ {"nbbo", PRO_BOOL, false, OFF, &settings.break_before_boolean_operator, &exp_bbo},
+ {"nbbb", PRO_BOOL, true, OFF, &settings.blanklines_before_blockcomments, &exp_bbb},
{"nbap", PRO_BOOL, false, OFF, &settings.blanklines_after_procs, &exp_bap},
{"nbadp", PRO_BOOL, false, OFF, &settings.blanklines_after_declarations_at_proctop, &exp_badp},
{"nbad", PRO_BOOL, false, OFF, &settings.blanklines_after_declarations, &exp_bad},
{"nbacc", PRO_BOOL, false, OFF, &settings.blanklines_around_conditional_compilation, &exp_bacc},
{"linux", PRO_SETTINGS, 0, ONOFF_NA, LINUX_SETTINGS_IDX, &exp_linux},
{"lps", PRO_BOOL, false, ON, &settings.leave_preproc_space, &exp_lps},
- {"lp", PRO_BOOL, true, ON, &settings.lineup_to_parens, &exp_lp},
+ {"lp", PRO_BOOL, false, ON, &settings.lineup_to_parens, &exp_lp},
{"lc", PRO_INT, DEFAULT_RIGHT_COMMENT_MARGIN, ONOFF_NA, &settings.comment_max_col, &exp_lc},
{"l", PRO_INT, DEFAULT_RIGHT_MARGIN, ONOFF_NA, &settings.max_col, &exp_l},
+/* This is now the default. */
+ {"knf", PRO_SETTINGS, 0, ONOFF_NA, KNF_SETTINGS_IDX, &exp_knf},
{"kr", PRO_SETTINGS, 0, ONOFF_NA, KR_SETTINGS_IDX, &exp_kr},
- {"ip", PRO_INT, 4, ONOFF_NA, &settings.indent_parameters, &exp_ip},
- {"i", PRO_INT, 4, ONOFF_NA, &settings.ind_size, &exp_i},
+ {"ip", PRO_INT, 8, ONOFF_NA, &settings.indent_parameters, &exp_ip},
+ {"i", PRO_INT, 8, ONOFF_NA, &settings.ind_size, &exp_i},
{"il", PRO_INT, DEFAULT_LABEL_INDENT, ONOFF_NA, &settings.label_offset, &exp_il},
{"hnl", PRO_BOOL, true, ON, &settings.honour_newlines, &exp_hnl},
{"h", PRO_BOOL, 0, ONOFF_NA, NULL, NULL},
{"gts", PRO_BOOL, false, ON, &settings.gettext_strings, &exp_gts},
{"gnu", PRO_SETTINGS, 0, ONOFF_NA, GNU_SETTINGS_IDX, &exp_gnu},
{"fnc", PRO_BOOL, false, ON, &settings.fix_nested_comments, &exp_fnc},
- {"fca", PRO_BOOL, true, ON, &settings.format_comments, &exp_fca},
- {"fc1", PRO_BOOL, true, ON, &settings.format_col1_comments, &exp_fc1},
+ {"fca", PRO_BOOL, false, ON, &settings.format_comments, &exp_fca},
+ {"fc1", PRO_BOOL, false, ON, &settings.format_col1_comments, &exp_fc1},
{"eei", PRO_BOOL, false, ON, &settings.extra_expression_indent, &exp_eei},
{"dj", PRO_BOOL, false, ON, &settings.ljust_decl, &exp_dj},
- {"di", PRO_INT, 16, ONOFF_NA, &settings.decl_indent, &exp_di},
+ {"di", PRO_INT, 0, ONOFF_NA, &settings.decl_indent, &exp_di},
{"d", PRO_INT, 0, ONOFF_NA, &settings.unindent_displace, &exp_d},
- {"cs", PRO_BOOL, true, ON, &settings.cast_space, &exp_cs},
+ {"cs", PRO_BOOL, false, ON, &settings.cast_space, &exp_cs},
{"cp", PRO_INT, 33, ONOFF_NA, &settings.else_endif_col, &exp_cp},
{"cli", PRO_INT, 0, ONOFF_NA, &settings.case_indent, &exp_cli},
{"ci", PRO_INT, 4, ONOFF_NA, &settings.continuation_indent, &exp_ci},
@@ -376,12 +388,12 @@ const pro_ty pro[] =
{"bl", PRO_BOOL, true, OFF, &settings.btype_2, &exp_bl},
{"bfda", PRO_BOOL, false, ON, &settings.break_function_decl_args, &exp_bfda},
{"bfde", PRO_BOOL, false, ON, &settings.break_function_decl_args_end, &exp_bfde},
- {"bc", PRO_BOOL, true, OFF, &settings.leave_comma, &exp_bc},
+ {"bc", PRO_BOOL, false, OFF, &settings.leave_comma, &exp_bc},
{"bbo", PRO_BOOL, true, ON, &settings.break_before_boolean_operator, &exp_bbo},
{"bbb", PRO_BOOL, false, ON, &settings.blanklines_before_blockcomments, &exp_bbb},
- {"bap", PRO_BOOL, false, ON, &settings.blanklines_after_procs, &exp_bap},
- {"badp", PRO_BOOL, false, ON, &settings.blanklines_after_declarations_at_proctop, &exp_badp},
- {"bad", PRO_BOOL, false, ON, &settings.blanklines_after_declarations, &exp_bad},
+ {"bap", PRO_BOOL, true, ON, &settings.blanklines_after_procs, &exp_bap},
+ {"badp", PRO_BOOL, true, ON, &settings.blanklines_after_declarations_at_proctop, &exp_badp},
+ {"bad", PRO_BOOL, true, ON, &settings.blanklines_after_declarations, &exp_bad},
{"bacc", PRO_BOOL, false, ON, &settings.blanklines_around_conditional_compilation, &exp_bacc},
{"T", PRO_KEY, 0, ONOFF_NA, 0, &exp_T},
{"ppi", PRO_INT, 0, ONOFF_NA, &settings.force_preproc_width, &exp_ppi},
@@ -468,6 +480,7 @@ const pro_ty pro[] =
{"lp", PRO_BOOL, true, ON, &settings.lineup_to_parens, &exp_lp},
{"lc", PRO_INT, DEFAULT_RIGHT_COMMENT_MARGIN, ONOFF_NA, &settings.comment_max_col, &exp_lc},
{"l", PRO_INT, DEFAULT_RIGHT_MARGIN, ONOFF_NA, &settings.max_col, &exp_l},
+ {"knf", PRO_SETTINGS, 0, ONOFF_NA, KNF_SETTINGS_IDX, &exp_knf},
{"kr", PRO_SETTINGS, 0, ONOFF_NA, KR_SETTINGS_IDX, &exp_kr},
{"il", PRO_INT, DEFAULT_LABEL_INDENT, ONOFF_NA, &settings.label_offset, &exp_il},
{"ip", PRO_INT, 5, ONOFF_NA, &settings.indent_parameters, &exp_ip},
@@ -649,6 +662,9 @@ const long_option_conversion_ty option_conversions[] =
{"blank-lines-after-declarations", "bad"},
{"blank-lines-after-commas", "bc"},
{"blank-before-sizeof", "bs"},
+ {"berkeley-kernel-style", "knf"},
+ {"berkeley-kernel-normal-form", "knf"},
+ {"kernel-normal-form", "knf"},
{"berkeley-style", "orig"},
{"berkeley", "orig"},
{"Bill-Shannon", "bs"},
@@ -861,7 +877,7 @@ extern int set_option(
if (!found)
{
- DieError(invocation_error, _("%s: unknown option \"%s\"\n"), option_source, option - 1);
+ DieError(invocation_error, _("%s: unknown option \"%s\"\n"), option_source, option - option_length);
}
else if (strlen(p->p_name) == 1 && *(p->p_name) == 'h')
{