Discovered in #321. The number of argument for pa_rtpoll_run have
been changed since 6.0.
>=6.0 : int pa_rtpoll_run(pa_rtpoll *f);
<6.0 : int pa_rtpoll_run(pa_rtpoll *f, bool wait);
Check pulseaudio version by PA_CHECK_VERSION macro introduced since
pulseaudio 0.9.16. In case PA_CHECK_VERSION is not defined,
pa_rtpoll_run takes 2 arguments.
tm_mon in `struct tm` uses 0 for January.
`struct session_data` and `struct SCP_DISCONNECTED_SESSION` don't specify
how dates are stored. But considering the code in sestest and sesadmin,
all date components are stored as displayed.
libdir is for shared and static libraries. Some xrdp libraries are loaded
dynamically from a non-standard directory, so they are used like modules.
Having separate libdir and moduledir would eventually allow to separate
dynamically loaded modules from shared libraries.
That can cause unexpected behavior, especially with third party tools.
The ignored files will be lost if the source tree is re-imported to
another git repository, unless special care is taken.
Whitelist all non-generated makefiles.
To whitelist instfiles/pam.d/xrdp-sesman, add path to all generated
executables listed in the top-level .gitignore, sort .gitignore
alphabetically.
Add mkinstalldir, it's used by Automake on some systems.
Automake 1.6.x cannot deal with conditional EXTRA_LIBS. Automake 1.7 and
1.7.1 cannot deal with line continuation in SUBDIRS.
It is important to have correct requirements to know what Automake
features can be used.
Strictly speaking, both existence and readability should be checked.
However, chances of ~/.profile being a directory or a FIFO are very small
compared to its chances of being non-readable due to some
misconfiguration.
Put "if" and "then" on the same line for consistency with other checks.
Improve comment and pseudocode formatting.
Markdown is easily readable in text editors. Unlike ODT, markdown can be
patched. GitHub shows markdown with pretty formatting.
Remove bad examples. Improve explanations for good examples.
Use Unicode finger sign to work around the issue of code block after a
list.
Make coding_style.md distributable.
AC_CONFIG_MACRO_DIRS requires a very recent Automake, much newer than the
declared version 1.6 (even 1.11 doesn't work). AC_CONFIG_MACRO_DIR is
defined by Autoconf starting with version 2.58, so it's within the
currently declared constraints.
Notes about software design should not be shown as warnings to everybody
who compiles the code. Warnings should be about unexpected conditions
detected at the compile time.
Use AC_PATH_XTRA to search for X11 in configure.ac. In Makefiles, add
X_CFLAGS to AM_CFLAGS for the source compilation. Add X_LIBS to LDFLAGS.
Add X_PRE_LIBS and X_EXTRA_LIBS to LDADD.
With this patch, X Windows system is correctly detected on Mac OS X.
"make distcheck" sets prefix to a user-owned directory, compiles code and
runs "make install". That fails if systemd files need to be installed, as
their location if not relative to the prefix.
configure.ac already exists. Its timestamp doesn't need to be updated.
autoreconf takes care of the timestamps.
Since "foreign" is used in Makefile.am, no standard GNU files are
required. Distributing empty files like README could be disappointing for
the users.
Keeping separate files is more maintainable than merging them into a
single aclocal.m4 file. It is easier for users to understand where those
files come from.
Automake knows how to distribute files in the m4 directory.
AM_CPPFLAGS is for flags passed to the preprocessor, such as defines and
includes. AM_CFLAGS is for flags affecting the compiler, such as debug
and optimization settings.
INCLUDES is an obsolete name. Users can pass INCLUDES and break
compilation. AM_CPPFLAGS is more explicit that the flags come from
Automake and should not be overridden.