# $XConsortium: StringParse.scr /main/4 1995/07/17 20:47:16 drk $ # @OPENGROUP_COPYRIGHT@ # COPYRIGHT NOTICE # Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc. # Copyright (c) 1996, 1997, 1998, 1999, 2000 The Open Group # ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for # the full copyright text. # # This software is subject to an open license. It may only be # used on, with or for operating systems which are themselves open # source systems. You must contact The Open Group for a license # allowing distribution and sublicensing of this software on, with, # or for operating systems which are not Open Source programs. # # See http://www.opengroup.org/openmotif/license for full # details of the license agreement. Any use, reproduction, or # distribution of the program constitutes recipient's acceptance of # this agreement. # # EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS # PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY # WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY # OR FITNESS FOR A PARTICULAR PURPOSE # # EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT # NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN # ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE # EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGES. # # # HISTORY # @) The following panels tests the XmParseMapping and XmStringParse API. # An empty drawing area widget should be displayed in the test window. # C) Continue # #) 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. # #) 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 # #) 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) CompareVisual DrawArea Continue # #) 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) Continue # @) 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) CompareVisual DrawArea Continue # #) 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) CompareVisual DrawArea Continue # #) 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) Continue # #) 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) Continue # E) Exit