Re: [PATCH] iconv.1: New page for iconv(1)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/11/2014 04:14 PM, Marko Myllynen wrote:
> Hi,
> 
> On 2014-06-11 17:03, Michael Kerrisk (man-pages) wrote:
>> On Wed, Jun 11, 2014 at 3:30 PM, Marko Myllynen <myllynen@xxxxxxxxxx> wrote:
>>> On 2014-06-11 13:07, Michael Kerrisk (man-pages) wrote:
>>>> On 06/11/2014 10:09 AM, Marko Myllynen wrote:
>>>>> On 2014-06-10 22:28, Michael Kerrisk (man-pages) wrote:
>>>>>> On 06/10/2014 10:38 AM, Marko Myllynen wrote:
>>>>>>>
>>>>>>> while updating the locale pages I noticed there was no iconv(1) page
>>>>>>> in upstream so I wrote one, please see below.
>>>>>>
>>>>>> Thanks for doing this. Could I ask you to look at the comments below, and send
>>>>>> a revised version, please.
>>>>>
>>>>> ok, please see below, hopefully the explanation are now clearer
>>>>> without going into too low level details.
>>>>
>>>> Yes, thanks, a lot better. I have applied this, but have a question, below.
>>>>
>>>>> +.SH ENVIRONMENT
>>>>> +Internally, the
>>>>> +.B iconv
>>>>> +program uses the
>>>>> +.BR iconv (3)
>>>>> +function which in turn uses
>>>>> +.I gconv
>>>>> +modules to convert to and from a character set.
>>>>> +.B iconv
>>>>> +supports any character set for which a
>>>>> +corresponding gconv configuration and module are provided for.
>>>>> +By default, the system provided gconv configuration and modules
>>>>> +are used, but
>>>>> +.B GCONV_PATH
>>>>> +can be defined as a list of pathnames, separated by colons (\(aq:\(aq),
>>>>> +for gconv configuration and module search path,
>>>>> +to be searched prior to the system provided configuration and modules.
>>>>
>>>> That last sentence is long and hard to parse. What exactly is GCONV_PATH?
>>>> Is it a list of configuration paths? module search paths? I am
>>>> left uncertain after reading that sentence.
>>>
>>> yeah, I think I was trying to make a long story too short.
>>>
>>> When a program, such as iconv(1), uses iconv(3) (the function), it first
>>> needs to allocate a conversion descriptor with iconv_open(3) and during
>>> the iconv_open() call glibc, if GCONV_PATH is not set, loads the system
>>> gconv cache file created by iconvconfig(8) and based on the
>>> configuration then loads the needed gconv modules for conversion (an
>>> example of a gconv module is CP1252.so). If GCONV_PATH is set, glibc
>>> first tries to load the configuration files from the paths in GCONV_PATH
>>> followed by the system configuration file. If a directory does not
>>> contain a gconv module configuration file, possible gconv modules in it
>>> are ignored. If a directory contains a gconv module configuration file
>>> and it is determined that a needed module for this conversion is
>>> available in the directory, then the needed module is loaded from there,
>>> the order being so that the first suitable module found in GCONV_PATH is
>>> used. This allows users to use custom modules and even replace system
>>> provided modules by providing such modules in GCONV_PATH directories.
>>
>> It sounds like you mean the above paragraph should be added to the
>> page. Is that correct?
> 
> I was more like providing all the details and wasn't thinking to include
> the paragraph at least as-is. But if you think it seems suitable to be
> added, please go ahead. I'd personally prefer a more compact version but
> compacting the message without losing precision in this case seems a bit
> hard.

So, how does the following look to you:

ENVIRONMENT
       Internally, the iconv program uses the iconv(3) function  which
       in   turn   uses   gconv  modules  (dynamically  loaded  shared
       libraries) to convert to and  from  a  character  set.   Before
       calling  iconv(3), the iconv program must first allocate a con‐
       version descriptor using iconv_open(3).  The operation  of  the
       latter  function is influenced by the setting of the GCONV_PATH
       environment variable:

       *  If GCONV_PATH is not set,  iconv_open(3)  loads  the  system
          gconv  cache  file created by iconvconfig(8) and then, based
          on the configuration, loads the gconv modules needed to per‐
          form the conversion.

       *  If GCONV_PATH is defined (as a colon-separated list of path‐
          names), the system gconv module configuration cache  is  not
          used.   Instead,  iconv_open(3) first tries to load the con‐
          figuration files from one of the directories in  GCONV_PATH,
          followed  by  the system configuration file.  If a directory
          does not contain a  gconv  module  configuration  file,  any
          gconv  modules that it may contain are ignored.  If a direc‐
          tory contains a gconv module configuration file  and  it  is
          determined  that  a  module  needed  for  this conversion is
          available in the directory, then the needed module is loaded
          from  that  directory,  the  order being such that the first
          suitable module found in GCONV_PATH is  used.   This  allows
          users to use custom modules and even replace system-provided
          modules by providing such modules in GCONV_PATH directories.

       iconv supports any character  set  for  which  a  corresponding
       gconv configuration and module are provided.

I have two doubts about the above text:

* What is "the system configuration file"?

* The last sentence (left over from your earlier text) seems out
of place. Is it needed? If it is, I think we need a better place
for it.	

Thanks,

Michael
-- 
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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux