summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/libcdio/files/libcdio-0.75-freebsd.patch')
-rw-r--r--dev-libs/libcdio/files/libcdio-0.75-freebsd.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/dev-libs/libcdio/files/libcdio-0.75-freebsd.patch b/dev-libs/libcdio/files/libcdio-0.75-freebsd.patch
new file mode 100644
index 000000000000..43c25ac6445c
--- /dev/null
+++ b/dev-libs/libcdio/files/libcdio-0.75-freebsd.patch
@@ -0,0 +1,37 @@
+diff -ur -x '*~' libcdio-0.75/lib/driver/FreeBSD/freebsd_ioctl.c libcdio-0.75-fbsd/lib/driver/FreeBSD/freebsd_ioctl.c
+--- libcdio-0.75/lib/driver/FreeBSD/freebsd_ioctl.c 2005-01-27 05:00:48.000000000 +0100
++++ libcdio-0.75-fbsd/lib/driver/FreeBSD/freebsd_ioctl.c 2005-07-23 18:55:58.379631392 +0200
+@@ -140,25 +140,20 @@
+ }
+
+ /*!
+- Eject media. Return 1 if successful, 0 otherwise.
++ Eject media. Return 0 if successful, 1 otherwise.
+ */
+ int
+ eject_media_freebsd_ioctl (_img_private_t *env)
+ {
+ _img_private_t *_obj = env;
+- int ret=2;
+- int fd;
++ int ret=1;
+
+- if ((fd = open(_obj->gen.source_name, O_RDONLY|O_NONBLOCK)) > -1) {
+- ret = 1;
+- if (ioctl(fd, CDIOCALLOW) == -1) {
+- cdio_warn("ioctl(fd, CDIOCALLOW) failed: %s\n", strerror(errno));
+- } else if (ioctl(fd, CDIOCEJECT) == -1) {
+- cdio_warn("ioctl(CDIOCEJECT) failed: %s\n", strerror(errno));
+- } else {
+- ret = 0;
+- }
+- close(fd);
++ if (ioctl(_obj->gen.fd, CDIOCALLOW) == -1) {
++ cdio_warn("ioctl(fd, CDIOCALLOW) failed: %s\n", strerror(errno));
++ } else if (ioctl(_obj->gen.fd, CDIOCEJECT) == -1) {
++ cdio_warn("ioctl(CDIOCEJECT) failed: %s\n", strerror(errno));
++ } else {
++ ret=0;
+ }
+
+ return ret;