Blob Blame History Raw
/* $XConsortium: StringParse.dat /main/4 1995/07/17 10:25:20 drk $ */
/*
 * Motif
 *
 * Copyright (c) 1987-2012, The Open Group. All rights reserved.
 *
 * These libraries and programs are free software; you can
 * redistribute them and/or modify them under the terms of the GNU
 * Lesser General Public License as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option)
 * any later version.
 *
 * These libraries and programs are distributed in the hope that
 * they will be useful, but WITHOUT ANY WARRANTY; without even the
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 * PURPOSE. See the GNU Lesser General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with these librararies and programs; if not, write
 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301 USA
 */
/*
 * HISTORY
 */

@) The following panels tests the XmParseMapping and XmStringParse API.
An empty drawing area widget should be displayed in the test window.

C)

#) In this first panel, the character string \"One./Two/>Tab\" is parsed 
replacing the patterns \"/" with a separator and \">" with a tab. 


#) XmStringParse() is called with XmNincludeStatus = XmTERMINATE for
each of the XmParseMapping entries of the XmParseTable.
The XmString should terminate after the first pattern is encountered.
Verify that the XmString displayed matches the text below:

@) One. 

C)

#) XmStringParse() is called with XmNincludeStatus = XmINSERT for
each of the XmParseMapping entries and the delimiter is a \".\".
The XmString should terminate prior to the \".\" character. 
Verify that the XmString displayed matches the text below:
 
@) One 

C)

#) XmStringParse() is called with XmNincludeStatus = XmINSERT for
each of the XmParseMapping entries and no delimiter is specified.
The XmString should terminate after the entire character string is parsed. 
Verify that the XmString displayed matches the text below, where the word
\"Tab\" is indented by one inch:

@) One.
@) Two
@) 	Tab

C)

#)  Call XmStringUnparse() to retrieve the original character string
which was parsed to create an XmString.
A message will be printed to the terminal indicating whether or not
XmStringUnparse() was successful in generating the original character
string.

C)

@) A parse proc is assigned to the XmParseMapping which converts the
pattern \"/\" to a string.  Now when the pattern \"/\" is encountered,
the word \"String\" is inserted into the string prior to the separator.

#) When XmStringParse() is called, the XmString should terminate after
the first pattern is encountered.
Verify that the XmString displayed matches the text below:

@) One. String

C)

#) When XmStringParse() is called, the XmString should terminate at
the end of the character string. 
Verify that the XmString displayed matches the text below:

@) One. String
@) Two String
@) 	Tab

C)


#)  A new parse table is created which replaces the pattern \">\"
with an XmString direction component with direction set to
XmSTRING_DIRECTION_L_TO_R and replaces the pattern \"<\" with
the an XmString direction component with direction set to
XmSTRING_DIRECTION_R_TO_L. 
XmStringTableParseStringArray() is called to parse an array 
of character strings containing these patterns and returns
a table of XmStrings.
The following strings should be displayed:

@) Left To Right
@) Right To Left
@) Left To Right
@) Right To Left 

#)  Call XmStringTableUnparse() to retrieve the original character string
which was parsed to create the XmStrings.
A message will be printed to the terminal indicating whether or not
XmStringTableUnparse() was successful in generating the original character
string.

C)

#)  XmStringTableToXmString() is called to convert an array of XmStrings to
one XmString with a specified break component inserted between each
of the original XmStrings.
XmStringGetNextComponent() is then called to traverse the new XmString
to ensure each of the components is correct.
A message will be printed to the terminal indicating whether or not
XmStringTableToXmString() was successful in building the one XmString.

#) XmStringToXmStringTable() is then called to convert the one XmString
back to a table of XmStrings. Each XmString in the returned table is 
compared with its corresponding XmString in the original table.
If all the XmStrings match, the function was successful.
A message will be printed to the terminal indicating whether or not
XmStringToXmStringTable() was successful or not. 

C)
E)