mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
Merge branch 'master' into autotools-conversion
This commit is contained in:
commit
313b4a8e0b
8 changed files with 115 additions and 54 deletions
18
cde/contrib/desktopentry-setlang/README-cde-alt
Normal file
18
cde/contrib/desktopentry-setlang/README-cde-alt
Normal file
|
@ -0,0 +1,18 @@
|
|||
This is another method to setup an xsession which allows you to execute
|
||||
commads before the CDE Xsession gets executed.
|
||||
This alternate method is useful when for example you need to
|
||||
set a different language.
|
||||
|
||||
In this example we
|
||||
1. have the login manager execute /usr/dt/bin/startxsession.sh script
|
||||
2. The /usr/dt/bin/startxsession.sh first sets properly the LANG variable
|
||||
(or you can add whatever you want to execute before CDE Xsession starts)
|
||||
and then executes /usr/dt/bin/Xsession which will start CDE.
|
||||
|
||||
To install, after you edit the startxsession.sh to your liking, do as root:
|
||||
|
||||
cp /path/to/cdesktopenv-code/cde/contrib/desktopentry/cde-alt.desktop /usr/share/xsessions/
|
||||
cp /path/to/cdesktopenv-code/cde/contrib/desktopentry/startxsession.sh /usr/dt/bin/
|
||||
chmod ugo+rx /usr/dt/bin/startxsession.sh
|
||||
|
||||
|
7
cde/contrib/desktopentry-setlang/cde-alt.desktop
Normal file
7
cde/contrib/desktopentry-setlang/cde-alt.desktop
Normal file
|
@ -0,0 +1,7 @@
|
|||
[Desktop Entry]
|
||||
Name=CDE
|
||||
Comment=Use this session to boot into the Common Desktop Environment
|
||||
Keywords=Common Desktop Environment
|
||||
Exec=/usr/dt/bin/startxsession.sh
|
||||
Icon=Dtlogo.pm
|
||||
Type=Application
|
6
cde/contrib/desktopentry-setlang/startxsession.sh
Normal file
6
cde/contrib/desktopentry-setlang/startxsession.sh
Normal file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
export PATH=$PATH:/usr/dt/bin
|
||||
export LANG=el_GR.UTF-8
|
||||
/usr/dt/bin/Xsession
|
||||
|
|
@ -38,8 +38,14 @@ DEFINES = -DDTLIB $(LOCAL_DEFINES) \
|
|||
-DOSMINORVERSION=OSMinorVersion \
|
||||
$(ICONV_INBUF_DEFINE) $(BIT_ORDER_DEFINES)
|
||||
|
||||
#if defined(FreeBSDArchitecture)
|
||||
JPEGLIB = -ljpeg
|
||||
#endif
|
||||
|
||||
#ifdef SharedDtHelpReqs
|
||||
REQUIREDLIBS = SharedDtHelpReqs
|
||||
REQUIREDLIBS = SharedDtHelpReqs $(JPEGLIB)
|
||||
#else
|
||||
REQUIREDLIBS = $(JPEGLIB)
|
||||
#endif
|
||||
|
||||
HEADERS = \
|
||||
|
|
|
@ -176,10 +176,23 @@ getSessionPath(
|
|||
|
||||
/*
|
||||
* NOTE: it is assumed that _DtCreateDtDirs() returns a buffer of
|
||||
* size MAXPATHLEN+1. This allows us to avoid a extra alloc
|
||||
* size MAXPATHLEN. This allows us to avoid a extra alloc
|
||||
* and copy -- at the expense of code maintainability.
|
||||
*
|
||||
* JET - 2020. This is stupid. At least account for the strings
|
||||
* you are adding further on down... This "solution" isn't great
|
||||
* either. Real fix would be to have all callers pass in bufptr
|
||||
* and len all the way down the chain instead of tmpPath.
|
||||
*/
|
||||
if ((strlen(tmpPath) + 1 + strlen(property)) > MAXPATHLEN) goto abort;
|
||||
if ((strlen(tmpPath)
|
||||
+ 1 /* "/" */
|
||||
+ strlen(property)
|
||||
+ 1 /* "/" */
|
||||
+ ((*saveFile == NULL) ? strlen("dtXXXXXX") + 1 : strlen(*saveFile))
|
||||
) >= MAXPATHLEN)
|
||||
{
|
||||
goto abort;
|
||||
}
|
||||
|
||||
/*
|
||||
* parse the property string and create directory if needed
|
||||
|
|
|
@ -83,33 +83,32 @@ char *
|
|||
_DtCreateDtDirs(
|
||||
Display *display )
|
||||
{
|
||||
char *tmpPath;
|
||||
char *tmpPath = NULL;
|
||||
Boolean needSessionsDir = False;
|
||||
Boolean useOldSession = False;
|
||||
struct stat buf;
|
||||
int status;
|
||||
char *home;
|
||||
char *sessionDir;
|
||||
char *displayName;
|
||||
char *home = NULL;
|
||||
char *sessionDir = NULL;
|
||||
char *displayName = NULL;
|
||||
|
||||
/*
|
||||
* Sanity check - make sure there's an existing display
|
||||
*/
|
||||
if(!display)
|
||||
return(NULL);
|
||||
|
||||
if ((home =getenv("HOME")) == NULL)
|
||||
|
||||
if ((home = getenv("HOME")) == NULL)
|
||||
home = "";
|
||||
|
||||
tmpPath = XtCalloc(1, MAXPATHLEN + 1);
|
||||
|
||||
tmpPath = XtCalloc(1, MAXPATHLEN);
|
||||
if(tmpPath == NULL)
|
||||
return(NULL);
|
||||
|
||||
/*
|
||||
* If the $HOME/.dt directory does not exist, create it
|
||||
*/
|
||||
strncpy(tmpPath, home, MAXPATHLEN);
|
||||
strncat(tmpPath, "/" DtPERSONAL_CONFIG_DIRECTORY, MAXPATHLEN);
|
||||
snprintf(tmpPath, MAXPATHLEN, "%s/%s", home, DtPERSONAL_CONFIG_DIRECTORY);
|
||||
|
||||
status = stat(tmpPath, &buf);
|
||||
if (status == -1) {
|
||||
|
@ -122,11 +121,10 @@ _DtCreateDtDirs(
|
|||
}
|
||||
|
||||
/*
|
||||
* Create the personal DB directory if it does not exist.
|
||||
* Create the personal DB directory if it does not exist.
|
||||
*/
|
||||
strncpy(tmpPath, home, MAXPATHLEN);
|
||||
strncat(tmpPath, "/" DtPERSONAL_DB_DIRECTORY, MAXPATHLEN);
|
||||
|
||||
snprintf(tmpPath, MAXPATHLEN, "%s/%s", home, DtPERSONAL_DB_DIRECTORY);
|
||||
|
||||
if ((status = stat (tmpPath, &buf)) == -1) {
|
||||
if ((status = mkdir (tmpPath, 0000)) != -1)
|
||||
(void) chmod (tmpPath, 0755);
|
||||
|
@ -135,8 +133,7 @@ _DtCreateDtDirs(
|
|||
/*
|
||||
* Create the personal tmp dir if it does not exist.
|
||||
*/
|
||||
strncpy(tmpPath, home, MAXPATHLEN);
|
||||
strncat(tmpPath, "/" DtPERSONAL_TMP_DIRECTORY, MAXPATHLEN);
|
||||
snprintf(tmpPath, MAXPATHLEN, "%s/%s", home, DtPERSONAL_TMP_DIRECTORY);
|
||||
|
||||
if ((status = stat (tmpPath, &buf)) == -1) {
|
||||
if ((status = mkdir (tmpPath, 0000)) != -1)
|
||||
|
@ -173,12 +170,13 @@ _DtCreateDtDirs(
|
|||
*/
|
||||
if ((displayName = GetDisplayName (display)) != NULL) {
|
||||
|
||||
strncpy (tmpPath, home, MAXPATHLEN);
|
||||
strncat (tmpPath, "/" DtPERSONAL_CONFIG_DIRECTORY, MAXPATHLEN);
|
||||
strncat (tmpPath, "/", MAXPATHLEN);
|
||||
strncat (tmpPath, displayName, MAXPATHLEN);
|
||||
snprintf(tmpPath, MAXPATHLEN, "%s/%s/%s",
|
||||
home,
|
||||
DtPERSONAL_CONFIG_DIRECTORY,
|
||||
displayName);
|
||||
|
||||
free(displayName); /* CDExc22771 */
|
||||
displayName = NULL;
|
||||
|
||||
if ((status = stat (tmpPath, &buf)) == -1) {
|
||||
if ((status = mkdir (tmpPath, 0000)) != -1)
|
||||
|
@ -215,12 +213,13 @@ _DtCreateDtDirs(
|
|||
*/
|
||||
if ((displayName = GetDisplayName (display)) != NULL) {
|
||||
|
||||
strncpy (tmpPath, home, MAXPATHLEN);
|
||||
strncat (tmpPath, "/" DtPERSONAL_CONFIG_DIRECTORY, MAXPATHLEN);
|
||||
strncat (tmpPath, "/", MAXPATHLEN);
|
||||
strncat (tmpPath, displayName, MAXPATHLEN);
|
||||
snprintf(tmpPath, MAXPATHLEN, "%s/%s/%s",
|
||||
home,
|
||||
DtPERSONAL_CONFIG_DIRECTORY,
|
||||
displayName);
|
||||
|
||||
free(displayName); /* CDExc22771 */
|
||||
displayName = NULL;
|
||||
|
||||
if ((status = stat(tmpPath, &buf)) != 0)
|
||||
/*
|
||||
|
@ -238,9 +237,10 @@ _DtCreateDtDirs(
|
|||
* If we don't have an old style directory - we check for a sessions
|
||||
* directory, and create it if it doesn't exist
|
||||
*/
|
||||
strncpy (tmpPath, home, MAXPATHLEN);
|
||||
strncat (tmpPath, "/" DtPERSONAL_CONFIG_DIRECTORY, MAXPATHLEN);
|
||||
strncat (tmpPath, "/" DtSM_SESSION_DIRECTORY, MAXPATHLEN);
|
||||
snprintf(tmpPath, MAXPATHLEN, "%s/%s/%s",
|
||||
home,
|
||||
DtPERSONAL_CONFIG_DIRECTORY,
|
||||
DtSM_SESSION_DIRECTORY);
|
||||
|
||||
if ((status = stat(tmpPath, &buf)) == -1) {
|
||||
if ((status = mkdir(tmpPath, 0000)) == -1) {
|
||||
|
|
|
@ -210,11 +210,7 @@ _DtSimpleError(
|
|||
if (NULL == message) return;
|
||||
|
||||
Va_start(args, format);
|
||||
#if defined(USE_SNPRINTF)
|
||||
(void) vsnprintf(message, MESSAGE_BUFFER, format, args);
|
||||
#else
|
||||
(void) vsprintf(message, format, args);
|
||||
#endif
|
||||
va_end(args);
|
||||
|
||||
log_message(progName, help, message, severity, FALSE);
|
||||
|
@ -235,11 +231,7 @@ _DtSimpleErrnoError(
|
|||
if (NULL == message) return;
|
||||
|
||||
Va_start(args, format);
|
||||
#if defined(USE_SNPRINTF)
|
||||
(void) vsnprintf(message, MESSAGE_BUFFER, format, args);
|
||||
#else
|
||||
(void) vsprintf(message, format, args);
|
||||
#endif
|
||||
va_end(args);
|
||||
|
||||
log_message(progName, help, message, severity, TRUE);
|
||||
|
|
|
@ -501,10 +501,10 @@ CheckMonitor(
|
|||
int n, screen_number, result;
|
||||
Arg args[4];
|
||||
char screenStr[5], cust_msg[24];
|
||||
char *tmpStr;
|
||||
char tmpPalette[SRVBUFSIZE];
|
||||
char *token1;
|
||||
char *xrdb_string;
|
||||
char *tmpStr = NULL;
|
||||
char tmpPalette[SRVBUFSIZE];
|
||||
char *token1 = NULL;
|
||||
char *xrdb_string = NULL;
|
||||
|
||||
Widget mainShell;
|
||||
XtAppContext app_context;
|
||||
|
@ -541,7 +541,7 @@ CheckMonitor(
|
|||
/* cycle through each screen */
|
||||
for(screen_number=0;screen_number != colorSrv.NumOfScreens;screen_number++)
|
||||
{
|
||||
sprintf(screenStr,"%d",screen_number);
|
||||
snprintf(screenStr, sizeof(screenStr), "%d", screen_number);
|
||||
n = 0;
|
||||
XtSetArg(args[n], XmNbackground,
|
||||
BlackPixelOfScreen(DefaultScreenOfDisplay(dpy))); n++;
|
||||
|
@ -558,9 +558,9 @@ CheckMonitor(
|
|||
*/
|
||||
|
||||
XtRealizeWidget(shell[screen_number]);
|
||||
|
||||
sprintf(cust_msg,"%s%d", XmSCUSTOMIZE_DATA, screen_number);
|
||||
colorSrv.XA_CUSTOMIZE[screen_number] =
|
||||
snprintf(cust_msg, sizeof(cust_msg), "%s%d",
|
||||
XmSCUSTOMIZE_DATA, screen_number);
|
||||
colorSrv.XA_CUSTOMIZE[screen_number] =
|
||||
XInternAtom(dpy, cust_msg, FALSE);
|
||||
|
||||
/* go set ownership of the pixel set atoms */
|
||||
|
@ -574,11 +574,16 @@ CheckMonitor(
|
|||
/*
|
||||
* Don't forget to add length for the extra characters.
|
||||
*/
|
||||
tmpStr = (char *)SRV_MALLOC(strlen(MSG1) + 25 + 5 + 1 + 1);
|
||||
sprintf(tmpStr,"%s colorSrv.XA_CUSTOMIZE[%d].\n",
|
||||
MSG1, screen_number);
|
||||
_DtSimpleError(XmSCOLOR_SRV_NAME, DtWarning, NULL, tmpStr, NULL);
|
||||
SRV_FREE(tmpStr);
|
||||
int len = strlen(MSG1) + 25 + 5 + 1 + 1;
|
||||
tmpStr = (char *)SRV_MALLOC(len);
|
||||
if (tmpStr)
|
||||
{
|
||||
snprintf(tmpStr, len, "%s colorSrv.XA_CUSTOMIZE[%d].\n",
|
||||
MSG1, screen_number);
|
||||
_DtSimpleError(XmSCOLOR_SRV_NAME, DtWarning, NULL, tmpStr, NULL);
|
||||
SRV_FREE(tmpStr);
|
||||
tmpStr = NULL;
|
||||
}
|
||||
return(-1);
|
||||
}
|
||||
|
||||
|
@ -608,15 +613,27 @@ CheckMonitor(
|
|||
(struct _palette *) SRV_MALLOC( sizeof(struct _palette) + 1 );
|
||||
|
||||
/* allocate enough space for the name */
|
||||
<<<<<<< HEAD
|
||||
strcpy(tmpPalette, pColorSrvRsrc.MonochromePalette);
|
||||
for (token1=tmpPalette; *token1; token1++);
|
||||
while (token1!=tmpPalette && *token1!='.') token1--;
|
||||
if (!strcmp(token1,PALETTE_SUFFIX)) *token1 = '\0';
|
||||
colorSrv.pCurrentPalette[screen_number]->name =
|
||||
=======
|
||||
snprintf(tmpPalette, SRVBUFSIZE, "%s",
|
||||
pColorSrvRsrc.MonochromePalette);
|
||||
for (token1=tmpPalette; *token1; token1++)
|
||||
;
|
||||
while (token1 != tmpPalette && *token1 != '.')
|
||||
token1--;
|
||||
if (!strcmp(token1, PALETTE_SUFFIX))
|
||||
*token1 = '\0';
|
||||
colorSrv.pCurrentPalette[screen_number]->name =
|
||||
>>>>>>> master
|
||||
(char *)SRV_MALLOC(strlen(tmpPalette) + 1);
|
||||
strcpy(colorSrv.pCurrentPalette[screen_number]->name,
|
||||
(char *) tmpPalette);
|
||||
colorSrv.pCurrentPalette[screen_number]->converted=NULL;
|
||||
colorSrv.pCurrentPalette[screen_number]->converted = NULL;
|
||||
}
|
||||
|
||||
if (colorSrv.pCurrentPalette[screen_number] == (struct _palette *) NULL)
|
||||
|
@ -627,19 +644,21 @@ CheckMonitor(
|
|||
/* write out the color or monochrome palette resource for the screen */
|
||||
|
||||
xrdb_string = XtMalloc(BUFSIZ);
|
||||
if (!xrdb_string)
|
||||
return -1;
|
||||
|
||||
if (colorSrv.TypeOfMonitor[0] == XmCO_HIGH_COLOR ||
|
||||
colorSrv.TypeOfMonitor[0] == XmCO_MEDIUM_COLOR ||
|
||||
colorSrv.TypeOfMonitor[0] == XmCO_LOW_COLOR)
|
||||
{
|
||||
sprintf(xrdb_string, "*%d*ColorPalette: %s%s\n",
|
||||
snprintf(xrdb_string, BUFSIZ, "*%d*ColorPalette: %s%s\n",
|
||||
screen_number,
|
||||
colorSrv.pCurrentPalette[screen_number]->name,
|
||||
PALETTE_SUFFIX);
|
||||
}
|
||||
else /* XmCO_BLACK_WHITE */
|
||||
{
|
||||
sprintf(xrdb_string, "*%d*MonochromePalette: %s%s\n",
|
||||
snprintf(xrdb_string, BUFSIZ, "*%d*MonochromePalette: %s%s\n",
|
||||
screen_number,
|
||||
colorSrv.pCurrentPalette[screen_number]->name,
|
||||
PALETTE_SUFFIX);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue