x11 session end detection
This commit is contained in:
parent
1a1f97a745
commit
43bf0beb52
1647
src/configure
vendored
1647
src/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -226,6 +226,10 @@ cd ..
|
|||||||
|
|
||||||
##################### End QT detection
|
##################### End QT detection
|
||||||
|
|
||||||
|
### X11: this is needed for the session monitoring code (in recollindex -m)
|
||||||
|
AC_PATH_XTRA
|
||||||
|
#echo X_CFLAGS "'$X_CFLAGS'" X_PRE_LIBS "'$X_PRE_LIBS'" X_LIBS "'$X_LIBS'" X_EXTRA_LIBS "'$X_EXTRA_LIBS'"
|
||||||
|
|
||||||
# We have to expand prefix in here, couldn't find a way to do it inside
|
# We have to expand prefix in here, couldn't find a way to do it inside
|
||||||
# the qt gui .pro file or Makefile. This just means that you can't change
|
# the qt gui .pro file or Makefile. This just means that you can't change
|
||||||
# prefix at build time. It works at install time because we dont' use the
|
# prefix at build time. It works at install time because we dont' use the
|
||||||
@ -235,6 +239,10 @@ test "X$m_prefix" = "XNONE" && m_prefix=/usr/local
|
|||||||
m_datadir=${m_prefix}/share
|
m_datadir=${m_prefix}/share
|
||||||
QTRECOLL_DATADIR=${m_datadir}/recoll
|
QTRECOLL_DATADIR=${m_datadir}/recoll
|
||||||
|
|
||||||
|
AC_SUBST(X_CFLAGS)
|
||||||
|
AC_SUBST(X_PRE_LIBS)
|
||||||
|
AC_SUBST(X_LIBS)
|
||||||
|
AC_SUBST(X_EXTRA_LIBS)
|
||||||
AC_SUBST(INCICONV)
|
AC_SUBST(INCICONV)
|
||||||
AC_SUBST(LIBICONV)
|
AC_SUBST(LIBICONV)
|
||||||
AC_SUBST(LIBXAPIAN)
|
AC_SUBST(LIBXAPIAN)
|
||||||
|
|||||||
@ -10,7 +10,9 @@ RECOLLINDEX_OBJS= recollindex.o rclmonrcv.o rclmonprc.o $(BIGLIB) $(MIMELIB)
|
|||||||
recollindex : $(RECOLLINDEX_OBJS)
|
recollindex : $(RECOLLINDEX_OBJS)
|
||||||
$(CXX) $(ALL_CXXFLAGS) -o recollindex $(RECOLLINDEX_OBJS) \
|
$(CXX) $(ALL_CXXFLAGS) -o recollindex $(RECOLLINDEX_OBJS) \
|
||||||
$(BSTATIC) $(LIBXAPIAN) $(LIBICONV) $(BDYNAMIC) \
|
$(BSTATIC) $(LIBXAPIAN) $(LIBICONV) $(BDYNAMIC) \
|
||||||
$(LIBFAM) $(LIBSYS)
|
$(LIBFAM) \
|
||||||
|
$(X_LIBS) $(X_PRE_LIBS) -lX11 $(X_EXTRA_LIBS) \
|
||||||
|
$(LIBSYS)
|
||||||
recollindex.o : recollindex.cpp
|
recollindex.o : recollindex.cpp
|
||||||
$(CXX) $(ALL_CXXFLAGS) -c -o recollindex.o $<
|
$(CXX) $(ALL_CXXFLAGS) -c -o recollindex.o $<
|
||||||
rclmonrcv.o : rclmonrcv.cpp
|
rclmonrcv.o : rclmonrcv.cpp
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#ifdef RCL_MONITOR
|
#ifdef RCL_MONITOR
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char rcsid[] = "@(#$Id: rclmonprc.cpp,v 1.8 2006-12-21 10:08:07 dockes Exp $ (C) 2006 J.F.Dockes";
|
static char rcsid[] = "@(#$Id: rclmonprc.cpp,v 1.9 2006-12-23 13:07:21 dockes Exp $ (C) 2006 J.F.Dockes";
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -38,6 +38,7 @@ static char rcsid[] = "@(#$Id: rclmonprc.cpp,v 1.8 2006-12-21 10:08:07 dockes Ex
|
|||||||
#include "debuglog.h"
|
#include "debuglog.h"
|
||||||
#include "indexer.h"
|
#include "indexer.h"
|
||||||
#include "pathut.h"
|
#include "pathut.h"
|
||||||
|
#include "x11mon.h"
|
||||||
|
|
||||||
typedef map<string, RclMonEvent> queue_type;
|
typedef map<string, RclMonEvent> queue_type;
|
||||||
|
|
||||||
@ -161,9 +162,23 @@ extern int stopindexing;
|
|||||||
|
|
||||||
bool RclMonEventQueue::ok()
|
bool RclMonEventQueue::ok()
|
||||||
{
|
{
|
||||||
if (m_data == 0)
|
if (m_data == 0) {
|
||||||
|
LOGDEB(("RclMonEventQueue: not ok: bad state\n"));
|
||||||
return false;
|
return false;
|
||||||
return !stopindexing && m_data->m_ok;
|
}
|
||||||
|
if (!x11IsAlive()) {
|
||||||
|
LOGDEB(("RclMonEventQueue: not ok: x11\n"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (stopindexing) {
|
||||||
|
LOGDEB(("RclMonEventQueue: not ok: stop request\n"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!m_data->m_ok) {
|
||||||
|
LOGDEB(("RclMonEventQueue: not ok: end from rcv\n"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RclMonEventQueue::setTerminate()
|
void RclMonEventQueue::setTerminate()
|
||||||
|
|||||||
@ -8,8 +8,8 @@ LIBS = librcl.a
|
|||||||
|
|
||||||
all: $(LIBS)
|
all: $(LIBS)
|
||||||
|
|
||||||
OBJS = rclaspell.o rclconfig.o rclinit.o textsplit.o unacpp.o csguess.o indexer.o mimetype.o htmlparse.o myhtmlparse.o mimehandler.o internfile.o mh_exec.o mh_html.o mh_mail.o mh_mbox.o mh_text.o docseq.o history.o sortseq.o pathhash.o rcldb.o searchdata.o stemdb.o base64.o conftree.o copyfile.o debuglog.o execmd.o fstreewalk.o idfile.o md5.o mimeparse.o pathut.o readfile.o smallut.o transcode.o wipedir.o
|
OBJS = rclaspell.o rclconfig.o rclinit.o textsplit.o unacpp.o csguess.o indexer.o mimetype.o htmlparse.o myhtmlparse.o mimehandler.o internfile.o mh_exec.o mh_html.o mh_mail.o mh_mbox.o mh_text.o docseq.o history.o sortseq.o pathhash.o rcldb.o searchdata.o stemdb.o base64.o conftree.o copyfile.o debuglog.o execmd.o fstreewalk.o idfile.o md5.o mimeparse.o pathut.o readfile.o smallut.o transcode.o wipedir.o x11mon.o
|
||||||
DEPS = rclaspell.dep.stamp rclconfig.dep.stamp rclinit.dep.stamp textsplit.dep.stamp unacpp.dep.stamp csguess.dep.stamp indexer.dep.stamp mimetype.dep.stamp htmlparse.dep.stamp myhtmlparse.dep.stamp mimehandler.dep.stamp internfile.dep.stamp mh_exec.dep.stamp mh_html.dep.stamp mh_mail.dep.stamp mh_mbox.dep.stamp mh_text.dep.stamp docseq.dep.stamp history.dep.stamp sortseq.dep.stamp pathhash.dep.stamp rcldb.dep.stamp searchdata.dep.stamp stemdb.dep.stamp base64.dep.stamp conftree.dep.stamp copyfile.dep.stamp debuglog.dep.stamp execmd.dep.stamp fstreewalk.dep.stamp idfile.dep.stamp md5.dep.stamp mimeparse.dep.stamp pathut.dep.stamp readfile.dep.stamp smallut.dep.stamp transcode.dep.stamp wipedir.dep.stamp
|
DEPS = rclaspell.dep.stamp rclconfig.dep.stamp rclinit.dep.stamp textsplit.dep.stamp unacpp.dep.stamp csguess.dep.stamp indexer.dep.stamp mimetype.dep.stamp htmlparse.dep.stamp myhtmlparse.dep.stamp mimehandler.dep.stamp internfile.dep.stamp mh_exec.dep.stamp mh_html.dep.stamp mh_mail.dep.stamp mh_mbox.dep.stamp mh_text.dep.stamp docseq.dep.stamp history.dep.stamp sortseq.dep.stamp pathhash.dep.stamp rcldb.dep.stamp searchdata.dep.stamp stemdb.dep.stamp base64.dep.stamp conftree.dep.stamp copyfile.dep.stamp debuglog.dep.stamp execmd.dep.stamp fstreewalk.dep.stamp idfile.dep.stamp md5.dep.stamp mimeparse.dep.stamp pathut.dep.stamp readfile.dep.stamp smallut.dep.stamp transcode.dep.stamp wipedir.dep.stamp x11mon.dep.stamp
|
||||||
|
|
||||||
librcl.a : $(DEPS) $(OBJS) unac.o
|
librcl.a : $(DEPS) $(OBJS) unac.o
|
||||||
ar ru librcl.a $(OBJS) unac.o
|
ar ru librcl.a $(OBJS) unac.o
|
||||||
@ -93,6 +93,8 @@ transcode.o : ../utils/transcode.cpp
|
|||||||
$(CXX) $(ALL_CXXFLAGS) -c ../utils/transcode.cpp
|
$(CXX) $(ALL_CXXFLAGS) -c ../utils/transcode.cpp
|
||||||
wipedir.o : ../utils/wipedir.cpp
|
wipedir.o : ../utils/wipedir.cpp
|
||||||
$(CXX) $(ALL_CXXFLAGS) -c ../utils/wipedir.cpp
|
$(CXX) $(ALL_CXXFLAGS) -c ../utils/wipedir.cpp
|
||||||
|
x11mon.o : ../utils/x11mon.cpp
|
||||||
|
$(CXX) $(ALL_CXXFLAGS) -c ../utils/x11mon.cpp
|
||||||
depend: $(DEPS)
|
depend: $(DEPS)
|
||||||
clean:
|
clean:
|
||||||
rm -f $(OBJS) $(LIBS) $(DEPS) unac.o
|
rm -f $(OBJS) $(LIBS) $(DEPS) unac.o
|
||||||
@ -213,6 +215,9 @@ transcode.dep.stamp : ../utils/transcode.cpp
|
|||||||
wipedir.dep.stamp : ../utils/wipedir.cpp
|
wipedir.dep.stamp : ../utils/wipedir.cpp
|
||||||
$(CXX) -M $(ALL_CXXFLAGS) ../utils/wipedir.cpp > wipedir.dep
|
$(CXX) -M $(ALL_CXXFLAGS) ../utils/wipedir.cpp > wipedir.dep
|
||||||
touch wipedir.dep.stamp
|
touch wipedir.dep.stamp
|
||||||
|
x11mon.dep.stamp : ../utils/x11mon.cpp
|
||||||
|
$(CXX) -M $(ALL_CXXFLAGS) ../utils/x11mon.cpp > x11mon.dep
|
||||||
|
touch x11mon.dep.stamp
|
||||||
include rclaspell.dep
|
include rclaspell.dep
|
||||||
include rclconfig.dep
|
include rclconfig.dep
|
||||||
include rclinit.dep
|
include rclinit.dep
|
||||||
@ -251,3 +256,4 @@ include readfile.dep
|
|||||||
include smallut.dep
|
include smallut.dep
|
||||||
include transcode.dep
|
include transcode.dep
|
||||||
include wipedir.dep
|
include wipedir.dep
|
||||||
|
include x11mon.dep
|
||||||
|
|||||||
@ -42,6 +42,7 @@ ${depth}/utils/readfile.cpp \
|
|||||||
${depth}/utils/smallut.cpp \
|
${depth}/utils/smallut.cpp \
|
||||||
${depth}/utils/transcode.cpp \
|
${depth}/utils/transcode.cpp \
|
||||||
${depth}/utils/wipedir.cpp \
|
${depth}/utils/wipedir.cpp \
|
||||||
|
${depth}/utils/x11mon.cpp \
|
||||||
"
|
"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -7,11 +7,16 @@ INCICONV=@INCICONV@
|
|||||||
|
|
||||||
LIBFAM = @LIBFAM@
|
LIBFAM = @LIBFAM@
|
||||||
|
|
||||||
|
X_CFLAGS=@X_CFLAGS@
|
||||||
|
X_PRE_LIBS=@X_PRE_LIBS@
|
||||||
|
X_LIBS=@X_LIBS@
|
||||||
|
X_EXTRA_LIBS=@X_EXTRA_LIBS@
|
||||||
|
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
RECOLL_DATADIR = ${datadir}/recoll
|
RECOLL_DATADIR = ${datadir}/recoll
|
||||||
|
|
||||||
LOCALCXXFLAGS = $(INCICONV) $(XAPIANCXXFLAGS) \
|
LOCALCXXFLAGS = $(INCICONV) $(XAPIANCXXFLAGS) $(X_CFLAGS) \
|
||||||
-DRECOLL_DATADIR=\"$(RECOLL_DATADIR)\" @DEFS@
|
-DRECOLL_DATADIR=\"$(RECOLL_DATADIR)\" @DEFS@
|
||||||
|
|
||||||
CXXFLAGS = -g -O2 -Wall -Wno-unused
|
CXXFLAGS = -g -O2 -Wall -Wno-unused
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char rcsid[] = "@(#$Id: pathut.cpp,v 1.13 2006-12-16 15:31:51 dockes Exp $ (C) 2004 J.F.Dockes";
|
static char rcsid[] = "@(#$Id: pathut.cpp,v 1.14 2006-12-23 13:07:21 dockes Exp $ (C) 2004 J.F.Dockes";
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -91,15 +91,20 @@ TempFileInternal::TempFileInternal(const string& suffix)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mktemp(cp)) {
|
// Yes using mkstemp this way is awful (bot the suffix adding and
|
||||||
|
// using mkstemp() just to avoid the warnings)
|
||||||
|
int fd;
|
||||||
|
if ((fd = mkstemp(cp)) < 0) {
|
||||||
free(cp);
|
free(cp);
|
||||||
m_reason = "maketmpdir: mktemp failed\n";
|
m_reason = "maketmpdir: mkstemp failed\n";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
close(fd);
|
||||||
|
unlink(cp);
|
||||||
|
|
||||||
filename = cp;
|
filename = cp;
|
||||||
free(cp);
|
free(cp);
|
||||||
|
|
||||||
// Yea not right
|
|
||||||
m_filename = filename + suffix;
|
m_filename = filename + suffix;
|
||||||
if (close(open(m_filename.c_str(), O_CREAT|O_EXCL, 0600)) != 0) {
|
if (close(open(m_filename.c_str(), O_CREAT|O_EXCL, 0600)) != 0) {
|
||||||
m_reason = string("Could not open/create") + m_filename;
|
m_reason = string("Could not open/create") + m_filename;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user