Merge remote-tracking branch 'whot/for-keith'

This commit is contained in:
Keith Packard 2014-06-02 11:22:48 -07:00
commit ab47ec9636
5 changed files with 40 additions and 52 deletions

View File

@ -661,6 +661,8 @@ void
DeepCopyDeviceClasses(DeviceIntPtr from, DeviceIntPtr to,
DeviceChangedEvent *dce)
{
OsBlockSIGIO();
/* generic feedback classes, not tied to pointer and/or keyboard */
DeepCopyFeedbackClasses(from, to);
@ -668,6 +670,8 @@ DeepCopyDeviceClasses(DeviceIntPtr from, DeviceIntPtr to,
DeepCopyKeyboardClasses(from, to);
if ((dce->flags & DEVCHANGE_POINTER_EVENT))
DeepCopyPointerClasses(from, to);
OsReleaseSIGIO();
}
/**

View File

@ -19,22 +19,6 @@ Section "InputClass"
Option "IgnoreRelativeAxes" "off"
EndSection
# https://bugzilla.redhat.com/show_bug.cgi?id=612140
# please make Evoluent VerticalMouse 3 work out of the box
# Button mapping on this mouse is quirky
Section "InputClass"
Identifier "Evoluent VerticalMouse 3"
MatchProduct "Evoluent VerticalMouse 3"
# Sets following configuration:
# top button: left
# middle button: middle
# bottom button: right
# wheel click: middle
# thumb button: 8 (back)
Option "ButtonMapping" "1 2 2 4 5 6 7 3 8"
EndSection
# https://bugs.freedesktop.org/show_bug.cgi?id=55867
# Bug 55867 - Doesn't know how to tag XI_TRACKBALL
Section "InputClass"

View File

@ -97,7 +97,7 @@ Section "ServerFlags"
# Uncomment this to disable the <Ctrl><Alt><BS> server abort sequence
# This allows clients to receive this key event.
# Option "DontZap" "false"
# Option "DontZap" "true"
# Uncomment this to disable the <Ctrl><Alt><KP_+>/<KP_-> mode switching
# sequences. This allows clients to receive these key events.

View File

@ -223,9 +223,8 @@ turns on auto-repeat.
.B -retro
starts the stipple with the classic stipple and cursor visible. The default
is to start with a black root window, and to suppress display of the cursor
until the first time an application calls XDefineCursor(). For the Xorg
server, this also sets the default for the DontZap option to FALSE. For
kdrive servers, this implies -zap.
until the first time an application calls XDefineCursor(). For kdrive
servers, this implies -zap.
.TP 8
.B \-s \fIminutes\fP
sets screen-saver timeout time in minutes.

View File

@ -342,7 +342,7 @@ out:
* which directives you use.
*/
static int
pnprintf(char *string, size_t size, const char *f, va_list args)
vpnprintf(char *string, int size_in, const char *f, va_list args)
{
int f_idx = 0;
int s_idx = 0;
@ -353,6 +353,7 @@ pnprintf(char *string, size_t size, const char *f, va_list args)
int i;
uint64_t ui;
int64_t si;
size_t size = size_in;
for (; f_idx < f_len && s_idx < size - 1; f_idx++) {
int length_modifier = 0;
@ -484,6 +485,19 @@ pnprintf(char *string, size_t size, const char *f, va_list args)
return s_idx;
}
static int
pnprintf(char *string, int size, const char *f, ...)
{
int rc;
va_list args;
va_start(args, f);
rc = vpnprintf(string, size, f, args);
va_end(args);
return rc;
}
/* This function does the actual log message writes. It must be signal safe.
* When attempting to call non-signal-safe functions, guard them with a check
* of the inSignalContext global variable. */
@ -597,7 +611,6 @@ LogMessageTypeVerbString(MessageType type, int verb)
void
LogVMessageVerb(MessageType type, int verb, const char *format, va_list args)
{
static unsigned int warned;
const char *type_str;
char buf[1024];
const size_t size = sizeof(buf);
@ -605,17 +618,8 @@ LogVMessageVerb(MessageType type, int verb, const char *format, va_list args)
size_t len = 0;
if (inSignalContext) {
if (warned < 3) {
BUG_WARN_MSG(inSignalContext,
"Warning: attempting to log data in a signal unsafe "
"manner while in signal context.\nPlease update to check "
"inSignalContext and/or use LogMessageVerbSigSafe() or "
"ErrorFSigSafe().\nThe offending log format message is:\n"
"%s\n", format);
warned++;
if (warned == 3)
LogMessageVerbSigSafe(X_WARNING, -1, "Warned %u times about sigsafe logging. Will be quiet now.\n", warned);
}
LogVMessageVerbSigSafe(type, verb, format, args);
return;
}
type_str = LogMessageTypeVerbString(type, verb);
@ -687,7 +691,7 @@ LogVMessageVerbSigSafe(MessageType type, int verb, const char *format, va_list a
LogSWrite(verb, " ", 1, FALSE);
}
len = pnprintf(buf, sizeof(buf), format, args);
len = vpnprintf(buf, sizeof(buf), format, args);
/* Force '\n' at end of truncated line */
if (sizeof(buf) - len == 1)
@ -701,40 +705,37 @@ void
LogVHdrMessageVerb(MessageType type, int verb, const char *msg_format,
va_list msg_args, const char *hdr_format, va_list hdr_args)
{
static unsigned int warned;
const char *type_str;
char buf[1024];
const size_t size = sizeof(buf);
Bool newline;
size_t len = 0;
if (inSignalContext) {
if (warned < 3) {
BUG_WARN_MSG(inSignalContext,
"Warning: attempting to log data in a signal unsafe "
"manner while in signal context.\nPlease update to check "
"inSignalContext and/or use LogMessageVerbSigSafe().\nThe "
"offending header and log message formats are:\n%s %s\n",
hdr_format, msg_format);
warned++;
if (warned == 3)
LogMessageVerbSigSafe(X_WARNING, -1, "Warned %u times about sigsafe logging. Will be quiet now.\n", warned);
}
}
int (*vprintf_func)(char *, int, const char* _X_RESTRICT_KYWD f, va_list args)
_X_ATTRIBUTE_PRINTF(3, 0);
int (*printf_func)(char *, int, const char* _X_RESTRICT_KYWD f, ...)
_X_ATTRIBUTE_PRINTF(3, 4);
type_str = LogMessageTypeVerbString(type, verb);
if (!type_str)
return;
if (inSignalContext) {
vprintf_func = vpnprintf;
printf_func = pnprintf;
} else {
vprintf_func = Xvscnprintf;
printf_func = Xscnprintf;
}
/* if type_str is not "", prepend it and ' ', to message */
if (type_str[0] != '\0')
len += Xscnprintf(&buf[len], size - len, "%s ", type_str);
len += printf_func(&buf[len], size - len, "%s ", type_str);
if (hdr_format && size - len > 1)
len += Xvscnprintf(&buf[len], size - len, hdr_format, hdr_args);
len += vprintf_func(&buf[len], size - len, hdr_format, hdr_args);
if (msg_format && size - len > 1)
len += Xvscnprintf(&buf[len], size - len, msg_format, msg_args);
len += vprintf_func(&buf[len], size - len, msg_format, msg_args);
/* Force '\n' at end of truncated line */
if (size - len == 1)