

            ptoc (2) --- convert packed string to EOS-terminated string  03/23/80


            _C_a_l_l_i_n_g _I_n_f_o_r_m_a_t_i_o_n

                 integer function ptoc (pstr, term, str, len)
                 packed_char pstr (ARB)
                 integer len
                 character term, str (len)

                 Library:  vswtlb (standard Subsystem library)


            _F_u_n_c_t_i_o_n

                 'Ptoc'  is  used  to convert packed character strings (e.g.,
                 Fortran Hollerith literals) into the EOS-terminated unpacked
                 form normally used by all Subsystem routines.  The  argument
                 'pstr'  is  the  packed  array to be converted.  'Term' is a
                 "termination  character";  if  the   termination   character
                 appears  unescaped  in the packed string, then the unpacking
                 operation will be terminated.  (For example,  most  uses  of
                 packed  strings  in  _S_o_f_t_w_a_r_e  _T_o_o_l_s  included a period as a
                 termination character, since in general there  is  no  other
                 way  for  a  subprogram  to  tell  where a Hollerith literal
                 ends.)  The argument 'str' is an array to receive the unpac-
                 ked string; its maximum length is specified by the  argument
                 'len'.

                 The function return is the length of the string in 'str' (as
                 usual, excluding the EOS character).

                 A  note  on  a  rather  common  use  of 'ptoc':  Many Primos
                 routines return packed character strings that do not have  a
                 termination  character,  but do have a maximum length.  When
                 using 'ptoc' to convert the output of  these  routines,  one
                 may  use EOS as the termination character to obtain a fixed-
                 length result.


            _I_m_p_l_e_m_e_n_t_a_t_i_o_n

                 'Ptoc' uses the standard Subsystem macro  'fpchar'  to  pull
                 successive characters from the packed array.  These are sim-
                 ply  copied  into  the  receiving string until the string is
                 full or an unescaped instance of the  termination  character
                 is found.


            _A_r_g_u_m_e_n_t_s _M_o_d_i_f_i_e_d

                 str


            _S_e_e _A_l_s_o

                 other    conversion    routines   ('cto?*'   and   '?*toc'),
                 particularly 'ctop' (2), 'vtoc' (2), and 'ctov' (2)



            ptoc (2)                      - 1 -                      ptoc (2)


