summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2012-07-26 08:50:09 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2012-07-26 08:50:09 (GMT)
commitf60c7ff513bcaaa89a54871e150893a286ba6701 (patch)
treefb0cc302c5a401d7947bd6f5e6cd5ec2669de8b9
parentdb5cc49273d33c33e1f3d372725a7cef791f41ed (diff)
downloadtk-f60c7ff513bcaaa89a54871e150893a286ba6701.zip
tk-f60c7ff513bcaaa89a54871e150893a286ba6701.tar.gz
tk-f60c7ff513bcaaa89a54871e150893a286ba6701.tar.bz2
more conversions
-rw-r--r--carbon/tkMacOSXClipboard.c32
-rw-r--r--carbon/tkMacOSXCursor.c4
-rw-r--r--carbon/tkMacOSXDialog.c239
-rw-r--r--carbon/tkMacOSXEmbed.c17
-rw-r--r--carbon/tkMacOSXMenu.c25
-rw-r--r--carbon/tkMacOSXWm.c478
-rw-r--r--generic/tkArgv.c45
7 files changed, 462 insertions, 378 deletions
diff --git a/carbon/tkMacOSXClipboard.c b/carbon/tkMacOSXClipboard.c
index 420ccf7..a57ec58 100644
--- a/carbon/tkMacOSXClipboard.c
+++ b/carbon/tkMacOSXClipboard.c
@@ -61,8 +61,10 @@ TkSelGetSelection(
err = ChkErr(GetCurrentScrap, &scrapRef);
if (err != noErr) {
- Tcl_AppendResult(interp, Tk_GetAtomName(tkwin, selection),
- " GetCurrentScrap failed.", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "%s GetCurrentScrap failed.",
+ Tk_GetAtomName(tkwin, selection)));
+ Tcl_SetErrorCode(interp, "TK", "SELECTION", "SCRAP", NULL);
return TCL_ERROR;
}
@@ -79,8 +81,8 @@ TkSelGetSelection(
buf = ckalloc(length + 2);
buf[length] = 0;
buf[length+1] = 0; /* 2-byte unicode null */
- err = ChkErr(GetScrapFlavorData, scrapRef, kScrapFlavorTypeUnicode,
- &length, buf);
+ err = ChkErr(GetScrapFlavorData, scrapRef,
+ kScrapFlavorTypeUnicode, &length, buf);
if (err == noErr) {
Tcl_DStringInit(&ds);
Tcl_UniCharToUtfDString((Tcl_UniChar *) buf,
@@ -99,8 +101,10 @@ TkSelGetSelection(
err = ChkErr(GetScrapFlavorSize, scrapRef, 'TEXT', &length);
if (err != noErr) {
- Tcl_AppendResult(interp, Tk_GetAtomName(tkwin, selection),
- " GetScrapFlavorSize failed.", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "%s GetScrapFlavorSize failed.",
+ Tk_GetAtomName(tkwin, selection)));
+ Tcl_SetErrorCode(interp, "TK", "SELECTION", "FLAVORSIZE", NULL);
return TCL_ERROR;
}
if (length > 0) {
@@ -111,9 +115,12 @@ TkSelGetSelection(
buf[length] = 0;
err = ChkErr(GetScrapFlavorData, scrapRef, 'TEXT', &length, buf);
if (err != noErr) {
- Tcl_AppendResult(interp, Tk_GetAtomName(tkwin, selection),
- " GetScrapFlavorData failed.", NULL);
- return TCL_ERROR;
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "%s GetScrapFlavorData failed.",
+ Tk_GetAtomName(tkwin, selection)));
+ Tcl_SetErrorCode(interp, "TK", "SELECTION", "FLAVORDATA",
+ NULL);
+ return TCL_ERROR;
}
/*
@@ -136,9 +143,10 @@ TkSelGetSelection(
}
}
- Tcl_AppendResult(interp, Tk_GetAtomName(tkwin, selection),
- " selection doesn't exist or form \"",
- Tk_GetAtomName(tkwin, target), "\" not defined", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "%s selection doesn't exist or form \"%s\" not defined",
+ Tk_GetAtomName(tkwin, selection), Tk_GetAtomName(tkwin, target)));
+ Tcl_SetErrorCode(interp, "TK", "SELECTION", "EXISTS", NULL);
return TCL_ERROR;
}
diff --git a/carbon/tkMacOSXCursor.c b/carbon/tkMacOSXCursor.c
index c465764..423b4ff 100644
--- a/carbon/tkMacOSXCursor.c
+++ b/carbon/tkMacOSXCursor.c
@@ -265,7 +265,9 @@ TkGetCursorByName(
if (macCursorPtr->macCursor == NULL) {
ckfree(macCursorPtr);
- Tcl_AppendResult(interp, "bad cursor spec \"", string, "\"", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "bad cursor spec \"%s\"", string));
+ Tcl_SetErrorCode(interp, "TK", "VALUE", "CURSOR", NULL);
return NULL;
}
return (TkCursor *) macCursorPtr;
diff --git a/carbon/tkMacOSXDialog.c b/carbon/tkMacOSXDialog.c
index 8097f2c..d3ea74e 100644
--- a/carbon/tkMacOSXDialog.c
+++ b/carbon/tkMacOSXDialog.c
@@ -89,7 +89,8 @@ static int NavServicesGetFile(Tcl_Interp *interp,
Tk_Window parent);
static int HandleInitialDirectory(Tcl_Interp *interp,
char *initialFile, char *initialDir, FSRef *dirRef,
- AEDescList *selectDescPtr, AEDesc *dirDescPtr);
+ AEDescList *selectDescPtr, AEDesc *dirDescPtr,
+ const char *dlgType);
/*
* Have we initialized the file dialog subsystem
@@ -104,7 +105,7 @@ static int fileDlgInited = 0;
static NavObjectFilterUPP openFileFilterUPP;
static NavEventUPP openFileEventUPP;
-
+
/*
*----------------------------------------------------------------------
*
@@ -152,16 +153,16 @@ Tk_ChooseColorObjCmd(
for (i = 1; i < objc; i += 2) {
int index;
- const char *option, *value;
+ const char *value;
if (Tcl_GetIndexFromObj(interp, objv[i], optionStrings, "option",
TCL_EXACT, &index) != TCL_OK) {
goto end;
}
if (i + 1 == objc) {
- option = Tcl_GetString(objv[i]);
- Tcl_AppendResult(interp, "value for \"", option, "\" missing",
- NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "value for \"%s\" missing", Tcl_GetString(objv[i])));
+ Tcl_SetErrorCode(interp, "TK", "COLORDIALOG", "VALUE", NULL);
goto end;
}
value = Tcl_GetString(objv[i + 1]);
@@ -225,7 +226,7 @@ Tk_ChooseColorObjCmd(
end:
return result;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -282,7 +283,6 @@ Tk_GetOpenFileObjCmd(
for (i = 1; i < objc; i += 2) {
char *choice;
int index, choiceLen;
- char *string;
Tcl_Obj *types;
if (Tcl_GetIndexFromObj(interp, objv[i], openOptionStrings, "option",
@@ -290,9 +290,9 @@ Tk_GetOpenFileObjCmd(
goto end;
}
if (i + 1 == objc) {
- string = Tcl_GetString(objv[i]);
- Tcl_AppendResult(interp, "value for \"", string, "\" missing",
- NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "value for \"%s\" missing", Tcl_GetString(objv[i])));
+ Tcl_SetErrorCode(interp, "TK", "FILEDIALOG", "VALUE", NULL);
goto end;
}
@@ -355,7 +355,7 @@ Tk_GetOpenFileObjCmd(
}
if (HandleInitialDirectory(interp, initialFile, initialDir, &dirRef,
- &selectDesc, &initialDesc) != TCL_OK) {
+ &selectDesc, &initialDesc, "FILEDIALOG") != TCL_OK) {
goto end;
}
if (initialDesc.descriptorType == typeFSRef) {
@@ -394,7 +394,7 @@ Tk_GetOpenFileObjCmd(
}
return result;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -446,7 +446,7 @@ Tk_GetSaveFileObjCmd(
ofd.usePopup = 0;
for (i = 1; i < objc; i += 2) {
- char *choice, *string;
+ char *choice;
int index, choiceLen;
Tcl_Obj *types;
@@ -455,9 +455,9 @@ Tk_GetSaveFileObjCmd(
goto end;
}
if (i + 1 == objc) {
- string = Tcl_GetString(objv[i]);
- Tcl_AppendResult(interp, "value for \"", string, "\" missing",
- NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "value for \"%s\" missing", Tcl_GetString(objv[i])));
+ Tcl_SetErrorCode(interp, "TK", "FILEDIALOG", "VALUE", NULL);
goto end;
}
switch (index) {
@@ -473,7 +473,7 @@ Tk_GetSaveFileObjCmd(
choice = Tcl_GetStringFromObj(objv[i + 1], &choiceLen);
/* empty strings should be like no selection given */
if (choiceLen && HandleInitialDirectory(interp, NULL, choice,
- &dirRef, NULL, &initialDesc) != TCL_OK) {
+ &dirRef, NULL, &initialDesc, "FILEDIALOG") != TCL_OK) {
goto end;
}
break;
@@ -533,7 +533,7 @@ Tk_GetSaveFileObjCmd(
}
return result;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -578,7 +578,7 @@ Tk_ChooseDirectoryObjCmd(
}
for (i = 1; i < objc; i += 2) {
- char *string, *choice;
+ char *choice;
int index, choiceLen;
if (Tcl_GetIndexFromObj(interp, objv[i], chooseOptionStrings, "option",
@@ -586,16 +586,16 @@ Tk_ChooseDirectoryObjCmd(
goto end;
}
if (i + 1 == objc) {
- string = Tcl_GetString(objv[i]);
- Tcl_AppendResult(interp, "value for \"", string, "\" missing",
- NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "value for \"%s\" missing", Tcl_GetString(objv[i])));
+ Tcl_SetErrorCode(interp, "TK", "DIRDIALOG", "VALUE", NULL);
goto end;
}
switch (index) {
case CHOOSE_INITDIR:
choice = Tcl_GetStringFromObj(objv[i + 1], &choiceLen);
if (choiceLen && HandleInitialDirectory(interp, NULL, choice,
- &dirRef, NULL, &initialDesc) != TCL_OK) {
+ &dirRef, NULL, &initialDesc, "DIRDIALOG") != TCL_OK) {
goto end;
}
break;
@@ -645,7 +645,7 @@ Tk_ChooseDirectoryObjCmd(
}
return result;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -669,7 +669,8 @@ HandleInitialDirectory(
char *initialDir,
FSRef *dirRef,
AEDescList *selectDescPtr,
- AEDesc *dirDescPtr)
+ AEDesc *dirDescPtr,
+ const char *dlgType)
{
Tcl_DString ds;
OSStatus err;
@@ -685,13 +686,16 @@ HandleInitialDirectory(
err = ChkErr(FSPathMakeRef, (unsigned char *) dirName, dirRef,
&isDirectory);
if (err != noErr) {
- Tcl_AppendResult(interp, "bad directory \"", initialDir, "\"",
- NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "bad directory \"%s\"", initialDir));
+ Tcl_SetErrorCode(interp, "TK", dlgType, "NO_INITDIR", NULL);
goto end;
}
if (!isDirectory) {
- Tcl_AppendResult(interp, "-intialdir \"", initialDir, "\""
- " is a file, not a directory.", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "-intialdir \"%s\" is a file, not a directory.",
+ initialDir));
+ Tcl_SetErrorCode(interp, "TK", dlgType, "BAD_INITDIR", NULL);
goto end;
}
ChkErr(AECreateDesc, typeFSRef, dirRef, sizeof(*dirRef), dirDescPtr);
@@ -715,8 +719,10 @@ HandleInitialDirectory(
err = ChkErr(FSPathMakeRef, (unsigned char *) namePtr, &fileRef,
&isDirectory);
if (err != noErr) {
- Tcl_AppendResult(interp, "bad initialfile \"", initialFile,
- "\" file does not exist.", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "bad initialfile \"%s\" file does not exist.",
+ initialFile));
+ Tcl_SetErrorCode(interp, "TK", dlgType, "NO_INITFILE", NULL);
goto end;
}
ChkErr(AECreateDesc, typeFSRef, &fileRef, sizeof(fileRef), &fileDesc);
@@ -730,7 +736,7 @@ HandleInitialDirectory(
}
return result;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -754,7 +760,7 @@ InitFileDialogs(void)
openFileFilterUPP = NewNavObjectFilterUPP(OpenFileFilterProc);
openFileEventUPP = NewNavEventUPP(OpenEventProc);
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1039,7 +1045,7 @@ NavServicesGetFile(
}
return result;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1124,7 +1130,7 @@ OpenEventProc(
break;
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1221,7 +1227,7 @@ OpenFileFilterProc(
}
return (result == MATCHED);
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1338,7 +1344,7 @@ MatchOneType(
return UNMATCHED;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1377,7 +1383,7 @@ TkAboutDlg(void)
DisposeDialog(aboutDlog);
SelectWindow(ActiveNonFloatingWindow());
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1486,16 +1492,15 @@ Tk_MessageBoxObjCmd(
for (i = 1; i < objc; i += 2) {
int iconIndex;
- char *string;
if (Tcl_GetIndexFromObj(interp, objv[i], movableAlertStrings, "option",
TCL_EXACT, &index) != TCL_OK) {
goto end;
}
if (i + 1 == objc) {
- string = Tcl_GetString(objv[i]);
- Tcl_AppendResult(interp, "value for \"", string, "\" missing",
- NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "value for \"%s\" missing", Tcl_GetString(objv[i])));
+ Tcl_SetErrorCode(interp, "TK", "MSGBOX", "VALUE", NULL);
goto end;
}
@@ -1624,6 +1629,7 @@ Tk_MessageBoxObjCmd(
if (defaultNativeButtonIndex == 0) {
Tcl_SetObjResult(interp,
Tcl_NewStringObj("Illegal default option", -1));
+ Tcl_SetErrorCode(interp, "TK", "MSGBOX", "DEFAULT", NULL);
goto end;
}
paramCFStringRec.defaultButton = defaultNativeButtonIndex;
@@ -1705,7 +1711,7 @@ Tk_MessageBoxObjCmd(
}
return result;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2033,6 +2039,7 @@ FontchooserConfigureCmd(
for (i = 1; i < objc; i += 2) {
int optionIndex, len;
+
if (Tcl_GetIndexFromObj(interp, objv[i], fontchooserOptionStrings,
"option", 0, &optionIndex) != TCL_OK) {
return TCL_ERROR;
@@ -2043,91 +2050,93 @@ FontchooserConfigureCmd(
return TCL_OK;
}
if (i + 1 == objc) {
- Tcl_AppendResult(interp, "value for \"",
- Tcl_GetString(objv[i]), "\" missing", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "value for \"%s\" missing", Tcl_GetString(objv[i])));
+ Tcl_SetErrorCode(interp, "TK", "FONTDIALOG", "VALUE", NULL);
return TCL_ERROR;
}
switch (optionIndex) {
- case FontchooserVisible: {
- const char *msg = "cannot change read-only option "
+ case FontchooserVisible: {
+ const char *msg = "cannot change read-only option "
"\"-visible\": use the show or hide command";
- Tcl_SetObjResult(interp, Tcl_NewStringObj(msg, sizeof(msg)-1));
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(msg, -1));
+ Tcl_SetErrorCode(interp, "TK", "FONTDIALOG", "READONLY", NULL);
+ return TCL_ERROR;
+ }
+ case FontchooserParent: {
+ Tk_Window parent = Tk_NameToWindow(interp,
+ Tcl_GetString(objv[i+1]), tkwin);
+
+ if (parent == None) {
return TCL_ERROR;
}
- case FontchooserParent: {
- Tk_Window parent = Tk_NameToWindow(interp,
- Tcl_GetString(objv[i+1]), tkwin);
- if (parent == None) {
- return TCL_ERROR;
- }
- if (fcdPtr->parent) {
- Tk_DeleteEventHandler(fcdPtr->parent, StructureNotifyMask,
- FontchooserParentEventHandler, fcdPtr);
- }
- fcdPtr->parent = parent;
- Tk_CreateEventHandler(fcdPtr->parent, StructureNotifyMask,
+ if (fcdPtr->parent) {
+ Tk_DeleteEventHandler(fcdPtr->parent, StructureNotifyMask,
FontchooserParentEventHandler, fcdPtr);
- break;
}
- case FontchooserTitle:
- if (fcdPtr->titleObj) {
- Tcl_DecrRefCount(fcdPtr->titleObj);
- }
- Tcl_GetStringFromObj(objv[i+1], &len);
- if (len) {
- fcdPtr->titleObj = objv[i+1];
- if (Tcl_IsShared(fcdPtr->titleObj)) {
- fcdPtr->titleObj = Tcl_DuplicateObj(fcdPtr->titleObj);
- }
- Tcl_IncrRefCount(fcdPtr->titleObj);
- } else {
- fcdPtr->titleObj = NULL;
+ fcdPtr->parent = parent;
+ Tk_CreateEventHandler(fcdPtr->parent, StructureNotifyMask,
+ FontchooserParentEventHandler, fcdPtr);
+ break;
+ }
+ case FontchooserTitle:
+ if (fcdPtr->titleObj) {
+ Tcl_DecrRefCount(fcdPtr->titleObj);
+ }
+ Tcl_GetStringFromObj(objv[i+1], &len);
+ if (len) {
+ fcdPtr->titleObj = objv[i+1];
+ if (Tcl_IsShared(fcdPtr->titleObj)) {
+ fcdPtr->titleObj = Tcl_DuplicateObj(fcdPtr->titleObj);
}
- break;
- case FontchooserFont: {
-
- Tcl_GetStringFromObj(objv[i+1], &len);
- if (len) {
- Tk_Font f = Tk_AllocFontFromObj(interp, tkwin, objv[i+1]);
- if (f) {
- ATSUStyle atsuStyle;
-
- TkMacOSXFMFontInfoForFont(f, &fontPanelFontFamily,
- &fontPanelFontStyle, &fontPanelFontSize,
- &atsuStyle);
- ChkErr(SetFontInfoForSelection,
- kFontSelectionATSUIType, 1, &atsuStyle, NULL);
- Tk_FreeFont(f);
- } else {
- return TCL_ERROR;
- }
+ Tcl_IncrRefCount(fcdPtr->titleObj);
+ } else {
+ fcdPtr->titleObj = NULL;
+ }
+ break;
+ case FontchooserFont:
+ Tcl_GetStringFromObj(objv[i+1], &len);
+ if (len) {
+ Tk_Font f = Tk_AllocFontFromObj(interp, tkwin, objv[i+1]);
+
+ if (f) {
+ ATSUStyle atsuStyle;
+
+ TkMacOSXFMFontInfoForFont(f, &fontPanelFontFamily,
+ &fontPanelFontStyle, &fontPanelFontSize,
+ &atsuStyle);
+ ChkErr(SetFontInfoForSelection, kFontSelectionATSUIType,
+ 1, &atsuStyle, NULL);
+ Tk_FreeFont(f);
} else {
- fontPanelFontFamily = kInvalidFontFamily;
- ChkErr(SetFontInfoForSelection,
- kFontSelectionATSUIType, 0, NULL, NULL);
- }
- if (FPIsFontPanelVisible()) {
- TkSendVirtualEvent(fcdPtr->parent,
- "TkFontchooserFontChanged");
+ return TCL_ERROR;
}
- break;
+ } else {
+ fontPanelFontFamily = kInvalidFontFamily;
+ ChkErr(SetFontInfoForSelection, kFontSelectionATSUIType, 0,
+ NULL, NULL);
}
- case FontchooserCmd:
- if (fcdPtr->cmdObj) {
- Tcl_DecrRefCount(fcdPtr->cmdObj);
- }
- Tcl_GetStringFromObj(objv[i+1], &len);
- if (len) {
- fcdPtr->cmdObj = objv[i+1];
- if (Tcl_IsShared(fcdPtr->cmdObj)) {
- fcdPtr->cmdObj = Tcl_DuplicateObj(fcdPtr->cmdObj);
- }
- Tcl_IncrRefCount(fcdPtr->cmdObj);
- } else {
- fcdPtr->cmdObj = NULL;
+ if (FPIsFontPanelVisible()) {
+ TkSendVirtualEvent(fcdPtr->parent,
+ "TkFontchooserFontChanged");
+ }
+ break;
+ case FontchooserCmd:
+ if (fcdPtr->cmdObj) {
+ Tcl_DecrRefCount(fcdPtr->cmdObj);
+ }
+ Tcl_GetStringFromObj(objv[i+1], &len);
+ if (len) {
+ fcdPtr->cmdObj = objv[i+1];
+ if (Tcl_IsShared(fcdPtr->cmdObj)) {
+ fcdPtr->cmdObj = Tcl_DuplicateObj(fcdPtr->cmdObj);
}
- break;
+ Tcl_IncrRefCount(fcdPtr->cmdObj);
+ } else {
+ fcdPtr->cmdObj = NULL;
+ }
+ break;
}
}
return TCL_OK;
diff --git a/carbon/tkMacOSXEmbed.c b/carbon/tkMacOSXEmbed.c
index ad9e3da..e99740c 100644
--- a/carbon/tkMacOSXEmbed.c
+++ b/carbon/tkMacOSXEmbed.c
@@ -208,8 +208,9 @@ TkpUseWindow(
Container *containerPtr;
if (winPtr->window != None) {
- Tcl_AppendResult(interp, "can't modify container after widget is "
- "created", NULL);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ "can't modify container after widget is created", -1));
+ Tcl_SetErrorCode(interp, "TK", "EMBED", "CREATION", NULL);
return TCL_ERROR;
}
@@ -229,8 +230,10 @@ TkpUseWindow(
usePtr = (TkWindow *) Tk_IdToWindow(winPtr->display, (Window) parent);
if (usePtr != NULL) {
if (!(usePtr->flags & TK_CONTAINER)) {
- Tcl_AppendResult(interp, "window \"", usePtr->pathName,
- "\" doesn't have -container option set", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "window \"%s\" doesn't have -container option set",
+ usePtr->pathName));
+ Tcl_SetErrorCode(interp, "TK", "EMBED", "TARGET", NULL);
return TCL_ERROR;
}
}
@@ -312,8 +315,10 @@ TkpUseWindow(
if (tkMacOSXEmbedHandler == NULL ||
tkMacOSXEmbedHandler->registerWinProc((int) parent,
(Tk_Window) winPtr) != TCL_OK) {
- Tcl_AppendResult(interp, "The window ID ", string,
- " does not correspond to a valid Tk Window.", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "The window ID %s does not correspond to a valid Tk Window",
+ string));
+ Tcl_SetErrorCode(interp, "TK", "EMBED", "HANDLE", NULL);
return TCL_ERROR;
} else {
containerPtr = ckalloc(sizeof(Container));
diff --git a/carbon/tkMacOSXMenu.c b/carbon/tkMacOSXMenu.c
index 31bb20e..dda4b7e 100644
--- a/carbon/tkMacOSXMenu.c
+++ b/carbon/tkMacOSXMenu.c
@@ -531,8 +531,10 @@ TkMacOSXGetNewMenuID(
}
if (!found) {
- Tcl_ResetResult(interp);
- Tcl_AppendResult(interp, "No more menus can be allocated.", NULL);
+ Tcl_SetObjResult(menuPtr->interp, Tcl_NewStringObj(
+ "No more menus can be allocated.", -1));
+ Tcl_SetErrorCode(menuPtr->interp, "TK", "MENU", "SYSTEM_RESOURCES",
+ NULL);
return TCL_ERROR;
}
Tcl_SetHashValue(commandEntryPtr, menuPtr);
@@ -682,21 +684,25 @@ TkpNewMenu(
err = ChkErr(CreateNewMenu, menuID, kMenuAttrDoNotUseUserCommandKeys,
&macMenuHdl);
if (err != noErr) {
- Tcl_AppendResult(menuPtr->interp, "CreateNewMenu failed.", NULL);
+ Tcl_SetObjResult(menuPtr->interp, Tcl_NewStringObj(
+ "CreateNewMenu failed.", -1));
+ Tcl_SetErrorCode(menuPtr->interp, "TK", "MENU", "CREATE", NULL);
return TCL_ERROR;
}
cfStr = CFStringCreateWithCString(NULL, Tk_PathName(menuPtr->tkwin),
kCFStringEncodingUTF8);
if (!cfStr) {
- Tcl_AppendResult(menuPtr->interp, "CFStringCreateWithCString failed.",
- NULL);
+ Tcl_SetObjResult(menuPtr->interp, Tcl_NewStringObj(
+ "CFStringCreateWithCString failed.", -1));
+ Tcl_SetErrorCode(menuPtr->interp, "TK", "MENU", "CREATE_STRING",NULL);
return TCL_ERROR;
}
err = ChkErr(SetMenuTitleWithCFString, macMenuHdl, cfStr);
CFRelease(cfStr);
if (err != noErr) {
- Tcl_AppendResult(menuPtr->interp, "SetMenuTitleWithCFString failed.",
- NULL);
+ Tcl_SetObjResult(menuPtr->interp, Tcl_NewStringObj(
+ "SetMenuTitleWithCFString failed.", -1));
+ Tcl_SetErrorCode(menuPtr->interp, "TK", "MENU", "SET_TITLE", NULL);
return TCL_ERROR;
}
@@ -1546,8 +1552,9 @@ TkpPostMenu(
int result;
if (inPostMenu > 0) {
- Tcl_AppendResult(interp,
- "Cannot call post menu while already posting menu", NULL);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ "Cannot call post menu while already posting menu", -1));
+ Tcl_SetErrorCode(interp, "TK", "MENU", "POSTING", NULL);
result = TCL_ERROR;
} else {
short menuID;
diff --git a/carbon/tkMacOSXWm.c b/carbon/tkMacOSXWm.c
index 5d60aa5..2f1caa1 100644
--- a/carbon/tkMacOSXWm.c
+++ b/carbon/tkMacOSXWm.c
@@ -209,7 +209,7 @@ static void GetMaxSize(TkWindow *winPtr, int *maxWidthPtr,
int *maxHeightPtr);
static void RemapWindows(TkWindow *winPtr,
MacDrawable *parentWin);
-
+
/*
*----------------------------------------------------------------------
*
@@ -305,7 +305,7 @@ TkWmNewWindow(
Tk_ManageGeometry((Tk_Window) winPtr, &wmMgrType, (ClientData) 0);
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -404,7 +404,7 @@ TkWmMapWindow(
XMapWindow(winPtr->display, winPtr->window);
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -429,7 +429,7 @@ TkWmUnmapWindow(
{
XUnmapWindow(winPtr->display, winPtr->window);
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -500,7 +500,7 @@ TkWmDeadWindow(
ckfree(wmPtr);
winPtr->wmInfoPtr = NULL;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -526,7 +526,7 @@ TkWmSetClass(
{
return;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -585,7 +585,7 @@ Tk_WmObjCmd(
argv1 = Tcl_GetStringFromObj(objv[1], &length);
if ((argv1[0] == 't') && (strncmp(argv1, "tracing", length) == 0)
- && (length >= 3)) {
+ && (length >= 3)) {
if ((objc != 2) && (objc != 3)) {
Tcl_WrongNumArgs(interp, 2, objv, "?boolean?");
return TCL_ERROR;
@@ -607,13 +607,14 @@ Tk_WmObjCmd(
}
if (TkGetWindowFromObj(interp, tkwin, objv[2], (Tk_Window *) &winPtr)
- != TCL_OK) {
+ != TCL_OK) {
return TCL_ERROR;
}
if (!Tk_IsTopLevel(winPtr)
&& (index != WMOPT_MANAGE) && (index != WMOPT_FORGET)) {
- Tcl_AppendResult(interp, "window \"", winPtr->pathName,
- "\" isn't a top-level window", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "window \"%s\" isn't a top-level window", winPtr->pathName));
+ Tcl_SetErrorCode(interp, "TK", "WM", "TOPLEVEL", NULL);
return TCL_ERROR;
}
@@ -687,7 +688,7 @@ Tk_WmObjCmd(
/* This should not happen */
return TCL_ERROR;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -725,10 +726,10 @@ WmAspectCmd(
if (wmPtr->sizeHintsFlags & PAspect) {
Tcl_Obj *aspect[4];
- aspect[0] = wmPtr->minAspect.x;
- aspect[1] = wmPtr->minAspect.y;
- aspect[2] = wmPtr->maxAspect.x;
- aspect[3] = wmPtr->maxAspect.y;
+ aspect[0] = Tcl_NewIntObj(wmPtr->minAspect.x);
+ aspect[1] = Tcl_NewIntObj(wmPtr->minAspect.y);
+ aspect[2] = Tcl_NewIntObj(wmPtr->maxAspect.x);
+ aspect[3] = Tcl_NewIntObj(wmPtr->maxAspect.y);
Tcl_SetObjResult(interp, Tcl_NewListObj(4, aspect));
}
return TCL_OK;
@@ -746,6 +747,7 @@ WmAspectCmd(
(denom2 <= 0)) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
"aspect number can't be <= 0", -1));
+ Tcl_SetErrorCode(interp, "TK", "WM", "ASPECT", NULL);
return TCL_ERROR;
}
wmPtr->minAspect.x = numer1;
@@ -758,7 +760,7 @@ WmAspectCmd(
WmUpdateGeom(wmPtr, winPtr);
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -934,7 +936,7 @@ WmSetAttribute(
}
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1009,7 +1011,7 @@ WmGetAttribute(
}
return result;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1047,16 +1049,16 @@ WmAttributesCmd(
macWindow = TkMacOSXDrawableWindow(winPtr->window);
if (objc == 3) { /* wm attributes $win */
- Tcl_Obj *result = Tcl_NewListObj(0,0);
+ Tcl_Obj *result = Tcl_NewObj();
for (attribute = 0; attribute < _WMATT_LAST_ATTRIBUTE; ++attribute) {
- Tcl_ListObjAppendElement(interp, result,
+ Tcl_ListObjAppendElement(NULL, result,
Tcl_NewStringObj(WmAttributeNames[attribute], -1));
- Tcl_ListObjAppendElement(interp, result,
+ Tcl_ListObjAppendElement(NULL, result,
WmGetAttribute(winPtr, macWindow, attribute));
}
Tcl_SetObjResult(interp, result);
- } else if (objc == 4) { /* wm attributes $win -attribute */
+ } else if (objc == 4) { /* wm attributes $win -attribute */
if (Tcl_GetIndexFromObj(interp, objv[3], WmAttributeNames,
"attribute", 0, &attribute) != TCL_OK) {
return TCL_ERROR;
@@ -1067,7 +1069,7 @@ WmAttributesCmd(
for (i = 3; i < objc; i += 2) {
if (Tcl_GetIndexFromObj(interp, objv[i], WmAttributeNames,
- "attribute", 0, &attribute) != TCL_OK) {
+ "attribute", 0, &attribute) != TCL_OK) {
return TCL_ERROR;
}
if (WmSetAttribute(winPtr, macWindow, interp, attribute, objv[i+1])
@@ -1081,7 +1083,7 @@ WmAttributesCmd(
}
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1137,7 +1139,7 @@ WmClientCmd(
strcpy(wmPtr->clientMachine, argv3);
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1177,7 +1179,7 @@ WmColormapwindowsCmd(
Tk_MakeWindowExist((Tk_Window) winPtr);
for (i = 0; i < wmPtr->cmapCount; i++) {
if ((i == (wmPtr->cmapCount-1))
- && (wmPtr->flags & WM_ADDED_TOPLEVEL_COLORMAP)) {
+ && (wmPtr->flags & WM_ADDED_TOPLEVEL_COLORMAP)) {
break;
}
Tcl_AppendElement(interp, wmPtr->cmapList[i]->pathName);
@@ -1185,7 +1187,7 @@ WmColormapwindowsCmd(
return TCL_OK;
}
if (Tcl_ListObjGetElements(interp, objv[3], &windowObjc, &windowObjv)
- != TCL_OK) {
+ != TCL_OK) {
return TCL_ERROR;
}
cmapList = ckalloc((windowObjc+1) * sizeof(TkWindow*));
@@ -1224,7 +1226,7 @@ WmColormapwindowsCmd(
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1285,7 +1287,7 @@ WmCommandCmd(
wmPtr->cmdArgv = cmdArgv;
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1318,20 +1320,24 @@ WmDeiconifyCmd(
return TCL_ERROR;
}
if (wmPtr->iconFor != NULL) {
- Tcl_AppendResult(interp, "can't deiconify ", Tcl_GetString(objv[2]),
- ": it is an icon for ", Tk_PathName(wmPtr->iconFor), NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't deiconify %s: it is an icon for %s",
+ Tcl_GetString(objv[2]), Tk_PathName(wmPtr->iconFor)));
+ Tcl_SetErrorCode(interp, "TK", "WM", "DEICONIFY", "ICON", NULL);
return TCL_ERROR;
}
if (winPtr->flags & TK_EMBEDDED) {
- Tcl_AppendResult(interp, "can't deiconify ", winPtr->pathName,
- ": it is an embedded window", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't deiconify %s: it is an embedded window",
+ winPtr->pathName));
+ Tcl_SetErrorCode(interp, "TK", "WM", "DEICONIFY", "EMBEDDED", NULL);
return TCL_ERROR;
}
TkpWmSetState(winPtr, TkMacOSXIsWindowZoomed(winPtr) ?
ZoomState : NormalState);
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1385,7 +1391,7 @@ WmFocusmodelCmd(
}
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1412,7 +1418,9 @@ WmForgetCmd(
Tcl_Obj *const objv[]) /* Argument objects. */
{
#if 1
- Tcl_AppendResult(interp, "wm forget is not yet supported", NULL);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ "wm forget is not yet supported", -1));
+ Tcl_SetErrorCode(interp, "TK", "WM", "UNSUPPORTED", NULL);
return TCL_ERROR;
#else
register Tk_Window frameWin = (Tk_Window)winPtr;
@@ -1447,7 +1455,7 @@ WmForgetCmd(
return TCL_OK;
#endif
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1487,7 +1495,7 @@ WmFrameCmd(
Tcl_SetObjResult(interp, Tcl_ObjPrintf("0x%x", (unsigned) window));
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1547,7 +1555,7 @@ WmGeometryCmd(
}
return ParseGeometry(interp, argv3, winPtr);
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1575,6 +1583,7 @@ WmGridCmd(
{
register WmInfo *wmPtr = winPtr->wmInfoPtr;
int reqWidth, reqHeight, widthInc, heightInc;
+ const char *errorMsg;
if ((objc != 3) && (objc != 7)) {
Tcl_WrongNumArgs(interp, 2, objv,
@@ -1616,20 +1625,17 @@ WmGridCmd(
return TCL_ERROR;
}
if (reqWidth < 0) {
- Tcl_SetResult(interp, "baseWidth can't be < 0", TCL_STATIC);
- return TCL_ERROR;
- }
- if (reqHeight < 0) {
- Tcl_SetResult(interp, "baseHeight can't be < 0", TCL_STATIC);
- return TCL_ERROR;
- }
- if (widthInc <= 0) {
- Tcl_SetResult(interp, "widthInc can't be <= 0", TCL_STATIC);
- return TCL_ERROR;
- }
- if (heightInc <= 0) {
- Tcl_SetResult(interp, "heightInc can't be <= 0", TCL_STATIC);
- return TCL_ERROR;
+ errorMsg = "baseWidth can't be < 0";
+ goto error;
+ } else if (reqHeight < 0) {
+ errorMsg = "baseHeight can't be < 0";
+ goto error;
+ } else if (widthInc <= 0) {
+ errorMsg = "widthInc can't be <= 0";
+ goto error;
+ } else if (heightInc <= 0) {
+ errorMsg = "heightInc can't be <= 0";
+ goto error;
}
Tk_SetGrid((Tk_Window) winPtr, reqWidth, reqHeight, widthInc,
heightInc);
@@ -1637,8 +1643,13 @@ WmGridCmd(
wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
WmUpdateGeom(wmPtr, winPtr);
return TCL_OK;
-}
+ error:
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(errorMsg, -1));
+ Tcl_SetErrorCode(interp, "TK", "WM", "GRID", NULL);
+ return TCL_ERROR;
+}
+
/*
*----------------------------------------------------------------------
*
@@ -1701,7 +1712,7 @@ WmGroupCmd(
}
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1770,7 +1781,7 @@ WmIconbitmapCmd(
}
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1801,30 +1812,37 @@ WmIconifyCmd(
Tcl_WrongNumArgs(interp, 2, objv, "window");
return TCL_ERROR;
}
+
if (Tk_Attributes((Tk_Window) winPtr)->override_redirect) {
- Tcl_AppendResult(interp, "can't iconify \"", winPtr->pathName,
- "\": override-redirect flag is set", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't iconify \"%s\": override-redirect flag is set",
+ winPtr->pathName));
+ Tcl_SetErrorCode(interp, "TK", "WM", "ICONIFY", "OVERRIDE_REDIRECT",
+ NULL);
return TCL_ERROR;
- }
- if (wmPtr->master != None) {
- Tcl_AppendResult(interp, "can't iconify \"", winPtr->pathName,
- "\": it is a transient", NULL);
+ } else if (wmPtr->master != None) {
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't iconify \"%s\": it is a transient", winPtr->pathName));
+ Tcl_SetErrorCode(interp, "TK", "WM", "ICONIFY", "TRANSIENT", NULL);
return TCL_ERROR;
- }
- if (wmPtr->iconFor != NULL) {
- Tcl_AppendResult(interp, "can't iconify ", winPtr->pathName,
- ": it is an icon for ", Tk_PathName(wmPtr->iconFor), NULL);
+ } else if (wmPtr->iconFor != NULL) {
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't iconify %s: it is an icon for %s",
+ winPtr->pathName, Tk_PathName(wmPtr->iconFor)));
+ Tcl_SetErrorCode(interp, "TK", "WM", "ICONIFY", "ICON", NULL);
return TCL_ERROR;
- }
- if (winPtr->flags & TK_EMBEDDED) {
- Tcl_AppendResult(interp, "can't iconify ", winPtr->pathName,
- ": it is an embedded window", NULL);
+ } else if (winPtr->flags & TK_EMBEDDED) {
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't iconify %s: it is an embedded window",
+ winPtr->pathName));
+ Tcl_SetErrorCode(interp, "TK", "WM", "ICONIFY", "EMBEDDED", NULL);
return TCL_ERROR;
}
+
TkpWmSetState(winPtr, IconicState);
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1882,7 +1900,7 @@ WmIconmaskCmd(
}
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1934,7 +1952,7 @@ WmIconnameCmd(
}
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -1986,8 +2004,10 @@ WmIconphotoCmd(
for (i = 3 + isDefault; i < objc; i++) {
photo = Tk_FindPhoto(interp, Tcl_GetString(objv[i]));
if (photo == NULL) {
- Tcl_AppendResult(interp, "can't use \"", Tcl_GetString(objv[i]),
- "\" as iconphoto: not a photo image", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't use \"%s\" as iconphoto: not a photo image",
+ Tcl_GetString(objv[i])));
+ Tcl_SetErrorCode(interp, "TK", "WM", "ICONPHOTO", NULL);
return TCL_ERROR;
}
Tk_PhotoGetSize(photo, &width, &height);
@@ -2000,7 +2020,7 @@ WmIconphotoCmd(
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2047,7 +2067,7 @@ WmIconpositionCmd(
wmPtr->hints.flags &= ~IconPositionHint;
} else {
if ((Tcl_GetIntFromObj(interp, objv[3], &x) != TCL_OK)
- || (Tcl_GetIntFromObj(interp, objv[4], &y) != TCL_OK)){
+ || (Tcl_GetIntFromObj(interp, objv[4], &y) != TCL_OK)){
return TCL_ERROR;
}
wmPtr->hints.icon_x = x;
@@ -2056,7 +2076,7 @@ WmIconpositionCmd(
}
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2109,15 +2129,19 @@ WmIconwindowCmd(
return TCL_ERROR;
}
if (!Tk_IsTopLevel(tkwin2)) {
- Tcl_AppendResult(interp, "can't use ", Tcl_GetString(objv[3]),
- " as icon window: not at top level", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't use %s as icon window: not at top level",
+ Tk_PathName(tkwin2)));
+ Tcl_SetErrorCode(interp, "TK", "WM", "ICONWINDOW", "TOPLEVEL",
+ NULL);
return TCL_ERROR;
}
wmPtr2 = ((TkWindow *) tkwin2)->wmInfoPtr;
if (wmPtr2->iconFor != NULL) {
- Tcl_AppendResult(interp, Tcl_GetString(objv[3]),
- " is already an icon for ",
- Tk_PathName(wmPtr2->iconFor), NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "%s is already an icon for %s",
+ Tcl_GetString(objv[3]), Tk_PathName(wmPtr2->iconFor)));
+ Tcl_SetErrorCode(interp, "TK", "WM", "ICONWINDOW", "ICON", NULL);
return TCL_ERROR;
}
if (wmPtr->icon != NULL) {
@@ -2139,7 +2163,7 @@ WmIconwindowCmd(
}
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2166,7 +2190,9 @@ WmManageCmd(
Tcl_Obj *const objv[]) /* Argument objects. */
{
#if 1
- Tcl_AppendResult(interp, "wm manage is not yet supported", NULL);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ "wm manage is not yet supported", -1));
+ Tcl_SetErrorCode(interp, "TK", "WM", "UNSUPPORTED", NULL);
return TCL_ERROR;
#else
register Tk_Window frameWin = (Tk_Window)winPtr;
@@ -2177,9 +2203,11 @@ WmManageCmd(
MacDrawable *macWin = (MacDrawable *) winPtr->window;
if (!Tk_IsManageable(frameWin)) {
- Tcl_AppendResult(interp, "window \"",
- Tk_PathName(frameWin), "\" is not manageable: must be "
- "a frame, labelframe or toplevel", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "window \"%s\" is not manageable: must be a"
+ " frame, labelframe or toplevel",
+ Tk_PathName(frameWin)));
+ Tcl_SetErrorCode(interp, "TK", "WM", "MANAGE", NULL);
return TCL_ERROR;
}
TkFocusSplit(winPtr);
@@ -2207,7 +2235,7 @@ WmManageCmd(
return TCL_OK;
#endif
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2246,7 +2274,7 @@ WmMaxsizeCmd(
GetMaxSize(winPtr, &width, &height);
size[0] = Tcl_NewIntObj(width);
size[1] = Tcl_NewIntObj(height);
- Tcl_SetObjResult(interp, Tcl_NewIntObj(2, size));
+ Tcl_SetObjResult(interp, Tcl_NewListObj(2, size));
return TCL_OK;
}
if ((Tcl_GetIntFromObj(interp, objv[3], &width) != TCL_OK)
@@ -2259,7 +2287,7 @@ WmMaxsizeCmd(
WmUpdateGeom(wmPtr, winPtr);
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2298,7 +2326,7 @@ WmMinsizeCmd(
GetMinSize(winPtr, &width, &height);
size[0] = Tcl_NewIntObj(width);
size[1] = Tcl_NewIntObj(height);
- Tcl_SetObjResult(interp, Tcl_NewIntObj(2, size));
+ Tcl_SetObjResult(interp, Tcl_NewListObj(2, size));
return TCL_OK;
}
if ((Tcl_GetIntFromObj(interp, objv[3], &width) != TCL_OK)
@@ -2311,7 +2339,7 @@ WmMinsizeCmd(
WmUpdateGeom(wmPtr, winPtr);
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2357,7 +2385,7 @@ WmOverrideredirectCmd(
ApplyMasterOverrideChanges(winPtr, NULL);
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2396,9 +2424,9 @@ WmPositionfromCmd(
}
if (objc == 3) {
if (wmPtr->sizeHintsFlags & USPosition) {
- Tcl_SetResult(interp, "user", TCL_STATIC);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("user", -1));
} else if (wmPtr->sizeHintsFlags & PPosition) {
- Tcl_SetResult(interp, "program", TCL_STATIC);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("program", -1));
}
return TCL_OK;
}
@@ -2421,7 +2449,7 @@ WmPositionfromCmd(
WmUpdateGeom(wmPtr, winPtr);
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2514,7 +2542,7 @@ WmProtocolCmd(
}
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2581,15 +2609,14 @@ WmResizableCmd(
}
wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
if (wmPtr->scrollWinPtr != NULL) {
- TkScrollbarEventuallyRedraw((TkScrollbar *)
- wmPtr->scrollWinPtr->instanceData);
+ TkScrollbarEventuallyRedraw(wmPtr->scrollWinPtr->instanceData);
}
WmUpdateGeom(wmPtr, winPtr);
ApplyWindowClassAttributeChanges(winPtr, NULL, wmPtr->macClass,
oldAttributes, 1);
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2628,9 +2655,9 @@ WmSizefromCmd(
}
if (objc == 3) {
if (wmPtr->sizeHintsFlags & USSize) {
- Tcl_SetResult(interp, "user", TCL_STATIC);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("user", -1));
} else if (wmPtr->sizeHintsFlags & PSize) {
- Tcl_SetResult(interp, "program", TCL_STATIC);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("program", -1));
}
return TCL_OK;
}
@@ -2654,7 +2681,7 @@ WmSizefromCmd(
WmUpdateGeom(wmPtr, winPtr);
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2708,25 +2735,27 @@ WmStackorderCmd(
int index1=-1, index2=-1, result;
if (TkGetWindowFromObj(interp, tkwin, objv[4], (Tk_Window *) &winPtr2)
- != TCL_OK) {
+ != TCL_OK) {
return TCL_ERROR;
}
if (!Tk_IsTopLevel(winPtr2)) {
- Tcl_AppendResult(interp, "window \"", winPtr2->pathName,
- "\" isn't a top-level window", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "window \"%s\" isn't a top-level window",
+ winPtr2->pathName));
+ Tcl_SetErrorCode(interp, "TK", "WM", "STACK", "TOPLEVEL", NULL);
return TCL_ERROR;
}
if (!Tk_IsMapped(winPtr)) {
- Tcl_AppendResult(interp, "window \"", winPtr->pathName,
- "\" isn't mapped", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "window \"%s\" isn't mapped", winPtr->pathName));
+ Tcl_SetErrorCode(interp, "TK", "WM", "STACK", "MAPPED", NULL);
return TCL_ERROR;
- }
-
- if (!Tk_IsMapped(winPtr2)) {
- Tcl_AppendResult(interp, "window \"", winPtr2->pathName,
- "\" isn't mapped", NULL);
+ } else if (!Tk_IsMapped(winPtr2)) {
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "window \"%s\" isn't mapped", winPtr2->pathName));
+ Tcl_SetErrorCode(interp, "TK", "WM", "STACK", "MAPPED", NULL);
return TCL_ERROR;
}
@@ -2737,7 +2766,9 @@ WmStackorderCmd(
windows = TkWmStackorderToplevel(winPtr->mainPtr->winPtr);
if (windows == NULL) {
- Tcl_AppendResult(interp, "TkWmStackorderToplevel failed", NULL);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ "TkWmStackorderToplevel failed", -1));
+ Tcl_SetErrorCode(interp, "TK", "WM", "STACK", "FAIL", NULL);
return TCL_ERROR;
}
@@ -2772,7 +2803,7 @@ WmStackorderCmd(
}
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2811,19 +2842,22 @@ WmStateCmd(
}
if (objc == 4) {
if (wmPtr->iconFor != NULL) {
- Tcl_AppendResult(interp, "can't change state of ",
- Tcl_GetString(objv[2]), ": it is an icon for ",
- Tk_PathName(wmPtr->iconFor), NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't change state of %s: it is an icon for %s",
+ Tcl_GetString(objv[2]), Tk_PathName(wmPtr->iconFor)));
+ Tcl_SetErrorCode(interp, "TK", "WM", "STATE", "ICON", NULL);
return TCL_ERROR;
}
if (winPtr->flags & TK_EMBEDDED) {
- Tcl_AppendResult(interp, "can't change state of ",
- winPtr->pathName, ": it is an embedded window", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't change state of %s: it is an embedded window",
+ winPtr->pathName));
+ Tcl_SetErrorCode(interp, "TK", "WM", "STATE", "EMBEDDED", NULL);
return TCL_ERROR;
}
if (Tcl_GetIndexFromObj(interp, objv[3], optionStrings, "argument", 0,
- &index) != TCL_OK) {
+ &index) != TCL_OK) {
return TCL_ERROR;
}
@@ -2836,13 +2870,19 @@ WmStateCmd(
*/
} else if (index == OPT_ICONIC) {
if (Tk_Attributes((Tk_Window) winPtr)->override_redirect) {
- Tcl_AppendResult(interp, "can't iconify \"", winPtr->pathName,
- "\": override-redirect flag is set", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't iconify \"%s\": override-redirect flag is set",
+ winPtr->pathName));
+ Tcl_SetErrorCode(interp, "TK", "WM", "STATE",
+ "OVERRIDE_REDIRECT", NULL);
return TCL_ERROR;
}
if (wmPtr->master != None) {
- Tcl_AppendResult(interp, "can't iconify \"", winPtr->pathName,
- "\": it is a transient", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't iconify \"%s\": it is a transient",
+ winPtr->pathName));
+ Tcl_SetErrorCode(interp, "TK", "WM", "STATE", "TRANSIENT",
+ NULL);
return TCL_ERROR;
}
TkpWmSetState(winPtr, IconicState);
@@ -2852,7 +2892,7 @@ WmStateCmd(
TkpWmSetState(winPtr, ZoomState);
}
} else if (wmPtr->iconFor != NULL) {
- Tcl_SetResult(interp, "icon", TCL_STATIC);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("icon", -1));
} else {
if (wmPtr->hints.initial_state == NormalState ||
wmPtr->hints.initial_state == ZoomState) {
@@ -2861,22 +2901,22 @@ WmStateCmd(
}
switch (wmPtr->hints.initial_state) {
case NormalState:
- Tcl_SetResult(interp, "normal", TCL_STATIC);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("normal", -1));
break;
case IconicState:
- Tcl_SetResult(interp, "iconic", TCL_STATIC);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("iconic", -1));
break;
case WithdrawnState:
- Tcl_SetResult(interp, "withdrawn", TCL_STATIC);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("withdrawn", -1));
break;
case ZoomState:
- Tcl_SetResult(interp, "zoomed", TCL_STATIC);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("zoomed", -1));
break;
}
}
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2922,7 +2962,7 @@ WmTitleCmd(
}
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2978,9 +3018,10 @@ WmTransientCmd(
Tk_MakeWindowExist(master);
if (wmPtr->iconFor != NULL) {
- Tcl_AppendResult(interp, "can't make \"", Tcl_GetString(objv[2]),
- "\" a transient: it is an icon for ",
- Tk_PathName(wmPtr->iconFor), NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't make \"%s\" a transient: it is an icon for %s",
+ Tcl_GetString(objv[2]), Tk_PathName(wmPtr->iconFor)));
+ Tcl_SetErrorCode(interp, "TK", "WM", "TRANSIENT", "ICON", NULL);
return TCL_ERROR;
}
@@ -2988,15 +3029,17 @@ WmTransientCmd(
/* Under some circumstances, wmPtr2 is NULL here */
if (wmPtr2 != NULL && wmPtr2->iconFor != NULL) {
- Tcl_AppendResult(interp, "can't make \"", Tcl_GetString(objv[3]),
- "\" a master: it is an icon for ",
- Tk_PathName(wmPtr2->iconFor), NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't make \"%s\" a master: it is an icon for %s",
+ Tcl_GetString(objv[3]), Tk_PathName(wmPtr2->iconFor)));
+ Tcl_SetErrorCode(interp, "TK", "WM", "TRANSIENT", "ICON", NULL);
return TCL_ERROR;
}
if ((TkWindow *) master == winPtr) {
- Tcl_AppendResult(interp, "can't make \"", Tk_PathName(winPtr),
- "\" its own master", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't make \"%s\" its own master", Tk_PathName(winPtr)));
+ Tcl_SetErrorCode(interp, "TK", "WM", "TRANSIENT", "SELF", NULL);
return TCL_ERROR;
}
@@ -3011,7 +3054,7 @@ WmTransientCmd(
ApplyMasterOverrideChanges(winPtr, NULL);
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -3044,14 +3087,16 @@ WmWithdrawCmd(
return TCL_ERROR;
}
if (wmPtr->iconFor != NULL) {
- Tcl_AppendResult(interp, "can't withdraw ", Tcl_GetString(objv[2]),
- ": it is an icon for ", Tk_PathName(wmPtr->iconFor), NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't withdraw %s: it is an icon for %s",
+ Tcl_GetString(objv[2]), Tk_PathName(wmPtr->iconFor)));
+ Tcl_SetErrorCode(interp, "TK", "WM", "WITHDRAW", "ICON", NULL);
return TCL_ERROR;
}
TkpWmSetState(winPtr, WithdrawnState);
return TCL_OK;
}
-
+
/*
* Invoked by those wm subcommands that affect geometry.
* Schedules a geometry update.
@@ -3067,7 +3112,7 @@ WmUpdateGeom(
wmPtr->flags |= WM_UPDATE_PENDING;
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -3173,7 +3218,7 @@ Tk_SetGrid(
wmPtr->flags |= WM_UPDATE_PENDING;
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -3230,7 +3275,7 @@ Tk_UnsetGrid(
wmPtr->flags |= WM_UPDATE_PENDING;
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -3280,7 +3325,7 @@ TopLevelEventProc(
Tcl_Panic("recieved unwanted reparent event");
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -3315,7 +3360,7 @@ TopLevelReqProc(
wmPtr->flags |= WM_UPDATE_PENDING;
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -3442,13 +3487,13 @@ UpdateGeometryInfo(
x = wmPtr->vRootWidth - wmPtr->x
- (width + (wmPtr->parentWidth - winPtr->changes.width));
} else {
- x = wmPtr->x;
+ x = wmPtr->x;
}
if (wmPtr->flags & WM_NEGATIVE_Y) {
y = wmPtr->vRootHeight - wmPtr->y
- (height + (wmPtr->parentHeight - winPtr->changes.height));
} else {
- y = wmPtr->y;
+ y = wmPtr->y;
}
/*
@@ -3532,7 +3577,7 @@ UpdateGeometryInfo(
wmPtr->flags &= ~WM_SYNC_PENDING;
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -3558,7 +3603,7 @@ UpdateSizeHints(
wmPtr->flags &= ~WM_UPDATE_SIZE_HINTS;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -3696,10 +3741,12 @@ ParseGeometry(
return TCL_OK;
error:
- Tcl_AppendResult(interp, "bad geometry specifier \"", string, "\"", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "bad geometry specifier \"%s\"", string));
+ Tcl_SetErrorCode(interp, "TK", "VALUE", "GEOMETRY", NULL);
return TCL_ERROR;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -3795,7 +3842,7 @@ Tk_GetRootCoords(
*xPtr = x;
*yPtr = y;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -3915,7 +3962,7 @@ Tk_CoordsToWindow(
}
return (Tk_Window) winPtr;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4008,7 +4055,7 @@ Tk_TopCoordsToWindow(
*newY = y;
return (Tk_Window) winPtr;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4075,7 +4122,7 @@ UpdateVRootGeometry(
goto noVRoot;
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4132,7 +4179,7 @@ Tk_GetVRootGeometry(
*widthPtr = wmPtr->vRootWidth;
*heightPtr = wmPtr->vRootHeight;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4186,7 +4233,7 @@ Tk_MoveToplevelWindow(
UpdateGeometryInfo(winPtr);
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4300,7 +4347,7 @@ TkWmRestackToplevel(
SendBehind(macWindow, otherMacWindow);
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4391,7 +4438,7 @@ TkWmAddToColormapWindows(
* we don't support colormaps. If we did they would be installed here.
*/
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4460,7 +4507,7 @@ TkWmRemoveFromColormapWindows(
}
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4488,7 +4535,7 @@ TkGetPointerCoords(
{
XQueryPointer(NULL, None, NULL, NULL, xPtr, yPtr, NULL, NULL, NULL);
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4547,7 +4594,7 @@ InitialWindowBounds(
geometry->right = wmPtr->x + winPtr->changes.width;
geometry->bottom = wmPtr->y + winPtr->changes.height;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4587,7 +4634,7 @@ TkMacOSXResizable(
return true;
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4655,7 +4702,7 @@ TkMacOSXGrowToplevel(
if (base < 0) {
base = 0;
}
- limits.top = base + (minHeight * wmPtr->heightInc);
+ limits.top = base + (minHeight * wmPtr->heightInc);
limits.bottom = base + (maxHeight * wmPtr->heightInc);
} else {
limits.left = minWidth;
@@ -4710,7 +4757,7 @@ TkMacOSXGrowToplevel(
}
return false;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4748,7 +4795,7 @@ TkSetWMName(
CFRelease(title);
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4775,7 +4822,7 @@ TkGetTransientMaster(
}
return None;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4807,7 +4854,7 @@ TkMacOSXGetXWindow(
}
return (Window) Tcl_GetHashValue(hPtr);
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4866,7 +4913,7 @@ TkMacOSXIsWindowZoomed(
return IsWindowInStandardState(TkMacOSXDrawableWindow(winPtr->window),
&idealSize, NULL);
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4888,7 +4935,7 @@ TkMacOSXIsWindowZoomed(
int
TkMacOSXZoomToplevel(
- void *whichWindow, /* The Macintosh window to zoom. */
+ void *whichWindow, /* The Macintosh window to zoom. */
short zoomPart) /* Either inZoomIn or inZoomOut */
{
Window window;
@@ -4950,7 +4997,7 @@ TkMacOSXZoomToplevel(
(zoomPart == inZoomIn ? NormalState : ZoomState);
return true;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -4998,9 +5045,9 @@ TkUnsupported1ObjCmd(
return TCL_ERROR;
}
if (!(winPtr->flags & TK_TOP_LEVEL)) {
- Tcl_ResetResult(interp);
- Tcl_AppendResult(interp, "window \"", winPtr->pathName,
- "\" isn't a top-level window", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "window \"%s\" isn't a top-level window", winPtr->pathName));
+ Tcl_SetErrorCode(interp, "TK", "WINDOWSTYLE", "TOPLEVEL", NULL);
return TCL_ERROR;
}
@@ -5018,7 +5065,7 @@ TkUnsupported1ObjCmd(
/* won't be reached */
return TCL_ERROR;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5146,14 +5193,14 @@ WmWinStyle(
Tcl_Panic("invalid class");
}
- attributeList = Tcl_NewListObj(0, NULL);
+ attributeList = Tcl_NewObj();
attributes = wmPtr->attributes;
for (i = 0; compositeAttrMap[i].strValue != NULL; i++) {
UInt32 intValue = compositeAttrMap[i].intValue;
if (intValue && (attributes & intValue) == intValue) {
- Tcl_ListObjAppendElement(interp, attributeList,
+ Tcl_ListObjAppendElement(NULL, attributeList,
Tcl_NewStringObj(compositeAttrMap[i].strValue,
-1));
attributes &= ~intValue;
@@ -5162,11 +5209,11 @@ WmWinStyle(
}
for (i = 0; attrMap[i].strValue != NULL; i++) {
if (attributes & attrMap[i].intValue) {
- Tcl_ListObjAppendElement(interp, attributeList,
+ Tcl_ListObjAppendElement(NULL, attributeList,
Tcl_NewStringObj(attrMap[i].strValue, -1));
}
}
- Tcl_ListObjAppendElement(interp, newResult, attributeList);
+ Tcl_ListObjAppendElement(NULL, newResult, attributeList);
Tcl_SetObjResult(interp, newResult);
}
} else if (objc == 4) {
@@ -5220,7 +5267,7 @@ WmWinStyle(
}
return TCL_OK;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5258,7 +5305,7 @@ TkpMakeMenuWindow(
winPtr->wmInfoPtr->flags |= WM_HEIGHT_NOT_RESIZABLE;
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5363,7 +5410,7 @@ TkMacOSXMakeRealWindowExist(
wmPtr->parentWidth = winPtr->changes.width + structureW;
wmPtr->parentHeight = winPtr->changes.height + structureH;
InitialWindowBounds(winPtr, newWindow, &geometry);
- geometry.right += structureW;
+ geometry.right += structureW;
geometry.bottom += structureH;
ChkErr(SetWindowBounds, newWindow, kWindowStructureRgn, &geometry);
@@ -5409,7 +5456,7 @@ TkMacOSXMakeRealWindowExist(
}
#endif /* TK_MAC_DEBUG_WINDOWS */
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5445,7 +5492,7 @@ TkMacOSXRegisterOffScreenWindow(
}
Tcl_SetHashValue(valueHashPtr, window);
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5479,7 +5526,7 @@ TkMacOSXUnregisterMacWindow(
Tcl_DeleteHashEntry(entryPtr);
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5511,7 +5558,7 @@ TkMacOSXSetScrollbarGrow(
winPtr->privatePtr->toplevel->winPtr->wmInfoPtr->scrollWinPtr = NULL;
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5544,7 +5591,7 @@ TkWmFocusToplevel(
}
return winPtr;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5574,7 +5621,7 @@ TkpGetWrapperWindow(
}
return winPtr;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5634,7 +5681,7 @@ TkpWmSetState(
TkMacOSXZoomToplevel(macWin, inZoomOut);
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5664,7 +5711,7 @@ TkpIsWindowFloating(
GetWindowClass(wRef, &class);
return (class == kFloatingWindowClass);
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5687,7 +5734,7 @@ TkMacOSXWindowClass(
{
return winPtr->wmInfoPtr->macClass;
}
-
+
/*
*--------------------------------------------------------------
*
@@ -5722,7 +5769,7 @@ TkMacOSXWindowOffset(
*xOffset = winPtr->wmInfoPtr->xInParent;
*yOffset = winPtr->wmInfoPtr->yInParent;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5748,7 +5795,7 @@ TkpGetMS(void)
Tcl_GetTime(&now);
return (long) now.sec * 1000 + now.usec / 1000;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5776,7 +5823,7 @@ XSetInputFocus(
* Don't need to do a thing. Tk manages the focus for us.
*/
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5822,7 +5869,7 @@ TkpChangeFocus(
return NextRequest(winPtr->display);
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5869,7 +5916,7 @@ WmStackorderToplevelWrapperMap(
WmStackorderToplevelWrapperMap(childPtr, display, table);
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -5947,7 +5994,7 @@ TkWmStackorderToplevel(
Tcl_DeleteHashTable(&table);
return windows;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -6038,7 +6085,7 @@ ApplyWindowClassAttributeChanges(
+ strWidths.bottom;
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -6104,7 +6151,7 @@ ApplyMasterOverrideChanges(
}
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -6158,7 +6205,7 @@ WmGetWindowGroup(
}
return group;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -6186,7 +6233,7 @@ TkMacOSXMakeFullscreen(
int result = TCL_OK, wasFullscreen = (wmPtr->flags & WM_FULLSCREEN);
if (fullscreen) {
- int screenWidth = WidthOfScreen(Tk_Screen(winPtr));
+ int screenWidth = WidthOfScreen(Tk_Screen(winPtr));
int screenHeight = HeightOfScreen(Tk_Screen(winPtr));
/*
@@ -6196,10 +6243,11 @@ TkMacOSXMakeFullscreen(
if ((wmPtr->maxWidth > 0 && wmPtr->maxWidth < screenWidth)
|| (wmPtr->maxHeight > 0 && wmPtr->maxHeight < screenHeight)) {
if (interp) {
- Tcl_AppendResult(interp,
- "can't set fullscreen attribute for \"",
- winPtr->pathName,
- "\": max width/height is too small", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't set fullscreen attribute for \"%s\": max"
+ " width/height is too small", winPtr->pathName));
+ Tcl_SetErrorCode(interp, "TK", "FULLSCREEN",
+ "CONSTRAINT_FAILURE", NULL);
}
result = TCL_ERROR;
wmPtr->flags &= ~WM_FULLSCREEN;
@@ -6243,7 +6291,7 @@ TkMacOSXMakeFullscreen(
TkMacOSXEnterExitFullscreen(winPtr, IsWindowActive(window));
return result;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -6291,7 +6339,7 @@ TkMacOSXEnterExitFullscreen(
}
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -6388,7 +6436,7 @@ GetMinSize(
*minWidthPtr = minWidth;
*minHeightPtr = minHeight;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -6444,7 +6492,7 @@ GetMaxSize(
*maxHeightPtr = maxHeight;
}
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -6490,7 +6538,7 @@ RemapWindows(
RemapWindows(childPtr, (MacDrawable *) winPtr->window);
}
}
-
+
/*
* Local Variables:
* fill-column: 78
diff --git a/generic/tkArgv.c b/generic/tkArgv.c
index f4ddda4..56f628b 100644
--- a/generic/tkArgv.c
+++ b/generic/tkArgv.c
@@ -142,7 +142,8 @@ Tk_ParseArgv(
if (matchPtr != NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"ambiguous option \"%s\"", curArg));
- Tcl_SetErrorCode(interp, "TK", "ARG", "AMBIGUOUS", NULL);
+ Tcl_SetErrorCode(interp, "TK", "ARG", "AMBIGUOUS", curArg,
+ NULL);
return TCL_ERROR;
}
matchPtr = infoPtr;
@@ -157,7 +158,8 @@ Tk_ParseArgv(
if (flags & TK_ARGV_NO_LEFTOVERS) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"unrecognized argument \"%s\"", curArg));
- Tcl_SetErrorCode(interp, "TK", "ARG", "UNRECOGNIZED", NULL);
+ Tcl_SetErrorCode(interp, "TK", "ARG", "UNRECOGNIZED", curArg,
+ NULL);
return TCL_ERROR;
}
argv[dstIndex] = curArg;
@@ -184,7 +186,7 @@ Tk_ParseArgv(
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"expected %s argument for \"%s\" but got \"%s\"",
"integer", infoPtr->key, argv[srcIndex]));
- Tcl_SetErrorCode(interp, "TK", "ARG", "INTEGER", NULL);
+ Tcl_SetErrorCode(interp, "TK", "ARG", "INTEGER", curArg,NULL);
return TCL_ERROR;
}
srcIndex++;
@@ -218,7 +220,7 @@ Tk_ParseArgv(
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"expected %s argument for \"%s\" but got \"%s\"",
"floating-point", infoPtr->key, argv[srcIndex]));
- Tcl_SetErrorCode(interp, "TK", "ARG", "FLOAT", NULL);
+ Tcl_SetErrorCode(interp, "TK", "ARG", "FLOAT", curArg, NULL);
return TCL_ERROR;
}
srcIndex++;
@@ -268,7 +270,8 @@ Tk_ParseArgv(
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"\"%s\" option requires two following arguments",
curArg));
- Tcl_SetErrorCode(interp, "TK", "ARG", "NAME_VALUE", NULL);
+ Tcl_SetErrorCode(interp, "TK", "ARG", "NAME_VALUE", curArg,
+ NULL);
return TCL_ERROR;
}
Tk_AddOption(tkwin, argv[srcIndex], argv[srcIndex+1],
@@ -303,7 +306,7 @@ Tk_ParseArgv(
missingArg:
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"\"%s\" option requires an additional argument", curArg));
- Tcl_SetErrorCode(interp, "TK", "ARG", "MISSING", NULL);
+ Tcl_SetErrorCode(interp, "TK", "ARG", "MISSING", curArg, NULL);
return TCL_ERROR;
}
@@ -329,7 +332,7 @@ static void
PrintUsage(
Tcl_Interp *interp, /* Place information in this interp's result
* area. */
- const Tk_ArgvInfo *argTable, /* Array of command-specific argument
+ const Tk_ArgvInfo *argTable,/* Array of command-specific argument
* descriptions. */
int flags) /* If the TK_ARGV_NO_DEFAULTS bit is set in
* this word, then don't generate information
@@ -337,7 +340,7 @@ PrintUsage(
{
register const Tk_ArgvInfo *infoPtr;
size_t width, i, numSpaces;
- char tmp[TCL_DOUBLE_SPACE];
+ Tcl_Obj *message;
/*
* First, compute the width of the widest option key, so that we can make
@@ -349,6 +352,7 @@ PrintUsage(
for (infoPtr = i ? defaultTable : argTable;
infoPtr->type != TK_ARGV_END; infoPtr++) {
size_t length;
+
if (infoPtr->key == NULL) {
continue;
}
@@ -359,35 +363,35 @@ PrintUsage(
}
}
- Tcl_AppendResult(interp, "Command-specific options:", NULL);
+ message = Tcl_NewStringObj("Command-specific options:", -1);
for (i = 0; ; i++) {
for (infoPtr = i ? defaultTable : argTable;
infoPtr->type != TK_ARGV_END; infoPtr++) {
if ((infoPtr->type == TK_ARGV_HELP) && (infoPtr->key == NULL)) {
- Tcl_AppendResult(interp, "\n", infoPtr->help, NULL);
+ Tcl_AppendPrintfToObj(message, "\n%s", infoPtr->help);
continue;
}
- Tcl_AppendResult(interp, "\n ", infoPtr->key, ":", NULL);
+ Tcl_AppendPrintfToObj(message, "\n %s:", infoPtr->key);
numSpaces = width + 1 - strlen(infoPtr->key);
while (numSpaces-- > 0) {
- Tcl_AppendResult(interp, " ", NULL);
+ Tcl_AppendToObj(message, " ", 1);
}
- Tcl_AppendResult(interp, infoPtr->help, NULL);
+ Tcl_AppendToObj(message, infoPtr->help, -1);
switch (infoPtr->type) {
case TK_ARGV_INT:
- sprintf(tmp, "%d", *((int *) infoPtr->dst));
- Tcl_AppendResult(interp, "\n\t\tDefault value: ", tmp, NULL);
+ Tcl_AppendPrintfToObj(message, "\n\t\tDefault value: %d",
+ *((int *) infoPtr->dst));
break;
case TK_ARGV_FLOAT:
- Tcl_PrintDouble(NULL, *((double *) infoPtr->dst), tmp);
- Tcl_AppendResult(interp, "\n\t\tDefault value: ", tmp, NULL);
+ Tcl_AppendPrintfToObj(message, "\n\t\tDefault value: %f",
+ *((double *) infoPtr->dst));
break;
case TK_ARGV_STRING: {
char *string = *((char **) infoPtr->dst);
if (string != NULL) {
- Tcl_AppendResult(interp, "\n\t\tDefault value: \"", string,
- "\"", NULL);
+ Tcl_AppendPrintfToObj(message,
+ "\n\t\tDefault value: \"%s\"", string);
}
break;
}
@@ -399,8 +403,9 @@ PrintUsage(
if ((flags & TK_ARGV_NO_DEFAULTS) || (i > 0)) {
break;
}
- Tcl_AppendResult(interp, "\nGeneric options for all commands:", NULL);
+ Tcl_AppendToObj(message, "\nGeneric options for all commands:", -1);
}
+ Tcl_SetObjResult(interp, message);
}
/*