HP 3000 Manuals

NLSUBSTR [ MPE/iX Intrinsics Reference Manual ] MPE/iX 5.0 Documentation


MPE/iX Intrinsics Reference Manual

NLSUBSTR 

NM and CM callable.

Extracts movelength bytes from the instring to the outstring.

Syntax 
______________________________________________________
|                                                    |
|                 CA     I16V      CA       I16      |
|     NLSUBSTR(instring,inlength,outstring,outlength,|
|                   I16V        16V       I16V       |
|              startposition,movelength,langnum,     |
|               I16V U16A  U16A                      |
|              flags,error,charset);                 |
______________________________________________________

            

Parameters 

instring              character array (required) 

                      Contains the string from which the substring is
                      extracted.  The string can contain both 1 byte and
                      2 byte Asian characters.

inlength              16-bit signed integer by value (required) 

                      Contains the length, in bytes, of instring.

outstring             character array (required) 

                      Indicates where substring is placed.

outlength             16-bit signed integer by reference (required) 

                      Passes the length, in bytes, of outstring.  After a
                      successful call, outlength returns the actual
                      length of the substring moved to outstring.

startposition         16-bit signed integer by value (required) 

                      Contains the offset into instring where the
                      substring starts.  A value of zero is the beginning
                      point.

movelength            16-bit signed integer by value (required) 

                      Passes the length, in bytes, of the substring.

langnum               16-bit signed integer by value (required) 

                      Contains the language ID number.

flags                 16-bit signed integer by value (required) 

                      Contains the flag word, and is used primarily with
                      Asian languages.  It is meaningless with 1 byte
                      languages.  It is used when special treatment is
                      required:

                         Bits     Value/Meaning 

                         12:4     Used if the first character of a substring is the
                                  second byte of a 2 byte Asian character:

                                  0000 Return an error condition

                                  0001 Start from startposition +1

                                  0010 Start from startposition -1

                                  0011 Start from startposition, but replace character
                                       with a blank in outstring 

                                  0100 Start from startposition regardless

                          8:4     Used if the last character in a substring is the first
                                  byte of a 2 byte Asian character:

                                  0000 Return an error condition

                                  0001 Move until movelength +1

                                  0010 Move until movelength -1

                                  0011 Move until movelength, but replace character with
                                       a blank in outstring 

                                  0100 Move until movelength regardless

                          0:8     Reserved for the operating system

error                 16-bit unsigned integer array (required) 

                      Returns two elements:  the first element is the
                      error number; the second element is reserved and
                      always returns 0.  The possible error number values
                      are:

                         Value    Meaning 

                           0      Successful

                           1      *NLS not installed

                           2      *Specified language not configured

                           3      Not returned

                           4      Not returned

                           5      *NLS internal error

                           6      *NLS internal error

                           7      Invalid inlength 

                           8      Invalid startposition 

                           9      Invalid movelength 

                          10      Reserved portion of flags not zero

                          11      Invalid value for flags ( 8:4)

                          12      Invalid value for flags (12:4)

                          13      *Start position first byte of an Asian character, or
                                  an overflow condition occurred due to flags 

                          14      *End position second byte of an Asian character, or an
                                  overflow condition occurred due to flags 

                      * Do not apply to calls with langnum equal to 0
                      (NATIVE-3000).

charset               16-bit unsigned integer array (optional) 

                      Contains the character set definition for the
                      language to be used, as returned by itemnum= 12 of
                      NLINFO. When specifying a character set, be sure
                      that the language ID used matches the character
                      set.

Operation Notes 

Split-stack calls are not permitted.

Related Information 

Intrinsics            NLCOLLATE, NLKEYCOMPARE, NLREPCHAR, NLSWITCHBUF,
                      NLSTRANSLATE

Commands              None

Manuals               Native Language Programmer's Guide (32650-90022)



MPE/iX 5.0 Documentation