HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 2211 Details

Help Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges

This page provides all information on Problem Report 2211.


Report 2211 Actions


    Problem Report Number 2211
    Submitter's Classification Specification problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0624
    Raised 1998-03-20 08:00
    Updated 2003-03-13 08:00
    Published null
    Product Standard Motif Toolkit
    Certification Program The Open Brand certification program
    Test Suite VSM version 4.0.0
    Test Identification widgets/XmText 4
    Problem Summary PG4M.00019 The reference implementation (i.e. The Motif code provided by TOG) being tested is not in line with the standard specification for this Motif function as defined in the "OSF/Motif Programmer's Refere...
    Problem Text
    The reference implementation (i.e. The Motif code provided by TOG) being

    tested is not in line with the standard specification for this Motif
    function as defined in the "OSF/Motif Programmer's Reference (Rel.
    1.2)".
    The assertion being tested is in line with the standard specification
    but the behavior of this function is not in line with the specification.

    Either the Motif reference implementation is at fault, or the
    Specification needs to be aligned with the reference implemenation. It
    is our understanding that Motif 1.2.X is no longer supported by TOG,
    hence we request this waiver be granted a Permanent Interpretation.

    The description of the kill-to-end-of-line() action routine in the
    "OSF/Motif Programmer's Reference (Rel. 1.2)" states the following:

    "In normal mode, if there is a nonnull selection, deletes the selection;

    otherwise, kills the characters following the insertion cursor to the
    next end of line character and stores the characters in the cut buffer.
    In add mode, if there is a nonnull selection, the cursor is not disjoint

    from the selection, and XmNpendingDelete is set to True, deletes the
    selection; otherwise, kills the characters following the insertion
    cursor to the next end of line character and stores the characters in
    the cut buffer. This may impact the selection."

    The KillToEndOfLine() function does not check for any of the conditions
    stated above (i.e. nonnull selection, add/normal mode, or
    XmNpendingDelete). Instead it always removes the text from the
    insertion cursor to the end of line. Please note that the same argument
    applies to the kill-to-start-of-line() action routine.

    static void
    #ifdef _NO_PROTO
    KillToEndOfLine( w, event, params, num_params )
    Widget w ;
    XEvent *event ;
    String *params ;
    Cardinal *num_params ;
    #else
    KillToEndOfLine(
    Widget w,
    XEvent *event,
    String *params,
    Cardinal *num_params )
    #endif /* _NO_PROTO */
    {
    XmTextWidget tw = (XmTextWidget) w;

    (*tw->text.output->DrawInsertionPoint)( tw,
    tw->text.cursor_position, off);
    RemoveToEndOfLine(w, event, params, num_params, TRUE);
    (*tw->text.output->DrawInsertionPoint)( tw,
    tw->text.cursor_position, on);
    }

    The function should be modified to look like this:

    static void
    #ifdef _NO_PROTO
    KillToEndOfLine( w, event, params, num_params )
    Widget w ;
    XEvent *event ;
    String *params ;
    Cardinal *num_params ;
    #else
    KillToEndOfLine(
    Widget w,
    XEvent *event,
    String *params,
    Cardinal *num_params )
    #endif /* _NO_PROTO */
    {
    XmTextPosition left, right;

    XmTextWidget tw = (XmTextWidget) w;

    (*tw->text.output->DrawInsertionPoint)( tw,
    tw->text.cursor_position, off);

    if (NeedsPendingDeleteDisjoint( tw, &left, &right, True))
    DeleteCurrentSelection( w, event, params, num_params);
    else
    RemoveToEndOfLine( w, event, params, num_params, True);

    (*tw->text.output->DrawInsertionPoint)( tw,
    tw->text.cursor_position, on);
    }
    Test Output
    520|1361 4 9472 1 1|VSM4TESTSUITE PURPOSE 4
    520|1361 4 9472 1 2|The XmText widget shall exhibit the behavior
    520|1361 4 9472 1 3|defined in the Motif Toolkit API specification.
    520|1361 4 9472 1 4|INFO: ***************** Beginning Iteration 1
    of 256 *
    ***************
    520|1361 4 9472 1 5|INFO: --XmNsensitive=True
    520|1361 4 9472 1 6|INFO: --XmNautoShowCursorPosition=True
    520|1361 4 9472 1 7|INFO: --XmNeditMode=1
    520|1361 4 9472 1 8|INFO: --XmNeditable=True
    520|1361 4 9472 1 9|INFO: --XmNhighlightOnEnter=True
    520|1361 4 9472 1 10|INFO: --XmNpendingDelete=True
    520|1361 4 9472 1 11|INFO: --XmNresizeHeight=True
    520|1361 4 9472 1 12|INFO: --XmNtraversalOn=True
    520|1361 4 9472 1 13|INFO: --XmNwordWrap=True
    520|1361 4 9472 1 14|PREP: Click KeyDelete (delete-next-char)
    520|1361 4 9472 1 15|TEST: deletes the character following the insertion
    cursor
    520|1361 4 9472 1 16|PREP: Click KeyBackspace (delete-previous-char)
    520|1361 4 9472 1 17|TEST: deletes the character of text before
    insertion cursr.
    520|1361 4 9472 1 18|PREP: Click KeyDelFwdWord(delete-next-word)
    520|1361 4 9472 1 19|TEST: deletes the next word .
    520|1361 4 9472 1 20|PREP: Click KeyDelPrvWord(delete-previous-word)
    520|1361 4 9472 1 21|TEST: deletes the word preceding the insertion
    cursor .
    520|1361 4 9472 1 22|PREP: Click KeyDeleteEOL(delete-to-end-of-line)
    520|1361 4 9472 1 23|PREP: Click KeyDeleteBOL(delete-to-start-of-line)
    520|1361 4 9472 1 24|TEST: Deletes from insertion cursor to beginning of
    line
    520|1361 4 9472 1 25|PREP: Click KeyLeft (backward char)
    520|1361 4 9472 1 26|TEST: Moves the insertion cursor one character to
    the left
    520|1361 4 9472 1 27|TEST: Traverses to next item to left of current
    gadget
    520|1361 4 9472 1 28|PREP: Click KeyRight (forward char)
    520|1361 4 9472 1 29|TEST: Moves the insertion cursor one character to
    right .
    520|1361 4 9472 1 30|TEST: Traverses to next item to right of current
    gadget
    520|1361 4 9472 1 31|PREP: Click MCtrl KRight (forward word)
    520|1361 4 9472 1 32|TEST: moves the insertion cursor forward one word
    520|1361 4 9472 1 33|PREP: Click MCtrl KLeft (backward word)
    520|1361 4 9472 1 34|TEST: moves the insertion cursor backward one word
    520|1361 4 9472 1 35|PREP: Click KeyBeginLine (goto BOL)
    520|1361 4 9472 1 36|TEST: moves the insertion cursor to beginning of
    line
    520|1361 4 9472 1 37|TEST: Traverses to 1st widget or gadget in crnt tab
    grp.
    520|1361 4 9472 1 38|PREP: Click KeyEndLine (goto EOL)
    520|1361 4 9472 1 39|TEST: moves the insertion cursor to end_of_line
    520|1361 4 9472 1 40|PREP: Click MShft MCtrl KLeft(backward word extend)

    520|1361 4 9472 1 41|TEST: extends the insertion cursor backward one
    word
    520|1361 4 9472 1 42|PREP: Click MShft MCtrl KRight (forward word
    extend)
    520|1361 4 9472 1 43|TEST: extends the insertion cursor forward one word

    520|1361 4 9472 1 44|PREP: Click MShift KeyBeginLine (goto BOL extend)
    520|1361 4 9472 1 45|TEST: extends the insertion cursor to beginning of
    line
    520|1361 4 9472 1 46|PREP: Click MShift KeyEndLine (goto EOL extend)
    520|1361 4 9472 1 47|TEST: extends the insertion cursor to end_of_line
    520|1361 4 9472 1 48|PREP: Click KeyKillNextChar outside selection
    (kill-next-char)
    520|1361 4 9472 1 49|TEST: kills the char following the insertion
    cursor.
    520|1361 4 9472 1 50|PREP: Unkill killed text (unkill)
    520|1361 4 9472 1 51|TEST: Restores last killed text to the insertion
    cursor .
    520|1361 4 9472 1 52|PREP: Click KeyKillPrevChar outside selection
    (kill-prev-char)
    520|1361 4 9472 1 53|TEST: kills the character preceding insertion
    cursor.
    520|1361 4 9472 1 54|PREP: Unkill killed text (unkill)
    520|1361 4 9472 1 55|TEST: Restores last killed text to the insertion
    cursor .
    520|1361 4 9472 1 56|PREP: Click KeyKillNextWord outside selection
    (kill-next-word)
    520|1361 4 9472 1 57|TEST: kills the word following the insertion
    cursor.
    520|1361 4 9472 1 58|PREP: Unkill killed text (unkill)
    520|1361 4 9472 1 59|TEST: Restores last killed text to the insertion
    cursor .
    520|1361 4 9472 1 60|PREP: Click KeyKillPrevWord outside selection
    (kill-prev-word)
    520|1361 4 9472 1 61|TEST: kills the word preceding the insertion cursor

    520|1361 4 9472 1 62|PREP: Unkill killed text (unkill)
    520|1361 4 9472 1 63|TEST: Restores last killed text to the insertion
    cursor .
    520|1361 4 9472 1 64|PREP: Click KeyKillToEOL outside selection
    (kill-to-EOL)
    520|1361 4 9472 1 65|TEST: Kills insertion cursor to next EOL .
    520|1361 4 9472 1 66|ERROR: Didn't receive expected callback(s)
    XmNmotionVerifyCallback of widget XmText of class xmTextWidgetClass.
    Received 0,
    Expected 1
    520|1361 4 9472 1 67|PREP: Unkill killed text (unkill)
    520|1361 4 9472 1 68|TEST: Restores last killed text to the insertion
    cursor .
    520|1361 4 9472 1 69|PREP: Click KeyKillToBOL outside
    selection(kill-to-BOL)
    520|1361 4 9472 1 70|TEST: Kills insertion cursor to next BOL .
    520|1361 4 9472 1 71|ERROR: Received unexpected callback(s)
    XmNmotionVerifyCallback of widget XmText of class xmTextWidgetClass
    Received 1,
    Expected 0

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We note that the journal shows two errors: in once case a callback is received
    that was not expected and in another a callback was not received which was expected.
    We recommend that this request be returned to the applicant for further explanation
    of the rationale.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution No Resolution Given
    Review Conclusion
    The specification under test is the X/Open Motif Toolkit API
    Specification not the OSF/Motif Programmer's Reference (Rel.1.2).

    We need further information as requested by the consultant below.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Rejected (REJ)
    Review Conclusion
    This request is refused.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority