Index: uspace/lib/c/test/stdio/scanf.c
===================================================================
--- uspace/lib/c/test/stdio/scanf.c	(revision 39f84ce451a7ec890020a3dfcbe3655909062383)
+++ uspace/lib/c/test/stdio/scanf.c	(revision be2a20ac5cc7850306d091433d199a88d6151292)
@@ -50,13 +50,14 @@
 };
 
+/** Empty format string */
 PCUT_TEST(empty_fmt)
 {
 	int rc;
 
-	/* Empty format string */
 	rc = sscanf("42", "");
 	PCUT_ASSERT_INT_EQUALS(0, rc);
 }
 
+/** Decimal integer */
 PCUT_TEST(dec_int)
 {
@@ -64,5 +65,4 @@
 	int i;
 
-	/* Decimal integer */
 	rc = sscanf("42", "%d", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -70,4 +70,5 @@
 }
 
+/** Two integers */
 PCUT_TEST(int_int)
 {
@@ -75,5 +76,4 @@
 	int i, j;
 
-	/* Two integers */
 	rc = sscanf("42 43", "%d%d", &i, &j);
 	PCUT_ASSERT_INT_EQUALS(2, rc);
@@ -82,4 +82,5 @@
 }
 
+/** Decimal signed char */
 PCUT_TEST(dec_sign_char)
 {
@@ -87,5 +88,4 @@
 	signed char sc;
 
-	/* Decimal signed char */
 	rc = sscanf("42", "%hhd", &sc);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -93,4 +93,5 @@
 }
 
+/** Decimal short */
 PCUT_TEST(dec_short)
 {
@@ -98,5 +99,4 @@
 	short si;
 
-	/* Decimal short */
 	rc = sscanf("42", "%hd", &si);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -104,4 +104,5 @@
 }
 
+/** Decimal long */
 PCUT_TEST(dec_long)
 {
@@ -109,5 +110,4 @@
 	long li;
 
-	/* Decimal long */
 	rc = sscanf("42", "%ld", &li);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -115,4 +115,5 @@
 }
 
+/** Decimal long long */
 PCUT_TEST(dec_long_long)
 {
@@ -120,5 +121,4 @@
 	long long lli;
 
-	/* Decimal long long */
 	rc = sscanf("42", "%lld", &lli);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -126,4 +126,5 @@
 }
 
+/** Decimal intmax_t */
 PCUT_TEST(dec_intmax)
 {
@@ -131,5 +132,4 @@
 	intmax_t imax;
 
-	/* Decimal intmax_t */
 	rc = sscanf("42", "%jd", &imax);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -137,4 +137,5 @@
 }
 
+/** Decimal size_t-sized */
 PCUT_TEST(dec_size_t_size)
 {
@@ -142,5 +143,4 @@
 	size_t szi;
 
-	/* Decimal size_t-sized */
 	rc = sscanf("42", "%zd", &szi);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -148,4 +148,5 @@
 }
 
+/** Decimal ptrdiff_t-sized */
 PCUT_TEST(dec_ptrdiff_t_size)
 {
@@ -153,5 +154,4 @@
 	ptrdiff_t pdi;
 
-	/* Decimal ptrdiff_t-sized */
 	rc = sscanf("42", "%td", &pdi);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -159,4 +159,5 @@
 }
 
+/** Decimal integer followed by hexadecimal digit */
 PCUT_TEST(dec_int_hexdigit)
 {
@@ -164,5 +165,4 @@
 	int i;
 
-	/* Decimal integer followed by hexadecimal digit */
 	rc = sscanf("42a", "%d", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -170,4 +170,5 @@
 }
 
+/** Decimal integer - detect no prefix */
 PCUT_TEST(int_noprefix)
 {
@@ -175,5 +176,4 @@
 	int i;
 
-	/* Decimal integer - detect no prefix */
 	rc = sscanf("42", "%i", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -181,4 +181,5 @@
 }
 
+/** Prefixed octal integer followed by decimal digit */
 PCUT_TEST(octal_decimal_digit)
 {
@@ -186,5 +187,4 @@
 	int i;
 
-	/* Prefixed octal integer followed by decimal digit */
 	rc = sscanf("019", "%i", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -192,4 +192,5 @@
 }
 
+/** Prefixed hexadecimal integer followed by other character */
 PCUT_TEST(hex_other_char)
 {
@@ -197,5 +198,4 @@
 	int i;
 
-	/* Prefixed hexadecimal integer followed by other character */
 	rc = sscanf("0xag", "%i", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -203,4 +203,5 @@
 }
 
+/** Decimal integer with '+' sign */
 PCUT_TEST(positive_dec)
 {
@@ -208,5 +209,4 @@
 	int i;
 
-	/* Decimal integer with '+' sign */
 	rc = sscanf("+42", "%d", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -214,4 +214,5 @@
 }
 
+/** Decimal integer with '-' sign */
 PCUT_TEST(negative_dec)
 {
@@ -219,5 +220,4 @@
 	int i;
 
-	/* Decimal integer with '-' sign */
 	rc = sscanf("-42", "%d", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -225,4 +225,5 @@
 }
 
+/** Hexadecimal integer with prefix and '-' sign */
 PCUT_TEST(negative_hex)
 {
@@ -230,5 +231,4 @@
 	int i;
 
-	/* Hexadecimal integer with prefix and '-' sign */
 	rc = sscanf("-0xa", "%i", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -236,4 +236,5 @@
 }
 
+/** Decimal unsigned integer */
 PCUT_TEST(dec_unsigned)
 {
@@ -241,5 +242,4 @@
 	unsigned u;
 
-	/* Decimal unsigned integer */
 	rc = sscanf("42", "%u", &u);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -247,4 +247,5 @@
 }
 
+/** Decimal unsigned char */
 PCUT_TEST(dec_unsigned_char)
 {
@@ -252,5 +253,4 @@
 	unsigned char uc;
 
-	/* Decimal unsigned char */
 	rc = sscanf("42", "%hhu", &uc);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -258,4 +258,5 @@
 }
 
+/** Decimal unsigned short */
 PCUT_TEST(dec_unsigned_short)
 {
@@ -263,5 +264,4 @@
 	unsigned short su;
 
-	/* Decimal unsigned short */
 	rc = sscanf("42", "%hu", &su);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -269,4 +269,5 @@
 }
 
+/** Decimal unsigned long */
 PCUT_TEST(dec_unsigned_long)
 {
@@ -274,5 +275,4 @@
 	unsigned long lu;
 
-	/* Decimal unsigned long */
 	rc = sscanf("42", "%lu", &lu);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -280,4 +280,5 @@
 }
 
+/** Decimal unsigned long long */
 PCUT_TEST(dec_unsigned_long_long)
 {
@@ -285,5 +286,4 @@
 	unsigned long long llu;
 
-	/* Decimal unsigned long long */
 	rc = sscanf("42", "%llu", &llu);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -291,4 +291,5 @@
 }
 
+/** Decimal uintmax_t */
 PCUT_TEST(dec_unitmax)
 {
@@ -296,5 +297,4 @@
 	uintmax_t umax;
 
-	/* Decimal uintmax_t */
 	rc = sscanf("42", "%ju", &umax);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -302,4 +302,5 @@
 }
 
+/** Decimal size_t */
 PCUT_TEST(dec_unsigned_size)
 {
@@ -307,5 +308,4 @@
 	size_t szu;
 
-	/* Decimal size_t */
 	rc = sscanf("42", "%zu", &szu);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -313,4 +313,5 @@
 }
 
+/** Decimal ptrdiff_t-sized unsigned int*/
 PCUT_TEST(dec_unsigned_ptrdiff)
 {
@@ -318,5 +319,4 @@
 	ptrdiff_t pdu;
 
-	/* Decimal ptrdiff_t-sized unsigned int*/
 	rc = sscanf("42", "%tu", &pdu);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -324,4 +324,5 @@
 }
 
+/** Octal unsigned integer */
 PCUT_TEST(octal_unsigned)
 {
@@ -329,5 +330,4 @@
 	unsigned u;
 
-	/* Octal unsigned integer */
 	rc = sscanf("52", "%o", &u);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -335,4 +335,5 @@
 }
 
+/** Hexadecimal unsigned integer */
 PCUT_TEST(hex_unsigned)
 {
@@ -340,5 +341,4 @@
 	unsigned u;
 
-	/* Hexadecimal unsigned integer */
 	rc = sscanf("2a", "%x", &u);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -346,4 +346,5 @@
 }
 
+/** Hexadecimal unsigned integer unsing alternate specifier */
 PCUT_TEST(hex_unsigned_cap_x)
 {
@@ -351,5 +352,4 @@
 	unsigned u;
 
-	/* Hexadecimal unsigned integer unsing alternate specifier */
 	rc = sscanf("2a", "%X", &u);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -357,4 +357,5 @@
 }
 
+/** Uppercase hexadecimal unsigned integer */
 PCUT_TEST(uppercase_hex_unsigned)
 {
@@ -362,5 +363,4 @@
 	unsigned u;
 
-	/* Uppercase hexadecimal unsigned integer */
 	rc = sscanf("2A", "%x", &u);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -368,4 +368,5 @@
 }
 
+/** Make sure %x does not match 0x prefix */
 PCUT_TEST(hex_not_match_0x)
 {
@@ -373,5 +374,4 @@
 	unsigned u;
 
-	/* Make sure %x does not match 0x prefix */
 	rc = sscanf("0x1", "%x", &u);
 
@@ -380,4 +380,5 @@
 }
 
+/** Skipping whitespace */
 PCUT_TEST(skipws)
 {
@@ -385,5 +386,4 @@
 	int i;
 
-	/* Skipping whitespace */
 	rc = sscanf(" \t\n42", "%d", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -391,4 +391,5 @@
 }
 
+/** Percentile conversion */
 PCUT_TEST(percentile)
 {
@@ -396,5 +397,4 @@
 	int i;
 
-	/* Percentile conversion */
 	rc = sscanf(" \t\n%42", "%%%d", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -402,4 +402,5 @@
 }
 
+/** Matching specific character */
 PCUT_TEST(match_spec_char)
 {
@@ -407,5 +408,4 @@
 	int i;
 
-	/* Matching specific character */
 	rc = sscanf("x42", "x%d", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -413,4 +413,5 @@
 }
 
+/** Matching specific character should not skip whitespace */
 PCUT_TEST(match_char_noskipws)
 {
@@ -418,9 +419,9 @@
 	int i;
 
-	/* Matching specific character should not skip whitespace */
 	rc = sscanf(" x42", "x%d", &i);
 	PCUT_ASSERT_INT_EQUALS(0, rc);
 }
 
+/** Skipping whitespace + match specific character */
 PCUT_TEST(skipws_match_char)
 {
@@ -428,5 +429,4 @@
 	int i;
 
-	/* Skipping whitespace + match specific character */
 	rc = sscanf(" x42", "\t\nx%d", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -434,4 +434,5 @@
 }
 
+/** Decimal with limited, but sufficient width */
 PCUT_TEST(dec_sufficient_lim_width)
 {
@@ -439,5 +440,4 @@
 	int i;
 
-	/* Decimal with limited, but sufficient width */
 	rc = sscanf("42", "%2d", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -445,4 +445,5 @@
 }
 
+/** Decimal with limited, smaller width */
 PCUT_TEST(dec_smaller_width)
 {
@@ -450,5 +451,4 @@
 	int i;
 
-	/* Decimal with limited, smaller width */
 	rc = sscanf("42", "%1d", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -456,4 +456,5 @@
 }
 
+/** Integer with hex prefix, format with limited, sufficient width */
 PCUT_TEST(int_hex_limited_width)
 {
@@ -461,5 +462,4 @@
 	int i;
 
-	/* Integer with hex prefix, format with limited, sufficient width */
 	rc = sscanf("0x1", "%3i", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -467,4 +467,5 @@
 }
 
+/** Integer with hex prefix, format with limited, smaller width */
 PCUT_TEST(int_hex_small_width)
 {
@@ -472,5 +473,4 @@
 	int i;
 
-	/* Integer with hex prefix, format with limited, smaller width */
 	rc = sscanf("0x1", "%2i", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -478,4 +478,5 @@
 }
 
+/** Integer with octal prefix, format with limited, sufficient width */
 PCUT_TEST(int_oct_limited_width)
 {
@@ -483,5 +484,4 @@
 	int i;
 
-	/* Integer with octal prefix, format with limited, sufficient width */
 	rc = sscanf("012", "%3i", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -489,4 +489,5 @@
 }
 
+/** Integer with octal prefix, format with limited, smaller width */
 PCUT_TEST(int_oct_smaller_width)
 {
@@ -494,5 +495,4 @@
 	int i;
 
-	/* Integer with octal prefix, format with limited, smaller width */
 	rc = sscanf("012", "%2i", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -500,4 +500,5 @@
 }
 
+/** Integer with octal prefix, format with width allowing just for 0 */
 PCUT_TEST(int_oct_tiny_width)
 {
@@ -505,5 +506,4 @@
 	int i;
 
-	/* Integer with octal prefix, format with width allowing just for 0 */
 	rc = sscanf("012", "%1i", &i);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -511,4 +511,5 @@
 }
 
+/** Pointer */
 PCUT_TEST(pointer)
 {
@@ -516,5 +517,4 @@
 	void *ptr;
 
-	/* Pointer */
 	rc = sscanf("0xABCDEF88", "%p", &ptr);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -522,4 +522,5 @@
 }
 
+/** Single character */
 PCUT_TEST(single_char)
 {
@@ -527,5 +528,4 @@
 	char c;
 
-	/* Single character */
 	rc = sscanf("x", "%c", &c);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -533,4 +533,5 @@
 }
 
+/** Single whitespace character */
 PCUT_TEST(single_ws_char)
 {
@@ -538,5 +539,4 @@
 	char c;
 
-	/* Single whitespace character */
 	rc = sscanf("\t", "%c", &c);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -544,4 +544,5 @@
 }
 
+/** Multiple characters */
 PCUT_TEST(chars)
 {
@@ -549,5 +550,4 @@
 	char chars[chars_size];
 
-	/* Multiple characters */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("abc", "%3c", chars);
@@ -559,4 +559,5 @@
 }
 
+/** Fewer characters than requested */
 PCUT_TEST(fewer_chars)
 {
@@ -564,5 +565,4 @@
 	char chars[chars_size];
 
-	/* Fewer characters than requested */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("abc", "%5c", chars);
@@ -574,4 +574,5 @@
 }
 
+/** Reading characters but no found */
 PCUT_TEST(chars_not_found)
 {
@@ -579,5 +580,4 @@
 	char chars[chars_size];
 
-	/* Reading characters but no found */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("", "%5c", chars);
@@ -586,4 +586,5 @@
 }
 
+/** Multiple characters with suppressed assignment */
 PCUT_TEST(chars_noassign)
 {
@@ -591,5 +592,4 @@
 	int n;
 
-	/* Multiple characters with suppressed assignment */
 	rc = sscanf("abc", "%*3c%n", &n);
 	PCUT_ASSERT_INT_EQUALS(0, rc);
@@ -597,4 +597,5 @@
 }
 
+/** Multiple characters with memory allocation */
 PCUT_TEST(chars_malloc)
 {
@@ -602,5 +603,4 @@
 	char *cp;
 
-	/* Multiple characters with memory allocation */
 	cp = NULL;
 	rc = sscanf("abc", "%m3c", &cp);
@@ -613,4 +613,5 @@
 }
 
+/** String of non-whitespace characters, unlimited width */
 PCUT_TEST(str)
 {
@@ -618,5 +619,4 @@
 	char chars[chars_size];
 
-	/* String of non-whitespace characters, unlimited width */
 	memset(chars, 'X', chars_size);
 	rc = sscanf(" abc d", "%s", chars);
@@ -629,4 +629,5 @@
 }
 
+/** String of non-whitespace characters, until the end */
 PCUT_TEST(str_till_end)
 {
@@ -634,5 +635,4 @@
 	char chars[chars_size];
 
-	/* String of non-whitespace characters, until the end */
 	memset(chars, 'X', chars_size);
 	rc = sscanf(" abc", "%s", chars);
@@ -645,4 +645,5 @@
 }
 
+/** String of non-whitespace characters, large enough width */
 PCUT_TEST(str_large_width)
 {
@@ -650,5 +651,4 @@
 	char chars[chars_size];
 
-	/* String of non-whitespace characters, large enough width */
 	memset(chars, 'X', chars_size);
 	rc = sscanf(" abc d", "%5s", chars);
@@ -661,4 +661,5 @@
 }
 
+/** Want string of non-whitespace, but got only whitespace */
 PCUT_TEST(str_not_found)
 {
@@ -666,5 +667,4 @@
 	char chars[chars_size];
 
-	/* Want string of non-whitespace, but got only whitespace */
 	memset(chars, 'X', chars_size);
 	rc = sscanf(" ", "%s", chars);
@@ -673,4 +673,5 @@
 }
 
+/** String of non-whitespace characters, small width */
 PCUT_TEST(str_small_width)
 {
@@ -678,5 +679,4 @@
 	char chars[chars_size];
 
-	/* String of non-whitespace characters, small width */
 	memset(chars, 'X', chars_size);
 	rc = sscanf(" abc", "%2s", chars);
@@ -688,4 +688,5 @@
 }
 
+/** String of non-whitespace characters, assignment suppression */
 PCUT_TEST(str_noassign)
 {
@@ -693,5 +694,4 @@
 	int n;
 
-	/* String of non-whitespace characters, assignment suppression */
 	rc = sscanf(" abc d", "%*s%n", &n);
 	PCUT_ASSERT_INT_EQUALS(0, rc);
@@ -699,4 +699,5 @@
 }
 
+/** String of non-whitespace characters, memory allocation */
 PCUT_TEST(str_malloc)
 {
@@ -704,5 +705,4 @@
 	char *cp;
 
-	/* String of non-whitespace characters, memory allocation */
 	rc = sscanf(" abc d", "%ms", &cp);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -715,4 +715,5 @@
 }
 
+/** Set conversion without width specified terminating before the end  */
 PCUT_TEST(set_convert)
 {
@@ -721,5 +722,4 @@
 	int i;
 
-	/* Set conversion without width specified terminating before the end  */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("abcd42", "%[abc]d%d", chars, &i);
@@ -733,4 +733,5 @@
 }
 
+/** Set conversion without width specified, until the end */
 PCUT_TEST(set_till_end)
 {
@@ -738,5 +739,4 @@
 	char chars[chars_size];
 
-	/* Set conversion without width specified, until the end */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("abc", "%[abc]", chars);
@@ -749,4 +749,5 @@
 }
 
+/** Set conversion with larger width */
 PCUT_TEST(set_large_width)
 {
@@ -754,5 +755,4 @@
 	char chars[chars_size];
 
-	/* Set conversion with larger width */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("abcd", "%5[abc]", chars);
@@ -765,4 +765,5 @@
 }
 
+/** Set conversion with smaller width */
 PCUT_TEST(set_small_width)
 {
@@ -770,5 +771,4 @@
 	char chars[chars_size];
 
-	/* Set conversion with smaller width */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("abcd", "%3[abcd]", chars);
@@ -781,4 +781,5 @@
 }
 
+/** Set conversion with negated scanset */
 PCUT_TEST(set_inverted)
 {
@@ -786,5 +787,4 @@
 	char chars[chars_size];
 
-	/* Set conversion with negated scanset */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("abcd", "%[^d]", chars);
@@ -797,4 +797,5 @@
 }
 
+/** Set conversion with ']' in scanset */
 PCUT_TEST(set_with_rbr)
 {
@@ -802,5 +803,4 @@
 	char chars[chars_size];
 
-	/* Set conversion with ']' in scanset */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("]bcd", "%[]bc]", chars);
@@ -813,4 +813,5 @@
 }
 
+/** Set conversion with ']' in inverted scanset */
 PCUT_TEST(set_inverted_with_rbr)
 {
@@ -818,5 +819,4 @@
 	char chars[chars_size];
 
-	/* Set conversion with ']' in inverted scanset */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("abc]", "%[^]def]", chars);
@@ -829,4 +829,5 @@
 }
 
+/** Set conversion with leading '-' in scanset */
 PCUT_TEST(set_with_leading_dash)
 {
@@ -834,5 +835,4 @@
 	char chars[chars_size];
 
-	/* Set conversion with leading '-' in scanset */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("a-bc[", "%[-abc]", chars);
@@ -846,4 +846,5 @@
 }
 
+/** Set conversion with trailing '-' in scanset */
 PCUT_TEST(set_with_trailing_dash)
 {
@@ -851,5 +852,4 @@
 	char chars[chars_size];
 
-	/* Set conversion with trailing '-' in scanset */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("a-bc]", "%[abc-]", chars);
@@ -863,4 +863,5 @@
 }
 
+/** Set conversion with leading '-' in inverted scanset */
 PCUT_TEST(set_inverted_with_leading_dash)
 {
@@ -868,5 +869,4 @@
 	char chars[chars_size];
 
-	/* Set conversion with leading '-' in inverted scanset */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("def-", "%[^-abc]", chars);
@@ -879,4 +879,5 @@
 }
 
+/** ']' after '^' in scanset does not lose meaning of scanset delimiter */
 PCUT_TEST(set_inverted_with_only_dash)
 {
@@ -884,8 +885,4 @@
 	char chars[chars_size];
 
-	/*
-	 * ']' after '^' in scanset does not lose meaning of scanset
-	 * delimiter
-	 */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("abc-", "%[^-]", chars);
@@ -898,4 +895,5 @@
 }
 
+/** '^' after '-' in scanset does not have special meaning */
 PCUT_TEST(set_inverted_with_dash_caret)
 {
@@ -903,5 +901,4 @@
 	char chars[chars_size];
 
-	/* '^' after '-' in scanset does not have special meaning */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("-^a", "%[-^a]", chars);
@@ -914,4 +911,37 @@
 }
 
+/** Set conversion with range (GNU extension) */
+PCUT_TEST(set_with_range)
+{
+	int rc;
+	char chars[chars_size];
+
+	memset(chars, 'X', chars_size);
+	rc = sscanf("abc]", "%[a-c]", chars);
+	PCUT_ASSERT_INT_EQUALS(1, rc);
+	PCUT_ASSERT_TRUE(chars[0] == 'a');
+	PCUT_ASSERT_TRUE(chars[1] == 'b');
+	PCUT_ASSERT_TRUE(chars[2] == 'c');
+	PCUT_ASSERT_TRUE(chars[3] == '\0');
+	PCUT_ASSERT_TRUE(chars[4] == 'X');
+}
+
+/** Set conversion with range (GNU extension) in inverted scanset */
+PCUT_TEST(set_inverted_with_range)
+{
+	int rc;
+	char chars[chars_size];
+
+	memset(chars, 'X', chars_size);
+	rc = sscanf("defb", "%[^a-c]", chars);
+	PCUT_ASSERT_INT_EQUALS(1, rc);
+	PCUT_ASSERT_TRUE(chars[0] == 'd');
+	PCUT_ASSERT_TRUE(chars[1] == 'e');
+	PCUT_ASSERT_TRUE(chars[2] == 'f');
+	PCUT_ASSERT_TRUE(chars[3] == '\0');
+	PCUT_ASSERT_TRUE(chars[4] == 'X');
+}
+
+/** Set conversion with assignment suppression */
 PCUT_TEST(set_noassign)
 {
@@ -919,5 +949,4 @@
 	int n;
 
-	/* Set conversion with assignment suppression */
 	rc = sscanf("abcd42", "%*[abc]%n", &n);
 	PCUT_ASSERT_INT_EQUALS(0, rc);
@@ -925,4 +954,5 @@
 }
 
+/** Set conversion with memory allocation */
 PCUT_TEST(set_malloc)
 {
@@ -930,5 +960,4 @@
 	char *cp;
 
-	/* Set conversion with memory allocation */
 	cp = NULL;
 	rc = sscanf("abcd42", "%m[abcd]", &cp);
@@ -943,4 +972,5 @@
 }
 
+/** Decimal integer with suppressed assignment */
 PCUT_TEST(dec_int_noassign)
 {
@@ -948,5 +978,4 @@
 	int n;
 
-	/* Decimal integer with suppressed assignment */
 	rc = sscanf("42", "%*d%n", &n);
 	PCUT_ASSERT_INT_EQUALS(0, rc);
@@ -954,4 +983,5 @@
 }
 
+/** Count of characters read */
 PCUT_TEST(count_chars)
 {
@@ -960,5 +990,4 @@
 	int n;
 
-	/* Count of characters read */
 	memset(chars, 'X', chars_size);
 	rc = sscanf("abcd", "%3c%n", chars, &n);
@@ -971,4 +1000,5 @@
 }
 
+/** Float with just integer part */
 PCUT_TEST(float_intpart_only)
 {
@@ -976,5 +1006,4 @@
 	float f;
 
-	/* Float with just integer part */
 	rc = sscanf("42", "%f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -982,4 +1011,5 @@
 }
 
+/** Double with just integer part */
 PCUT_TEST(double_intpart_only)
 {
@@ -987,5 +1017,4 @@
 	double d;
 
-	/* Double with just integer part */
 	rc = sscanf("42", "%lf", &d);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -993,4 +1022,5 @@
 }
 
+/** Long double with just integer part */
 PCUT_TEST(ldouble_intpart_only)
 {
@@ -998,5 +1028,4 @@
 	long double ld;
 
-	/* Long double with just integer part */
 	rc = sscanf("42", "%Lf", &ld);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1004,4 +1033,5 @@
 }
 
+/** Float with just hexadecimal integer part */
 PCUT_TEST(float_hex_intpart_only)
 {
@@ -1009,5 +1039,4 @@
 	float f;
 
-	/* Float with just hexadecimal integer part */
 	rc = sscanf("0x2a", "%f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1015,4 +1044,5 @@
 }
 
+/** Float with sign and integer part */
 PCUT_TEST(float_sign_intpart)
 {
@@ -1020,5 +1050,4 @@
 	float f;
 
-	/* Float with sign and integer part */
 	rc = sscanf("-42", "%f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1026,4 +1055,5 @@
 }
 
+/** Float with integer and fractional part */
 PCUT_TEST(float_intpart_fract)
 {
@@ -1031,5 +1061,4 @@
 	float f;
 
-	/* Float with integer and fractional part */
 	rc = sscanf("4.2", "%f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1039,4 +1068,5 @@
 }
 
+/** Float with integer part and unsigned exponent */
 PCUT_TEST(float_intpart_exp)
 {
@@ -1044,5 +1074,4 @@
 	float f;
 
-	/* Float with integer part and unsigned exponent */
 	rc = sscanf("42e1", "%f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1050,10 +1079,10 @@
 }
 
+
+/** Float with integer part and positive exponent */
 PCUT_TEST(float_intpart_posexp)
 {
 	int rc;
 	float f;
-
-	/* Float with integer part and positive exponent */
 	rc = sscanf("42e+1", "%f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1061,4 +1090,5 @@
 }
 
+/** Float with integer part and negative exponent */
 PCUT_TEST(float_intpart_negexp)
 {
@@ -1066,5 +1096,4 @@
 	float f;
 
-	/* Float with integer part and negative exponent */
 	rc = sscanf("42e-1", "%f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1074,4 +1103,5 @@
 }
 
+/** Float with integer, fractional parts and unsigned exponent */
 PCUT_TEST(float_intpart_fract_exp)
 {
@@ -1079,5 +1109,4 @@
 	float f;
 
-	/* Float with integer, fractional parts and unsigned exponent */
 	rc = sscanf("4.2e1", "%f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1085,4 +1114,5 @@
 }
 
+/** Hexadecimal float with integer and fractional part */
 PCUT_TEST(hexfloat_intpart_fract)
 {
@@ -1090,5 +1120,4 @@
 	float f;
 
-	/* Hexadecimal float with integer and fractional part */
 	rc = sscanf("0x2.a", "%f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1096,4 +1125,5 @@
 }
 
+/** Hexadecimal float with integer part and unsigned exponent */
 PCUT_TEST(hexfloat_intpart_exp)
 {
@@ -1101,7 +1131,4 @@
 	float f;
 
-	/*
-	 * Hexadecimal float with integer part and unsigned exponent
-	 */
 	rc = sscanf("0x2ap1", "%f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1109,4 +1136,5 @@
 }
 
+/** Hexadecimal float with integer part and negative exponent */
 PCUT_TEST(hexfloat_intpart_negexp)
 {
@@ -1114,7 +1142,4 @@
 	float f;
 
-	/*
-	 * Hexadecimal float with integer part and negative exponent
-	 */
 	rc = sscanf("0x2ap-1", "%f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1122,4 +1147,5 @@
 }
 
+/** Hexadecimal float with integer, fractional parts and unsigned exponent */
 PCUT_TEST(hexfloat_intpart_fract_exp)
 {
@@ -1127,8 +1153,4 @@
 	float f;
 
-	/*
-	 * Hexadecimal float with integer, fractional parts and unsigned
-	 * exponent
-	 */
 	rc = sscanf("0x2.ap4", "%f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1136,4 +1158,5 @@
 }
 
+/** Float with just integer part and limited width */
 PCUT_TEST(float_intpart_limwidth)
 {
@@ -1141,5 +1164,4 @@
 	float f;
 
-	/* Float with just integer part and limited width */
 	rc = sscanf("1234", "%3f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1147,4 +1169,5 @@
 }
 
+/** Float with integer, fractional part and limited width */
 PCUT_TEST(float_intpart_fract_limwidth)
 {
@@ -1152,5 +1175,4 @@
 	float f;
 
-	/* Float with integer, fractional part and limited width */
 	rc = sscanf("12.34", "%4f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1160,4 +1182,5 @@
 }
 
+/** Float with width only enough to cover an integral part */
 PCUT_TEST(float_width_for_only_intpart)
 {
@@ -1165,5 +1188,4 @@
 	float f;
 
-	/* Float with width only enough to cover an integral part */
 	rc = sscanf("12.34", "%3f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1171,4 +1193,5 @@
 }
 
+/** Float with width too small to cover the exponent number */
 PCUT_TEST(float_width_small_for_expnum)
 {
@@ -1176,5 +1199,4 @@
 	float f;
 
-	/* Float with width too small to cover the exponent number */
 	rc = sscanf("12.34e+2", "%7f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1184,4 +1206,5 @@
 }
 
+/** Float with width too small to cover the exponent sign and number */
 PCUT_TEST(float_width_small_for_expsignum)
 {
@@ -1189,5 +1212,4 @@
 	float f;
 
-	/* Float with width too small to cover the exponent sign and number */
 	rc = sscanf("12.34e+2", "%6f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1197,4 +1219,5 @@
 }
 
+/** Float with width too small to cover the exponent part */
 PCUT_TEST(float_width_small_for_exp)
 {
@@ -1202,5 +1225,4 @@
 	float f;
 
-	/* Float with width too small to cover the exponent part */
 	rc = sscanf("12.34e+2", "%5f", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1210,4 +1232,5 @@
 }
 
+/** Float using alternate form 'F' */
 PCUT_TEST(float_cap_f)
 {
@@ -1215,5 +1238,4 @@
 	float f;
 
-	/* Float using alternate form 'F' */
 	rc = sscanf("42e1", "%F", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1221,4 +1243,5 @@
 }
 
+/** Float using alternate form 'a' */
 PCUT_TEST(float_a)
 {
@@ -1226,5 +1249,4 @@
 	float f;
 
-	/* Float using alternate form 'a' */
 	rc = sscanf("42e1", "%a", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1232,4 +1254,5 @@
 }
 
+/** Float using alternate form 'e' */
 PCUT_TEST(float_e)
 {
@@ -1237,5 +1260,4 @@
 	float f;
 
-	/* Float using alternate form 'e' */
 	rc = sscanf("42e1", "%e", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1243,4 +1265,5 @@
 }
 
+/** Float using alternate form 'g' */
 PCUT_TEST(float_g)
 {
@@ -1248,5 +1271,4 @@
 	float f;
 
-	/* Float using alternate form 'g' */
 	rc = sscanf("42e1", "%g", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1254,4 +1276,5 @@
 }
 
+/** Float using alternate form 'A' */
 PCUT_TEST(float_cap_a)
 {
@@ -1259,5 +1282,4 @@
 	float f;
 
-	/* Float using alternate form 'A' */
 	rc = sscanf("42e1", "%A", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1265,4 +1287,5 @@
 }
 
+/** Float using alternate form 'E' */
 PCUT_TEST(float_cap_e)
 {
@@ -1270,5 +1293,4 @@
 	float f;
 
-	/* Float using alternate form 'E' */
 	rc = sscanf("42e1", "%E", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
@@ -1276,4 +1298,5 @@
 }
 
+/** Float using alternate form 'G' */
 PCUT_TEST(float_cap_g)
 {
@@ -1281,5 +1304,4 @@
 	float f;
 
-	/* Float using alternate form 'G' */
 	rc = sscanf("42e1", "%G", &f);
 	PCUT_ASSERT_INT_EQUALS(1, rc);
