Home | Software Map | Motif Forums | Bug Home sponsored by ICS 
Bugzilla Bug
  1112
     Query page      Enter new bug
Bug#:1112 Platform: Version:
Product: OS: Reporter:brown@sysdev.com (Julian Brown)
Status: CLOSED Priority: Cc:
Resolution: INVALID Severity: Component:
Assigned To: ome-buglist@motifzone.net Target Milestone:
URL:
Summary:
Attachments: 12/18/00 15:08Small sample that illustrates problem
Create a new attachment (proposed patch, testcase, etc.)
Bug 1112 depends on: Show dependency tree
Show dependency graph
Bug 1112 blocks:
Votes for bug 1112:    Vote for this bug

Additional Comments:


Leave as CLOSED INVALID
Reopen bug

View Bug Activity Format For Printing
Description: Opened: 2000-12-18 15:06

README

This file will serve to describe the fundamental UIL problem that I am
having.

CONTENTS:

Makefile
README
main_form.uil
main_form.uid
forma.uil
forma.uid
formb.uil
formb.uid
main.c
main.o
testbed

PLATFORM:

This was compiled on ...

uname -a
SunOS haroldII 5.7 Generic sun4u sparc SUNW,Ultra-2

Using Motif2.1 (determined from the Xm.h).

The problem occurs on all platforms.  Including RedHat Linux
using the new Motif 2.1.30.

PROBLEM:

I have defined a simple widget tree using three uil files
which has

main_form.uil which defines the main screen
and forma.uil and formb.uil that define sub
screens.

Here is the Motif Widget Tree as defined by UIL, I use
indention to indicate sub widgets.  Here MAIN_FORM is the
root of the tree and FORMA and FORMB are two separate and
distinct forms that are children of MAIN_FORM_FORM, but
FORMB is not managed.  Please note the "PROBLEM_FRAME",
and specifically the names of the buttons in "PROBLEM_FRAME_bb".
In forma the buttons are "FORMA_BUTTON_[123]" in formb
they are "FORMB_BUTTON_[123]".

MAIN_FORM
    MAIN_FORM_FORM
        FORMA
            FORMA_OUTER
                FORM_OUTER_bb
                    PROBLEM_FRAME
                        PROBLEM_FRAME_bb
                            FORMA_BUTTON_1
                            FORMA_BUTTON_2
                            FORMA_BUTTON_3
                        PROBLEM_FRAME_l
                FORM_OUTER_l
        FORMB
            FORMB_OUTER
                FORM_OUTER_bb
                    PROBLEM_FRAME
                        PROBLEM_FRAME_bb
                            FORMB_BUTTON_1
                            FORMB_BUTTON_2
                            FORMB_BUTTON_3
                        PROBLEM_FRAME_l
                FORM_OUTER_l
    TAB_BUTTON

Now my testbed program reads in the heirarchy and then prints
the widget tree out (I wrote a routine wal_create_tree, that
recursively descends the tree and prints it out in the following
format).

Motif Widget Tree

MAIN_FORM 3e7b0 PARENT MAIN_FORM_popup
    MAIN_FORM_FORM 3f930 PARENT MAIN_FORM
        FORMA 3fb88 PARENT MAIN_FORM_FORM
            FORMA_OUTER 46418 PARENT FORMA
                FORM_OUTER_bb 46660 PARENT FORMA_OUTER
                    PROBLEM_FRAME 468d0 PARENT FORM_OUTER_bb
                        PROBLEM_FRAME_bb 46b58 PARENT PROBLEM_FRAME
                            FORMA_BUTTON_1 47628 PARENT PROBLEM_FRAME_bb
                            FORMA_BUTTON_2 49478 PARENT PROBLEM_FRAME_bb
                            FORMA_BUTTON_3 49650 PARENT PROBLEM_FRAME_bb
                        PROBLEM_FRAME_l 49828 PARENT PROBLEM_FRAME
                FORM_OUTER_l 49948 PARENT FORMA_OUTER
        FORMB 49a68 PARENT MAIN_FORM_FORM
            FORMB_OUTER 49c60 PARENT FORMB
                FORM_OUTER_bb 49e08 PARENT FORMB_OUTER
                    PROBLEM_FRAME 49f78 PARENT FORM_OUTER_bb
                        PROBLEM_FRAME_bb 4a120 PARENT PROBLEM_FRAME
                            FORMA_BUTTON_1 4a2c0 PARENT PROBLEM_FRAME_bb
                            FORMA_BUTTON_2 4a550 PARENT PROBLEM_FRAME_bb
                            FORMA_BUTTON_3 4a728 PARENT PROBLEM_FRAME_bb
                        PROBLEM_FRAME_l 4a900 PARENT PROBLEM_FRAME
                FORM_OUTER_l 46cc8 PARENT FORMB_OUTER
    TAB_BUTTON 4ae48 PARENT MAIN_FORM

Pay specific attention to the names of the buttons in FORMB as
you can see they are named the same as in FORMA, even though
the UIL file formb.uil specifically names them differently.

I have noticed other problems as well, not listed here I suspect
that they are related to this problem though.

If I have not presented this problem clearly, or if I can be of
further service please contact me.

Julian Brown
System Development Inc.
713 266 5667
julian@jlbprof.com

Thank You

Julian Brown


------- Additional Comments From Julian Brown 2000-12-18 15:08 -------
Created an attachment (id=1)
Small sample that illustrates problem


------- Additional Comments From Jim Burmeister 2000-12-18 15:35 -------
Here at Metro Link, one of our customers reported this same thing.  Turns
out it's not actually a bug in Motif 2.1, but rather an undocumented change
in behavior between Motif 1.2 and Motif 2.x.

In Motif 2.0, TOG changed the behavior of the UIL compiler such that
objects are now created "exported" by default, rather than "private".
If you have two UIL modules that have exported symbols with the same name,
the symbols will interfere with each other.  The solution is to either
change the names of your objects, or add the keyword "private" to each
object that might have a name conflict.

Unfortunately, nowhere in the release notes does it say that this behavior 
changed.  The only way I knew that it was a deliberate change instead of a bug 
is  a comment in the file tools/wml/Uil.y in Motif 2.0 saying "Make objects
exported by default."  Since it has been this way since Motif 2.0, it's
too late to change the behavior back (although a command-line option to
the uil compiler that restored the old behavior would be nice).

     Query page      Enter new bug
This is Mr. Samsa: the Open Motif bug system using Bugzilla. For more information about what Bugzilla is and what it can do, see mozilla.org's bug pages.
New | Query | bug # | Reports | New account | Log in