#!/usr/bin/awk -f
# SPDX-License-Identifier: GPL-2.0
#
# Use #line directives to preserve original __LINE__ numbers across patches to
# avoid unwanted compilation changes.

BEGIN {
	in_hunk = 0
	skip    = 0
}

/^--- / {
	skip = $2 !~ /\.(c|h)$/
	print
	next
}

/^@@/ {
	if (skip) {
		print
		next
	}

	in_hunk = 1

	# @@ -1,3 +1,4 @@:
	#   1: line number in old file
	#   3: how many lines the hunk covers in old file
	#   1: line number in new file
	#   4: how many lines the hunk covers in new file

	match($0, /^@@ -([0-9]+)(,([0-9]+))? \+([0-9]+)(,([0-9]+))? @@/, m)

	# Set 'cur' to the old file's line number at the start of the hunk.  It
	# gets incremented for every context line and every line removal, so
	# that it always represents the old file's current line number.
	cur = m[1]

	# last = last line number of current hunk
	last = cur + (m[3] ? m[3] : 1) - 1

	need_line_directive = 0

	print
	next
}

{
	if (skip || !in_hunk || $0 ~ /^\\ No newline at end of file/) {
		print
		next
	}

	# change line
	if ($0 ~ /^[+-]/) {
		# inject #line after this group of changes
		need_line_directive = 1

		if ($0 ~ /^-/)
			cur++

		print
		next
	}

	# If this is the first context line after a group of changes, inject
	# the #line directive to force the compiler to correct the line
	# numbering to match the original file.
	if (need_line_directive) {
		print "+#line " cur
		need_line_directive = 0
	}

	if (cur == last)
		in_hunk = 0

	cur++
	print
}
