All of lore.kernel.org
 help / color / mirror / Atom feed
* locale.5: Complete LC_COLLATE
@ 2016-04-26 19:55 Marko Myllynen
       [not found] ` <571FC7C7.1070402-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Marko Myllynen @ 2016-04-26 19:55 UTC (permalink / raw)
  To: Michael Kerrisk (man-pages); +Cc: Mike Frysinger, Mike Fabian, linux-man

Hi,

Here's the first attempt to (almost) complete the locale.5 manual page
by documenting all (but perhaps one) of the missing LC_COLLATE keywords.

I think the LC_COLLATE section is still not enough to be used as the
only source when writing collation rules from scratch but perhaps
that's not even needed, it could be also thought that the section 5
pages merely describe the format used in the files. Naturally more
information could be added later on top of this patch.

Few notes:

- AFAICS coll_weight_max is not used anywhere in glibc
- I'm not aware of any C library implementation on Linux (for which
this manual page would be relevant) which would implement the POSIX
options not supported by glibc
- the glibc specific script keyword could still be documented

Sources:

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html
http://www.open-std.org/jtc1/SC22/WG20/docs/n972-14652ft.pdf

PS. A couple of unrelated comment clean-ups slipped in as well, sorry
about those.

---
 man5/locale.5 | 45 +++++++++++++++++++++++++++++++--------------
 1 file changed, 31 insertions(+), 14 deletions(-)

diff --git a/man5/locale.5 b/man5/locale.5
index e451798..ad2aac0 100644
--- a/man5/locale.5
+++ b/man5/locale.5
@@ -114,14 +114,14 @@ the GNU C library supports the following nonstandard categories:
 See
 .BR locale (7)
 for a more detailed description of each category.
-.\"
+
 .SS LC_ADDRESS
 The definition starts with the string
 .I LC_ADDRESS
 in the first column.
 
 The following keywords are allowed:
-.\" Thanks to the kind folk who wrote localedata/locales/uk_UA
+.\" From localedata/locales/uk_UA
 .TP
 .I postal_fmt
 followed by a string containing field descriptors that define
@@ -494,20 +494,20 @@ The
 definition ends with the string
 .IR "END LC_CTYPE" .
 .SS LC_COLLATE
-Due to limitations of glibc not all POSIX-options are implemented.
+Note that glibc does not support all POSIX-defined options,
+only the options described below are supported (as of glibc 2.23).
 
 The definition starts with the string
 .I LC_COLLATE
 in the first column.
 
 The following keywords are allowed:
-.\" FIXME The following LC_COLLATE keywords are not documented:
-.\" 	reorder-after
-.\" 	reorder-end
-.\" 	reorder-sections-after
-.\" 	reorder-sections-end
+.\" FIXME The following glibc LC_COLLATE keywords are not documented:
 .\" 	script
-.\" 	symbol-equivalence
+.TP
+.I coll_weight_max
+followed by the number representing used collation levels.
+This keyword is recognized but ignored by glibc.
 .TP
 .I collating-element
 followed by the definition of a collating-element symbol
@@ -516,8 +516,25 @@ representing a multicharacter collating element.
 .I collating-symbol
 followed by the definition of a collating symbol
 that can be used in collation order statements.
+.TP
+.I reorder-after
+followed by a redefinition of a collation rule.
+.TP
+.I reorder-end
+marks the end of the redefinition of a collation rule.
+.TP
+.I section
+followed by a section of collation order statements.
+.TP
+.I section-symbol
+followed by a section symbol representing a set of collation order
+statements.
+.TP
+.I symbol-equivalence
+followed by a collating-symbol to be equivalent to another defined
+collating-symbol.
 .PP
-The order-definition starts with a line:
+The collation rule definition starts with a line:
 .TP
 .I order_start
 followed by a list of keywords chosen from
@@ -525,8 +542,8 @@ followed by a list of keywords chosen from
 .BR backward ,
 or
 .BR position .
-The order definition consists of lines that describe the order
-and is terminated with the keyword
+The order definition consists of lines that describe the collation
+order and is terminated with the keyword
 .IR order_end .
 .PP
 The
@@ -878,7 +895,7 @@ The allowed keywords are as follows:
 followed by a string containing field descriptors that define
 the format used for names in the locale.
 The following field descriptors are recognized:
-.\" From localedata/locales/uk_UA:
+.\" From localedata/locales/uk_UA
 .RS
 .TP 4
 %f
@@ -1233,7 +1250,7 @@ The default value is
 See NOTES.
 .TP
 .I cal_direction
-.\" from localedata/locales/uk_UA
+.\" From localedata/locales/uk_UA
 followed by a plain number value that indicates the direction for the
 display of calendar dates, as follows:
 .RS

Thanks,

-- 
Marko Myllynen
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: locale.5: Complete LC_COLLATE
       [not found] ` <571FC7C7.1070402-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2016-05-09 20:44   ` Michael Kerrisk (man-pages)
  0 siblings, 0 replies; 2+ messages in thread
From: Michael Kerrisk (man-pages) @ 2016-05-09 20:44 UTC (permalink / raw)
  To: Marko Myllynen
  Cc: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w, Mike Frysinger, Mike Fabian,
	linux-man

Hi Marko,

On 04/26/2016 09:55 PM, Marko Myllynen wrote:
> Hi,
> 
> Here's the first attempt to (almost) complete the locale.5 manual page
> by documenting all (but perhaps one) of the missing LC_COLLATE keywords.
> 
> I think the LC_COLLATE section is still not enough to be used as the
> only source when writing collation rules from scratch but perhaps
> that's not even needed, it could be also thought that the section 5
> pages merely describe the format used in the files. Naturally more
> information could be added later on top of this patch.
> 
> Few notes:
> 
> - AFAICS coll_weight_max is not used anywhere in glibc
> - I'm not aware of any C library implementation on Linux (for which
> this manual page would be relevant) which would implement the POSIX
> options not supported by glibc
> - the glibc specific script keyword could still be documented
> 
> Sources:
> 
> http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html
> http://www.open-std.org/jtc1/SC22/WG20/docs/n972-14652ft.pdf

Okay.

> PS. A couple of unrelated comment clean-ups slipped in as well, sorry
> about those.

No worries.

Thanks. Patch applied! 

Cheers,

Michael

> ---
>  man5/locale.5 | 45 +++++++++++++++++++++++++++++++--------------
>  1 file changed, 31 insertions(+), 14 deletions(-)
> 
> diff --git a/man5/locale.5 b/man5/locale.5
> index e451798..ad2aac0 100644
> --- a/man5/locale.5
> +++ b/man5/locale.5
> @@ -114,14 +114,14 @@ the GNU C library supports the following nonstandard categories:
>  See
>  .BR locale (7)
>  for a more detailed description of each category.
> -.\"
> +
>  .SS LC_ADDRESS
>  The definition starts with the string
>  .I LC_ADDRESS
>  in the first column.
>  
>  The following keywords are allowed:
> -.\" Thanks to the kind folk who wrote localedata/locales/uk_UA
> +.\" From localedata/locales/uk_UA
>  .TP
>  .I postal_fmt
>  followed by a string containing field descriptors that define
> @@ -494,20 +494,20 @@ The
>  definition ends with the string
>  .IR "END LC_CTYPE" .
>  .SS LC_COLLATE
> -Due to limitations of glibc not all POSIX-options are implemented.
> +Note that glibc does not support all POSIX-defined options,
> +only the options described below are supported (as of glibc 2.23).
>  
>  The definition starts with the string
>  .I LC_COLLATE
>  in the first column.
>  
>  The following keywords are allowed:
> -.\" FIXME The following LC_COLLATE keywords are not documented:
> -.\" 	reorder-after
> -.\" 	reorder-end
> -.\" 	reorder-sections-after
> -.\" 	reorder-sections-end
> +.\" FIXME The following glibc LC_COLLATE keywords are not documented:
>  .\" 	script
> -.\" 	symbol-equivalence
> +.TP
> +.I coll_weight_max
> +followed by the number representing used collation levels.
> +This keyword is recognized but ignored by glibc.
>  .TP
>  .I collating-element
>  followed by the definition of a collating-element symbol
> @@ -516,8 +516,25 @@ representing a multicharacter collating element.
>  .I collating-symbol
>  followed by the definition of a collating symbol
>  that can be used in collation order statements.
> +.TP
> +.I reorder-after
> +followed by a redefinition of a collation rule.
> +.TP
> +.I reorder-end
> +marks the end of the redefinition of a collation rule.
> +.TP
> +.I section
> +followed by a section of collation order statements.
> +.TP
> +.I section-symbol
> +followed by a section symbol representing a set of collation order
> +statements.
> +.TP
> +.I symbol-equivalence
> +followed by a collating-symbol to be equivalent to another defined
> +collating-symbol.
>  .PP
> -The order-definition starts with a line:
> +The collation rule definition starts with a line:
>  .TP
>  .I order_start
>  followed by a list of keywords chosen from
> @@ -525,8 +542,8 @@ followed by a list of keywords chosen from
>  .BR backward ,
>  or
>  .BR position .
> -The order definition consists of lines that describe the order
> -and is terminated with the keyword
> +The order definition consists of lines that describe the collation
> +order and is terminated with the keyword
>  .IR order_end .
>  .PP
>  The
> @@ -878,7 +895,7 @@ The allowed keywords are as follows:
>  followed by a string containing field descriptors that define
>  the format used for names in the locale.
>  The following field descriptors are recognized:
> -.\" From localedata/locales/uk_UA:
> +.\" From localedata/locales/uk_UA
>  .RS
>  .TP 4
>  %f
> @@ -1233,7 +1250,7 @@ The default value is
>  See NOTES.
>  .TP
>  .I cal_direction
> -.\" from localedata/locales/uk_UA
> +.\" From localedata/locales/uk_UA
>  followed by a plain number value that indicates the direction for the
>  display of calendar dates, as follows:
>  .RS
> 
> Thanks,
> 


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-05-09 20:44 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-26 19:55 locale.5: Complete LC_COLLATE Marko Myllynen
     [not found] ` <571FC7C7.1070402-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-05-09 20:44   ` Michael Kerrisk (man-pages)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.