diff --git a/.styleguide.cfg b/.styleguide.cfg new file mode 100644 index 0000000..5a103cd --- /dev/null +++ b/.styleguide.cfg @@ -0,0 +1,380 @@ +# Uncrustify 0.55 +# Loosely based on the FreeBSD style guide +newlines = lf +input_tab_size = 2 +output_tab_size = 2 +string_escape_char = 94 +string_escape_char2 = 0 +indent_columns = 2 +indent_continue = 2 +indent_with_tabs = 0 +indent_align_string = false +indent_xml_string = 0 +indent_brace = 0 +indent_braces = false +indent_braces_no_func = false +indent_brace_parent = false +indent_namespace = false +indent_namespace_level = 0 +indent_namespace_limit = 0 +indent_extern = false +indent_class = true +indent_class_colon = true +indent_else_if = false +indent_var_def_blk = 0 +indent_func_call_param = false +indent_func_def_param = false +indent_func_proto_param = false +indent_func_class_param = false +indent_func_ctor_var_param = false +indent_template_param = false +indent_func_param_double = false +indent_func_const = 0 +indent_func_throw = 0 +indent_member = 0 +indent_relative_single_line_comments = false +indent_switch_case = 0 +indent_case_shift = 0 +indent_case_brace = 0 +indent_col1_comment = false +indent_label = 1 +indent_access_spec = 1 +indent_access_spec_body = false +indent_paren_nl = false +indent_paren_close = 0 +indent_comma_paren = 0 +indent_bool_paren = 0 +indent_square_nl = false +indent_preserve_sql = false +indent_align_assign = true +indent_off_after_assign = false +sp_arith = ignore +sp_assign = force +sp_before_assign = ignore +sp_after_assign = ignore +sp_enum_assign = ignore +sp_enum_before_assign = ignore +sp_enum_after_assign = ignore +sp_pp_concat = add +sp_pp_stringify = add +sp_bool = force +sp_compare = force +sp_inside_paren = remove +sp_paren_paren = remove +sp_balance_nested_parens = false +sp_paren_brace = ignore +sp_before_ptr_star = force +sp_before_unnamed_ptr_star = ignore +sp_between_ptr_star = remove +sp_after_ptr_star = remove +sp_after_ptr_star_func = ignore +sp_before_ptr_star_func = ignore +sp_before_byref = remove +sp_before_unnamed_byref = ignore +sp_after_byref = force +sp_after_byref_func = ignore +sp_before_byref_func = ignore +sp_after_type = force +sp_template_angle = ignore +sp_before_angle = remove +sp_inside_angle = remove +sp_after_angle = force +sp_angle_paren = ignore +sp_angle_word = ignore +sp_before_sparen = force +sp_inside_sparen = remove +sp_inside_sparen_close = ignore +sp_after_sparen = force +sp_sparen_brace = add +sp_invariant_paren = ignore +sp_after_invariant_paren = ignore +sp_special_semi = ignore +sp_before_semi = remove +sp_before_semi_for = ignore +sp_before_semi_for_empty = force +sp_after_semi = add +sp_after_semi_for = force +sp_after_semi_for_empty = ignore +sp_before_square = ignore +sp_before_squares = ignore +sp_inside_square = remove +sp_after_comma = force +sp_before_comma = remove +sp_before_ellipsis = ignore +sp_after_class_colon = ignore +sp_before_class_colon = ignore +sp_before_case_colon = remove +sp_after_operator = ignore +sp_after_operator_sym = ignore +sp_after_cast = remove +sp_inside_paren_cast = ignore +sp_cpp_cast_paren = ignore +sp_sizeof_paren = remove +sp_after_tag = ignore +sp_inside_braces_enum = force +sp_inside_braces_struct = force +sp_inside_braces = force +sp_inside_braces_empty = ignore +sp_type_func = force +sp_func_proto_paren = remove +sp_func_def_paren = remove +sp_inside_fparens = ignore +sp_inside_fparen = remove +sp_square_fparen = ignore +sp_fparen_brace = add +sp_func_call_paren = remove +sp_func_call_user_paren = ignore +sp_func_class_paren = remove +sp_return_paren = force +sp_attribute_paren = ignore +sp_defined_paren = ignore +sp_throw_paren = ignore +sp_macro = ignore +sp_macro_func = ignore +sp_else_brace = ignore +sp_brace_else = ignore +sp_brace_typedef = force +sp_catch_brace = ignore +sp_brace_catch = ignore +sp_finally_brace = ignore +sp_brace_finally = ignore +sp_try_brace = ignore +sp_getset_brace = ignore +sp_before_dc = remove +sp_after_dc = remove +sp_d_array_colon = ignore +sp_not = remove +sp_inv = remove +sp_addr = remove +sp_member = remove +sp_deref = remove +sp_sign = remove +sp_incdec = remove +sp_before_nl_cont = add +sp_after_oc_scope = ignore +sp_after_oc_colon = ignore +sp_before_oc_colon = ignore +sp_after_send_oc_colon = ignore +sp_before_send_oc_colon = ignore +sp_after_oc_type = ignore +sp_after_oc_return_type = ignore +sp_after_oc_at_sel = ignore +sp_before_oc_block_caret = ignore +sp_after_oc_block_caret = ignore +sp_cond_colon = ignore +sp_cond_question = ignore +sp_case_label = remove +sp_range = ignore +sp_cmt_cpp_start = ignore +sp_endif_cmt = ignore +force_tab_after_define = true +align_keep_tabs = false +align_with_tabs = false +align_on_tabstop = false +align_number_right = false +align_func_params = false +align_same_func_call_params = false +align_same_func_call_params_span = 0 +align_same_func_call_params_thresh = 0 +align_var_def_span = 0 +align_var_def_star_style = 0 +align_var_def_amp_style = 0 +align_var_def_thresh = 0 +align_var_def_gap = 0 +align_var_def_colon = false +align_var_def_attribute = false +align_var_def_inline = false +align_assign_span = 0 +align_assign_thresh = 12 +align_enum_equ_span = 16 +align_enum_equ_thresh = 0 +align_var_struct_span = 99 +align_var_struct_thresh = 0 +align_var_struct_gap = 0 +align_struct_init_span = 3 +align_typedef_gap = 3 +align_typedef_span = 5 +align_typedef_func = 0 +align_typedef_star_style = 0 +align_typedef_amp_style = 0 +align_right_cmt_span = 3 +align_right_cmt_mix = false +align_right_cmt_gap = 0 +align_right_cmt_at_col = 0 +align_func_proto_span = 0 +align_func_proto_gap = 0 +align_on_operator = false +align_mix_var_proto = false +align_single_line_func = false +align_single_line_brace = false +align_single_line_brace_gap = 0 +align_oc_msg_spec_span = 0 +align_nl_cont = 1 +align_pp_define_gap = 4 +align_pp_define_span = 3 +align_left_shift = true +align_oc_msg_colon_span = 0 +nl_collapse_empty_body = false +nl_assign_leave_one_liners = true +nl_class_leave_one_liners = true +nl_enum_leave_one_liners = false +nl_getset_leave_one_liners = false +nl_func_leave_one_liners = true +nl_if_leave_one_liners = false +nl_start_of_file = remove +nl_start_of_file_min = 0 +nl_end_of_file = force +nl_end_of_file_min = 1 +nl_assign_brace = add +nl_assign_square = ignore +nl_after_square_assign = ignore +nl_fcall_brace = add +nl_enum_brace = remove +nl_struct_brace = remove +nl_union_brace = remove +nl_if_brace = remove +nl_brace_else = remove +nl_elseif_brace = ignore +nl_else_brace = remove +nl_else_if = remove +nl_brace_finally = ignore +nl_finally_brace = ignore +nl_try_brace = ignore +nl_getset_brace = force +nl_for_brace = add +nl_catch_brace = ignore +nl_brace_catch = ignore +nl_while_brace = add +nl_brace_brace = ignore +nl_do_brace = add +nl_brace_while = remove +nl_switch_brace = add +nl_multi_line_cond = false +nl_multi_line_define = true +nl_before_case = true +nl_before_throw = ignore +nl_after_case = true +nl_namespace_brace = ignore +nl_template_class = ignore +nl_class_brace = ignore +nl_class_init_args = ignore +nl_func_type_name = ignore +nl_func_type_name_class = ignore +nl_func_scope_name = ignore +nl_func_proto_type_name = ignore +nl_func_paren = ignore +nl_func_decl_start = ignore +nl_func_decl_start_single = ignore +nl_func_decl_args = ignore +nl_func_decl_end = ignore +nl_func_decl_end_single = ignore +nl_func_decl_empty = ignore +nl_fdef_brace = add +nl_after_return = true +nl_return_expr = ignore +nl_after_semicolon = true +nl_after_brace_open = true +nl_after_brace_open_cmt = false +nl_after_vbrace_open = false +nl_after_vbrace_open_empty = false +nl_after_brace_close = true +nl_define_macro = false +nl_squeeze_ifdef = true +nl_before_if = ignore +nl_after_if = ignore +nl_before_for = ignore +nl_after_for = ignore +nl_before_while = ignore +nl_after_while = ignore +nl_before_switch = ignore +nl_after_switch = ignore +nl_before_do = ignore +nl_after_do = ignore +nl_ds_struct_enum_cmt = false +nl_ds_struct_enum_close_brace = false +nl_class_colon = ignore +nl_create_if_one_liner = false +nl_create_for_one_liner = false +nl_create_while_one_liner = false +pos_arith = ignore +pos_assign = ignore +pos_bool = trail +pos_compare = ignore +pos_conditional = ignore +pos_comma = ignore +pos_class_comma = ignore +pos_class_colon = ignore +code_width = 90 +ls_for_split_full = false +ls_func_split_full = false +nl_max = 4 +nl_after_func_proto = 0 +nl_after_func_proto_group = 2 +nl_after_func_body = 3 +nl_after_func_body_one_liner = 0 +nl_before_block_comment = 2 +nl_before_c_comment = 0 +nl_before_cpp_comment = 0 +nl_after_multiline_comment = false +nl_before_access_spec = 0 +nl_after_access_spec = 0 +nl_comment_func_def = 1 +nl_after_try_catch_finally = 0 +nl_around_cs_property = 0 +nl_between_get_set = 0 +eat_blanks_after_open_brace = true +eat_blanks_before_close_brace = true +mod_full_brace_do = add +mod_full_brace_for = add +mod_full_brace_function = ignore +mod_full_brace_if = add +mod_full_brace_if_chain = 0 +mod_full_brace_nl = 0 +mod_full_brace_while = add +mod_paren_on_return = add +mod_pawn_semicolon = false +mod_full_paren_if_bool = true +mod_remove_extra_semicolon = true +mod_add_long_function_closebrace_comment = 0 +mod_add_long_switch_closebrace_comment = 0 +mod_add_long_ifdef_endif_comment = 0 +mod_add_long_ifdef_else_comment = 0 +mod_sort_import = false +mod_sort_using = false +mod_sort_include = false +mod_sort_incl_import_prioritize_filename = false +mod_sort_incl_import_prioritize_extensionless = false +mod_sort_incl_import_prioritize_angle_over_quotes = false +mod_sort_incl_import_ignore_extension = false +mod_sort_incl_import_grouping_enabled = false +mod_move_case_break = false +mod_case_brace = remove +mod_remove_empty_return = true +cmt_width = 0 +cmt_reflow_mode = 0 +cmt_indent_multi = true +cmt_c_group = false +cmt_c_nl_start = false +cmt_c_nl_end = false +cmt_cpp_group = false +cmt_cpp_nl_start = false +cmt_cpp_nl_end = false +cmt_cpp_to_c = false +cmt_star_cont = true +cmt_sp_before_star_cont = 0 +cmt_sp_after_star_cont = 0 +cmt_multi_check_last = true +cmt_insert_file_header = "" +cmt_insert_file_footer = "" +cmt_insert_func_header = "" +cmt_insert_class_header = "" +cmt_insert_before_preproc = false +pp_indent = remove +pp_indent_at_level = false +pp_indent_count = 1 +pp_space_count = 0 +pp_indent_region = 0 +pp_region_indent_code = false +pp_indent_if = 0 +pp_if_indent_code = false +pp_define_at_level = false diff --git a/Rakefile.rb b/Rakefile.rb index 8b4ca21..b682638 100644 --- a/Rakefile.rb +++ b/Rakefile.rb @@ -2,3 +2,8 @@ require "bundler/setup" require "rake/extensiontask" Rake::ExtensionTask.new("hbsdctl.rb") task default: %w[clobber compile test] + +desc "Run C linter" +task :styleguide do + sh "uncrustify -c .styleguide.cfg --no-backup ext/hbsdctl.rb/*.c" +end diff --git a/ext/hbsdctl.rb/hbsdctl.c b/ext/hbsdctl.rb/hbsdctl.c index c81c6bc..337a802 100644 --- a/ext/hbsdctl.rb/hbsdctl.c +++ b/ext/hbsdctl.rb/hbsdctl.c @@ -8,28 +8,31 @@ get_rb_eError(void) VALUE rb_mBSD = rb_const_get(rb_cObject, rb_intern("BSD")), rb_mControl = rb_const_get(rb_mBSD, rb_intern("Control")), rb_eError = rb_const_get(rb_mControl, rb_intern("Error")); - return rb_eError; + return (rb_eError); } + static VALUE ffi_library_version(VALUE self) { const char *ver; ver = hbsdcontrol_get_version(); - return rb_str_new2(ver); + return (rb_str_new2(ver)); } + static VALUE ffi_available_features(VALUE self) { const struct pax_feature_entry *entry = &pax_features[0]; - VALUE rb_mBSD = rb_const_get(rb_cObject, rb_intern("BSD")), - rb_mControl = rb_const_get(rb_mBSD, rb_intern("Control")), - rb_cFeature = rb_const_get(rb_mControl, rb_intern("Feature")), - features = rb_ary_new(), - feature = 0; + VALUE rb_mBSD = rb_const_get(rb_cObject, rb_intern("BSD")), + rb_mControl = rb_const_get(rb_mBSD, rb_intern("Control")), + rb_cFeature = rb_const_get(rb_mControl, rb_intern("Feature")), + features = rb_ary_new(), + feature = 0; - while (entry->feature != NULL) { + while (entry->feature != NULL) + { feature = rb_funcall( rb_cFeature, rb_intern("new"), @@ -37,13 +40,14 @@ ffi_available_features(VALUE self) rb_str_new2(entry->feature), rb_str_new2(entry->extattr[1]), rb_str_new2(entry->extattr[0]) - ); + ); rb_ary_push(features, feature); entry++; } - return features; + return (features); } + static VALUE ffi_reset(VALUE self, VALUE rb_feature, VALUE rb_path) { @@ -61,9 +65,10 @@ ffi_reset(VALUE self, VALUE rb_feature, VALUE rb_path) disable_flag = RSTRING_PTR(rb_disable_flag); r = hbsdcontrol_extattr_rm_attr(path, disable_flag); r &= hbsdcontrol_extattr_rm_attr(path, enable_flag); - return r == 0 ? Qtrue : Qfalse; + return (r == 0 ? Qtrue : Qfalse); } + static VALUE feature_set(VALUE self, VALUE path, VALUE state) { @@ -83,21 +88,22 @@ feature_set(VALUE self, VALUE path, VALUE state) cpath, RSTRING_PTR(name), NUM2INT(state) - ); + ); if (r == 0) { - return Qtrue; + return (Qtrue); } else { rb_raise(get_rb_eError(), "hbsdcontrol_set_feature_state failed"); } } + void Init_hbsdctl(void) { - VALUE rb_mBSD = rb_const_get(rb_cObject, rb_intern("BSD")), - rb_mControl = rb_const_get(rb_mBSD, rb_intern("Control")), - rb_cFeature = rb_const_get(rb_mControl, rb_intern("Feature")), - rb_mFFI = rb_const_get(rb_mControl, rb_intern("FFI")); + VALUE rb_mBSD = rb_const_get(rb_cObject, rb_intern("BSD")), + rb_mControl = rb_const_get(rb_mBSD, rb_intern("Control")), + rb_cFeature = rb_const_get(rb_mControl, rb_intern("Feature")), + rb_mFFI = rb_const_get(rb_mControl, rb_intern("FFI")); rb_define_const(rb_mControl, "Disable", INT2NUM(0)); rb_define_const(rb_mControl, "Enable", INT2NUM(1));