IPB
>  Man Pages > Unix > Solaris 10 11/06 > Section 1 > exstr man page

exstr man page

Section 1 - Solaris 10 11/06 Man Pages

Other operating system man pages available here


Advanced Search

Hopefully, this page is exactly what you are looking for, but if not, you can always find further assistance on Unix/Linux Forum!





User Commands                                            exstr(1)



NAME
     exstr - extract strings from source files

SYNOPSIS
     exstr filename...

     exstr -e filename...

     exstr -r [-d] filename...

DESCRIPTION
     The exstr utility is used to extract strings from C-language
     source  files  and  replace  them  by  calls  to the message
     retrieval  function  (see  gettxt(3C)).  This  utility  will
     extract  all  character strings surrounded by double quotes,
     not just strings used as arguments to the printf command  or
     the  printf  routine.  In  the  first  form, exstr finds all
     strings in the source files and writes them on the  standard
     output.  Each string is preceded by the source file name and
     a colon (:).

     The first step is to use exstr  -e  to  extract  a  list  of
     strings  and  save it in a file. Next, examine this list and
     determine which strings can be translated  and  subsequently
     retrieved  by  the  message retrieval function. Then, modify
     this file by deleting lines that can't  be  translated  and,
     for lines that can be translated, by adding the message file
     names and the message numbers as the  fourth  (msgfile)  and
     fifth  (msgnum)  entries  on a line. The message files named
     must  have  been  created  by   mkmsgs(1)   and   exist   in
     /usr/lib/locale/locale/LC_MESSAGES   . (The directory locale
     corresponds to the language in which the  text  strings  are
     written;  see  setlocale(3C)). The message numbers used must
     correspond to the sequence numbers of strings in the message
     files.

     Now use this modified file as input to exstr -r to produce a
     new  version of the original C-language source file in which
     the strings have been  replaced  by  calls  to  the  message
     retrieval  function  gettxt(). The msgfile and msgnum fields
     are used to construct the first argument  to  gettxt().  The
     second  argument  to  gettxt()  is  printed  if  the message
     retrieval fails at  run-time.  This  argument  is  the  null
     string, unless the -d option is used.

     This utility cannot replace strings in  all  instances.  For
     example,  a  static  initialized  character string cannot be
     replaced by a function call. A  second  example  is  that  a
     string  could be in a form of an escape sequence which could
     not be translated. In order not to break existing code,  the
     files  created  by  invoking  exstr  -e must be examined and
     lines containing strings not replaceable by  function  calls



SunOS 5.10           Last change: 5 Jul 1990                    1






User Commands                                            exstr(1)



     must  be deleted. In some cases the code may require modifi-
     cations so that strings can be  extracted  and  replaced  by
     calls to the message retrieval function.

OPTIONS
     The following options are supported:

     -e       Extract a list of strings from the named C-language
              source  files,  with  positional  information. This
              list is produced on standard output in the  follow-
              ing format:


              file:line:position:msgfile:msgnum:string



              file            the name  of  a  C-language  source
                              file



              line            line number in the file



              position        character position in the line



              msgfile         null



              msgnum          null



              string          the extracted text string


              Normally you would  redirect  this  output  into  a
              file.  Then  you  would  edit  this file to add the
              values you want to use for msgfile and msgnum:


              msgfile         the file  that  contains  the  text
                              strings that will replace string. A
                              file with this name must be created
                              and  installed  in  the appropriate
                              place by the mkmsgs(1) utility.




SunOS 5.10           Last change: 5 Jul 1990                    2






User Commands                                            exstr(1)



              msgnum          the sequence number of  the  string
                              in msgfile.


              The next step is to use exstr -r to replace strings
              in file.


     -r       Replace strings in a C-language  source  file  with
              function  calls  to  the message retrieval function
              gettxt().



     -d       This option is used together with the -r option. If
              the   message  retrieval  fails  when  gettxt()  is
              invoked at run-time, then the extracted  string  is
              printed.  You  would use the capability provided by
              exstr on an application program that needs  to  run
              in  an  international environment and have messages
              print in more than  one  language.  exstr  replaces
              text  strings  with  function  calls  that point at
              strings in a message data base. The data base  used
              depends  on  the  run-time value of the LC_MESSAGES
              environment variable (see environ(5)).



EXAMPLES
     Example 1: The following examples show uses of exstr

     Assume that the file example.c contains two strings:

     main()

     {

             printf("This is an example\n");

             printf("Hello world!\n");

     }


     The exstr  utility,  invoked  with  the  argument  example.c
     extracts  strings from the named file and prints them on the
     standard output.

     example% exstr example.c

     produces the following output:




SunOS 5.10           Last change: 5 Jul 1990                    3






User Commands                                            exstr(1)



     example.c:This is an example\n
     example.c:Hello world!\n

     The exstr utility, invoked with the -e option and the  argu-
     ment   example.c,   and   redirecting  output  to  the  file
     example.stringsout

     example% exstr -e example.c > example.stringsout

     produces the following output in the file example.stringsout

     example.c:3:8:::This is an example\n
     example.c:4:8:::Hello world!\n

     You must edit example.stringsout to add the values you  want
     to  use  for  the  msgfile  and  msgnum  fields before these
     strings can be replaced by calls to the retrieval  function.
     If UX is the name of the message file, and the numbers 1 and
     2 represent the sequence number of the strings in the  file,
     here  is  what  example.stringsout  looks like after you add
     this information:

     example.c:3:8:UX:1:This is an example\n
     example.c:4:8:UX:2:Hello world!\n

     The exstr utility can now be invoked with the -r  option  to
     replace  the strings in the source file by calls to the mes-
     sage retrieval function gettxt().

     example% exstr -r example.c <example.stringsout >intlexample.c

     produces the following output:

     extern char *gettxt();

     main()

     {

          printf(gettxt("UX:1", ""));

          printf(gettxt("UX:2", ""));

     }

     The following example:

     example% exstr -rd example.c <example.stringsout >intlexample.c

     uses the extracted strings as a second argument to gettxt():





SunOS 5.10           Last change: 5 Jul 1990                    4






User Commands                                            exstr(1)



     extern char *gettxt();

     main()

     {

             printf(gettxt("UX:1", "This is an example\n"));

             printf(gettxt("UX:2", "Hello world!\n"));

     }

FILES
     /usr/lib/locale/locale/LC_MESSAGES/*

         files created by mkmsgs(1)



ATTRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWtoo                     |
    |_____________________________|_____________________________|


SEE ALSO
     gettxt(1),  mkmsgs(1),  printf(1),  srchtxt(1),  gettxt(3C),
     printf(3C), setlocale(3C), attributes(5), environ(5)

DIAGNOSTICS
     The error messages produced by  exstr  are  intended  to  be
     self-explanatory.  They  indicate errors in the command line
     or format errors encountered within the input file.

















SunOS 5.10           Last change: 5 Jul 1990                    5





Man(1) output converted with man2html and wrapped by fishsponge

This page was generated on Wed Sep 12 11:24:39 GMT 2007

Your favourite pages:

No pages logged yet.
Trying to save cookie...

Top 10 most popular pages:

sqlite3 man page (5333 hits)
(openSUSE 10.2)

svn man page (5208 hits)
(FreeBSD 6.2)

adv_cap_autoneg man page (4870 hits)
(Solaris 10 11_06)

CPAN man page (4607 hits)
(Suse Linux 10.1)

ssh man page (4342 hits)
(Suse Linux 10.1)

ssh-socks5-proxy-connect man page (2874 hits)
(Solaris 10 11_06)

netcat man page (2717 hits)
(Suse Linux 10.1)

pprosetup man page (2487 hits)
(Solaris 10 11_06)

startproc man page (2471 hits)
(Suse Linux 10.1)

signal man page (2406 hits)
(Suse Linux 10.1)

Useful Links

Go Back

Visitor Statistics


Valid XHTML 1.0 Transitional     Valid CSS!

Partners: Cambridge Plus :: Pyrenees Mountain Holidays :: PCB CAD Design, UK :: <Link Available>
Unix Man Pages / Linux Man Pages :: HiFi Forum :: SIP VoIP Phone & Provider Reviews :: UNIX/Linux Forum Archives

More info on advertising on Unix/Linux Forum