start=$$(cat .sc-start-$*); \
rm -f .sc-start-$*; \
awk -v s=$$start -v e=$$end \
- 'END {printf "%.2f: $* done\n", e - s}' < /dev/null
+ 'END {printf "%.2f $(patsubst sc_%,%,$*)\n", e - s}' < /dev/null
# The patsubst here is to replace each sc_% rule with its sc_%.z wrapper
# that computes and prints elapsed time.
halt='found useless parentheses in cpp directive' \
$(_sc_search_regexp)
+# Prohibit checked in backup files.
+sc_prohibit_backup_files:
+ @$(VC_LIST) | grep '~$$' && \
+ { echo '$(ME): found version controlled backup file' 1>&2; \
+ exit 1; } || :
+
# Require the latest GPL.
sc_GPL_version:
@prohibit='either ''version [^3]' \
$(_sc_search_regexp)
# Don't use Texinfo @acronym{} as it is not a good idea.
+texinfo_suffix_re_ ?= \.(txi|texi(nfo)?)$$
sc_texinfo_acronym:
- @prohibit='@acronym{' \
- in_vc_files='\.texi$$' \
+ @prohibit='@acronym\{' \
+ in_vc_files='$(texinfo_suffix_re_)' \
halt='found use of Texinfo @acronym{}' \
$(_sc_search_regexp)
# perl -pi -0777 -e 's/\n\n+$/\n/' files...
#
detect_empty_lines_at_EOF_ = \
- foreach my $$f (@ARGV) { \
- open F, "<", $$f or (warn "failed to open $$f: $$!\n"), next; \
- my $$p = sysseek (F, -2, 2); \
- my $$c = "seek failure probably means file has < 2 bytes; ignore"; \
- my $$two; \
- defined $$p and $$p = sysread F, $$two, 2; \
- close F; \
- $$c = "ignore read failure"; \
- $$p && $$two eq "\n\n" and (print $$f), $$fail=1; \
- } END { exit defined $$fail }
+ foreach my $$f (@ARGV) \
+ { \
+ open F, "<", $$f or (warn "failed to open $$f: $$!\n"), next; \
+ my $$p = sysseek (F, -2, 2); \
+ my $$c = "seek failure probably means file has < 2 bytes; ignore"; \
+ my $$last_two_bytes; \
+ defined $$p and $$p = sysread F, $$last_two_bytes, 2; \
+ close F; \
+ $$c = "ignore read failure"; \
+ $$p && $$last_two_bytes eq "\n\n" and (print $$f), $$fail=1; \
+ } \
+ END { exit defined $$fail }
sc_prohibit_empty_lines_at_EOF:
@perl -le '$(detect_empty_lines_at_EOF_)' $$($(VC_LIST_EXCEPT)) \
|| { echo '$(ME): the above files end with empty line(s)' \