This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project wmaker-crm.git.
The branch, next has been updated
discards 45374b598fe2917eb678a8f18418ef940b47f825 (commit)
discards 6f67f80aa411adc960c4431dc4aff46652ac9228 (commit)
discards e6a2edbc9c31404d8f22e1923603a1422067cffd (commit)
discards 68aee92278b2222d6414c43059d1e26699fcf005 (commit)
discards b11cd0cf1656150c4d9cee58631d1de7723b9e82 (commit)
discards ae92bccb14432a8e4ab6619f5171a7b56506e5e6 (commit)
via 2086eefb7e5c658bf0f99feb2aa4b118b188e2b1 (commit)
via 842e145e0aeef633b7d0f938f57098469fee7cfe (commit)
via b4cf94aacd0f9fcffd802b0a8e47e0d162ca1f20 (commit)
via 2ebfcd9c5c9350d89f2346304ed8c02883020785 (commit)
via 1cef020eb322f1bc2978d49ec2d846dd9d1cc15d (commit)
via 30fe0fb05f6fd0030155c2643a93a562c8278711 (commit)
via d1c9f791d870d88ec4f02e31b29600e1afbaa58a (commit)
This update added new revisions after undoing existing revisions. That is
to say, the old revision is not a strict subset of the new revision. This
situation occurs when you --force push a change and generate a repository
containing something like this:
* -- * -- B -- O -- O -- O (45374b598fe2917eb678a8f18418ef940b47f825)
\
N -- N -- N (2086eefb7e5c658bf0f99feb2aa4b118b188e2b1)
When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://repo.or.cz/w/wmaker-crm.git/commit/2086eefb7e5c658bf0f99feb2aa4b118b188e2b1
commit 2086eefb7e5c658bf0f99feb2aa4b118b188e2b1
Author: Christophe CURIS <[email protected]>
Date: Sat Apr 18 23:56:19 2015 +0200
texi2txt: add workaround for a known bug in "mawk"
As reported by Douglas Torrance, the script that generates the plain text
documentation from the texinfo source would crash due to the cross-
references when the version of awk used is "mawk".
This is actually a known bug in mawk:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=172774
It looks like the bug have been fixed in mawk, but Debian is still
providing a broken version. To avoid problems, this patch is introducing a
workaround in the matching pattern that causes the issue every time it is
being used.
Signed-off-by: Christophe CURIS <[email protected]>
diff --git a/script/generate-txt-from-texi.sh b/script/generate-txt-from-texi.sh
index 5554e6e..3800c72 100755
--- a/script/generate-txt-from-texi.sh
+++ b/script/generate-txt-from-texi.sh
@@ -212,12 +212,12 @@ function end_conditional(name, local_i) {
# with @value; they can also be defined from command-line (-D)
# they are stored in the global array "variable[name]"
function set_variable(line, local_idx, local_name, local_value) {
- gsub(/^[ \t]*/, "", line);
+ gsub(/^[ \t]+/, "", line);
local_idx = match(line, /[ \t]/);
if (local_idx > 0) {
local_name = substr(line, 1, local_idx - 1);
local_value = substr(line, local_idx + 1);
- gsub(/^[ \t]*/, "", local_value);
+ gsub(/^[ \t]+/, "", local_value);
} else {
local_name = line;
local_value = "";
@@ -473,7 +473,7 @@ function new_node(args, local_nb, local_arr,
local_i) {
if ((local_nb < 1) || (local_nb > 4)) {
report_error("bad number of argument " local_nb " for @node at line " NR);
}
- gsub(/^[ \t]*/, "", local_arr[1]);
+ gsub(/^[ \t]+/, "", local_arr[1]);
gsub(/[ \t]*$/, "", local_arr[1]);
if (local_arr[1] == "") {
report_error("missing node name for @node at line " NR);
@@ -572,7 +572,7 @@ function generate_cross_reference(args, cmd,
local_nb, local_arr, local
local_arr[1] = execute_commands(local_arr[1]);
for (local_i = 1; local_i <= local_nb; local_i++) {
- gsub(/^[ \t]*/, "", local_arr[local_i]);
+ gsub(/^[ \t]+/, "", local_arr[local_i]);
gsub(/[ \t]*$/, "", local_arr[local_i]);
}
http://repo.or.cz/w/wmaker-crm.git/commit/842e145e0aeef633b7d0f938f57098469fee7cfe
commit 842e145e0aeef633b7d0f938f57098469fee7cfe
Author: Christophe CURIS <[email protected]>
Date: Sat Apr 18 20:17:30 2015 +0200
doc: re-generate the top directory documentation when "make dist" is invoked
As pointed by Douglas Torrance, there are some case where the 2 docs
INSTALL-WMAKER and README.i18n are not re-generated properly, one of the
cases being if the user grabs the sources from Git to make a source package
only (ie, without compiling anything).
This patch adds a hook to "make dist" so it will re-generate the docs if
needed. Because the "dist-hook" is run after Automake has copied the files
to the temporary directory (distdir) then we also include an explicit copy
of the files there to have the latest version.
Signed-off-by: Christophe CURIS <[email protected]>
diff --git a/doc/build/Makefile.am b/doc/build/Makefile.am
index c80394e..dc656e9 100644
--- a/doc/build/Makefile.am
+++ b/doc/build/Makefile.am
@@ -7,6 +7,13 @@ EXTRA_DIST = Readme \
# How to re-generate automatically the top-level text files
all-local: $(top_srcdir)/INSTALL-WMAKER $(top_srcdir)/README.i18n
+# We also re-generate the documentation when "make dist" is used, because we
cannot
+# be assured that the doc currently present in the directory is up-to-date,
for example
+# if the user did not run "make (all)" for valid reason
+dist-hook: $(top_srcdir)/INSTALL-WMAKER $(top_srcdir)/README.i18n
+ cp -f $(top_srcdir)/INSTALL-WMAKER $(top_distdir)/INSTALL-WMAKER
+ cp -f $(top_srcdir)/README.i18n $(top_distdir)/README.i18n
+
$(top_srcdir)/INSTALL-WMAKER: $(srcdir)/Compilation.texi
$(top_srcdir)/script/generate-txt-from-texi.sh
$(AM_V_GEN)if test ! -e "$(top_srcdir)/INSTALL-WMAKER" -o -w
"$(top_srcdir)/INSTALL-WMAKER" ; then \
$(top_srcdir)/script/generate-txt-from-texi.sh \
http://repo.or.cz/w/wmaker-crm.git/commit/b4cf94aacd0f9fcffd802b0a8e47e0d162ca1f20
commit b4cf94aacd0f9fcffd802b0a8e47e0d162ca1f20
Author: Christophe CURIS <[email protected]>
Date: Mon Apr 6 17:58:12 2015 +0200
Code refactoring: replaced macro 'XDND' by 'USE_DOCK_XDND' for consistency
The usual way to define a macro in is to name macro with 'USE_xxx' when
they are used to enable a feature 'xxx'.
As the feature concerns the Dock and not DnD in general (WINGs support is
not disabled), make it a bit more clear in the macro name and document the
configure flag in the Installation Manual.
Took opportunity to compile the corresponding file only when the feature is
not disabled.
Signed-off-by: Christophe CURIS <[email protected]>
diff --git a/configure.ac b/configure.ac
index 4e55a94..6a02376 100644
--- a/configure.ac
+++ b/configure.ac
@@ -502,15 +502,16 @@ AS_IF([test "x$enable_modelock" = "xyes"],
dnl XDND Drag-nd-Drop support
dnl =========================
AC_ARG_ENABLE([xdnd],
- [AS_HELP_STRING([--disable-xdnd], [disable Drag-nd-Drop support])],
+ [AS_HELP_STRING([--disable-xdnd], [disable support for Drag-and-Drop on
the dock @<:@default=enabled@:>@])],
[AS_CASE(["$enableval"],
[yes|no], [],
[AC_MSG_ERROR([bad value $enableval for --disable-xdnd]) ]) ],
[enable_xdnd=yes])
AS_IF([test "x$enable_xdnd" = "xyes"],
- [supported_xext="$supported_xext XDnD"
- AC_DEFINE([XDND], [1], [whether Drag-nd-Drop support should be enabled])],
+ [supported_core="$supported_core XDnD"
+ AC_DEFINE([USE_DOCK_XDND], [1], [whether Drag-and-Drop on the dock should
be enabled])],
[unsupported="$unsupported XDnd"])
+AM_CONDITIONAL([USE_DOCK_XDND], [test "x$enable_dock_xdnd" != "xno"])
dnl XShape support
diff --git a/doc/build/Compilation.texi b/doc/build/Compilation.texi
index 8d1fcfd..4db3ae0 100644
--- a/doc/build/Compilation.texi
+++ b/doc/build/Compilation.texi
@@ -571,6 +571,11 @@ Disable support for Motif's MWM Window Manager hints.
These attributes were introduced by the Motif toolkit to ask for special
window appearance requests.
Nowadays this is covered by the NetWM/EWMH specification, but there are still
applications that rely on MWM Hints.
+@item --disable-xdnd
+Disable support for dragging and dropping files on the dock, which launches a
user-specified command
+with that file.
+Starting from version 0.65.6 this feature is enabled by default.
+
@item --enable-ld-version-script
This feature is auto-detected, and you should not use this option.
When compiling a library (@file{wrlib}, ...), @emph{gcc} has the possibility
to filter the list of
diff --git a/src/Makefile.am b/src/Makefile.am
index 56ebe08..7fe9db7 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -84,7 +84,6 @@ wmaker_SOURCES = \
usermenu.c \
usermenu.h \
xdnd.h \
- xdnd.c \
xinerama.h \
xinerama.c \
xmodifier.h \
@@ -108,6 +107,9 @@ wmaker_SOURCES = \
wsmap.c \
wsmap.h
+if USE_DOCK_XDND
+wmaker_SOURCES += xdnd.c
+endif
if USE_MWM_HINTS
wmaker_SOURCES += motif.h motif.c
endif
diff --git a/src/appicon.c b/src/appicon.c
index ed03ffc..14dba97 100644
--- a/src/appicon.c
+++ b/src/appicon.c
@@ -51,7 +51,7 @@
#include "placement.h"
#include "misc.h"
#include "event.h"
-#ifdef XDND
+#ifdef USE_DOCK_XDND
#include "xdnd.h"
#endif
@@ -130,7 +130,7 @@ WAppIcon *wAppIconCreateForDock(WScreen *scr, const char
*command, const char *w
tile = TILE_CLIP;
aicon->icon = icon_create_for_dock(scr, command, wm_instance, wm_class,
tile);
-#ifdef XDND
+#ifdef USE_DOCK_XDND
wXDNDMakeAwareness(aicon->icon->core->window);
#endif
@@ -309,7 +309,7 @@ static WAppIcon *wAppIconCreate(WWindow *leader_win)
aicon->wm_instance = wstrdup(leader_win->wm_instance);
aicon->icon = icon_create_for_wwindow(leader_win);
-#ifdef XDND
+#ifdef USE_DOCK_XDND
wXDNDMakeAwareness(aicon->icon->core->window);
#endif
@@ -332,7 +332,7 @@ void wAppIconDestroy(WAppIcon * aicon)
wIconDestroy(aicon->icon);
if (aicon->command)
wfree(aicon->command);
-#ifdef XDND
+#ifdef USE_DOCK_XDND
if (aicon->dnd_command)
wfree(aicon->dnd_command);
#endif
diff --git a/src/appicon.h b/src/appicon.h
index 2456ba2..eb1904b 100644
--- a/src/appicon.h
+++ b/src/appicon.h
@@ -37,7 +37,7 @@ typedef struct WAppIcon {
WIcon *icon;
int x_pos, y_pos; /* absolute screen coordinate */
char *command; /* command used to launch app */
-#ifdef XDND
+#ifdef USE_DOCK_XDND
char *dnd_command; /* command to use when something is */
/* dropped on us */
#endif
diff --git a/src/dialog.c b/src/dialog.c
index 25c321e..b7b8f53 100644
--- a/src/dialog.c
+++ b/src/dialog.c
@@ -1316,7 +1316,7 @@ void wShowInfoPanel(WScreen *scr)
strbuf = wstrappend(strbuf, ", MWM");
#endif
-#ifdef XDND
+#ifdef USE_DOCK_XDND
strbuf = wstrappend(strbuf, ", XDnD");
#endif
diff --git a/src/dock.c b/src/dock.c
index 8853fa3..d4aca09 100644
--- a/src/dock.c
+++ b/src/dock.c
@@ -72,7 +72,7 @@
static WMPropList *dCommand = NULL;
static WMPropList *dPasteCommand = NULL;
-#ifdef XDND /* XXX was OFFIX */
+#ifdef USE_DOCK_XDND
static WMPropList *dDropCommand = NULL;
#endif
static WMPropList *dAutoLaunch, *dLock;
@@ -135,7 +135,7 @@ static void make_keys(void)
dCommand = WMRetainPropList(WMCreatePLString("Command"));
dPasteCommand = WMRetainPropList(WMCreatePLString("PasteCommand"));
-#ifdef XDND
+#ifdef USE_DOCK_XDND
dDropCommand = WMRetainPropList(WMCreatePLString("DropCommand"));
#endif
dLock = WMRetainPropList(WMCreatePLString("Lock"));
@@ -1496,13 +1496,13 @@ static WMPropList *make_icon_state(WAppIcon *btn)
if (btn->dock != btn->icon->core->screen_ptr->dock &&
(btn->xindex != 0 || btn->yindex != 0))
WMPutInPLDictionary(node, dOmnipresent, omnipresent);
-#ifdef XDND /* was OFFIX */
+#ifdef USE_DOCK_XDND
if (btn->dnd_command) {
command = WMCreatePLString(btn->dnd_command);
WMPutInPLDictionary(node, dDropCommand, command);
WMReleasePropList(command);
}
-#endif /* XDND */
+#endif /* USE_DOCK_XDND */
if (btn->paste_command) {
command = WMCreatePLString(btn->paste_command);
@@ -1682,7 +1682,7 @@ static WAppIcon *restore_icon_state(WScreen *scr,
WMPropList *info, int type, in
aicon->icon->core->descriptor.parent_type = WCLASS_DOCK_ICON;
aicon->icon->core->descriptor.parent = aicon;
-#ifdef XDND /* was OFFIX */
+#ifdef USE_DOCK_XDND
cmd = WMGetFromPLDictionary(info, dDropCommand);
if (cmd)
aicon->dnd_command = wstrdup(WMGetFromPLString(cmd));
@@ -1769,7 +1769,7 @@ WAppIcon *wClipRestoreState(WScreen *scr, WMPropList
*clip_state)
wScreenKeepInside(scr, &icon->x_pos,
&icon->y_pos, ICON_SIZE, ICON_SIZE);
}
}
-#ifdef XDND /* was OFFIX */
+#ifdef USE_DOCK_XDND
value = WMGetFromPLDictionary(clip_state, dDropCommand);
if (value && WMIsPLString(value))
icon->dnd_command = wstrdup(WMGetFromPLString(value));
@@ -2035,7 +2035,7 @@ void wDockDoAutoLaunch(WDock *dock, int workspace)
}
}
-#ifdef XDND /* was OFFIX */
+#ifdef USE_DOCK_XDND
static WDock *findDock(WScreen *scr, XEvent *event, int *icon_pos)
{
WDock *dock;
@@ -2117,7 +2117,7 @@ int wDockReceiveDNDDrop(WScreen *scr, XEvent *event)
}
return False;
}
-#endif /* XDND */
+#endif /* USE_DOCK_XDND */
Bool wDockAttachIcon(WDock *dock, WAppIcon *icon, int x, int y, Bool
update_icon)
{
@@ -2221,7 +2221,7 @@ Bool wDockAttachIcon(WDock *dock, WAppIcon *icon, int x,
int y, Bool update_icon
if (wPreferences.auto_arrange_icons)
wArrangeIcons(dock->screen_ptr, True);
-#ifdef XDND /* was OFFIX */
+#ifdef USE_DOCK_XDND
if (icon->command && !icon->dnd_command) {
int len = strlen(icon->command) + 8;
icon->dnd_command = wmalloc(len);
@@ -2401,7 +2401,7 @@ void wDockDetach(WDock *dock, WAppIcon *icon)
wfree(icon->command);
icon->command = NULL;
}
-#ifdef XDND /* was OFFIX */
+#ifdef USE_DOCK_XDND
if (icon->dnd_command) {
wfree(icon->dnd_command);
icon->dnd_command = NULL;
@@ -3347,7 +3347,7 @@ static void trackDeadProcess(pid_t pid, unsigned char
status, WDock *dock)
char msg[PATH_MAX];
char *cmd;
-#ifdef XDND
+#ifdef USE_DOCK_XDND
if (icon->drop_launch)
cmd = icon->dnd_command;
else
@@ -4770,11 +4770,11 @@ static WDock * drawerRestoreState(WScreen *scr,
WMPropList *drawer_state)
drawer = wDockCreate(scr, WM_DRAWER, WMGetFromPLString(value));
/* restore DnD command and paste command */
-#ifdef XDND
+#ifdef USE_DOCK_XDND
value = WMGetFromPLDictionary(drawer_state, dDropCommand);
if (value && WMIsPLString(value))
drawer->icon_array[0]->dnd_command =
wstrdup(WMGetFromPLString(value));
-#endif /* XDND */
+#endif /* USE_DOCK_XDND */
value = WMGetFromPLDictionary(drawer_state, dPasteCommand);
if (value && WMIsPLString(value))
@@ -4912,14 +4912,14 @@ static WMPropList *drawerSaveState(WDock *drawer)
WMPutInPLDictionary(drawer_state, dPosition, pstr);
WMReleasePropList(pstr);
-#ifdef XDND
+#ifdef USE_DOCK_XDND
/* Store its DnD command */
if (ai->dnd_command) {
pstr = WMCreatePLString(ai->dnd_command);
WMPutInPLDictionary(drawer_state, dDropCommand, pstr);
WMReleasePropList(pstr);
}
-#endif /* XDND */
+#endif /* USE_DOCK_XDND */
/* Store its paste command */
if (ai->paste_command) {
diff --git a/src/dock.h b/src/dock.h
index 23281a9..1e00e5f 100644
--- a/src/dock.h
+++ b/src/dock.h
@@ -92,7 +92,7 @@ WAppIcon *wDockFindIconForWindow(WDock *dock, Window window);
void wDockDoAutoLaunch(WDock *dock, int workspace);
void wDockLaunchWithState(WAppIcon *btn, WSavedState *state);
-#ifdef XDND
+#ifdef USE_DOCK_XDND
int wDockReceiveDNDDrop(WScreen *scr, XEvent *event);
#endif
diff --git a/src/dockedapp.c b/src/dockedapp.c
index 44eaacd..a7c12d7 100644
--- a/src/dockedapp.c
+++ b/src/dockedapp.c
@@ -66,7 +66,7 @@ static void updatePasteCommand(WAppIcon * icon, char *command)
icon->paste_command = command;
}
-#ifdef XDND
+#ifdef USE_DOCK_XDND
static void updateDNDCommand(WAppIcon * icon, char *command)
{
if (icon->dnd_command)
@@ -77,7 +77,7 @@ static void updateDNDCommand(WAppIcon * icon, char *command)
}
icon->dnd_command = command;
}
-#endif /* XDND */
+#endif /* USE_DOCK_XDND */
static void updateSettingsPanelIcon(AppSettingsPanel * panel)
{
@@ -199,7 +199,7 @@ static void panelBtnCallback(WMWidget * self, void *data)
text = NULL;
}
updateCommand(panel->editedIcon, text);
-#ifdef XDND
+#ifdef USE_DOCK_XDND
/* cannot free text from this, because it will be not be
duplicated
* in updateDNDCommand */
text = WMGetTextFieldText(panel->dndCommandField);
@@ -307,7 +307,7 @@ void ShowDockAppSettingsPanel(WAppIcon * aicon)
panel->dndCommandLabel = WMCreateLabel(panel->dndCommandFrame);
WMResizeWidget(panel->dndCommandLabel, 256, 18);
WMMoveWidget(panel->dndCommandLabel, 10, 45);
-#ifdef XDND
+#ifdef USE_DOCK_XDND
WMSetTextFieldText(panel->dndCommandField, aicon->dnd_command);
WMSetLabelText(panel->dndCommandLabel, _("%d will be replaced with the
file name"));
#else
diff --git a/src/event.c b/src/event.c
index 3e2ecb6..ce316ee 100644
--- a/src/event.c
+++ b/src/event.c
@@ -40,7 +40,7 @@
#ifdef USE_XSHAPE
# include <X11/extensions/shape.h>
#endif
-#ifdef XDND
+#ifdef USE_DOCK_XDND
#include "xdnd.h"
#endif
@@ -539,7 +539,7 @@ static void saveTimestamp(XEvent * event)
break;
case SelectionNotify:
w_global.timestamp.last_event = event->xselection.time;
-#ifdef XDND
+#ifdef USE_DOCK_XDND
wXDNDProcessSelection(event);
#endif
break;
@@ -1073,10 +1073,10 @@ static void handleClientMessage(XEvent * event)
scr->flags.ignore_focus_events = event->xclient.data.l[0] ? 1 :
0;
} else if (wNETWMProcessClientMessage(&event->xclient)) {
/* do nothing */
-#ifdef XDND
+#ifdef USE_DOCK_XDND
} else if (wXDNDProcessClientMessage(&event->xclient)) {
/* do nothing */
-#endif /* XDND */
+#endif /* USE_DOCK_XDND */
} else {
/*
* Non-standard thing, but needed by OffiX DND.
diff --git a/src/misc.c b/src/misc.c
index a12a97d..137d78e 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -622,7 +622,7 @@ char *ExpandOptions(WScreen *scr, const char *cmdline)
}
break;
-#ifdef XDND
+#ifdef USE_DOCK_XDND
case 'd':
if (!scr->xdestring) {
scr->flags.dnd_data_convertion_status =
1;
@@ -639,7 +639,7 @@ char *ExpandOptions(WScreen *scr, const char *cmdline)
strcat(out, scr->xdestring);
optr += slen;
break;
-#endif /* XDND */
+#endif /* USE_DOCK_XDND */
case 's':
if (!selection) {
diff --git a/src/screen.h b/src/screen.h
index dd524b8..8ffb6f9 100644
--- a/src/screen.h
+++ b/src/screen.h
@@ -283,7 +283,7 @@ typedef struct _WScreen {
/* for window shortcuts */
WMArray *shortcutWindows[MAX_WINDOW_SHORTCUTS];
-#ifdef XDND
+#ifdef USE_DOCK_XDND
char *xdestring;
#endif
diff --git a/src/startup.c b/src/startup.c
index c369dba..5f43cfd 100644
--- a/src/startup.c
+++ b/src/startup.c
@@ -68,7 +68,7 @@
#include "wmspec.h"
#include "event.h"
#include "switchmenu.h"
-#ifdef XDND
+#ifdef USE_DOCK_XDND
#include "xdnd.h"
#endif
@@ -469,7 +469,7 @@ void StartUp(Bool defaultScreenOnly)
w_global.atom.wm.ignore_focus_events = atom[20];
-#ifdef XDND
+#ifdef USE_DOCK_XDND
wXDNDInitializeAtoms();
#endif
diff --git a/src/xdnd.c b/src/xdnd.c
index afbbd44..63e6d9c 100644
--- a/src/xdnd.c
+++ b/src/xdnd.c
@@ -20,19 +20,20 @@
/* Many part of code are ripped of an example from JX's site */
-#include "wconfig.h"
+#include "config.h"
-#ifdef XDND
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
#include "WindowMaker.h"
#include "dock.h"
#include "xdnd.h"
#include "workspace.h"
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <X11/Xatom.h>
static Atom _XA_XdndAware;
static Atom _XA_XdndEnter;
@@ -315,4 +316,3 @@ Bool wXDNDProcessClientMessage(XClientMessageEvent *event)
}
return False;
}
-#endif
http://repo.or.cz/w/wmaker-crm.git/commit/2ebfcd9c5c9350d89f2346304ed8c02883020785
commit 2ebfcd9c5c9350d89f2346304ed8c02883020785
Author: Christophe CURIS <[email protected]>
Date: Mon Apr 6 17:58:11 2015 +0200
configure: Added option to disable Motif WM Hints support
The old behaviour was to expect the user to go modify manually a source
file which is not a great idea because that's typically the kind of things
in charge of the configure script.
As a side effect, we can now use an automake conditional to avoid compiling
the source file in charge of the feature when not used, instead of trying
to compile an empty-looking file.
Signed-off-by: Christophe CURIS <[email protected]>
diff --git a/configure.ac b/configure.ac
index fac385a..4e55a94 100644
--- a/configure.ac
+++ b/configure.ac
@@ -237,6 +237,7 @@ AX_PTHREAD
dnl Tracking on what is detected for final status
dnl =============================================
unsupported=""
+supported_core=""
supported_xext=""
supported_gfx=""
@@ -286,6 +287,21 @@ AC_ARG_WITH(incs-from, AS_HELP_STRING([--with-incs-from],
[pass compiler flags t
[inc_search_path="$withval $inc_search_path"])
+dnl Features Configuration
+dnl ======================
+AC_ARG_ENABLE([mwm-hints],
+ [AS_HELP_STRING([--disable-mwm-hints], [disable support for Motif WM hints
@<:@default=enabled@:>@])],
+ [AS_CASE(["$enableval"],
+ [yes|no], [],
+ [AC_MSG_ERROR([bad value $enableval for --enable-mwm-hints])])],
+ [enable_mwm_hints="yes"])
+AS_IF([test "x$enable_mwm_hints" = "xno"],
+ [unsupported="$unsupported MWMHints"],
+ [AC_DEFINE([USE_MWM_HINTS], [1], [Defined when used did not request to
disable Motif WM hints])
+ supported_core="$supported_core MWMHints"])
+AM_CONDITIONAL([USE_MWM_HINTS], [test "x$enable_mwm_hints" != "xno"])
+
+
dnl Boehm GC
dnl ========
AC_ARG_ENABLE([boehm-gc],
@@ -887,6 +903,7 @@ echo "Installation path prefix : $prefix"
echo "Installation path for binaries : $_bindir"
echo "Installation path for libraries : $libdir"
echo "Installation path for WPrefs.app : $wprefs_base_dir" | sed -e
's|\${prefix}|'"$prefix|"
+echo "Supported core features: :$supported_core"
echo "Supported X extensions: :$supported_xext"
echo "Supported graphic format libraries :$supported_gfx"
echo "Unsupported features :$unsupported"
diff --git a/doc/build/Compilation.texi b/doc/build/Compilation.texi
index 8d8efea..8d1fcfd 100644
--- a/doc/build/Compilation.texi
+++ b/doc/build/Compilation.texi
@@ -566,8 +566,10 @@ screen size.
@subsection Feature Selection
@table @option
-@item --disable-motif
+@item --disable-mwm-hints
Disable support for Motif's MWM Window Manager hints.
+These attributes were introduced by the Motif toolkit to ask for special
window appearance requests.
+Nowadays this is covered by the NetWM/EWMH specification, but there are still
applications that rely on MWM Hints.
@item --enable-ld-version-script
This feature is auto-detected, and you should not use this option.
diff --git a/src/Makefile.am b/src/Makefile.am
index e149f7d..56ebe08 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -52,8 +52,6 @@ wmaker_SOURCES = \
misc.h \
monitor.c \
monitor.h \
- motif.c \
- motif.h \
moveres.c \
pixmap.c \
pixmap.h \
@@ -110,6 +108,10 @@ wmaker_SOURCES = \
wsmap.c \
wsmap.h
+if USE_MWM_HINTS
+wmaker_SOURCES += motif.h motif.c
+endif
+
if WM_OSDEP_BSD
wmaker_SOURCES += osdep_bsd.c
endif
diff --git a/src/motif.c b/src/motif.c
index 55afdac..b649f82 100644
--- a/src/motif.c
+++ b/src/motif.c
@@ -21,8 +21,6 @@
#include "wconfig.h"
-#ifdef USE_MWM_HINTS
-
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <stdlib.h>
@@ -200,5 +198,3 @@ void wMWMCheckClientHints(WWindow *wwin)
if (getMWMHints(wwin->client_win, &hints))
setupMWMHints(wwin, &hints);
}
-
-#endif /* USE_MWM_HINTS */
diff --git a/src/wconfig.h.in b/src/wconfig.h.in
index 49bb11d..4a56e04 100644
--- a/src/wconfig.h.in
+++ b/src/wconfig.h.in
@@ -36,9 +36,6 @@
/* If you want animations for iconification, shading, icon arrangement etc. */
#define ANIMATIONS
-/* support for Motif window manager (mwm) window hints */
-#define USE_MWM_HINTS
-
/*
* Undefine BALLOON_TEXT if you don't want balloons for showing extra
* information, like window titles that are not fully visible.
http://repo.or.cz/w/wmaker-crm.git/commit/1cef020eb322f1bc2978d49ec2d846dd9d1cc15d
commit 1cef020eb322f1bc2978d49ec2d846dd9d1cc15d
Author: Christophe CURIS <[email protected]>
Date: Mon Apr 6 17:58:10 2015 +0200
Code refactoring: replaced macro 'MWM_HINTS' by 'USE_MWM_HINTS' for
consistency
The usual way to define a macro in is to name macro with 'USE_xxx' when
they are used to enable a feature 'xxx'.
Signed-off-by: Christophe CURIS <[email protected]>
diff --git a/src/dialog.c b/src/dialog.c
index 6bb3424..25c321e 100644
--- a/src/dialog.c
+++ b/src/dialog.c
@@ -1312,7 +1312,7 @@ void wShowInfoPanel(WScreen *scr)
strbuf = wstrappend(strbuf, _("\nAdditional support for: "));
strbuf = wstrappend(strbuf, "WMSPEC");
-#ifdef MWM_HINTS
+#ifdef USE_MWM_HINTS
strbuf = wstrappend(strbuf, ", MWM");
#endif
diff --git a/src/motif.c b/src/motif.c
index 7eaba31..55afdac 100644
--- a/src/motif.c
+++ b/src/motif.c
@@ -21,7 +21,7 @@
#include "wconfig.h"
-#ifdef MWM_HINTS
+#ifdef USE_MWM_HINTS
#include <X11/Xlib.h>
#include <X11/Xutil.h>
@@ -201,4 +201,4 @@ void wMWMCheckClientHints(WWindow *wwin)
setupMWMHints(wwin, &hints);
}
-#endif /* MWM_HINTS */
+#endif /* USE_MWM_HINTS */
diff --git a/src/wconfig.h.in b/src/wconfig.h.in
index 2930bcb..49bb11d 100644
--- a/src/wconfig.h.in
+++ b/src/wconfig.h.in
@@ -37,7 +37,7 @@
#define ANIMATIONS
/* support for Motif window manager (mwm) window hints */
-#define MWM_HINTS
+#define USE_MWM_HINTS
/*
* Undefine BALLOON_TEXT if you don't want balloons for showing extra
diff --git a/src/window.c b/src/window.c
index d46eca3..121cd16 100644
--- a/src/window.c
+++ b/src/window.c
@@ -65,7 +65,7 @@
#include "winmenu.h"
#include "osdep.h"
-#ifdef MWM_HINTS
+#ifdef USE_MWM_HINTS
# include "motif.h"
#endif
#include "wmspec.h"
@@ -343,9 +343,9 @@ void wWindowSetupInitialAttributes(WWindow *wwin, int
*level, int *workspace)
int tmp_workspace = -1;
int tmp_level = INT_MIN; /* INT_MIN is never used by the
window levels */
-#ifdef MWM_HINTS
+#ifdef USE_MWM_HINTS
wMWMCheckClientHints(wwin);
-#endif /* MWM_HINTS */
+#endif /* USE_MWM_HINTS */
wNETWMCheckClientHints(wwin, &tmp_level, &tmp_workspace);
http://repo.or.cz/w/wmaker-crm.git/commit/30fe0fb05f6fd0030155c2643a93a562c8278711
commit 30fe0fb05f6fd0030155c2643a93a562c8278711
Author: Christophe CURIS <[email protected]>
Date: Mon Apr 6 17:58:09 2015 +0200
check-doc: add an option to ignore some explicit options from the command's
help
There are a few rare cases where some options listed in the program's
built-in help page may not be documented for a valid reason. This patch
provides an option to the checking script to not complain about them, but:
- the listed options must include a comment about why, to ensure that the
user thinks twice about it and because it is better for maintainability;
- the listed option must be part of the options listed by the application
to ensure the command line invocation of the script will remain up to date.
This new option is then used for the check of the "configure" options
because for a few of them the right place to document them is in the
INSTALL file provided by Autoconf and not in our Window Maker specific doc.
Signed-off-by: Christophe CURIS <[email protected]>
diff --git a/Makefile.am b/Makefile.am
index a6221e9..5b52d1a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -96,6 +96,15 @@ check-local: configure-documentation
configure-documentation:
$(AM_V_CHKOPTS)$(top_srcdir)/script/check-cmdline-options-doc.sh \
- --program "$(top_srcdir)/configure" --text-doc
"$(top_srcdir)/INSTALL-WMAKER"
+ --program "$(top_srcdir)/configure" --text-doc
"$(top_srcdir)/INSTALL-WMAKER" \
+ --ignore-prg 'with-PACKAGE,without-PACKAGE # only template
names from Autoconf' \
+ --ignore-prg
'program-prefix,program-suffix,program-transform-name # in INSTALL' \
+ --ignore-prg
'version,quiet,srcdir,build,host,cache-file,no-create # in INSTALL' \
+ --ignore-prg 'enable-silent-rules,disable-silent-rules # should
be in INSTALL' \
+ --ignore-prg
'enable-dependency-tracking,disable-dependency-tracking # in INSTALL' \
+ --ignore-prg 'enable-shared,enable-static # should be in
INSTALL' \
+ --ignore-prg 'disable-option-checking,enable-fast-install #
should be in INSTALL' \
+ --ignore-prg
'disable-libtool-lock,with-pic,with-gnu-ld,with-sysroot # for libtool' \
+ --ignore-prg 'with-x # no use, it would not work without X'
.PHONY: configure-documentation
diff --git a/script/check-cmdline-options-doc.sh
b/script/check-cmdline-options-doc.sh
index 76ad9f7..ff4a4be 100755
--- a/script/check-cmdline-options-doc.sh
+++ b/script/check-cmdline-options-doc.sh
@@ -51,6 +51,8 @@ print_help() {
echo "$0: check program's list of options against its documentation"
echo "Usage: $0 options..."
echo "valid options are:"
+ echo " --ignore-prg arg : ignore option '--arg' from program's output"
+ echo " (syntax: 'arg1,arg2,... # reason', args without
leading '--')"
echo " --man-page file : program's documentation file, in man format"
echo " --program name : name of the program to run with '--help'"
echo " --text-doc file : program's documentation file, in plain text
format"
@@ -60,6 +62,16 @@ print_help() {
# Extract command line arguments
while [ $# -gt 0 ]; do
case $1 in
+ --ignore-prg)
+ shift
+ echo "$1" | grep '#' > /dev/null || echo "Warning: no reason
provided for --ignore-prg on \"$1\"" >&2
+ for arg in `echo "$1" | sed -e 's/#.*$// ; s/,/ /g' `
+ do
+ ignore_arg_program="$ignore_arg_program
+--$arg"
+ done
+ ;;
+
--man-page)
shift
[ -z "$man_page$text_doc" ] || arg_error "only 1 documentation
file can be used (option: --man-page)"
@@ -112,6 +124,17 @@ prog_options=`$prog_name --help | sed -n '/^[ \t]*-/ {
s/^[ \t]*// ; s/^-[^-],[
[ "x$prog_options" = "x" ] && arg_error "program '$prog_name --help' did not
return any option"
+# We filter options that user wants us to, but we warn if the user asked to
filter an option that is
+# not actually present, to make sure his command line invocation stays up to
date
+for filter in $ignore_arg_program
+do
+ if echo "$prog_options" | grep "^$filter\$" > /dev/null ; then
+ prog_options=`echo "$prog_options" | grep -v "^$filter\$" `
+ else
+ echo "Warning: program's option does not contain \"$filter\", specified in
\"--ignore-prg\""
+ fi
+done
+
if [ -n "$man_page" ]; then
# In the man page format, the options must be grouped in the section
"OPTIONS"
http://repo.or.cz/w/wmaker-crm.git/commit/d1c9f791d870d88ec4f02e31b29600e1afbaa58a
commit d1c9f791d870d88ec4f02e31b29600e1afbaa58a
Author: Christophe CURIS <[email protected]>
Date: Mon Apr 6 17:58:08 2015 +0200
doc: describe the "new" options to the "configure" script
As there are many options, they have been split into 5 sections; added
documentation for all the legacy Window Maker options that were missing and
for the new ones; added documentation for a few of the "autotools" standard
options that can be considered interesting.
Signed-off-by: Christophe CURIS <[email protected]>
diff --git a/doc/build/Compilation.texi b/doc/build/Compilation.texi
index 51d53d7..8d8efea 100644
--- a/doc/build/Compilation.texi
+++ b/doc/build/Compilation.texi
@@ -170,6 +170,7 @@ package, you will also need:
@section Optional Dependencies
+@anchor{Optional Dependencies}
These libraries are not required to make @sc{Window Maker} work, but they are
supported in case you
want to use them. Version numbers are indicative, but other versions might
work too.
@@ -208,12 +209,24 @@ so you probably want this format supported.
For @emph{GIF} image support,
@uref{http://giflib.sourceforge.net/}
+@item @emph{WebP} 0.4.1 or newer
+
+The reference library from @emph{Google} for their image format,
+@uref{https://developers.google.com/speed/webp/download}
+
@item @emph{GNU xgettext}
If you want to use translated messages, you will need @emph{GNU gettext}.
Other versions of @emph{gettext} are not compatible and will not work.
Get the @emph{GNU} version from @uref{http://www.gnu.org/software/gettext/}
+@item @emph{Pango} 1.36.8 or newer
+
+This library can be used by the @emph{WINGs} toolkit to improve support for
@emph{UTF-8} and for
+languages written in right-to-left direction, in some widgets.
+You have to explicitly ask for its support through (@pxref{Configure Options}).
+You can get it from @uref{http://www.pango.org/Download}
+
@item @emph{libbsd}
This library can be used by the @emph{WINGs} utility library to make use of
@command{strlcat} and
@@ -234,6 +247,12 @@ The needed header comes with the kernel, typical packages
names include:
@item @file{linux-glibc-devel} for @emph{OpenSuSE}
@end itemize
+@item @emph{MagickWand} 6.8.9-9 or newer
+
+If found, then the library @emph{WRaster} can use the @emph{ImageMagick}
library to let
+@sc{Window Maker} support more image formats, like @emph{SVG}, @emph{BMP},
@emph{TGA}, ...
+You can get it from @uref{http://www.imagemagick.org/}
+
@item @emph{Boehm GC}
This library can be used by the @emph{WINGs} utility toolkit to use a
@@ -386,22 +405,100 @@ Normally, you won't need any of them.
To get the list of all options, run @command{./configure --help}
+
+@subsection Installation Directory
+
+The default installation path will be in the @file{/usr/local} hierarchy;
+a number of option can customise this:
+
+@table @option
+@item --prefix=@i{PREFIX}
+@itemx --exec-prefix=@i{EPREFIX}
+@itemx --bindir=@i{DIR}
+@itemx --sysconfdir=@i{DIR}
+@itemx --libdir=@i{DIR}
+@itemx --includedir=@i{DIR}
+@itemx --datarootdir=@i{DIR}
+@itemx --datadir=@i{DIR}
+@itemx --localedir=@i{DIR}
+@itemx --mandir=@i{DIR}
+Standard options from @emph{autoconf} to define target paths,
+you probably want to read @ref{Installation Names,,,INSTALL,@file{INSTALL}}.
+
+@item --sbindir=@i{DIR}
+@itemx --libexecdir=@i{DIR}
+@itemx --sharedstatedir=@i{DIR}
+@itemx --localstatedir=@i{DIR}
+@itemx --oldincludedir=@i{DIR}
+@itemx --infodir=@i{DIR}
+@itemx --docdir=@i{DIR}
+@itemx --htmldir=@i{DIR}
+@itemx --dvidir=@i{DIR}
+@itemx --pdfdir=@i{DIR}
+@itemx --psdir=@i{DIR}
+More standard options from @emph{autoconf}, today these are not used by
@sc{Window Maker};
+they are provided automatically by @emph{autoconf} for consistency.
+
+@item --with-gnustepdir=@i{PATH}
+Specific to @sc{Window Maker}, defines the directory where @file{WPrefs.app}
will be installed,
+if you want to install it like a @emph{GNUstep} applications.
+If not specified, it will be installed like usual programs.
+
+@item --with-pixmapdir=@i{DIR}
+Specific to @sc{Window Maker}, this option defines an additional path where
@emph{pixmaps} will be
+searched. Nothing will be installed there; the default path taken is
@file{@emph{DATADIR}/pixmaps},
+where @var{DATADIR} is the path defined from @option{--datadir}.
+
+@end table
+
+
+@subsection External Libraries
+
+Unless specifically written, @command{configure} will try to detect
automatically for the libraries;
+if you explicitly provide @option{--enable-@emph{FEATURE}} then it will break
with an error message
+if the library cannot be linked;
+if you specify @option{--disable-@emph{FEATURE}} then it will not try to
search for the library.
+You can find more information about the libraries in the
+@ref{Optional Dependencies}.
+
@table @option
+@item --enable-boehm-gc
+Never enabled by default, use Boehm GC instead of the default @emph{libc}
@command{malloc()}
+
@item --disable-gif
-disable use of @emph{GIF} library
+Disable GIF support in @emph{WRaster} library; when enabled use @file{libgif}
or @file{libungif}.
@item --disable-jpeg
-disable use of @emph{JPEG} library
+Disable JPEG support in @emph{WRaster} library; when enabled use
@file{libjpeg}.
+
+@item --without-libbsd
+Refuse use of the @file{libbsd} compatibility library in @emph{WINGs} utility
library,
+even if your system provides it.
+
+@item --disable-magick
+Disable @emph{ImageMagick's MagickWand} support in @emph{WRaster}, used to
support for image formats.
+
+@item --enable-pango
+Disabled by default, enable @emph{Pango} text layout support in @emph{WINGs}.
@item --disable-png
-disables use of @emph{PNG} library
+Disable PNG support in @emph{WRaster}; when enabled use @file{libpng}.
@item --disable-tiff
-disable use of @emph{TIFF} library
+Disable TIFF support in @emph{WRaster}. when enabled use @file{libtiff}.
+
+@item --disable-webp
+Disable WEBP support in @emph{WRaster}. when enabled use @file{libwebp}.
@item --disable-xpm
-disables use of the @emph{XPM} library even if it is available on your system.
+Disable use of @file{libXpm} for XPM support in @emph{WRaster}, use internal
code instead.
+
+@end table
+The following options can be used to tell @command{configure} about extra
paths that needs to be
+used when compiling against libraries:
+
+@table @option
@item --with-libs-from
specify additional paths for libraries to be searched.
The @option{-L} flag must precede each path, like:
@@ -416,20 +513,109 @@ The @option{-I} flag must precede each paths, like:
--with-incs-from="-I/opt/headers -I/usr/local/include"
@end example
+@end table
+
+
+@subsection X11 and Extensions
+
+@command{configure} will try to detect automatically the compilation paths for
X11 headers and
+libraries, and which X Extensions support can be enabled.
+if you explicitly provide @option{--enable-@emph{FEATURE}} then it will break
with an error message
+if the extension cannot be used;
+if you specify @option{--disable-@emph{FEATURE}} then it will not check for
the extension.
+
+@table @option
+@item --x-includes=@i{DIR}
+@itemx --x-libraries=@i{DIR}
+@emph{Autoconf}'s option to specify search paths for @emph{X11},
+for the case were it would not have been able to detect it automatically.
+
+@item --disable-xlocale
+If you activated support for Native Languages, then @emph{X11} may use a hack
to also configure its
+locale support when the program configure the locale for itself.
+The @command{configure} script detects if the @emph{Xlib} supports this or not;
+this options explicitly disable this initialisation mechanism.
+
@item --enable-modelock
XKB language status lock support. If you don't know what it is you probably
don't need it.
+The default is to not enable it.
@item --disable-shm
-disable use of the MIT shared memory extension. This will slow down
-texture generation a little bit, but in some cases it seems to be
-necessary due to a bug that manifests as messed icons and textures.
+Disable use of the @emph{MIT shared memory} extension.
+This will slow down texture generation a little bit, but in some cases it
seems to be necessary due
+to a bug that manifests as messed icons and textures.
@item --disable-shape
-disables shaped windows (for @command{oclock}, @command{xeyes}, etc.)
+Disables support for @emph{shaped} windows (for @command{oclock},
@command{xeyes}, etc.).
+
+@item --enable-xinerama
+The @emph{Xinerama} extension provides information about the different screens
connected when
+running a multi-head setting (if you plug more than one monitor).
+
+@item --enable-randr
+The @emph{RandR} extension provides feedback when changing the
multiple-monitor configuration in X11
+and allows to re-configure how screens are organised.
+
+At current time, it is not enabled by default because it is NOT recommended
(buggy);
+@sc{Window Maker} only restart itself when the configuration change, to take
into account the new
+screen size.
+
+@end table
+
+@subsection Feature Selection
+
+@table @option
@item --disable-motif
Disable support for Motif's MWM Window Manager hints.
+@item --enable-ld-version-script
+This feature is auto-detected, and you should not use this option.
+When compiling a library (@file{wrlib}, ...), @emph{gcc} has the possibility
to filter the list of
+functions that will be visible, to keep only the public API, because it helps
running programs
+faster.
+
+The @command{configure} script checks if this feature is available;
+if you specify this option it will not check anymore and blindly trust you
that it is supposed to
+work, which is not a good idea as you may encounter problems later when
compiling.
+
+@item --enable-usermenu
+This feature, disabled by default, allows to add a user-defined custom menu to
applications;
+when choosing an entry of the menu it will send the key combination defined by
the user to that
+application. @xref{Application User Menu,,,NEWS,@file{NEWS}} for more
information.
+
+@item --with-menu-textdomain=@i{DOMAIN}
+Selection of the domain used for translation of the menus;
+@pxref{Translations for Menus,,,wmaker_i18n,@file{README.i18n}}.
+
+@end table
+
+
+@subsection Developer Stuff
+
+These options are disabled by default:
+
+@table @option
+@item --config-cache
+If you intend to re-run the @command{configure} script often, you probably
want to include this
+option, so it will save and re-use the status of what have been detected in
the file
+@file{config.cache}.
+
+@item --enable-debug
+Enable debugging features (debug symbol, some extra verbosity and checks) and
add a number of
+check flags (warnings) for the compiler (in @emph{gcc} fashion).
+
+@item --enable-lcov=@i{DIRECTORY}
+Enable generation of code coverage and profiling data;
+if the @file{@i{DIRECTORY}} is not specified, use @file{coverage-report}.
+
+This option was meant to be use with @emph{gcc};
+it was not used recently so it is probable that is does not work anymore;
+the @command{configure} script will not even check that your compiling
environment has the
+appropriate requirements and works with this.
+Despite all this, if you think there's a use for it and feel in the mood to
help, do not hesitate to
+discuss on the mailing list @value{emailsupport} to get it working.
+
@end table
-----------------------------------------------------------------------
Summary of changes:
doc/build/Compilation.texi | 2 +-
script/generate-txt-from-texi.sh | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
repo.or.cz automatic notification. Contact project admin [email protected]
if you want to unsubscribe, or site admin [email protected] if you receive
no reply.
--
wmaker-crm.git ("The Window Maker window manager")
--
To unsubscribe, send mail to [email protected].