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 )
|
int fd )
|
||||||
{
|
{
|
||||||
Position x,y;
|
Position x,y;
|
||||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||||
XmVendorShellExtObject vendorExt;
|
XmVendorShellExtObject vendorExt;
|
||||||
XmWidgetExtData extData;
|
XmWidgetExtData extData;
|
||||||
|
|
||||||
|
@ -702,6 +702,8 @@ saveAudio(
|
||||||
else
|
else
|
||||||
sprintf(bufr, "*audioDlg.ismapped: False\n");
|
sprintf(bufr, "*audioDlg.ismapped: False\n");
|
||||||
|
|
||||||
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
|
||||||
/* Get and write out the geometry info for our Window */
|
/* Get and write out the geometry info for our Window */
|
||||||
x = XtX(XtParent(style.audioDialog));
|
x = XtX(XtParent(style.audioDialog));
|
||||||
y = XtY(XtParent(style.audioDialog));
|
y = XtY(XtParent(style.audioDialog));
|
||||||
|
@ -714,11 +716,12 @@ saveAudio(
|
||||||
x -= vendorExt->vendor.xOffset;
|
x -= vendorExt->vendor.xOffset;
|
||||||
y -= vendorExt->vendor.yOffset;
|
y -= vendorExt->vendor.yOffset;
|
||||||
|
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*audioDlg.x: %d\n", bufr, x);
|
snprintf(bufr, sizeof(bufr), "*audioDlg.x: %d\n", x);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*audioDlg.y: %d\n", bufr, y);
|
WRITE_STR2FD(fd, bufr);
|
||||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
|
||||||
perror(strerror(errno));
|
snprintf(bufr, sizeof(bufr), "*audioDlg.y: %d\n", y);
|
||||||
}
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1210,7 +1210,7 @@ saveBackdrop(
|
||||||
{
|
{
|
||||||
Position x,y;
|
Position x,y;
|
||||||
Dimension width, height;
|
Dimension width, height;
|
||||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||||
XmVendorShellExtObject vendorExt;
|
XmVendorShellExtObject vendorExt;
|
||||||
XmWidgetExtData extData;
|
XmWidgetExtData extData;
|
||||||
|
|
||||||
|
@ -1221,6 +1221,8 @@ saveBackdrop(
|
||||||
else
|
else
|
||||||
sprintf(bufr, "*backdropsDialog.ismapped: False\n");
|
sprintf(bufr, "*backdropsDialog.ismapped: False\n");
|
||||||
|
|
||||||
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
|
||||||
/* Get and write out the geometry info for our Window */
|
/* Get and write out the geometry info for our Window */
|
||||||
x = XtX (XtParent(style.backdropDialog));
|
x = XtX (XtParent(style.backdropDialog));
|
||||||
y = XtY (XtParent(style.backdropDialog));
|
y = XtY (XtParent(style.backdropDialog));
|
||||||
|
@ -1235,17 +1237,20 @@ saveBackdrop(
|
||||||
x -= vendorExt->vendor.xOffset;
|
x -= vendorExt->vendor.xOffset;
|
||||||
y -= vendorExt->vendor.yOffset;
|
y -= vendorExt->vendor.yOffset;
|
||||||
|
|
||||||
snprintf(bufr, 1024, "%s*backdropsDialog.x: %d\n", bufr, x);
|
snprintf(bufr, sizeof(bufr), "*backdropsDialog.x: %d\n", x);
|
||||||
snprintf(bufr, 1024, "%s*backdropsDialog.y: %d\n", bufr, y);
|
WRITE_STR2FD(fd, bufr);
|
||||||
snprintf(bufr, 1024, "%s*backdropsDialog.width: %d\n", bufr, width);
|
snprintf(bufr, sizeof(bufr), "*backdropsDialog.y: %d\n", y);
|
||||||
snprintf(bufr, 1024, "%s*backdropsDialog.height: %d\n", bufr, height);
|
WRITE_STR2FD(fd, bufr);
|
||||||
snprintf(bufr, 1024, "%s*backdropsDialog.selectedItemNum: %d\n", bufr,
|
snprintf(bufr, sizeof(bufr), "*backdropsDialog.width: %d\n", width);
|
||||||
backdrops.selected);
|
WRITE_STR2FD(fd, bufr);
|
||||||
snprintf(bufr, 1024, "%s*backdropsDialog.selectedItem: %s\n", bufr,
|
snprintf(bufr, sizeof(bufr), "*backdropsDialog.height: %d\n", height);
|
||||||
backdrops.bitmapNames[backdrops.selected]);
|
WRITE_STR2FD(fd, bufr);
|
||||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
snprintf(bufr, sizeof(bufr), "*backdropsDialog.selectedItemNum: %d\n",
|
||||||
perror(strerror(errno));
|
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 )
|
int fd )
|
||||||
{
|
{
|
||||||
Position x,y;
|
Position x,y;
|
||||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||||
XmVendorShellExtObject vendorExt;
|
XmVendorShellExtObject vendorExt;
|
||||||
XmWidgetExtData extData;
|
XmWidgetExtData extData;
|
||||||
|
|
||||||
|
@ -1717,6 +1717,7 @@ saveColorEdit(
|
||||||
sprintf(bufr, "*colorEditDlg.ismapped: True\n");
|
sprintf(bufr, "*colorEditDlg.ismapped: True\n");
|
||||||
else
|
else
|
||||||
sprintf(bufr, "*colorEditDlg.ismapped: False\n");
|
sprintf(bufr, "*colorEditDlg.ismapped: False\n");
|
||||||
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
|
||||||
/* Get and write out the geometry info for our Window */
|
/* Get and write out the geometry info for our Window */
|
||||||
x = XtX(XtParent(edit.DialogShell));
|
x = XtX(XtParent(edit.DialogShell));
|
||||||
|
@ -1730,12 +1731,11 @@ saveColorEdit(
|
||||||
x -= vendorExt->vendor.xOffset;
|
x -= vendorExt->vendor.xOffset;
|
||||||
y -= vendorExt->vendor.yOffset;
|
y -= vendorExt->vendor.yOffset;
|
||||||
|
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*colorEditDlg.x: %d\n", bufr, x);
|
snprintf(bufr, sizeof(bufr), "*colorEditDlg.x: %d\n", x);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*colorEditDlg.y: %d\n", bufr, y);
|
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*/
|
/*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 )
|
int fd )
|
||||||
{
|
{
|
||||||
Position x,y;
|
Position x,y;
|
||||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||||
XmVendorShellExtObject vendorExt;
|
XmVendorShellExtObject vendorExt;
|
||||||
XmWidgetExtData extData;
|
XmWidgetExtData extData;
|
||||||
|
|
||||||
|
@ -2443,6 +2443,8 @@ saveColor(
|
||||||
else
|
else
|
||||||
sprintf(bufr, "*paletteDlg.ismapped: False\n");
|
sprintf(bufr, "*paletteDlg.ismapped: False\n");
|
||||||
|
|
||||||
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
|
||||||
/* Get and write out the geometry info for our Window */
|
/* Get and write out the geometry info for our Window */
|
||||||
x = XtX(XtParent(style.colorDialog));
|
x = XtX(XtParent(style.colorDialog));
|
||||||
y = XtY(XtParent(style.colorDialog));
|
y = XtY(XtParent(style.colorDialog));
|
||||||
|
@ -2455,15 +2457,16 @@ saveColor(
|
||||||
x -= vendorExt->vendor.xOffset;
|
x -= vendorExt->vendor.xOffset;
|
||||||
y -= vendorExt->vendor.yOffset;
|
y -= vendorExt->vendor.yOffset;
|
||||||
|
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*paletteDlg.x: %d\n", bufr, x);
|
snprintf(bufr, sizeof(bufr), "*paletteDlg.x: %d\n", x);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*paletteDlg.y: %d\n", bufr, y);
|
WRITE_STR2FD(fd, bufr);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*paletteDlg.selected_palette: %s\n", bufr,
|
snprintf(bufr, sizeof(bufr), "*paletteDlg.y: %d\n", y);
|
||||||
pCurrentPalette->name);
|
WRITE_STR2FD(fd, bufr);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*paletteDlg.selected_button: %d\n", bufr,
|
snprintf(bufr, sizeof(bufr), "*paletteDlg.selected_palette: %s\n",
|
||||||
selected_button);
|
pCurrentPalette->name);
|
||||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
WRITE_STR2FD(fd, bufr);
|
||||||
perror(strerror(errno));
|
snprintf(bufr, sizeof(bufr), "*paletteDlg.selected_button: %d\n",
|
||||||
}
|
selected_button);
|
||||||
|
WRITE_STR2FD(fd, bufr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -956,7 +956,7 @@ saveDtwm(
|
||||||
{
|
{
|
||||||
Position x,y;
|
Position x,y;
|
||||||
Dimension width, height;
|
Dimension width, height;
|
||||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||||
XmVendorShellExtObject vendorExt;
|
XmVendorShellExtObject vendorExt;
|
||||||
XmWidgetExtData extData;
|
XmWidgetExtData extData;
|
||||||
|
|
||||||
|
@ -967,6 +967,8 @@ saveDtwm(
|
||||||
else
|
else
|
||||||
sprintf(bufr, "*dtwmDlg.ismapped: False\n");
|
sprintf(bufr, "*dtwmDlg.ismapped: False\n");
|
||||||
|
|
||||||
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
|
||||||
/* Get and write out the geometry info for our Window */
|
/* Get and write out the geometry info for our Window */
|
||||||
x = XtX(XtParent(style.dtwmDialog));
|
x = XtX(XtParent(style.dtwmDialog));
|
||||||
y = XtY(XtParent(style.dtwmDialog));
|
y = XtY(XtParent(style.dtwmDialog));
|
||||||
|
@ -982,13 +984,14 @@ saveDtwm(
|
||||||
width = XtWidth(style.dtwmDialog);
|
width = XtWidth(style.dtwmDialog);
|
||||||
height = XtHeight(style.dtwmDialog);
|
height = XtHeight(style.dtwmDialog);
|
||||||
|
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*dtwmDlg.x: %d\n", bufr, x);
|
snprintf(bufr, sizeof(bufr), "*dtwmDlg.x: %d\n", x);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*dtwmDlg.y: %d\n", bufr, y);
|
WRITE_STR2FD(fd, bufr);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*dtwmDlg.width: %d\n", bufr, width);
|
snprintf(bufr, sizeof(bufr), "*dtwmDlg.y: %d\n", y);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*dtwmDlg.height: %d\n", bufr, height);
|
WRITE_STR2FD(fd, bufr);
|
||||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
snprintf(bufr, sizeof(bufr), "*dtwmDlg.width: %d\n", width);
|
||||||
perror(strerror(errno));
|
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
|
* restoreFonts. The suggested minimum is whether you are mapped, and your
|
||||||
* location.
|
* location.
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
void
|
void
|
||||||
saveFonts(
|
saveFonts(
|
||||||
int fd )
|
int fd )
|
||||||
{
|
{
|
||||||
Position x,y;
|
Position x,y;
|
||||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||||
XmVendorShellExtObject vendorExt;
|
XmVendorShellExtObject vendorExt;
|
||||||
XmWidgetExtData extData;
|
XmWidgetExtData extData;
|
||||||
|
|
||||||
|
@ -741,6 +741,8 @@ saveFonts(
|
||||||
else
|
else
|
||||||
sprintf(bufr, "*Fonts.ismapped: False\n");
|
sprintf(bufr, "*Fonts.ismapped: False\n");
|
||||||
|
|
||||||
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
|
||||||
/* Get and write out the geometry info for our Window */
|
/* Get and write out the geometry info for our Window */
|
||||||
|
|
||||||
x = XtX(XtParent(style.fontDialog));
|
x = XtX(XtParent(style.fontDialog));
|
||||||
|
@ -754,12 +756,10 @@ saveFonts(
|
||||||
x -= vendorExt->vendor.xOffset;
|
x -= vendorExt->vendor.xOffset;
|
||||||
y -= vendorExt->vendor.yOffset;
|
y -= vendorExt->vendor.yOffset;
|
||||||
|
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*Fonts.x: %d\n", bufr, x);
|
snprintf(bufr, sizeof(style.tmpBigStr), "*Fonts.x: %d\n", x);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*Fonts.y: %d\n", bufr, y);
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
snprintf(bufr, sizeof(style.tmpBigStr), "*Fonts.y: %d\n", y);
|
||||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
WRITE_STR2FD(fd, bufr);
|
||||||
perror(strerror(errno));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1178,7 +1178,7 @@ saveI18n(
|
||||||
{
|
{
|
||||||
Position x,y;
|
Position x,y;
|
||||||
Dimension width, height;
|
Dimension width, height;
|
||||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||||
XmVendorShellExtObject vendorExt;
|
XmVendorShellExtObject vendorExt;
|
||||||
XmWidgetExtData extData;
|
XmWidgetExtData extData;
|
||||||
|
|
||||||
|
@ -1189,6 +1189,8 @@ saveI18n(
|
||||||
else
|
else
|
||||||
sprintf(bufr, "*i18nDlg.ismapped: False\n");
|
sprintf(bufr, "*i18nDlg.ismapped: False\n");
|
||||||
|
|
||||||
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
|
||||||
/* Get and write out the geometry info for our Window */
|
/* Get and write out the geometry info for our Window */
|
||||||
x = XtX(XtParent(style.i18nDialog));
|
x = XtX(XtParent(style.i18nDialog));
|
||||||
y = XtY(XtParent(style.i18nDialog));
|
y = XtY(XtParent(style.i18nDialog));
|
||||||
|
@ -1204,13 +1206,14 @@ saveI18n(
|
||||||
width = XtWidth(style.i18nDialog);
|
width = XtWidth(style.i18nDialog);
|
||||||
height = XtHeight(style.i18nDialog);
|
height = XtHeight(style.i18nDialog);
|
||||||
|
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*i18nDlg.x: %d\n", bufr, x);
|
snprintf(bufr, sizeof(bufr), "*i18nDlg.x: %d\n", x);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*i18nDlg.y: %d\n", bufr, y);
|
WRITE_STR2FD(fd, bufr);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*i18nDlg.width: %d\n", bufr, width);
|
snprintf(bufr, sizeof(bufr), "*i18nDlg.y: %d\n", y);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*i18nDlg.height: %d\n", bufr, height);
|
WRITE_STR2FD(fd, bufr);
|
||||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
snprintf(bufr, sizeof(bufr), "*i18nDlg.width: %d\n", width);
|
||||||
perror(strerror(errno));
|
WRITE_STR2FD(fd, bufr);
|
||||||
}
|
snprintf(bufr, sizeof(bufr), "*i18nDlg.height: %d\n", height);
|
||||||
|
WRITE_STR2FD(fd, bufr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -610,7 +610,7 @@ saveKeybd(
|
||||||
int fd )
|
int fd )
|
||||||
{
|
{
|
||||||
Position x,y;
|
Position x,y;
|
||||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||||
XmVendorShellExtObject vendorExt;
|
XmVendorShellExtObject vendorExt;
|
||||||
XmWidgetExtData extData;
|
XmWidgetExtData extData;
|
||||||
|
|
||||||
|
@ -621,6 +621,8 @@ saveKeybd(
|
||||||
else
|
else
|
||||||
sprintf(bufr, "*keyboardDlg.ismapped: False\n");
|
sprintf(bufr, "*keyboardDlg.ismapped: False\n");
|
||||||
|
|
||||||
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
|
||||||
/* Get and write out the geometry info for our Window */
|
/* Get and write out the geometry info for our Window */
|
||||||
x = XtX(XtParent(style.kbdDialog));
|
x = XtX(XtParent(style.kbdDialog));
|
||||||
y = XtY(XtParent(style.kbdDialog));
|
y = XtY(XtParent(style.kbdDialog));
|
||||||
|
@ -633,12 +635,10 @@ saveKeybd(
|
||||||
x -= vendorExt->vendor.xOffset;
|
x -= vendorExt->vendor.xOffset;
|
||||||
y -= vendorExt->vendor.yOffset;
|
y -= vendorExt->vendor.yOffset;
|
||||||
|
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*keyboardDlg.x: %d\n", bufr, x);
|
snprintf(bufr, sizeof(bufr), "*keyboardDlg.x: %d\n", x);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*keyboardDlg.y: %d\n", bufr, y);
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
snprintf(bufr, sizeof(bufr), "*keyboardDlg.y: %d\n", y);
|
||||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
WRITE_STR2FD(fd, bufr);
|
||||||
perror(strerror(errno));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -272,6 +272,12 @@ extern void LoadDatabase(void);
|
||||||
string
|
string
|
||||||
#endif
|
#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 */
|
#endif /* _main_h */
|
||||||
/* DON'T ADD ANYTHING AFTER THIS #endif */
|
/* DON'T ADD ANYTHING AFTER THIS #endif */
|
||||||
|
|
||||||
|
|
|
@ -775,21 +775,22 @@ saveMain(
|
||||||
int fd )
|
int fd )
|
||||||
{
|
{
|
||||||
Position x,y;
|
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 (style.mainWindow != NULL) {
|
||||||
if (XtIsRealized(style.mainWindow))
|
if (XtIsRealized(style.mainWindow))
|
||||||
|
{
|
||||||
sprintf(bufr, "*mainWindow.ismapped: True\n");
|
sprintf(bufr, "*mainWindow.ismapped: True\n");
|
||||||
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
}
|
||||||
|
|
||||||
/* Get and write out the geometry info for our Window */
|
/* Get and write out the geometry info for our Window */
|
||||||
x = XtX(XtParent(style.mainWindow));
|
x = XtX(XtParent(style.mainWindow));
|
||||||
y = XtY(XtParent(style.mainWindow));
|
y = XtY(XtParent(style.mainWindow));
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*mainWindow.x: %d\n", bufr, x);
|
snprintf(bufr, sizeof(bufr), "*mainWindow.x: %d\n", x);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*mainWindow.y: %d\n", bufr, y);
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
snprintf(bufr, sizeof(bufr), "*mainWindow.y: %d\n", y);
|
||||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
WRITE_STR2FD(fd, bufr);
|
||||||
perror(strerror(errno));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1750,17 +1750,19 @@ saveMouse(
|
||||||
int fd )
|
int fd )
|
||||||
{
|
{
|
||||||
Position x,y;
|
Position x,y;
|
||||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||||
XmVendorShellExtObject vendorExt;
|
XmVendorShellExtObject vendorExt;
|
||||||
XmWidgetExtData extData;
|
XmWidgetExtData extData;
|
||||||
|
|
||||||
if (style.mouseDialog != NULL)
|
if (style.mouseDialog != NULL)
|
||||||
{
|
{
|
||||||
if (XtIsManaged(style.mouseDialog))
|
if (XtIsManaged(style.mouseDialog))
|
||||||
sprintf(bufr, "*Mouse.ismapped: True\n");
|
sprintf(bufr, "*Mouse.ismapped: True\n");
|
||||||
else
|
else
|
||||||
sprintf(bufr, "*Mouse.ismapped: False\n");
|
sprintf(bufr, "*Mouse.ismapped: False\n");
|
||||||
|
|
||||||
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
|
||||||
/* Get and write out the geometry info for our Window */
|
/* Get and write out the geometry info for our Window */
|
||||||
x = XtX(XtParent(style.mouseDialog));
|
x = XtX(XtParent(style.mouseDialog));
|
||||||
y = XtY(XtParent(style.mouseDialog));
|
y = XtY(XtParent(style.mouseDialog));
|
||||||
|
@ -1773,12 +1775,10 @@ saveMouse(
|
||||||
x -= vendorExt->vendor.xOffset;
|
x -= vendorExt->vendor.xOffset;
|
||||||
y -= vendorExt->vendor.yOffset;
|
y -= vendorExt->vendor.yOffset;
|
||||||
|
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*Mouse.x: %d\n", bufr, x);
|
snprintf(bufr, sizeof(bufr), "*Mouse.x: %d\n", x);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*Mouse.y: %d\n", bufr, y);
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
snprintf(bufr, sizeof(bufr), "*Mouse.y: %d\n", y);
|
||||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
WRITE_STR2FD(fd, bufr);
|
||||||
perror(strerror(errno));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -102,21 +102,13 @@ saveSessionCB(
|
||||||
unsigned char *data = NULL;
|
unsigned char *data = NULL;
|
||||||
char *tmpStr;
|
char *tmpStr;
|
||||||
|
|
||||||
#ifdef _SUN_OS
|
|
||||||
char *noCommands = NULL;
|
|
||||||
#endif /* _SUN_OS */
|
|
||||||
|
|
||||||
/* get the root window property of SaveMode */
|
/* get the root window property of SaveMode */
|
||||||
GetSessionSaveMode(&data );
|
GetSessionSaveMode(&data);
|
||||||
|
|
||||||
/* if the property is "home" don't save dtstyle */
|
/* if the property is "home" don't save dtstyle */
|
||||||
if(strcmp((char *)data, "home") == 0)
|
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);
|
XSetCommand(style.display, XtWindow(w), NULL, 0);
|
||||||
#endif /* _SUN_OS */
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,7 +143,7 @@ saveSessionCB(
|
||||||
saveDtwm(fd);
|
saveDtwm(fd);
|
||||||
saveStartup(fd);
|
saveStartup(fd);
|
||||||
saveI18n(fd);
|
saveI18n(fd);
|
||||||
|
|
||||||
close (fd);
|
close (fd);
|
||||||
|
|
||||||
/*If this is a session manager requested saveYrSlf, need to put dialogs in*/
|
/*If this is a session manager requested saveYrSlf, need to put dialogs in*/
|
||||||
|
|
|
@ -2899,7 +2899,7 @@ saveScreen(
|
||||||
int fd )
|
int fd )
|
||||||
{
|
{
|
||||||
Position x,y;
|
Position x,y;
|
||||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||||
XmVendorShellExtObject vendorExt;
|
XmVendorShellExtObject vendorExt;
|
||||||
XmWidgetExtData extData;
|
XmWidgetExtData extData;
|
||||||
|
|
||||||
|
@ -2910,6 +2910,8 @@ saveScreen(
|
||||||
else
|
else
|
||||||
sprintf(bufr, "*Screen.ismapped: False\n");
|
sprintf(bufr, "*Screen.ismapped: False\n");
|
||||||
|
|
||||||
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
|
||||||
/* Get and write out the geometry info for our Window */
|
/* Get and write out the geometry info for our Window */
|
||||||
x = XtX(XtParent(style.screenDialog));
|
x = XtX(XtParent(style.screenDialog));
|
||||||
y = XtY(XtParent(style.screenDialog));
|
y = XtY(XtParent(style.screenDialog));
|
||||||
|
@ -2921,12 +2923,10 @@ saveScreen(
|
||||||
x -= vendorExt->vendor.xOffset;
|
x -= vendorExt->vendor.xOffset;
|
||||||
y -= vendorExt->vendor.yOffset;
|
y -= vendorExt->vendor.yOffset;
|
||||||
|
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*Screen.x: %d\n", bufr, x);
|
snprintf(bufr, sizeof(bufr), "*Screen.x: %d\n", x);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*Screen.y: %d\n", bufr, y);
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
snprintf(bufr, sizeof(bufr), "*Screen.y: %d\n", y);
|
||||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
WRITE_STR2FD(fd, bufr);
|
||||||
perror(strerror(errno));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -703,7 +703,7 @@ saveStartup(
|
||||||
int fd )
|
int fd )
|
||||||
{
|
{
|
||||||
Position x,y;
|
Position x,y;
|
||||||
char *bufr = style.tmpBigStr; /* size=[1024], make bigger if needed */
|
char bufr[1024]; /* size=[1024], make bigger if needed */
|
||||||
XmVendorShellExtObject vendorExt;
|
XmVendorShellExtObject vendorExt;
|
||||||
XmWidgetExtData extData;
|
XmWidgetExtData extData;
|
||||||
|
|
||||||
|
@ -713,6 +713,8 @@ saveStartup(
|
||||||
else
|
else
|
||||||
sprintf(bufr, "*startupDlg.ismapped: False\n");
|
sprintf(bufr, "*startupDlg.ismapped: False\n");
|
||||||
|
|
||||||
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
|
||||||
/* Get and write out the geometry info for our Window */
|
/* Get and write out the geometry info for our Window */
|
||||||
x = XtX(XtParent(style.startupDialog));
|
x = XtX(XtParent(style.startupDialog));
|
||||||
y = XtY(XtParent(style.startupDialog));
|
y = XtY(XtParent(style.startupDialog));
|
||||||
|
@ -725,12 +727,10 @@ saveStartup(
|
||||||
x -= vendorExt->vendor.xOffset;
|
x -= vendorExt->vendor.xOffset;
|
||||||
y -= vendorExt->vendor.yOffset;
|
y -= vendorExt->vendor.yOffset;
|
||||||
|
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*startupDlg.x: %d\n", bufr, x);
|
snprintf(bufr, sizeof(bufr), "*startupDlg.x: %d\n", x);
|
||||||
snprintf(bufr, sizeof(style.tmpBigStr), "%s*startupDlg.y: %d\n", bufr, y);
|
WRITE_STR2FD(fd, bufr);
|
||||||
|
snprintf(bufr, sizeof(bufr), "*startupDlg.y: %d\n", y);
|
||||||
if(-1 == write (fd, bufr, strlen(bufr))) {
|
WRITE_STR2FD(fd, bufr);
|
||||||
perror(strerror(errno));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue