Thread (6 messages) 6 messages, 3 authors, 2022-05-03

Re: [PATCH] e2fsck: map PROMPT_* values to prompt messages

From: "Darrick J. Wong" <djwong@kernel.org>
Date: 2021-12-11 00:51:16

On Thu, Dec 09, 2021 at 02:55:26PM -0700, Andreas Dilger wrote:
On Dec 8, 2021, at 9:42 AM, Darrick J. Wong [off-list ref] wrote:
quoted
On Wed, Dec 08, 2021 at 12:51:12AM -0700, Andreas Dilger wrote:
quoted
It isn't totally clear when searching the code for PROMPT_*
constants from problem codes where these messages come from.
Similarly, there isn't a direct mapping from the prompt string
to the constant.

Add comments that make this mapping more clear.

Signed-off-by: Andreas Dilger <redacted>
---
e2fsck/problem.c | 46 +++++++++++++++++++++++-----------------------
1 file changed, 23 insertions(+), 23 deletions(-)
diff --git a/e2fsck/problem.c b/e2fsck/problem.c
index 757b5d56..2d02468c 100644
--- a/e2fsck/problem.c
+++ b/e2fsck/problem.c
@@ -50,29 +50,29 @@
 * to fix a problem.
 */
static const char *prompt[] = {
-	N_("(no prompt)"),	/* 0 */
-	N_("Fix"),		/* 1 */
-	N_("Clear"),		/* 2 */
-	N_("Relocate"),		/* 3 */
-	N_("Allocate"),		/* 4 */
-	N_("Expand"),		/* 5 */
-	N_("Connect to /lost+found"), /* 6 */
-	N_("Create"),		/* 7 */
-	N_("Salvage"),		/* 8 */
-	N_("Truncate"),		/* 9 */
-	N_("Clear inode"),	/* 10 */
-	N_("Abort"),		/* 11 */
-	N_("Split"),		/* 12 */
-	N_("Continue"),		/* 13 */
-	N_("Clone multiply-claimed blocks"), /* 14 */
-	N_("Delete file"),	/* 15 */
-	N_("Suppress messages"),/* 16 */
-	N_("Unlink"),		/* 17 */
-	N_("Clear HTree index"),/* 18 */
-	N_("Recreate"),		/* 19 */
-	N_("Optimize"),		/* 20 */
-	N_("Clear flag"),	/* 21 */
-	"",			/* 22 */
+	N_("(no prompt)"),			/* PROMPT_NONE		=  0 */
Why not make it even clearer and mismerge proof:

static const char *prompt[] = {
	[0]		= N_("(no prompt")),	/* null value test */
	[PROMPT_FIX]	= N_("Fix"),		/* 1 */
	[PROMPT_CLEAR]	= N_("Clear"),		/* 2 */
	...
};
I thought about that too, but then I thought the "[index] = foo" designated
initializer is GNU or at least C99-specific, and I wondered if that was
going to cause portability problems for some ancient system that e2fsprogs
is building on...  I figured adding comments is relatively safe, and these
values change so rarely that more complexity in the patch was not a win.
<shrug> Yeah, I thought it was safe enough to use -std=gnu90 features,
but I guess it's really up to Ted to decide if he'd prefer a structural
fix or not.  Evidently this syntax is /still/ being argued in the C++
committees, which ... yay. :(

--D
Cheers, Andreas



  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help