aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/nxagent.install1
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Display.c160
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/X11/include/xpm_nxagent.h10
3 files changed, 17 insertions, 154 deletions
diff --git a/debian/nxagent.install b/debian/nxagent.install
index 402b3b529..29d93f54c 100644
--- a/debian/nxagent.install
+++ b/debian/nxagent.install
@@ -3,6 +3,5 @@ usr/bin/nxagent
usr/lib/*/nx/X11/
usr/share/man/man1/nxagent.1*
usr/share/nx/VERSION.nxagent
-usr/share/pixmaps/nxagent.xpm
# FIXME: compatibility symlink, drop for 3.6.0 release
usr/lib/*/nx/bin/nxagent
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Display.c b/nx-X11/programs/Xserver/hw/nxagent/Display.c
index c6412f38a..6d62a978f 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Display.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c
@@ -1797,89 +1797,9 @@ FIXME: Is this needed?
nxagentDisplay = NULL;
}
-static FILE *nxagentLookForIconFile(char *iconName, const char *permission,
- char *return_path, int return_path_size)
-{
- char *path;
- char singlePath[PATH_MAX];
- FILE *fptr = NULL;
-
- #ifdef WIN32
- const char separator = ';';
- const char *slash = "\\";
- #else
- const char separator = ':';
- const char *slash = "/";
- #endif
-
- if ((path = getenv("PATH")) == NULL)
- {
- return NULL;
- }
-
- for (char *end = path; end != NULL && fptr == NULL; )
- {
- end = strchr(path, separator);
-
- /* separator found */
- if (end != NULL)
- {
- if ((end - path) > sizeof(singlePath) - 1)
- {
- fprintf(stderr, "Warning: PATH component too long - ignoring it.\n");
- path = end + 1;
- continue;
- }
-
- snprintf(singlePath, (unsigned long)(end - path + 1), "%s", path);
- path = end + 1;
- }
- else
- {
- if (strlen(path) > sizeof(singlePath) - 1)
- {
- fprintf(stderr, "Warning: PATH component too long - ignoring it.\n");
- return NULL;
- }
-
- snprintf(singlePath, sizeof(singlePath), "%s", path);
- }
-
- /* cut off trailing slashes, if any */
- while (singlePath[strlen(singlePath) - 1] == slash[0])
- {
- singlePath[strlen(singlePath) - 1] = '\0';
- }
-
- /* append slash and icon name */
- if (strlen(singlePath) + strlen(iconName) + 1 < sizeof(singlePath))
- {
- snprintf(singlePath + strlen(singlePath), sizeof(singlePath), "%s%s", slash, iconName);
-
- if ((fptr = fopen(singlePath, permission)) != NULL)
- {
- snprintf(return_path, return_path_size, "%s", singlePath);
- }
- }
- else
- {
- fprintf(stderr, "Warning: Icon path too long.\n");
- }
- }
-
- return fptr;
-}
Bool nxagentMakeIcon(Display *display, Pixmap *nxIcon, Pixmap *nxMask)
{
- char default_path [PATH_MAX];
- char icon_path [PATH_MAX];
- FILE *icon_fp;
- int status;
- Bool success = False;
- XlibPixmap IconPixmap;
- XlibPixmap IconShape;
- char* agent_icon_name;
char** agentIconData;
/*
@@ -1887,84 +1807,36 @@ Bool nxagentMakeIcon(Display *display, Pixmap *nxIcon, Pixmap *nxMask)
*/
if(nxagentX2go)
{
- agent_icon_name = X2GOAGENT_ICON_NAME;
agentIconData = x2goagentIconData;
}
else
{
- agent_icon_name = NXAGENT_ICON_NAME;
agentIconData = nxagentIconData;
}
- /* FIXME: use a compile time define here, /usr/NX is a nomachine path */
- snprintf(default_path, sizeof(default_path), "/usr/NX/share/images/%s", agent_icon_name);
-
- if ((icon_fp = fopen(default_path, "r")) == NULL)
+ XlibPixmap IconPixmap;
+ XlibPixmap IconShape;
+ if (XpmSuccess == XpmCreatePixmapFromData(display,
+ DefaultRootWindow(display),
+ agentIconData,
+ &IconPixmap,
+ &IconShape,
+ NULL))
{
- icon_fp = nxagentLookForIconFile(agent_icon_name, "r", icon_path, sizeof(icon_path));
+ *nxIcon = IconPixmap;
+ *nxMask = IconShape;
- if (icon_fp != NULL)
- {
- fclose (icon_fp);
- success = True;
- }
+ return True;
}
else
{
- fclose (icon_fp);
- success = True;
- snprintf(icon_path, sizeof(icon_path), "%s", default_path);
- }
-
- if (success)
- {
- status = XpmReadFileToPixmap(display,
- DefaultRootWindow(display),
- icon_path,
- &IconPixmap,
- &IconShape,
- NULL);
-
- if (status != XpmSuccess)
- {
- #ifdef TEST
- fprintf(stderr, "nxagentMakeIcon: Xpm operation failed with error '%s'.\n",
- XpmGetErrorString(status));
- #endif
-
- success = False;
- }
- }
-
- if (!success)
- {
- status = XpmCreatePixmapFromData(display,
- DefaultRootWindow(display),
- agentIconData,
- &IconPixmap,
- &IconShape,
- NULL);
-
- if (status != XpmSuccess)
- {
- #ifdef TEST
- fprintf(stderr, "nxagentMakeIcon: Xpm operation failed with error '%s'.\n",
- XpmGetErrorString(status));
- #endif
+ #ifdef TEST
+ fprintf(stderr, "%s: Xpm operation failed with error '%s'.\n", __func__,
+ XpmGetErrorString(status));
+ #endif
- success = False;
- }
- else
- {
- success = True;
- }
+ return False;
}
-
-
- *nxIcon = IconPixmap;
- *nxMask = IconShape;
-
- return success;
}
Bool nxagentXServerGeometryChanged(void)
diff --git a/nx-X11/programs/Xserver/hw/nxagent/X11/include/xpm_nxagent.h b/nx-X11/programs/Xserver/hw/nxagent/X11/include/xpm_nxagent.h
index b02e5a913..ec72da07e 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/X11/include/xpm_nxagent.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/X11/include/xpm_nxagent.h
@@ -238,21 +238,13 @@ typedef struct {
_XFUNCPROTOBEGIN
-/* Keep for hw/nxagent/Holder.c */
+/* Keep for hw/nxagent/Display.c */
FUNC(XpmCreatePixmapFromData, int, (Display *display,
Drawable d,
char **data,
Pixmap *pixmap_return,
Pixmap *shapemask_return,
XpmAttributes *attributes));
-/* Keep for hw/nxagent/Display.c */
-FUNC(XpmReadFileToPixmap, int, (Display *display,
- Drawable d,
- const char *filename,
- Pixmap *pixmap_return,
- Pixmap *shapemask_return,
- XpmAttributes *attributes));
-
_XFUNCPROTOEND
#endif /* XPM_NUMBERS */