The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

msgcpp (1)
  • >> msgcpp (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
  •  

    NAME

    msgcpp - C language message catalog preprocessor
     
    

    SYNOPSIS

    msgcpp [-ACEHMPVX] [-D name[=value]] [-I directory] [-U name] 
    [-T[length]] [-Y directory] [input [output] ]
    

     

    DESCRIPTION

    msgcpp is a C language message catalog preprocessor. It accepts cpp(1) style options and arguments. msgcpp preprocesses an input C source file and emits keyed lines to the output, usually for further processing bymsgcc(1). msgcc output is in the gencat(1) syntax. Candidate message text is determined by arguments to the last <error.h> and <option.h> functions. The msgcpp keyed output lines are:

    cmd command

    command is a candidate for --??keys option string generation. This is triggered by b_command(int argc, in the input.

    def name string

    name is a candidate variable with string value string.

    str string

    string should be entered into the catalog.

    var name

    If def name occurs then its string value should be entered into the catalog.

    The input source file is preprocessed with the pp:allpossible option on. This enables non-C semantics. All source should first be compiled error-free with a real compiler before running msgcpp. The following changes are enabled for the top level files. Included file behavior is not affected.

    1.
    All #if, #ifdef and #ifndef branches are enabled.
    2.
    The first definition for a macro is retained, even when subsequent #define statements would normally redefine the macro. #undef must be used to redefine a macro.
    3.
    Macro calls with an improper number of arguments are silently ignored.
    4.
    #include on non-existent headers are silently ignored.
    5.
    Invalid C source characters are silently ignored.

    msgcat.h is included if it exists. This file may contain macro definitions for functions that translate string arguments. If foo is a function that translates its string arguments then include the line #define foo _TRANSLATE_ in msgcat.h, or specify the option -Dfoo=_TRANSLATE_. If bar is a function that translates string arguments if the first argument is stderr, then use either #define bar _STDIO_ or -Dbar=_STDIO_.

    The macro _BLD_msgcat is defined to be 1. As an alternative to msgcat.h, _TRANSLATE_ definitions could be placed inside #ifdef _BLD_msgcat ... #endif.  

    OPTIONS

    The following options are supported:

    -A
    --assert=assertion

    Enter the assertion using #assert for system V compatibility.

    -C
    --comments

    Pass comments to the output.

    Comments are omitted by default.

    -D
    --define=name[=value]

    Define the macro name to have value. This is the only portable way to pass options through cc to cpp(1).
    o If =value is omitted, value is assumed to be 1 .
    o If name begins with :, then it is interpreted as a libpp #pragma pp: statement.
    o If name begins with %, it is interpreted as a libpp # directive statement.
    o If name begins with a - or a +, it is interpreted as a libpp option.

    - turns the option on, + turns it off.

    o Most options have a #pragma counterpart that is listed with the option definition.

    -D-C
    pp:compatibility

    Preprocess for K&R C compatibility.

    -D-Dlevel
    pp:debug level level

    Set the debug trace level.

    Specify level as a number greater than or equal to 0. Higher levels produce more output. Levels higher than 3 can only be enabled in the -g compiled versions.

    -D-Fname

    Set the main input file name to name. This only affects the error messages and the line sync output.

    -D-H
    pp:hosted

    All directories are hosted. Compatibility warning messages from the hosted directory headers are suppressed.

    -D-I
    pp:cdir

    All directories contain C headers. This option is only used only with -D-+.

    -D-K
    pp:keyargs

    Enable the non-standard name=value macro argument mode.

    -D-L[id]
    pp:lineid [id]

    Set the line sync directive id to id. If id is not specified, set to null.

    -D-M
    pp:nomultiple

    Disable multiple include detection.

    -D-P
    pp:passthrough

    Enable the non-standard passthrough mode. This can be useful for processing non-C input.

    -D-Q
    pp:dump

    Dump macro definitions to the output so that the output may be passed through cpp again. This is used for generating precompiled headers.

    -D-R
    pp:transition

    Enable the transition preprocessing mode. This is used for compilers that cannot make up their semantics between K&R and ISO C.

    -D-S
    pp:strict

    Enable strict preprocessing semantics and warnings. This works with any mode (compatibility, transition, or the default ISO).

    -D-Ttest
    pp:test test

    Enable implementation specific test code according to test.

    -D-W
    pp:warn

    Enable pedantic warnings in non-hosted files.

    -D-X[cc]

    Preprocess for the cc compiler, which must be an executable path or an executable on $PATH.

    -D-Z
    pp:pool

    Enable pool mode.

    -D-d

    List canonicalized #define statements for non-predefined macros in the output.

    -D-m

    List canonicalized #define statements for all macros. All other output is disabled.

    -D-+
    pp:plusplus

    Preprocess for the C++ dialect.

    -E
    --preprocess

    Ignored; for compatibility with very old compilers.

    -H
    --include-reference

    Emit #include file paths on the standard error, one per line, indented to show nesting.

    -I
    --include[=directory]

    Append directory to the list of directories searched for #include files.

    If directory is -:

    1.
    -I directories before -I- are searched only for "..." include files
    2.
    -I directories after -I- are searched for "..." and <"..."> include files
    3.
    the directory . is searched only if it is explicitly specified by an -I option

    -I-Cdirectory
    pp:cdir directory

    Mark directory as a C header directory. This option is used with pp:plusplus.

    -I-D[file]

    Read the default probe definitions from file, or ignore the default definitions if file is omitted.

    -I-Hdirectory
    pp:hostdir directory

    Mark directory as a hosted directory. Headers from hosted directories have compatibility warnings disabled.

    -I-Iheader
    pp:ignore header

    Add header to the list of ignored headers.

    -I-Mfile

    file contains a sequence of header [= "map" ] lines, where header is either <name> or "name", and "map" is an explicit binding for header. header is ignored if = "map" is omitted.

    -I-Rfile

    Include file but do not emit text or line syncs.

    -I-Sdirectory

    Add directory to the default standard include directory list.

    -I-Tfile

    Include file and emit text to the output file. The option value can be omitted.

    -M
    --dependencies

    Generate make(1S) dependencies. This option is not needed with nmake.

    The -M option can be followed by optional flags to change the dependency output styles.

    The following optional flags are supported:

    D

    Generate dependencies in a separate .d file. Preprocessed output is still written to output, or the standard output if output is omitted.

    G

    Also generate missing dependencies.

    M

    Only generate local header dependencies. Hosted headers are omitted. Hosted headers are determined by the -I-H option and the --pp:hosted and pp:hostdir pragmas. No special distinction is made between the "" and <> include styles.

    -P
    --sync

    Emit line syncs.

    Line sync is turned on by default. -P means --nosync.

    -T[length]

    If not gcc, truncate identifiers to length characters for compatibility with old AT&T compilers.

    -U
    --undefine=name

    Remove the definition for the macro name.

    -V
    --version

    Emit the libpp version.

    -X
    --argmode

    Enable name=value macro arguments for easel compatibility.

    -Y
    --standard=directory

    Add directory to the list searched for #include <...> files.

     

    OPERANDS

    The following operands are supported:

    input

    Specifies C source file to preprocess.

    output

    Specifies output file.

     

    EXIT STATUS

    0

    Successful completion.

    >0

    An error occurred.

     

    EXAMPLES

    Example 1 Using msgcpp to Extract Localizable Strings

    The following example uses msgcpp to extract localizable strings from the file hello.c, marked using the ERROR_dictionary(), and writes them to the file hello.mso:

    example% cat hello.c
    
    
    #include <stdio.h>
    #include <stdlib.h>
    
    /*
    * dummy macro to avoid including
    * libast headers
    */
    #define ERROR_dictionary(x) x
    
    int main(int ac, char *av[])
    {
       puts( ERROR_dictionary("hello world") );
       puts( ERROR_dictionary("hello all") );
       return( EXIT_SUCCESS );
    }
    
    example% msgcpp -D__STDC__ -D__i386 hello.c hello.mso
    
    example% cat hello.mso
    str "hello world"
    str "hello all"
    

     

    AUTHORS

    Glenn Fowler, gsf@research.att.com  

    ATTRIBUTES

    See attributes(5) for descriptions of the following attributes:

    ATTRIBUTE TYPEATTRIBUTE VALUE

    AvailabilitySUNWastdev

    Interface Stability

     

    SEE ALSO

    cpp(1), gencat(1), msgcc(1), msgcvt(1), msggen(1), make(1S), attributes(5)

    Kernighan, Brian W. and Ritchie, Dennis M., The C Programming Language, Prentice Hall, 1988.


     

    Index

    NAME
    SYNOPSIS
    DESCRIPTION
    OPTIONS
    OPERANDS
    EXIT STATUS
    EXAMPLES
    AUTHORS
    ATTRIBUTES
    SEE ALSO


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру