A side effect of opening the cdrom device on FreeBSD is it
locks the drive. This makes cdio_get_media_changed less
useful and prevents you from being able to switch disks
when using things such as the audacious media player.
This patch simply unlocks the drive right after it's opened
prior to opening the cam passthrough device.
With this change, instead of using the fully qualified path to the
shared object (or the one that the configure think is the fully
qualified path), the path where the library is found will be added to
the search path and just a generic -liconv will be used.
The old variable would be fooled up when /usr/lib/libiconv.so is an LD
script that redirects to /lib/libiconv.so, causing failures with some
linkers.
Also, replace @LIBICONV@ for libcdio itself also with $(LTLIBICONV) or
it will fail to link against on uClibc.
sprintf's to snprintf's and check the return.
Turn check1list and check2list looping into a fixed constant number of
iterations rather than rely on a sentinal.
character arrays.
The size of sigs has increased a bit but now the sigs array can stay
entirely in .rodata section, with no runtime relocations.
Having 128 bytes sized elements also allows for direct random access
on the array without multiplications.
- MinGW doesn't have struct timespec, so udf_time.c doesn't compile
(changes lib/udf/udf_time.c, configure.ac, config.h.in)
- The configure test for bitfield ordering uses AC_TRY_RUN and thus
doesn't work when cross-compiling; use sneakiness to try and
determine it at compile time, falling back to the existing runtime
check if the sneakiness doesn't work
(changes configure.ac; tested on x86_64-linux-gnu and i586-mingw32
which are bf_lsbf=1, plus sparc64-linux-gnu which is bf_lsbf=0)
- The configure test for "extern long timezone" needlessly uses
AC_TRY_RUN when in fact AC_LINK_IFELSE is all we need to know, and
that latter works when cross-compiling
(changes configure.ac)
- MinGW sys/stat.h doesn't have the *GRP or *OTH macros, nor S_IFLNK
or S_IFSOCK, nor S_ISUID etc
(changes lib/udf/udf.c and lib/iso9660/xa.c)
- MinGW doesn't have <sys/wait.h>, so even the header-inclusion bit
of the Linux driver doesn't compile unless it's moved inside the
"ifdef HAVE_LINUX_CDROM"
(changes lib/driver/gnu_linux.c)
- Because the man pages cd-info.1 etc depend on the binaries themselves
(for help2man reasons), the configure options --without-cd-info etc
don't actually stop them being compiled. Fixed by only depending on
man pages for programs that are actually built, which also stops
the installation of man pages of programs which aren't themselves
installed
(changes src/Makefile.am)
when compiling image drivers.
nrg.c: initialize previously uninitialzied field. Bug found by Robert
William Fuller.
cvs2cl_usermap: add esdead and karl
NEWS: try to track what's been happening.
The motivation here is for example ot use in is an undocumented
debug command for LG drives (namely E7), whose length is being
miscalculated by mmc_get_cmd_len(); it doesn't follow the usual
code number to length conventions. Patch supplied by SukkoPera.