mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-13 03:32:24 +00:00
dtstyle: fix bugs preventing SM save from working properly
All of the dtstyle session save routines used sprintf/snprintf whereby the destination buffer was also a source buffer, like so: snprintf(bufr, sizeof(style.tmpBigStr), "%s*Fonts.x: %d\n", bufr, x); ^^^^ ^^ ^^^^ That results in undefined behavior, which mainly meant missing or currupted XRM resources being saved in the session file for dtstyle.
This commit is contained in:
parent
a52f988e47
commit
383b5e4b59
14 changed files with 124 additions and 108 deletions
|
@ -691,7 +691,7 @@ saveAudio(
|
|||
int fd )
|
||||
{
|
||||
Position x,y;
|
||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
||||
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||
XmVendorShellExtObject vendorExt;
|
||||
XmWidgetExtData extData;
|
||||
|
||||
|
@ -702,6 +702,8 @@ saveAudio(
|
|||
else
|
||||
sprintf(bufr, "*audioDlg.ismapped: False\n");
|
||||
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
|
||||
/* Get and write out the geometry info for our Window */
|
||||
x = XtX(XtParent(style.audioDialog));
|
||||
y = XtY(XtParent(style.audioDialog));
|
||||
|
@ -714,11 +716,12 @@ saveAudio(
|
|||
x -= vendorExt->vendor.xOffset;
|
||||
y -= vendorExt->vendor.yOffset;
|
||||
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*audioDlg.x: %d\n", bufr, x);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*audioDlg.y: %d\n", bufr, y);
|
||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
||||
perror(strerror(errno));
|
||||
}
|
||||
snprintf(bufr, sizeof(bufr), "*audioDlg.x: %d\n", x);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
|
||||
snprintf(bufr, sizeof(bufr), "*audioDlg.y: %d\n", y);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1210,7 +1210,7 @@ saveBackdrop(
|
|||
{
|
||||
Position x,y;
|
||||
Dimension width, height;
|
||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
||||
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||
XmVendorShellExtObject vendorExt;
|
||||
XmWidgetExtData extData;
|
||||
|
||||
|
@ -1221,6 +1221,8 @@ saveBackdrop(
|
|||
else
|
||||
sprintf(bufr, "*backdropsDialog.ismapped: False\n");
|
||||
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
|
||||
/* Get and write out the geometry info for our Window */
|
||||
x = XtX (XtParent(style.backdropDialog));
|
||||
y = XtY (XtParent(style.backdropDialog));
|
||||
|
@ -1235,17 +1237,20 @@ saveBackdrop(
|
|||
x -= vendorExt->vendor.xOffset;
|
||||
y -= vendorExt->vendor.yOffset;
|
||||
|
||||
snprintf(bufr, 1024, "%s*backdropsDialog.x: %d\n", bufr, x);
|
||||
snprintf(bufr, 1024, "%s*backdropsDialog.y: %d\n", bufr, y);
|
||||
snprintf(bufr, 1024, "%s*backdropsDialog.width: %d\n", bufr, width);
|
||||
snprintf(bufr, 1024, "%s*backdropsDialog.height: %d\n", bufr, height);
|
||||
snprintf(bufr, 1024, "%s*backdropsDialog.selectedItemNum: %d\n", bufr,
|
||||
backdrops.selected);
|
||||
snprintf(bufr, 1024, "%s*backdropsDialog.selectedItem: %s\n", bufr,
|
||||
backdrops.bitmapNames[backdrops.selected]);
|
||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
||||
perror(strerror(errno));
|
||||
}
|
||||
snprintf(bufr, sizeof(bufr), "*backdropsDialog.x: %d\n", x);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*backdropsDialog.y: %d\n", y);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*backdropsDialog.width: %d\n", width);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*backdropsDialog.height: %d\n", height);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*backdropsDialog.selectedItemNum: %d\n",
|
||||
backdrops.selected);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*backdropsDialog.selectedItem: %s\n",
|
||||
backdrops.bitmapNames[backdrops.selected]);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1707,7 +1707,7 @@ saveColorEdit(
|
|||
int fd )
|
||||
{
|
||||
Position x,y;
|
||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
||||
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||
XmVendorShellExtObject vendorExt;
|
||||
XmWidgetExtData extData;
|
||||
|
||||
|
@ -1717,6 +1717,7 @@ saveColorEdit(
|
|||
sprintf(bufr, "*colorEditDlg.ismapped: True\n");
|
||||
else
|
||||
sprintf(bufr, "*colorEditDlg.ismapped: False\n");
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
|
||||
/* Get and write out the geometry info for our Window */
|
||||
x = XtX(XtParent(edit.DialogShell));
|
||||
|
@ -1730,12 +1731,11 @@ saveColorEdit(
|
|||
x -= vendorExt->vendor.xOffset;
|
||||
y -= vendorExt->vendor.yOffset;
|
||||
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*colorEditDlg.x: %d\n", bufr, x);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*colorEditDlg.y: %d\n", bufr, y);
|
||||
snprintf(bufr, sizeof(bufr), "*colorEditDlg.x: %d\n", x);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*colorEditDlg.y: %d\n", y);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
/*any other parameter you want to save goes here*/
|
||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
||||
perror(strerror(errno));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2432,7 +2432,7 @@ saveColor(
|
|||
int fd )
|
||||
{
|
||||
Position x,y;
|
||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
||||
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||
XmVendorShellExtObject vendorExt;
|
||||
XmWidgetExtData extData;
|
||||
|
||||
|
@ -2443,6 +2443,8 @@ saveColor(
|
|||
else
|
||||
sprintf(bufr, "*paletteDlg.ismapped: False\n");
|
||||
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
|
||||
/* Get and write out the geometry info for our Window */
|
||||
x = XtX(XtParent(style.colorDialog));
|
||||
y = XtY(XtParent(style.colorDialog));
|
||||
|
@ -2455,15 +2457,16 @@ saveColor(
|
|||
x -= vendorExt->vendor.xOffset;
|
||||
y -= vendorExt->vendor.yOffset;
|
||||
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*paletteDlg.x: %d\n", bufr, x);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*paletteDlg.y: %d\n", bufr, y);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*paletteDlg.selected_palette: %s\n", bufr,
|
||||
pCurrentPalette->name);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*paletteDlg.selected_button: %d\n", bufr,
|
||||
selected_button);
|
||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
||||
perror(strerror(errno));
|
||||
}
|
||||
snprintf(bufr, sizeof(bufr), "*paletteDlg.x: %d\n", x);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*paletteDlg.y: %d\n", y);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*paletteDlg.selected_palette: %s\n",
|
||||
pCurrentPalette->name);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*paletteDlg.selected_button: %d\n",
|
||||
selected_button);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -956,7 +956,7 @@ saveDtwm(
|
|||
{
|
||||
Position x,y;
|
||||
Dimension width, height;
|
||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
||||
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||
XmVendorShellExtObject vendorExt;
|
||||
XmWidgetExtData extData;
|
||||
|
||||
|
@ -967,6 +967,8 @@ saveDtwm(
|
|||
else
|
||||
sprintf(bufr, "*dtwmDlg.ismapped: False\n");
|
||||
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
|
||||
/* Get and write out the geometry info for our Window */
|
||||
x = XtX(XtParent(style.dtwmDialog));
|
||||
y = XtY(XtParent(style.dtwmDialog));
|
||||
|
@ -982,13 +984,14 @@ saveDtwm(
|
|||
width = XtWidth(style.dtwmDialog);
|
||||
height = XtHeight(style.dtwmDialog);
|
||||
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*dtwmDlg.x: %d\n", bufr, x);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*dtwmDlg.y: %d\n", bufr, y);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*dtwmDlg.width: %d\n", bufr, width);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*dtwmDlg.height: %d\n", bufr, height);
|
||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
||||
perror(strerror(errno));
|
||||
}
|
||||
snprintf(bufr, sizeof(bufr), "*dtwmDlg.x: %d\n", x);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*dtwmDlg.y: %d\n", y);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*dtwmDlg.width: %d\n", width);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*dtwmDlg.height: %d\n", height);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -726,12 +726,12 @@ restoreFonts(
|
|||
* restoreFonts. The suggested minimum is whether you are mapped, and your
|
||||
* location.
|
||||
************************************************************************/
|
||||
void
|
||||
void
|
||||
saveFonts(
|
||||
int fd )
|
||||
{
|
||||
Position x,y;
|
||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
||||
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||
XmVendorShellExtObject vendorExt;
|
||||
XmWidgetExtData extData;
|
||||
|
||||
|
@ -741,6 +741,8 @@ saveFonts(
|
|||
else
|
||||
sprintf(bufr, "*Fonts.ismapped: False\n");
|
||||
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
|
||||
/* Get and write out the geometry info for our Window */
|
||||
|
||||
x = XtX(XtParent(style.fontDialog));
|
||||
|
@ -754,12 +756,10 @@ saveFonts(
|
|||
x -= vendorExt->vendor.xOffset;
|
||||
y -= vendorExt->vendor.yOffset;
|
||||
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*Fonts.x: %d\n", bufr, x);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*Fonts.y: %d\n", bufr, y);
|
||||
|
||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
||||
perror(strerror(errno));
|
||||
}
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "*Fonts.x: %d\n", x);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "*Fonts.y: %d\n", y);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1178,7 +1178,7 @@ saveI18n(
|
|||
{
|
||||
Position x,y;
|
||||
Dimension width, height;
|
||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
||||
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||
XmVendorShellExtObject vendorExt;
|
||||
XmWidgetExtData extData;
|
||||
|
||||
|
@ -1189,6 +1189,8 @@ saveI18n(
|
|||
else
|
||||
sprintf(bufr, "*i18nDlg.ismapped: False\n");
|
||||
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
|
||||
/* Get and write out the geometry info for our Window */
|
||||
x = XtX(XtParent(style.i18nDialog));
|
||||
y = XtY(XtParent(style.i18nDialog));
|
||||
|
@ -1204,13 +1206,14 @@ saveI18n(
|
|||
width = XtWidth(style.i18nDialog);
|
||||
height = XtHeight(style.i18nDialog);
|
||||
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*i18nDlg.x: %d\n", bufr, x);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*i18nDlg.y: %d\n", bufr, y);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*i18nDlg.width: %d\n", bufr, width);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*i18nDlg.height: %d\n", bufr, height);
|
||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
||||
perror(strerror(errno));
|
||||
}
|
||||
snprintf(bufr, sizeof(bufr), "*i18nDlg.x: %d\n", x);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*i18nDlg.y: %d\n", y);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*i18nDlg.width: %d\n", width);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*i18nDlg.height: %d\n", height);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -610,7 +610,7 @@ saveKeybd(
|
|||
int fd )
|
||||
{
|
||||
Position x,y;
|
||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
||||
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||
XmVendorShellExtObject vendorExt;
|
||||
XmWidgetExtData extData;
|
||||
|
||||
|
@ -621,6 +621,8 @@ saveKeybd(
|
|||
else
|
||||
sprintf(bufr, "*keyboardDlg.ismapped: False\n");
|
||||
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
|
||||
/* Get and write out the geometry info for our Window */
|
||||
x = XtX(XtParent(style.kbdDialog));
|
||||
y = XtY(XtParent(style.kbdDialog));
|
||||
|
@ -633,12 +635,10 @@ saveKeybd(
|
|||
x -= vendorExt->vendor.xOffset;
|
||||
y -= vendorExt->vendor.yOffset;
|
||||
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*keyboardDlg.x: %d\n", bufr, x);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*keyboardDlg.y: %d\n", bufr, y);
|
||||
|
||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
||||
perror(strerror(errno));
|
||||
}
|
||||
snprintf(bufr, sizeof(bufr), "*keyboardDlg.x: %d\n", x);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*keyboardDlg.y: %d\n", y);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -272,6 +272,12 @@ extern void LoadDatabase(void);
|
|||
string
|
||||
#endif
|
||||
|
||||
// JET - helper for writing strings to an FD
|
||||
#define WRITE_STR2FD(fd, str) { \
|
||||
if (write ((fd), (str), strlen((str))) == -1) \
|
||||
perror(strerror(errno)); \
|
||||
}
|
||||
|
||||
#endif /* _main_h */
|
||||
/* DON'T ADD ANYTHING AFTER THIS #endif */
|
||||
|
||||
|
||||
|
|
|
@ -775,21 +775,22 @@ saveMain(
|
|||
int fd )
|
||||
{
|
||||
Position x,y;
|
||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
||||
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||
|
||||
if (style.mainWindow != NULL) {
|
||||
if (XtIsRealized(style.mainWindow))
|
||||
{
|
||||
sprintf(bufr, "*mainWindow.ismapped: True\n");
|
||||
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
}
|
||||
|
||||
/* Get and write out the geometry info for our Window */
|
||||
x = XtX(XtParent(style.mainWindow));
|
||||
y = XtY(XtParent(style.mainWindow));
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*mainWindow.x: %d\n", bufr, x);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*mainWindow.y: %d\n", bufr, y);
|
||||
|
||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
||||
perror(strerror(errno));
|
||||
}
|
||||
snprintf(bufr, sizeof(bufr), "*mainWindow.x: %d\n", x);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*mainWindow.y: %d\n", y);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1750,17 +1750,19 @@ saveMouse(
|
|||
int fd )
|
||||
{
|
||||
Position x,y;
|
||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
||||
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||
XmVendorShellExtObject vendorExt;
|
||||
XmWidgetExtData extData;
|
||||
|
||||
if (style.mouseDialog != NULL)
|
||||
if (style.mouseDialog != NULL)
|
||||
{
|
||||
if (XtIsManaged(style.mouseDialog))
|
||||
sprintf(bufr, "*Mouse.ismapped: True\n");
|
||||
else
|
||||
sprintf(bufr, "*Mouse.ismapped: False\n");
|
||||
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
|
||||
/* Get and write out the geometry info for our Window */
|
||||
x = XtX(XtParent(style.mouseDialog));
|
||||
y = XtY(XtParent(style.mouseDialog));
|
||||
|
@ -1773,12 +1775,10 @@ saveMouse(
|
|||
x -= vendorExt->vendor.xOffset;
|
||||
y -= vendorExt->vendor.yOffset;
|
||||
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*Mouse.x: %d\n", bufr, x);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*Mouse.y: %d\n", bufr, y);
|
||||
|
||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
||||
perror(strerror(errno));
|
||||
}
|
||||
snprintf(bufr, sizeof(bufr), "*Mouse.x: %d\n", x);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*Mouse.y: %d\n", y);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -102,21 +102,13 @@ saveSessionCB(
|
|||
unsigned char *data = NULL;
|
||||
char *tmpStr;
|
||||
|
||||
#ifdef _SUN_OS
|
||||
char *noCommands = NULL;
|
||||
#endif /* _SUN_OS */
|
||||
|
||||
/* get the root window property of SaveMode */
|
||||
GetSessionSaveMode(&data );
|
||||
|
||||
GetSessionSaveMode(&data);
|
||||
|
||||
/* if the property is "home" don't save dtstyle */
|
||||
if(strcmp((char *)data, "home") == 0)
|
||||
{
|
||||
#ifdef _SUN_OS /* Sun doesn't like "NULL" when expecting "char **" */
|
||||
XSetCommand(style.display, XtWindow(w), &noCommands, 0);
|
||||
#else
|
||||
XSetCommand(style.display, XtWindow(w), NULL, 0);
|
||||
#endif /* _SUN_OS */
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -151,7 +143,7 @@ saveSessionCB(
|
|||
saveDtwm(fd);
|
||||
saveStartup(fd);
|
||||
saveI18n(fd);
|
||||
|
||||
|
||||
close (fd);
|
||||
|
||||
/*If this is a session manager requested saveYrSlf, need to put dialogs in*/
|
||||
|
|
|
@ -2899,7 +2899,7 @@ saveScreen(
|
|||
int fd )
|
||||
{
|
||||
Position x,y;
|
||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
||||
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||
XmVendorShellExtObject vendorExt;
|
||||
XmWidgetExtData extData;
|
||||
|
||||
|
@ -2910,6 +2910,8 @@ saveScreen(
|
|||
else
|
||||
sprintf(bufr, "*Screen.ismapped: False\n");
|
||||
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
|
||||
/* Get and write out the geometry info for our Window */
|
||||
x = XtX(XtParent(style.screenDialog));
|
||||
y = XtY(XtParent(style.screenDialog));
|
||||
|
@ -2921,12 +2923,10 @@ saveScreen(
|
|||
x -= vendorExt->vendor.xOffset;
|
||||
y -= vendorExt->vendor.yOffset;
|
||||
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*Screen.x: %d\n", bufr, x);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*Screen.y: %d\n", bufr, y);
|
||||
|
||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
||||
perror(strerror(errno));
|
||||
}
|
||||
snprintf(bufr, sizeof(bufr), "*Screen.x: %d\n", x);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*Screen.y: %d\n", y);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -703,7 +703,7 @@ saveStartup(
|
|||
int fd )
|
||||
{
|
||||
Position x,y;
|
||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
||||
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||
XmVendorShellExtObject vendorExt;
|
||||
XmWidgetExtData extData;
|
||||
|
||||
|
@ -713,6 +713,8 @@ saveStartup(
|
|||
else
|
||||
sprintf(bufr, "*startupDlg.ismapped: False\n");
|
||||
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
|
||||
/* Get and write out the geometry info for our Window */
|
||||
x = XtX(XtParent(style.startupDialog));
|
||||
y = XtY(XtParent(style.startupDialog));
|
||||
|
@ -725,12 +727,10 @@ saveStartup(
|
|||
x -= vendorExt->vendor.xOffset;
|
||||
y -= vendorExt->vendor.yOffset;
|
||||
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*startupDlg.x: %d\n", bufr, x);
|
||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*startupDlg.y: %d\n", bufr, y);
|
||||
|
||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
||||
perror(strerror(errno));
|
||||
}
|
||||
snprintf(bufr, sizeof(bufr), "*startupDlg.x: %d\n", x);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
snprintf(bufr, sizeof(bufr), "*startupDlg.y: %d\n", y);
|
||||
WRITE_STR2FD(fd, bufr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue