From: eillihca@drizzle.StanFord.EDU ( Achille Hui, the Day Dreamer )
Subject: Re: New releases:  Tk 3.0 and Tcl 6.5
X-Transfer-Agent: leland.stanford.edu (NNTP)
Organization: Dept. of Physics, Stanford University.
Date: 18 Dec 92 14:25:49 GMT

ouster@sprite.Berkeley.EDU (John Ousterhout) writes: 

>
>I have just released new versions of Tk and Tcl.  Tk 3.0 is a major
>new release with several incompatibilities (hence the change in
>major version number).  It doesn't have a lot of fancy new features
>but includes many bug fixes and major structural improvements, such as

The following patch fixes two more bugs (a. never setting up the WM_CLASS
property on a toplevel window. b. wish cores dump when you call wm without
any argument) of Tk3.0 in tkWm.c. Also, the new restriction that a
menubutton cannot "post" arbitary menus is a little bit annoying

				-achille (eillihca@drizzle.stanford.edu)
%%%%%%%%%%%%%% cut here %%%%%%%%%%%%%%%%%% cut here %%%%%%%%%%%%%%%%%%%%
*** tkWm.c,dist Wed Dec 16 11:59:15 1992
--- tkWm.c      Fri Dec 18 06:17:33 1992
***************
*** 386,391 ****
--- 386,392 ----
        return;
      }
      if (wmPtr->flags & WM_NEVER_MAPPED) {
+       wmPtr->flags &= ~WM_NEVER_MAPPED;
        /*
         * This is the first time this window has ever been mapped.
         * Store all the window-manager-related information for the
***************
*** 585,609 ****
      char c;
      int length;
  
!     c = argv[1][0];
!     length = strlen(argv[1]);
!     if ((c == 't') && (strncmp(argv[1], "tracing", length) == 0)
!           && (length >= 3)) {
!       if ((argc != 2) && (argc != 3)) {
!           Tcl_AppendResult(interp, "wrong # arguments: must be \"",
!                   argv[0], " tracing ?boolean?\"", (char *) NULL);
!           return TCL_ERROR;
!       }
        if (argc == 2) {
            interp->result = (wmTracing) ? "on" : "off";
            return TCL_OK;
        }
!       return Tcl_GetBoolean(interp, argv[2], &wmTracing);
!     }
! 
!     if (argc < 3) {
        Tcl_AppendResult(interp, "wrong # args: should be \"",
!               argv[0], " option window ?arg ...?\"", (char *) NULL);
        return TCL_ERROR;
      }
      winPtr = (TkWindow *) Tk_NameToWindow(interp, argv[2], tkwin);
--- 586,611 ----
      char c;
      int length;
  
!     if(argc < 2){
!       Tcl_AppendResult(interp, "wrong # args: should be \"",
!               argv[0], " option window ?arg ...?\"", (char *) NULL);
!       return TCL_ERROR;
!     } else if(((c = argv[1][0]) == 't') &&
!             (strncmp(argv[1],"tracing",length = strlen(argv[1])) == 0) &&
!             (length >= 3)){
        if (argc == 2) {
            interp->result = (wmTracing) ? "on" : "off";
            return TCL_OK;
+       } else if(argc == 3){
+           return Tcl_GetBoolean(interp, argv[2], &wmTracing);
+       } else {
+           Tcl_AppendResult(interp, "wrong # arguments: must be \"",
+                   argv[0], " tracing ?boolean?\"", (char *) NULL);
+           return TCL_ERROR;
        }
!     } else if (argc < 3) {
        Tcl_AppendResult(interp, "wrong # args: should be \"",
!           argv[0], " option window ?arg ...?\"", (char *) NULL);
        return TCL_ERROR;
      }
      winPtr = (TkWindow *) Tk_NameToWindow(interp, argv[2], tkwin);

Newsgroups: comp.lang.tcl