VMS Help
PASCAL, Predeclared Routines, Null String

 *Conan The Librarian (sorry for the slow response - running on an old VAX)

  Compaq Pascal provides routines for manipulating null-terminated
  strings.   These  routines use the predeclared type C_STR_T as a
  pointer to a null-terminated  character  string.   The  compiler
  assumes  that  buffers are large enough to hold their values and
  null-terminated  strings  are  actually  terminated  by  a  null
  character.

  1 - C_STR

  The C_STR function takes a compile-time  string  expression  and
  returns  a  C_STR_T  pointer  to  a static string literal with a
  terminating null character.

  Syntax:

     C_STR(e)

  The C_STR function can also accept a Pascal variable  of  either
  PACKED ARRAY OF CHAR, VARYING OF CHAR, or STRING.

  Syntax:

     C_STR(v)

  In this form, it will return a C_STR_T value that represents the
  first  character  in  the string variable.  It does not ensure a
  terminating  null  byte.   The  programmer   must   handle   the
  null-termination   to  treat  a  Pascal  string  variable  as  a
  null-terminated string.

  2 - MALLOC_C_STR

  The MALLOC_C_STR function  takes  a  Pascal  string  expression,
  calls the C routine malloc() to allocate memory, initializes the
  memory with the  string  expression,  and  then  terminates  the
  string with a null-charcter.

  Syntax:

     MALLOC_C_STR(e)

  The type of the expression e must be a Pascal string expression.
  The  function  result is a C_STR_T pointer to the null-terminted
  string.  The amount of memory allocated with malloc()  is  equal
  to  the  length  of  the string expression plus one.  The memory
  allocated with MALLOC_C_STR  must  be  deallocated  with  the  C
  free()  routine.  The compiler will not allow C_STR_T parameters
  with the NEW and DISPOSE routines.

  3 - PAS_STR

  The PAS_STR function  returns  a  Pascal  string  value  from  a
  C_STR_T value.

  Syntax:

     PAS_STR(e)

  The type of the expression e must be C_STR_T.  It is an error if
  the expression is NIL.

  4 - PAS_STRCPY

  The PAS_STRCPY function copies a Pascal string  expression  into
  memory pointed to by C_STR_T.

  Syntax:

     PAS_STRCPY(v, e)

  The type of the variable v must be C_STR_T.   The  type  of  the
  expression  e  must  be  a Pascal string expression.  The Pascal
  string is copied into the memory pointed to by the  variable  v.
  The  memory  is  then  terminated  with  a  null character.  The
  function returns a C_STR_T value  representing  the  destination
  (such as, the same value as contained by the variable v).

  The behavior of PAS_STRCPY is undefined if  the  length  of  the
  Pascal  string expression is greater than or equal to the amount
  of memory pointed to by the variable v.  It is an error  if  the
  variable v is NIL.
  Close     HLB-list     TLB-list     Help  

[legal] [privacy] [GNU] [policy] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.