diff --git a/libasn1compiler/asn1c_constraint.h b/libasn1compiler/asn1c_constraint.h
index 7c2ffa8..66a7970 100644
--- a/libasn1compiler/asn1c_constraint.h
+++ b/libasn1compiler/asn1c_constraint.h
@@ -1,6 +1,6 @@
-#ifndef	_ASN1C_CONSTRAINT_H_
-#define	_ASN1C_CONSTRAINT_H_
+#ifndef	ASN1C_CONSTRAINT_H
+#define	ASN1C_CONSTRAINT_H
 
 int asn1c_emit_constraint_checking_code(arg_t *arg);
 
-#endif	/* _ASN1C_CONSTRAINT_H_ */
+#endif	/* ASN1C_CONSTRAINT_H */
diff --git a/libasn1compiler/asn1c_fdeps.h b/libasn1compiler/asn1c_fdeps.h
index 27ef2c6..7986e34 100644
--- a/libasn1compiler/asn1c_fdeps.h
+++ b/libasn1compiler/asn1c_fdeps.h
@@ -1,5 +1,5 @@
-#ifndef	_ASN1C_FDEPS_H_
-#define	_ASN1C_FDEPS_H_
+#ifndef	ASN1C_FDEPS_H
+#define	ASN1C_FDEPS_H
 
 typedef struct asn1c_fdeps_s {
 	char *filename;		/* Or 0, if root. */
@@ -26,4 +26,4 @@
 
 asn1c_fdeps_t *asn1c_deps_makelist(asn1c_fdeps_t *deps);
 
-#endif	/* _ASN1C_FDEPS_H_ */
+#endif	/* ASN1C_FDEPS_H */
diff --git a/libasn1compiler/asn1c_internal.h b/libasn1compiler/asn1c_internal.h
index f97a40b..c86d75e 100644
--- a/libasn1compiler/asn1c_internal.h
+++ b/libasn1compiler/asn1c_internal.h
@@ -1,5 +1,5 @@
-#ifndef	_ASN1_COMPILER_INTERNAL_H_
-#define	_ASN1_COMPILER_INTERNAL_H_
+#ifndef	ASN1_COMPILER_INTERNAL_H
+#define	ASN1_COMPILER_INTERNAL_H
 
 #ifdef	HAVE_CONFIG_H
 #include <config.h>
@@ -70,4 +70,4 @@
 #define	WARNING(fmt, args...)	LOG(0, fmt, ##args);
 #define	FATAL(fmt, args...)	LOG(1, fmt, ##args);
 
-#endif	/* _ASN1_COMPILER_INTERNAL_H_ */
+#endif	/* ASN1_COMPILER_INTERNAL_H */
diff --git a/libasn1compiler/asn1c_misc.h b/libasn1compiler/asn1c_misc.h
index 4cb26ac..ee88cb1 100644
--- a/libasn1compiler/asn1c_misc.h
+++ b/libasn1compiler/asn1c_misc.h
@@ -1,5 +1,5 @@
-#ifndef	_ASN1_COMPILER_MISC_H_
-#define	_ASN1_COMPILER_MISC_H_
+#ifndef	ASN1_COMPILER_MISC_H
+#define	ASN1_COMPILER_MISC_H
 
 /*
  * Make the target language identifier out of one or more names.
@@ -42,4 +42,4 @@
 };
 enum asn1c_fitslong_e asn1c_type_fits_long(arg_t *arg, asn1p_expr_t *expr);
 
-#endif	/* _ASN1_COMPILER_MISC_H_ */
+#endif	/* ASN1_COMPILER_MISC_H */
diff --git a/libasn1compiler/asn1c_out.h b/libasn1compiler/asn1c_out.h
index d68f3a8..e21827e 100644
--- a/libasn1compiler/asn1c_out.h
+++ b/libasn1compiler/asn1c_out.h
@@ -1,5 +1,5 @@
-#ifndef	_ASN1_COMPILED_OUTPUT_H_
-#define	_ASN1_COMPILED_OUTPUT_H_
+#ifndef	ASN1_COMPILED_OUTPUT_H
+#define	ASN1_COMPILED_OUTPUT_H
 
 /*
  * An elementary chunk of target language text.
@@ -130,4 +130,4 @@
 		OUT("% " PRIdASN, iv);				\
 } while(0)
 
-#endif	/* _ASN1_COMPILED_OUTPUT_H_ */
+#endif	/* ASN1_COMPILED_OUTPUT_H */
diff --git a/libasn1compiler/asn1c_save.h b/libasn1compiler/asn1c_save.h
index d7382f4..d473086 100644
--- a/libasn1compiler/asn1c_save.h
+++ b/libasn1compiler/asn1c_save.h
@@ -1,7 +1,7 @@
-#ifndef	_ASN1C_SAVE_H_
-#define	_ASN1C_SAVE_H_
+#ifndef	ASN1C_SAVE_H
+#define	ASN1C_SAVE_H
 
 int asn1c_save_compiled_output(arg_t *arg, const char *datadir,
 	int argc, int optc, char **argv);
 
-#endif	/* _ASN1C_SAVE_H_ */
+#endif	/* ASN1C_SAVE_H */
diff --git a/libasn1fix/asn1fix_bitstring.h b/libasn1fix/asn1fix_bitstring.h
index 1230856..79b3d00 100644
--- a/libasn1fix/asn1fix_bitstring.h
+++ b/libasn1fix/asn1fix_bitstring.h
@@ -1,6 +1,6 @@
-#ifndef	_ASN1FIX_BIT_STRING_H_
-#define	_ASN1FIX_BIT_STRING_H_
+#ifndef	ASN1FIX_BIT_STRING_H
+#define	ASN1FIX_BIT_STRING_H
 
 int asn1f_fix_bit_string(arg_t *);
 
-#endif	/* _ASN1FIX_BIT_STRING_H_ */
+#endif	/* ASN1FIX_BIT_STRING_H */
diff --git a/libasn1fix/asn1fix_class.h b/libasn1fix/asn1fix_class.h
index b704ff8..2120bc8 100644
--- a/libasn1fix/asn1fix_class.h
+++ b/libasn1fix/asn1fix_class.h
@@ -1,9 +1,9 @@
-#ifndef	_ASN1FIX_CLASS_H_
-#define	_ASN1FIX_CLASS_H_
+#ifndef	ASN1FIX_CLASS_H
+#define	ASN1FIX_CLASS_H
 
 /*
  * Fetch the element from the class-related stuff (thing) by its reference.
  */
 asn1p_expr_t *asn1f_class_access(arg_t *, asn1p_module_t *mod, asn1p_expr_t *rhs_pspecs, asn1p_ref_t *);
 
-#endif	/* _ASN1FIX_CLASS_H_ */
+#endif	/* ASN1FIX_CLASS_H */
diff --git a/libasn1fix/asn1fix_compat.h b/libasn1fix/asn1fix_compat.h
index 429e7dd..b147a1b 100644
--- a/libasn1fix/asn1fix_compat.h
+++ b/libasn1fix/asn1fix_compat.h
@@ -1,5 +1,5 @@
-#ifndef	_ASN1FIX_COMPAT_H_
-#define	_ASN1FIX_COMPAT_H_
+#ifndef	ASN1FIX_COMPAT_H
+#define	ASN1FIX_COMPAT_H
 
 /*
  * Check that the expressions given are compatible in their type.
@@ -11,4 +11,4 @@
 	asn1p_expr_t *a,
 	asn1p_expr_t *b);
 
-#endif	/* _ASN1FIX_COMPAT_H_ */
+#endif	/* ASN1FIX_COMPAT_H */
diff --git a/libasn1fix/asn1fix_constr.h b/libasn1fix/asn1fix_constr.h
index ffed143..5d9c4f9 100644
--- a/libasn1fix/asn1fix_constr.h
+++ b/libasn1fix/asn1fix_constr.h
@@ -1,5 +1,5 @@
-#ifndef	_ASN1FIX_CONSTRUCTED_H_
-#define	_ASN1FIX_CONSTRUCTED_H_
+#ifndef	ASN1FIX_CONSTRUCTED_H
+#define	ASN1FIX_CONSTRUCTED_H
 
 /*
  * Pull in COMPONENTS OF.
@@ -26,4 +26,4 @@
  */
 int asn1f_fix_constr_autotag(arg_t *);
 
-#endif	/* _ASN1FIX_CONSTRUCTED_H_ */
+#endif	/* ASN1FIX_CONSTRUCTED_H */
diff --git a/libasn1fix/asn1fix_constraint.h b/libasn1fix/asn1fix_constraint.h
index 9e692ef..a027513 100644
--- a/libasn1fix/asn1fix_constraint.h
+++ b/libasn1fix/asn1fix_constraint.h
@@ -1,5 +1,5 @@
-#ifndef	_ASN1FIX_CONSTRAINT_H_
-#define	_ASN1FIX_CONSTRAINT_H_
+#ifndef	ASN1FIX_CONSTRAINT_H
+#define	ASN1FIX_CONSTRAINT_H
 
 /*
  * Resolve referenced values inside constraints.
@@ -16,4 +16,4 @@
  */
 int asn1constraint_pullup(arg_t *arg);
 
-#endif	/* _ASN1FIX_CONSTRAINT_H_ */
+#endif	/* ASN1FIX_CONSTRAINT_H */
diff --git a/libasn1fix/asn1fix_cstring.h b/libasn1fix/asn1fix_cstring.h
index bd647ab..9804d21 100644
--- a/libasn1fix/asn1fix_cstring.h
+++ b/libasn1fix/asn1fix_cstring.h
@@ -1,6 +1,6 @@
-#ifndef	_ASN1FIX_CSTRING_H_
-#define	_ASN1FIX_CSTRING_H_
+#ifndef	ASN1FIX_CSTRING_H
+#define	ASN1FIX_CSTRING_H
 
 int asn1f_fix_cstring(arg_t *);
 
-#endif	/* _ASN1FIX_CSTRING_H_ */
+#endif	/* ASN1FIX_CSTRING_H */
diff --git a/libasn1fix/asn1fix_cws.h b/libasn1fix/asn1fix_cws.h
index aa76b49..3d24f16 100644
--- a/libasn1fix/asn1fix_cws.h
+++ b/libasn1fix/asn1fix_cws.h
@@ -1,9 +1,9 @@
-#ifndef	_ASN1FIX_CLASS_WITH_SYNTAX_H_
-#define	_ASN1FIX_CLASS_WITH_SYNTAX_H_
+#ifndef	ASN1FIX_CLASS_WITH_SYNTAX_H
+#define	ASN1FIX_CLASS_WITH_SYNTAX_H
 
 /*
  * Parse class objects
  */
 int asn1f_parse_class_object(arg_t *arg);
 
-#endif	/* _ASN1FIX_CLASS_WITH_SYNTAX_H_ */
+#endif	/* ASN1FIX_CLASS_WITH_SYNTAX_H */
diff --git a/libasn1fix/asn1fix_dereft.h b/libasn1fix/asn1fix_dereft.h
index bee8151..36f3f2e 100644
--- a/libasn1fix/asn1fix_dereft.h
+++ b/libasn1fix/asn1fix_dereft.h
@@ -1,6 +1,6 @@
-#ifndef	_ASN1FIX_DEREFT_H_
-#define	_ASN1FIX_DEREFT_H_
+#ifndef	ASN1FIX_DEREFT_H
+#define	ASN1FIX_DEREFT_H
 
 int asn1f_fix_dereference_types(arg_t *);
 
-#endif	/* _ASN1FIX_DEREFT_H_ */
+#endif	/* ASN1FIX_DEREFT_H */
diff --git a/libasn1fix/asn1fix_derefv.h b/libasn1fix/asn1fix_derefv.h
index 3964f53..2e69317 100644
--- a/libasn1fix/asn1fix_derefv.h
+++ b/libasn1fix/asn1fix_derefv.h
@@ -1,8 +1,8 @@
-#ifndef	_ASN1FIX_DEREFV_H_
-#define	_ASN1FIX_DEREFV_H_
+#ifndef	ASN1FIX_DEREFV_H
+#define	ASN1FIX_DEREFV_H
 
 int asn1f_fix_dereference_values(arg_t *);
 
 int asn1f_fix_dereference_defaults(arg_t *);
 
-#endif	/* _ASN1FIX_DEREFV_H_ */
+#endif	/* ASN1FIX_DEREFV_H */
diff --git a/libasn1fix/asn1fix_enum.h b/libasn1fix/asn1fix_enum.h
index 14c6fb5..7c2a9db 100644
--- a/libasn1fix/asn1fix_enum.h
+++ b/libasn1fix/asn1fix_enum.h
@@ -1,6 +1,6 @@
-#ifndef	_ASN1FIX_ENUM_H_
-#define	_ASN1FIX_ENUM_H_
+#ifndef	ASN1FIX_ENUM_H
+#define	ASN1FIX_ENUM_H
 
 int asn1f_fix_enum(arg_t *);	/* Enumeration ::= ENUMERATED { a(1), b(2) } */
 
-#endif	/* _ASN1FIX_ENUM_H_ */
+#endif	/* ASN1FIX_ENUM_H */
diff --git a/libasn1fix/asn1fix_export.h b/libasn1fix/asn1fix_export.h
index 606ddf8..be06623 100644
--- a/libasn1fix/asn1fix_export.h
+++ b/libasn1fix/asn1fix_export.h
@@ -2,8 +2,8 @@
  * This header exports fixer procedures that are common enough to be used
  * in other modules.
  */
-#ifndef	_ASN1FIX_EXPORT_H_
-#define	_ASN1FIX_EXPORT_H_
+#ifndef	ASN1FIX_EXPORT_H
+#define	ASN1FIX_EXPORT_H
 
 #include "asn1fix_tags.h"
 
@@ -38,4 +38,4 @@
 int asn1f_fix_dereference_values_ex(asn1p_t *asn, asn1p_module_t *mod,
 	asn1p_expr_t *expr);
 
-#endif	/* _ASN1FIX_EXPORT_H_ */
+#endif	/* ASN1FIX_EXPORT_H */
diff --git a/libasn1fix/asn1fix_integer.h b/libasn1fix/asn1fix_integer.h
index d306fc0..cd40d6c 100644
--- a/libasn1fix/asn1fix_integer.h
+++ b/libasn1fix/asn1fix_integer.h
@@ -1,6 +1,6 @@
-#ifndef	_ASN1FIX_INTEGER_H_
-#define	_ASN1FIX_INTEGER_H_
+#ifndef	ASN1FIX_INTEGER_H
+#define	ASN1FIX_INTEGER_H
 
 int asn1f_fix_integer(arg_t *);		/* Type1 ::= INTEGER { a(1), b(2) } */
 
-#endif	/* _ASN1FIX_INTEGER_H_ */
+#endif	/* ASN1FIX_INTEGER_H */
diff --git a/libasn1fix/asn1fix_internal.h b/libasn1fix/asn1fix_internal.h
index cfd9cec..e212359 100644
--- a/libasn1fix/asn1fix_internal.h
+++ b/libasn1fix/asn1fix_internal.h
@@ -1,5 +1,5 @@
-#ifndef	_ASN1FIX_INTERNAL_H_
-#define	_ASN1FIX_INTERNAL_H_
+#ifndef	ASN1FIX_INTERNAL_H
+#define	ASN1FIX_INTERNAL_H
 
 #ifdef	HAVE_CONFIG_H
 #include <config.h>
@@ -135,4 +135,4 @@
 #endif
 
 
-#endif	/* _ASN1FIX_INTERNAL_H_ */
+#endif	/* ASN1FIX_INTERNAL_H */
diff --git a/libasn1fix/asn1fix_misc.h b/libasn1fix/asn1fix_misc.h
index 6dcd220..0114d49 100644
--- a/libasn1fix/asn1fix_misc.h
+++ b/libasn1fix/asn1fix_misc.h
@@ -1,8 +1,8 @@
 /*
  * Miscellaneous functions necessary for several other modules.
  */
-#ifndef	_ASN1FIX_MISC_H_
-#define	_ASN1FIX_MISC_H_
+#ifndef	ASN1FIX_MISC_H
+#define	ASN1FIX_MISC_H
 
 /*
  * Recursively invoke a given function over the given expr and all its
@@ -35,4 +35,4 @@
  */
 int asn1f_check_known_external_type(const char *);
 
-#endif	/* _ASN1FIX_MISC_H_ */
+#endif	/* ASN1FIX_MISC_H */
diff --git a/libasn1fix/asn1fix_param.h b/libasn1fix/asn1fix_param.h
index 5940b0e..6bf5f42 100644
--- a/libasn1fix/asn1fix_param.h
+++ b/libasn1fix/asn1fix_param.h
@@ -1,6 +1,6 @@
-#ifndef	_ASN1FIX_PARAMETERIZATION_H_
-#define	_ASN1FIX_PARAMETERIZATION_H_
+#ifndef	ASN1FIX_PARAMETERIZATION_H
+#define	ASN1FIX_PARAMETERIZATION_H
 
 asn1p_expr_t *asn1f_parameterization_fork(arg_t *arg, asn1p_expr_t *expr, asn1p_expr_t *rhs_pspecs);
 
-#endif	/* _ASN1FIX_PARAMETERIZATION_H_ */
+#endif	/* ASN1FIX_PARAMETERIZATION_H */
diff --git a/libasn1fix/asn1fix_retrieve.h b/libasn1fix/asn1fix_retrieve.h
index 2aeb82b..5323904 100644
--- a/libasn1fix/asn1fix_retrieve.h
+++ b/libasn1fix/asn1fix_retrieve.h
@@ -1,8 +1,8 @@
 /*
  * Miscellaneous functions necessary for several other modules.
  */
-#ifndef	_ASN1FIX_RETRIEVE_H_
-#define	_ASN1FIX_RETRIEVE_H_
+#ifndef	ASN1FIX_RETRIEVE_H
+#define	ASN1FIX_RETRIEVE_H
 
 /*
  * Simple search for the label in the descendants of the given node.
@@ -68,4 +68,4 @@
  */
 asn1p_expr_t *asn1f_find_terminal_value(arg_t *arg, asn1p_expr_t *tc);
 
-#endif	/* _ASN1FIX_RETRIEVE_H_ */
+#endif	/* ASN1FIX_RETRIEVE_H */
diff --git a/libasn1fix/asn1fix_tags.h b/libasn1fix/asn1fix_tags.h
index 0fbbefe..3eb9062 100644
--- a/libasn1fix/asn1fix_tags.h
+++ b/libasn1fix/asn1fix_tags.h
@@ -1,5 +1,5 @@
-#ifndef	_ASN1FIX_TAGS_H_
-#define	_ASN1FIX_TAGS_H_
+#ifndef	ASN1FIX_TAGS_H
+#define	ASN1FIX_TAGS_H
 
 enum asn1f_aft_flags_e {
 	AFT_IMAGINARY_ANY	= 0x01,	/* Treat ANY tag as [IMAGINARY ANY] */
@@ -27,4 +27,4 @@
  */
 int asn1f_fetch_outmost_tag(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *expr, struct asn1p_type_tag_s *tag, enum asn1f_aft_flags_e);
 
-#endif	/* _ASN1FIX_TAGS_H_ */
+#endif	/* ASN1FIX_TAGS_H */
diff --git a/libasn1fix/asn1fix_value.h b/libasn1fix/asn1fix_value.h
index 067894a..00415a9 100644
--- a/libasn1fix/asn1fix_value.h
+++ b/libasn1fix/asn1fix_value.h
@@ -1,8 +1,8 @@
 /*
  * Functions related with processing values.
  */
-#ifndef	_ASN1FIX_VALUE_H_
-#define	_ASN1FIX_VALUE_H_
+#ifndef	ASN1FIX_VALUE_H
+#define	ASN1FIX_VALUE_H
 
 /*
  * Resolve the value given by reference.
@@ -26,4 +26,4 @@
 int asn1f_look_value_in_type(arg_t *arg,
 		asn1p_expr_t *type_expr, asn1p_expr_t *value_expr);
 
-#endif	/* _ASN1FIX_VALUE_H_ */
+#endif	/* ASN1FIX_VALUE_H */
diff --git a/libasn1print/asn1print.h b/libasn1print/asn1print.h
index c24fa0c..02ac4be 100644
--- a/libasn1print/asn1print.h
+++ b/libasn1print/asn1print.h
@@ -1,5 +1,5 @@
-#ifndef	_ASN1PRINT_H_
-#define	_ASN1PRINT_H_
+#ifndef	ASN1PRINT_H
+#define	ASN1PRINT_H
 
 enum asn1print_flags {
 	APF_NOFLAGS,
@@ -16,4 +16,4 @@
 int asn1print(asn1p_t *asn, enum asn1print_flags flags);
 
 
-#endif	/* _ASN1PRINT_H_ */
+#endif	/* ASN1PRINT_H */
diff --git a/skeletons/BIT_STRING.c b/skeletons/BIT_STRING.c
index 9e0e50c..a19f50f 100644
--- a/skeletons/BIT_STRING.c
+++ b/skeletons/BIT_STRING.c
@@ -103,7 +103,7 @@
 			er.encoded += p - scratch;
 			_ASN_CALLBACK(scratch, p - scratch);
 			p = scratch;
-			if(nline) _i_ASN_TEXT_INDENT(1, ilevel);
+			if(nline) ASN__TEXT_INDENT(1, ilevel);
 		}
 		memcpy(p + 0, _bit_pattern[v >> 4], 4);
 		memcpy(p + 4, _bit_pattern[v & 0x0f], 4);
@@ -111,7 +111,7 @@
 	}
 
 	if(!xcan && ((buf - st->buf) % 8) == 0)
-		_i_ASN_TEXT_INDENT(1, ilevel);
+		ASN__TEXT_INDENT(1, ilevel);
 	er.encoded += p - scratch;
 	_ASN_CALLBACK(scratch, p - scratch);
 	p = scratch;
@@ -126,7 +126,7 @@
 		_ASN_CALLBACK(scratch, p - scratch);
 	}
 
-	if(!xcan) _i_ASN_TEXT_INDENT(1, ilevel - 1);
+	if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1);
 
 	_ASN_ENCODED_OK(er);
 cb_failed:
diff --git a/skeletons/OCTET_STRING.c b/skeletons/OCTET_STRING.c
index a8c0f7f..5d60329 100644
--- a/skeletons/OCTET_STRING.c
+++ b/skeletons/OCTET_STRING.c
@@ -619,7 +619,7 @@
 				_ASN_CALLBACK(scratch, p-scratch);
 				er.encoded += (p-scratch);
 				p = scratch;
-				_i_ASN_TEXT_INDENT(1, ilevel);
+				ASN__TEXT_INDENT(1, ilevel);
 			}
 			*p++ = h2c[(*buf >> 4) & 0x0F];
 			*p++ = h2c[*buf & 0x0F];
@@ -630,7 +630,7 @@
 			_ASN_CALLBACK(scratch, p-scratch); /* Dump the rest */
 			er.encoded += p - scratch;
 			if(st->size > 16)
-				_i_ASN_TEXT_INDENT(1, ilevel-1);
+				ASN__TEXT_INDENT(1, ilevel-1);
 		}
 	}
 
diff --git a/skeletons/asn_application.h b/skeletons/asn_application.h
index f40cd86..71e9ba6 100644
--- a/skeletons/asn_application.h
+++ b/skeletons/asn_application.h
@@ -5,8 +5,8 @@
 /*
  * Application-level ASN.1 callbacks.
  */
-#ifndef	_ASN_APPLICATION_H_
-#define	_ASN_APPLICATION_H_
+#ifndef	ASN_APPLICATION_H
+#define	ASN_APPLICATION_H
 
 #include "asn_system.h"		/* for platform-dependent types */
 #include "asn_codecs.h"		/* for ASN.1 codecs specifics */
@@ -44,4 +44,4 @@
 
 #include "constr_TYPE.h"	/* for asn_TYPE_descriptor_t */
 
-#endif	/* _ASN_APPLICATION_H_ */
+#endif	/* ASN_APPLICATION_H */
diff --git a/skeletons/asn_codecs.h b/skeletons/asn_codecs.h
index e560014..f2b8489 100644
--- a/skeletons/asn_codecs.h
+++ b/skeletons/asn_codecs.h
@@ -3,8 +3,8 @@
  * All rights reserved.
  * Redistribution and modifications are permitted subject to BSD license.
  */
-#ifndef	_ASN_CODECS_H_
-#define	_ASN_CODECS_H_
+#ifndef	ASN_CODECS_H
+#define	ASN_CODECS_H
 
 #ifdef __cplusplus
 extern "C" {
@@ -106,4 +106,4 @@
 }
 #endif
 
-#endif	/* _ASN_CODECS_H_ */
+#endif	/* ASN_CODECS_H */
diff --git a/skeletons/asn_internal.h b/skeletons/asn_internal.h
index bd7a373..b7faefb 100644
--- a/skeletons/asn_internal.h
+++ b/skeletons/asn_internal.h
@@ -6,8 +6,8 @@
 /*
  * Declarations internally useful for the ASN.1 support code.
  */
-#ifndef	_ASN_INTERNAL_H_
-#define	_ASN_INTERNAL_H_
+#ifndef	ASN_INTERNAL_H
+#define	ASN_INTERNAL_H
 
 #include "asn_application.h"	/* Application-visible API */
 
@@ -66,20 +66,20 @@
 /*
  * Invoke the application-supplied callback and fail, if something is wrong.
  */
-#define	__ASN_E_cbc(buf, size)	(cb((buf), (size), app_key) < 0)
-#define	_ASN_E_CALLBACK(foo)	do {					\
+#define	ASN__E_cbc(buf, size)	(cb((buf), (size), app_key) < 0)
+#define	ASN__E_CALLBACK(foo)	do {					\
 		if(foo)	goto cb_failed;					\
 	} while(0)
 #define	_ASN_CALLBACK(buf, size)					\
-	_ASN_E_CALLBACK(__ASN_E_cbc(buf, size))
+	ASN__E_CALLBACK(ASN__E_cbc(buf, size))
 #define	_ASN_CALLBACK2(buf1, size1, buf2, size2)			\
-	_ASN_E_CALLBACK(__ASN_E_cbc(buf1, size1) || __ASN_E_cbc(buf2, size2))
+	ASN__E_CALLBACK(ASN__E_cbc(buf1, size1) || ASN__E_cbc(buf2, size2))
 #define	_ASN_CALLBACK3(buf1, size1, buf2, size2, buf3, size3)		\
-	_ASN_E_CALLBACK(__ASN_E_cbc(buf1, size1)			\
-		|| __ASN_E_cbc(buf2, size2)				\
-		|| __ASN_E_cbc(buf3, size3))
+	ASN__E_CALLBACK(ASN__E_cbc(buf1, size1)			\
+		|| ASN__E_cbc(buf2, size2)				\
+		|| ASN__E_cbc(buf3, size3))
 
-#define	_i_ASN_TEXT_INDENT(nl, level) do {          \
+#define	ASN__TEXT_INDENT(nl, level) do {            \
         int tmp_level = (level);                    \
         int tmp_nl = ((nl) != 0);                   \
         int tmp_i;                                  \
@@ -125,4 +125,4 @@
 }
 #endif
 
-#endif	/* _ASN_INTERNAL_H_ */
+#endif	/* ASN_INTERNAL_H */
diff --git a/skeletons/asn_system.h b/skeletons/asn_system.h
index e420ad2..db230f8 100644
--- a/skeletons/asn_system.h
+++ b/skeletons/asn_system.h
@@ -6,8 +6,8 @@
 /*
  * Miscellaneous system-dependent types.
  */
-#ifndef	_ASN_SYSTEM_H_
-#define	_ASN_SYSTEM_H_
+#ifndef	ASN_SYSTEM_H
+#define	ASN_SYSTEM_H
 
 #ifdef	HAVE_CONFIG_H
 #include "config.h"
@@ -126,4 +126,4 @@
 #endif /* __GNUC__ */
 #endif	/* MIN */
 
-#endif	/* _ASN_SYSTEM_H_ */
+#endif	/* ASN_SYSTEM_H */
diff --git a/skeletons/constr_CHOICE.c b/skeletons/constr_CHOICE.c
index b268788..d463e8d 100644
--- a/skeletons/constr_CHOICE.c
+++ b/skeletons/constr_CHOICE.c
@@ -806,7 +806,7 @@
 
 		er.encoded = 0;
 
-                if(!(flags & XER_F_CANONICAL)) _i_ASN_TEXT_INDENT(1, ilevel);
+                if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel);
 		_ASN_CALLBACK3("<", 1, mname, mlen, ">", 1);
 
 		tmper = elm->type->xer_encoder(elm->type, memb_ptr,
@@ -818,7 +818,7 @@
 		er.encoded += 5 + (2 * mlen) + tmper.encoded;
 	}
 
-	if(!(flags & XER_F_CANONICAL)) _i_ASN_TEXT_INDENT(1, ilevel - 1);
+	if(!(flags & XER_F_CANONICAL)) ASN__TEXT_INDENT(1, ilevel - 1);
 
 	_ASN_ENCODED_OK(er);
 cb_failed:
diff --git a/skeletons/constr_SEQUENCE.c b/skeletons/constr_SEQUENCE.c
index a8f5cf1..56400d5 100644
--- a/skeletons/constr_SEQUENCE.c
+++ b/skeletons/constr_SEQUENCE.c
@@ -881,7 +881,7 @@
 			memb_ptr = (void *)((char *)sptr + elm->memb_offset);
 		}
 
-		if(!xcan) _i_ASN_TEXT_INDENT(1, ilevel);
+		if(!xcan) ASN__TEXT_INDENT(1, ilevel);
 		_ASN_CALLBACK3("<", 1, mname, mlen, ">", 1);
 
 		/* Print the member itself */
@@ -893,7 +893,7 @@
 		er.encoded += 5 + (2 * mlen) + tmper.encoded;
 	}
 
-	if(!xcan) _i_ASN_TEXT_INDENT(1, ilevel - 1);
+	if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1);
 
 	_ASN_ENCODED_OK(er);
 cb_failed:
diff --git a/skeletons/constr_SEQUENCE_OF.c b/skeletons/constr_SEQUENCE_OF.c
index aa10117..cba9242 100644
--- a/skeletons/constr_SEQUENCE_OF.c
+++ b/skeletons/constr_SEQUENCE_OF.c
@@ -111,7 +111,7 @@
 		if(!memb_ptr) continue;
 
 		if(mname) {
-			if(!xcan) _i_ASN_TEXT_INDENT(1, ilevel);
+			if(!xcan) ASN__TEXT_INDENT(1, ilevel);
 			_ASN_CALLBACK3("<", 1, mname, mlen, ">", 1);
 		}
 
@@ -121,7 +121,7 @@
                 if(tmper.encoded == 0 && specs->as_XMLValueList) {
                         const char *name = elm->type->xml_tag;
 			size_t len = strlen(name);
-			if(!xcan) _i_ASN_TEXT_INDENT(1, ilevel + 1);
+			if(!xcan) ASN__TEXT_INDENT(1, ilevel + 1);
 			_ASN_CALLBACK3("<", 1, name, len, "/>", 2);
                 }
 
@@ -133,7 +133,7 @@
 		er.encoded += (2 * mlen) + tmper.encoded;
 	}
 
-	if(!xcan) _i_ASN_TEXT_INDENT(1, ilevel - 1);
+	if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1);
 
 	_ASN_ENCODED_OK(er);
 cb_failed:
diff --git a/skeletons/constr_SET.c b/skeletons/constr_SET.c
index 83488d9..f2a585d 100644
--- a/skeletons/constr_SET.c
+++ b/skeletons/constr_SET.c
@@ -842,7 +842,7 @@
 		}
 
 		if(!xcan)
-			_i_ASN_TEXT_INDENT(1, ilevel);
+			ASN__TEXT_INDENT(1, ilevel);
 		_ASN_CALLBACK3("<", 1, mname, mlen, ">", 1);
 
 		/* Print the member itself */
@@ -855,7 +855,7 @@
 		er.encoded += 5 + (2 * mlen) + tmper.encoded;
 	}
 
-	if(!xcan) _i_ASN_TEXT_INDENT(1, ilevel - 1);
+	if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1);
 
 	_ASN_ENCODED_OK(er);
 cb_failed:
diff --git a/skeletons/constr_SET_OF.c b/skeletons/constr_SET_OF.c
index e30e4a4..de5e628 100644
--- a/skeletons/constr_SET_OF.c
+++ b/skeletons/constr_SET_OF.c
@@ -691,12 +691,12 @@
 		}
 
 		if(mname) {
-			if(!xcan) _i_ASN_TEXT_INDENT(1, ilevel);
+			if(!xcan) ASN__TEXT_INDENT(1, ilevel);
 			_ASN_CALLBACK3("<", 1, mname, mlen, ">", 1);
 		}
 
 		if(!xcan && specs->as_XMLValueList == 1)
-			_i_ASN_TEXT_INDENT(1, ilevel + 1);
+			ASN__TEXT_INDENT(1, ilevel + 1);
 		tmper = elm->type->xer_encoder(elm->type, memb_ptr,
 				ilevel + (specs->as_XMLValueList != 2),
 				flags, cb, app_key);
@@ -719,7 +719,7 @@
 		er.encoded += (2 * mlen) + tmper.encoded;
 	}
 
-	if(!xcan) _i_ASN_TEXT_INDENT(1, ilevel - 1);
+	if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1);
 
 	if(encs) {
 		xer_tmp_enc_t *enc = encs;
diff --git a/skeletons/constraints.h b/skeletons/constraints.h
index 5032345..f781349 100644
--- a/skeletons/constraints.h
+++ b/skeletons/constraints.h
@@ -2,8 +2,8 @@
  * Copyright (c) 2004, 2006 Lev Walkin <vlm@lionet.info>. All rights reserved.
  * Redistribution and modifications are permitted subject to BSD license.
  */
-#ifndef	_ASN1_CONSTRAINTS_VALIDATOR_H_
-#define	_ASN1_CONSTRAINTS_VALIDATOR_H_
+#ifndef	ASN1_CONSTRAINTS_VALIDATOR_H
+#define	ASN1_CONSTRAINTS_VALIDATOR_H
 
 #include <asn_system.h>		/* Platform-dependent types */
 
@@ -60,4 +60,4 @@
 }
 #endif
 
-#endif	/* _ASN1_CONSTRAINTS_VALIDATOR_H_ */
+#endif	/* ASN1_CONSTRAINTS_VALIDATOR_H */
