The new menu initialization code would also add the SIOUX menus if a (frozen) Python program had installed its own menubar previously. We now guard against this, with a bit of a hack: FrameWork uses the same Menu ID as Sioux, and the init code checks that the text in the menu is "About SIOUX" before replacing it.
diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c
index f9c9aff..e66ab83 100644
--- a/Mac/Python/macglue.c
+++ b/Mac/Python/macglue.c
@@ -720,6 +720,8 @@
PyMac_InitMenuBar()
{
MenuHandle applemenu;
+ Str255 about_text;
+ static unsigned char about_sioux[] = "\pAbout SIOUX";
if ( sioux_mbar ) return;
#if 0
@@ -737,7 +739,10 @@
return;
}
if ( (applemenu=GetMenuHandle(SIOUX_APPLEID)) == NULL ) return;
- SetMenuItemText(applemenu, 1, "\pAbout Python...");
+ GetMenuItemText(applemenu, 1, about_text);
+ if ( about_text[0] == about_sioux[0] &&
+ strncmp((char *)(about_text+1), (char *)(about_sioux+1), about_text[0]) == 0 )
+ SetMenuItemText(applemenu, 1, "\pAbout Python...");
}
/*