rbcdio 0.02 → 0.03
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +34 -1
 - data/INSTALL +26 -35
 - data/Makefile.am +17 -15
 - data/Makefile.in +54 -62
 - data/NEWS +6 -1
 - data/Rakefile +1 -1
 - data/VERSION +1 -1
 - data/config.guess +49 -43
 - data/config.sub +17 -7
 - data/configure +64 -91
 - data/configure.ac +3 -6
 - data/doc/created.rid +1 -1
 - data/example/audio.rb +13 -15
 - data/example/cd-read.rb +13 -15
 - data/example/cdchange.rb +14 -16
 - data/example/device.rb +13 -14
 - data/example/drivers.rb +13 -15
 - data/example/eject.rb +13 -14
 - data/example/iso1.rb +7 -8
 - data/example/iso2.rb +7 -8
 - data/example/iso3.rb +7 -8
 - data/example/tracks.rb +13 -14
 - data/ext/cdio/Makefile +24 -28
 - data/ext/cdio/rubycdio_wrap.c +1263 -183
 - data/ext/iso9660/Makefile +24 -28
 - data/ext/iso9660/rubyiso9660_wrap.c +1050 -176
 - data/install-sh +82 -266
 - data/lib/cdio.rb +45 -46
 - data/lib/iso9660.rb +13 -15
 - data/missing +27 -34
 - data/swig/audio.swg +12 -13
 - data/swig/compat.swg +12 -13
 - data/swig/device.swg +12 -14
 - data/swig/device_const.swg +12 -13
 - data/swig/disc.swg +12 -13
 - data/swig/read.swg +12 -14
 - data/swig/rubycdio.swg +12 -14
 - data/swig/rubyiso9660.swg +12 -14
 - data/swig/track.swg +12 -13
 - data/swig/types.swg +12 -13
 - metadata +47 -40
 
    
        data/install-sh
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            #!/bin/sh
         
     | 
| 
       2 
2 
     | 
    
         
             
            # install - install a program, script, or datafile
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
            scriptversion= 
     | 
| 
      
 4 
     | 
    
         
            +
            scriptversion=2005-05-14.22
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            # This originates from X11R5 (mit/util/scripts/install.sh), which was
         
     | 
| 
       7 
7 
     | 
    
         
             
            # later released in X11R6 (xc/config/util/install.sh) with the
         
     | 
| 
         @@ -39,24 +39,15 @@ scriptversion=2006-10-14.15 
     | 
|
| 
       39 
39 
     | 
    
         
             
            # when there is no Makefile.
         
     | 
| 
       40 
40 
     | 
    
         
             
            #
         
     | 
| 
       41 
41 
     | 
    
         
             
            # This script is compatible with the BSD install script, but was written
         
     | 
| 
       42 
     | 
    
         
            -
            # from scratch.
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
            nl='
         
     | 
| 
       45 
     | 
    
         
            -
            '
         
     | 
| 
       46 
     | 
    
         
            -
            IFS=" ""	$nl"
         
     | 
| 
      
 42 
     | 
    
         
            +
            # from scratch.  It can only install one file at a time, a restriction
         
     | 
| 
      
 43 
     | 
    
         
            +
            # shared with many OS's install programs.
         
     | 
| 
       47 
44 
     | 
    
         | 
| 
       48 
45 
     | 
    
         
             
            # set DOITPROG to echo to test this script
         
     | 
| 
       49 
46 
     | 
    
         | 
| 
       50 
47 
     | 
    
         
             
            # Don't use :- since 4.3BSD and earlier shells don't like it.
         
     | 
| 
       51 
48 
     | 
    
         
             
            doit="${DOITPROG-}"
         
     | 
| 
       52 
     | 
    
         
            -
            if test -z "$doit"; then
         
     | 
| 
       53 
     | 
    
         
            -
              doit_exec=exec
         
     | 
| 
       54 
     | 
    
         
            -
            else
         
     | 
| 
       55 
     | 
    
         
            -
              doit_exec=$doit
         
     | 
| 
       56 
     | 
    
         
            -
            fi
         
     | 
| 
       57 
49 
     | 
    
         | 
| 
       58 
     | 
    
         
            -
            #  
     | 
| 
       59 
     | 
    
         
            -
            # or use environment vars.
         
     | 
| 
      
 50 
     | 
    
         
            +
            # put in absolute paths if you don't have them in your path; or use env. vars.
         
     | 
| 
       60 
51 
     | 
    
         | 
| 
       61 
52 
     | 
    
         
             
            mvprog="${MVPROG-mv}"
         
     | 
| 
       62 
53 
     | 
    
         
             
            cpprog="${CPPROG-cp}"
         
     | 
| 
         @@ -67,13 +58,7 @@ stripprog="${STRIPPROG-strip}" 
     | 
|
| 
       67 
58 
     | 
    
         
             
            rmprog="${RMPROG-rm}"
         
     | 
| 
       68 
59 
     | 
    
         
             
            mkdirprog="${MKDIRPROG-mkdir}"
         
     | 
| 
       69 
60 
     | 
    
         | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
            posix_mkdir=
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
            # Desired mode of installed file.
         
     | 
| 
       74 
     | 
    
         
            -
            mode=0755
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
            chmodcmd=$chmodprog
         
     | 
| 
      
 61 
     | 
    
         
            +
            chmodcmd="$chmodprog 0755"
         
     | 
| 
       77 
62 
     | 
    
         
             
            chowncmd=
         
     | 
| 
       78 
63 
     | 
    
         
             
            chgrpcmd=
         
     | 
| 
       79 
64 
     | 
    
         
             
            stripcmd=
         
     | 
| 
         @@ -110,7 +95,7 @@ Environment variables override the default commands: 
     | 
|
| 
       110 
95 
     | 
    
         
             
              CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
         
     | 
| 
       111 
96 
     | 
    
         
             
            "
         
     | 
| 
       112 
97 
     | 
    
         | 
| 
       113 
     | 
    
         
            -
            while test  
     | 
| 
      
 98 
     | 
    
         
            +
            while test -n "$1"; do
         
     | 
| 
       114 
99 
     | 
    
         
             
              case $1 in
         
     | 
| 
       115 
100 
     | 
    
         
             
                -c) shift
         
     | 
| 
       116 
101 
     | 
    
         
             
                    continue;;
         
     | 
| 
         @@ -126,15 +111,9 @@ while test $# -ne 0; do 
     | 
|
| 
       126 
111 
     | 
    
         | 
| 
       127 
112 
     | 
    
         
             
                --help) echo "$usage"; exit $?;;
         
     | 
| 
       128 
113 
     | 
    
         | 
| 
       129 
     | 
    
         
            -
                -m)  
     | 
| 
      
 114 
     | 
    
         
            +
                -m) chmodcmd="$chmodprog $2"
         
     | 
| 
       130 
115 
     | 
    
         
             
                    shift
         
     | 
| 
       131 
116 
     | 
    
         
             
                    shift
         
     | 
| 
       132 
     | 
    
         
            -
            	case $mode in
         
     | 
| 
       133 
     | 
    
         
            -
            	  *' '* | *'	'* | *'
         
     | 
| 
       134 
     | 
    
         
            -
            '*	  | *'*'* | *'?'* | *'['*)
         
     | 
| 
       135 
     | 
    
         
            -
            	    echo "$0: invalid mode: $mode" >&2
         
     | 
| 
       136 
     | 
    
         
            -
            	    exit 1;;
         
     | 
| 
       137 
     | 
    
         
            -
            	esac
         
     | 
| 
       138 
117 
     | 
    
         
             
                    continue;;
         
     | 
| 
       139 
118 
     | 
    
         | 
| 
       140 
119 
     | 
    
         
             
                -o) chowncmd="$chownprog $2"
         
     | 
| 
         @@ -157,33 +136,25 @@ while test $# -ne 0; do 
     | 
|
| 
       157 
136 
     | 
    
         | 
| 
       158 
137 
     | 
    
         
             
                --version) echo "$0 $scriptversion"; exit $?;;
         
     | 
| 
       159 
138 
     | 
    
         | 
| 
       160 
     | 
    
         
            -
                 
     | 
| 
      
 139 
     | 
    
         
            +
                *)  # When -d is used, all remaining arguments are directories to create.
         
     | 
| 
      
 140 
     | 
    
         
            +
            	# When -t is used, the destination is already specified.
         
     | 
| 
      
 141 
     | 
    
         
            +
            	test -n "$dir_arg$dstarg" && break
         
     | 
| 
      
 142 
     | 
    
         
            +
                    # Otherwise, the last argument is the destination.  Remove it from $@.
         
     | 
| 
      
 143 
     | 
    
         
            +
            	for arg
         
     | 
| 
      
 144 
     | 
    
         
            +
            	do
         
     | 
| 
      
 145 
     | 
    
         
            +
                      if test -n "$dstarg"; then
         
     | 
| 
      
 146 
     | 
    
         
            +
            	    # $@ is not empty: it contains at least $arg.
         
     | 
| 
      
 147 
     | 
    
         
            +
            	    set fnord "$@" "$dstarg"
         
     | 
| 
      
 148 
     | 
    
         
            +
            	    shift # fnord
         
     | 
| 
      
 149 
     | 
    
         
            +
            	  fi
         
     | 
| 
      
 150 
     | 
    
         
            +
            	  shift # arg
         
     | 
| 
      
 151 
     | 
    
         
            +
            	  dstarg=$arg
         
     | 
| 
      
 152 
     | 
    
         
            +
            	done
         
     | 
| 
       161 
153 
     | 
    
         
             
            	break;;
         
     | 
| 
       162 
     | 
    
         
            -
             
     | 
| 
       163 
     | 
    
         
            -
                -*)	echo "$0: invalid option: $1" >&2
         
     | 
| 
       164 
     | 
    
         
            -
            	exit 1;;
         
     | 
| 
       165 
     | 
    
         
            -
             
     | 
| 
       166 
     | 
    
         
            -
                *)  break;;
         
     | 
| 
       167 
154 
     | 
    
         
             
              esac
         
     | 
| 
       168 
155 
     | 
    
         
             
            done
         
     | 
| 
       169 
156 
     | 
    
         | 
| 
       170 
     | 
    
         
            -
            if test  
     | 
| 
       171 
     | 
    
         
            -
              # When -d is used, all remaining arguments are directories to create.
         
     | 
| 
       172 
     | 
    
         
            -
              # When -t is used, the destination is already specified.
         
     | 
| 
       173 
     | 
    
         
            -
              # Otherwise, the last argument is the destination.  Remove it from $@.
         
     | 
| 
       174 
     | 
    
         
            -
              for arg
         
     | 
| 
       175 
     | 
    
         
            -
              do
         
     | 
| 
       176 
     | 
    
         
            -
                if test -n "$dstarg"; then
         
     | 
| 
       177 
     | 
    
         
            -
                  # $@ is not empty: it contains at least $arg.
         
     | 
| 
       178 
     | 
    
         
            -
                  set fnord "$@" "$dstarg"
         
     | 
| 
       179 
     | 
    
         
            -
                  shift # fnord
         
     | 
| 
       180 
     | 
    
         
            -
                fi
         
     | 
| 
       181 
     | 
    
         
            -
                shift # arg
         
     | 
| 
       182 
     | 
    
         
            -
                dstarg=$arg
         
     | 
| 
       183 
     | 
    
         
            -
              done
         
     | 
| 
       184 
     | 
    
         
            -
            fi
         
     | 
| 
       185 
     | 
    
         
            -
             
     | 
| 
       186 
     | 
    
         
            -
            if test $# -eq 0; then
         
     | 
| 
      
 157 
     | 
    
         
            +
            if test -z "$1"; then
         
     | 
| 
       187 
158 
     | 
    
         
             
              if test -z "$dir_arg"; then
         
     | 
| 
       188 
159 
     | 
    
         
             
                echo "$0: no input file specified." >&2
         
     | 
| 
       189 
160 
     | 
    
         
             
                exit 1
         
     | 
| 
         @@ -193,33 +164,6 @@ if test $# -eq 0; then 
     | 
|
| 
       193 
164 
     | 
    
         
             
              exit 0
         
     | 
| 
       194 
165 
     | 
    
         
             
            fi
         
     | 
| 
       195 
166 
     | 
    
         | 
| 
       196 
     | 
    
         
            -
            if test -z "$dir_arg"; then
         
     | 
| 
       197 
     | 
    
         
            -
              trap '(exit $?); exit' 1 2 13 15
         
     | 
| 
       198 
     | 
    
         
            -
             
     | 
| 
       199 
     | 
    
         
            -
              # Set umask so as not to create temps with too-generous modes.
         
     | 
| 
       200 
     | 
    
         
            -
              # However, 'strip' requires both read and write access to temps.
         
     | 
| 
       201 
     | 
    
         
            -
              case $mode in
         
     | 
| 
       202 
     | 
    
         
            -
                # Optimize common cases.
         
     | 
| 
       203 
     | 
    
         
            -
                *644) cp_umask=133;;
         
     | 
| 
       204 
     | 
    
         
            -
                *755) cp_umask=22;;
         
     | 
| 
       205 
     | 
    
         
            -
             
     | 
| 
       206 
     | 
    
         
            -
                *[0-7])
         
     | 
| 
       207 
     | 
    
         
            -
                  if test -z "$stripcmd"; then
         
     | 
| 
       208 
     | 
    
         
            -
            	u_plus_rw=
         
     | 
| 
       209 
     | 
    
         
            -
                  else
         
     | 
| 
       210 
     | 
    
         
            -
            	u_plus_rw='% 200'
         
     | 
| 
       211 
     | 
    
         
            -
                  fi
         
     | 
| 
       212 
     | 
    
         
            -
                  cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
         
     | 
| 
       213 
     | 
    
         
            -
                *)
         
     | 
| 
       214 
     | 
    
         
            -
                  if test -z "$stripcmd"; then
         
     | 
| 
       215 
     | 
    
         
            -
            	u_plus_rw=
         
     | 
| 
       216 
     | 
    
         
            -
                  else
         
     | 
| 
       217 
     | 
    
         
            -
            	u_plus_rw=,u+rw
         
     | 
| 
       218 
     | 
    
         
            -
                  fi
         
     | 
| 
       219 
     | 
    
         
            -
                  cp_umask=$mode$u_plus_rw;;
         
     | 
| 
       220 
     | 
    
         
            -
              esac
         
     | 
| 
       221 
     | 
    
         
            -
            fi
         
     | 
| 
       222 
     | 
    
         
            -
             
     | 
| 
       223 
167 
     | 
    
         
             
            for src
         
     | 
| 
       224 
168 
     | 
    
         
             
            do
         
     | 
| 
       225 
169 
     | 
    
         
             
              # Protect names starting with `-'.
         
     | 
| 
         @@ -229,11 +173,15 @@ do 
     | 
|
| 
       229 
173 
     | 
    
         | 
| 
       230 
174 
     | 
    
         
             
              if test -n "$dir_arg"; then
         
     | 
| 
       231 
175 
     | 
    
         
             
                dst=$src
         
     | 
| 
       232 
     | 
    
         
            -
                 
     | 
| 
       233 
     | 
    
         
            -
                test -d "$dstdir"
         
     | 
| 
       234 
     | 
    
         
            -
                dstdir_status=$?
         
     | 
| 
       235 
     | 
    
         
            -
              else
         
     | 
| 
      
 176 
     | 
    
         
            +
                src=
         
     | 
| 
       236 
177 
     | 
    
         | 
| 
      
 178 
     | 
    
         
            +
                if test -d "$dst"; then
         
     | 
| 
      
 179 
     | 
    
         
            +
                  mkdircmd=:
         
     | 
| 
      
 180 
     | 
    
         
            +
                  chmodcmd=
         
     | 
| 
      
 181 
     | 
    
         
            +
                else
         
     | 
| 
      
 182 
     | 
    
         
            +
                  mkdircmd=$mkdirprog
         
     | 
| 
      
 183 
     | 
    
         
            +
                fi
         
     | 
| 
      
 184 
     | 
    
         
            +
              else
         
     | 
| 
       237 
185 
     | 
    
         
             
                # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
         
     | 
| 
       238 
186 
     | 
    
         
             
                # might cause directories to be created, which would be especially bad
         
     | 
| 
       239 
187 
     | 
    
         
             
                # if $src (and thus $dsttmp) contains '*'.
         
     | 
| 
         @@ -260,188 +208,53 @@ do 
     | 
|
| 
       260 
208 
     | 
    
         
             
            	echo "$0: $dstarg: Is a directory" >&2
         
     | 
| 
       261 
209 
     | 
    
         
             
            	exit 1
         
     | 
| 
       262 
210 
     | 
    
         
             
                  fi
         
     | 
| 
       263 
     | 
    
         
            -
                   
     | 
| 
       264 
     | 
    
         
            -
                  dst=$dstdir/`basename "$src"`
         
     | 
| 
       265 
     | 
    
         
            -
                  dstdir_status=0
         
     | 
| 
       266 
     | 
    
         
            -
                else
         
     | 
| 
       267 
     | 
    
         
            -
                  # Prefer dirname, but fall back on a substitute if dirname fails.
         
     | 
| 
       268 
     | 
    
         
            -
                  dstdir=`
         
     | 
| 
       269 
     | 
    
         
            -
            	(dirname "$dst") 2>/dev/null ||
         
     | 
| 
       270 
     | 
    
         
            -
            	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
         
     | 
| 
       271 
     | 
    
         
            -
            	     X"$dst" : 'X\(//\)[^/]' \| \
         
     | 
| 
       272 
     | 
    
         
            -
            	     X"$dst" : 'X\(//\)$' \| \
         
     | 
| 
       273 
     | 
    
         
            -
            	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
         
     | 
| 
       274 
     | 
    
         
            -
            	echo X"$dst" |
         
     | 
| 
       275 
     | 
    
         
            -
            	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
         
     | 
| 
       276 
     | 
    
         
            -
            		   s//\1/
         
     | 
| 
       277 
     | 
    
         
            -
            		   q
         
     | 
| 
       278 
     | 
    
         
            -
            		 }
         
     | 
| 
       279 
     | 
    
         
            -
            		 /^X\(\/\/\)[^/].*/{
         
     | 
| 
       280 
     | 
    
         
            -
            		   s//\1/
         
     | 
| 
       281 
     | 
    
         
            -
            		   q
         
     | 
| 
       282 
     | 
    
         
            -
            		 }
         
     | 
| 
       283 
     | 
    
         
            -
            		 /^X\(\/\/\)$/{
         
     | 
| 
       284 
     | 
    
         
            -
            		   s//\1/
         
     | 
| 
       285 
     | 
    
         
            -
            		   q
         
     | 
| 
       286 
     | 
    
         
            -
            		 }
         
     | 
| 
       287 
     | 
    
         
            -
            		 /^X\(\/\).*/{
         
     | 
| 
       288 
     | 
    
         
            -
            		   s//\1/
         
     | 
| 
       289 
     | 
    
         
            -
            		   q
         
     | 
| 
       290 
     | 
    
         
            -
            		 }
         
     | 
| 
       291 
     | 
    
         
            -
            		 s/.*/./; q'
         
     | 
| 
       292 
     | 
    
         
            -
                  `
         
     | 
| 
       293 
     | 
    
         
            -
             
     | 
| 
       294 
     | 
    
         
            -
                  test -d "$dstdir"
         
     | 
| 
       295 
     | 
    
         
            -
                  dstdir_status=$?
         
     | 
| 
      
 211 
     | 
    
         
            +
                  dst=$dst/`basename "$src"`
         
     | 
| 
       296 
212 
     | 
    
         
             
                fi
         
     | 
| 
       297 
213 
     | 
    
         
             
              fi
         
     | 
| 
       298 
214 
     | 
    
         | 
| 
       299 
     | 
    
         
            -
               
     | 
| 
       300 
     | 
    
         
            -
             
     | 
| 
       301 
     | 
    
         
            -
              if test $dstdir_status != 0; then
         
     | 
| 
       302 
     | 
    
         
            -
                case $posix_mkdir in
         
     | 
| 
       303 
     | 
    
         
            -
                  '')
         
     | 
| 
       304 
     | 
    
         
            -
            	# Create intermediate dirs using mode 755 as modified by the umask.
         
     | 
| 
       305 
     | 
    
         
            -
            	# This is like FreeBSD 'install' as of 1997-10-28.
         
     | 
| 
       306 
     | 
    
         
            -
            	umask=`umask`
         
     | 
| 
       307 
     | 
    
         
            -
            	case $stripcmd.$umask in
         
     | 
| 
       308 
     | 
    
         
            -
            	  # Optimize common cases.
         
     | 
| 
       309 
     | 
    
         
            -
            	  *[2367][2367]) mkdir_umask=$umask;;
         
     | 
| 
       310 
     | 
    
         
            -
            	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
         
     | 
| 
       311 
     | 
    
         
            -
             
     | 
| 
       312 
     | 
    
         
            -
            	  *[0-7])
         
     | 
| 
       313 
     | 
    
         
            -
            	    mkdir_umask=`expr $umask + 22 \
         
     | 
| 
       314 
     | 
    
         
            -
            	      - $umask % 100 % 40 + $umask % 20 \
         
     | 
| 
       315 
     | 
    
         
            -
            	      - $umask % 10 % 4 + $umask % 2
         
     | 
| 
       316 
     | 
    
         
            -
            	    `;;
         
     | 
| 
       317 
     | 
    
         
            -
            	  *) mkdir_umask=$umask,go-w;;
         
     | 
| 
       318 
     | 
    
         
            -
            	esac
         
     | 
| 
       319 
     | 
    
         
            -
             
     | 
| 
       320 
     | 
    
         
            -
            	# With -d, create the new directory with the user-specified mode.
         
     | 
| 
       321 
     | 
    
         
            -
            	# Otherwise, rely on $mkdir_umask.
         
     | 
| 
       322 
     | 
    
         
            -
            	if test -n "$dir_arg"; then
         
     | 
| 
       323 
     | 
    
         
            -
            	  mkdir_mode=-m$mode
         
     | 
| 
       324 
     | 
    
         
            -
            	else
         
     | 
| 
       325 
     | 
    
         
            -
            	  mkdir_mode=
         
     | 
| 
       326 
     | 
    
         
            -
            	fi
         
     | 
| 
       327 
     | 
    
         
            -
             
     | 
| 
       328 
     | 
    
         
            -
            	posix_mkdir=false
         
     | 
| 
       329 
     | 
    
         
            -
            	case $umask in
         
     | 
| 
       330 
     | 
    
         
            -
            	  *[123567][0-7][0-7])
         
     | 
| 
       331 
     | 
    
         
            -
            	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
         
     | 
| 
       332 
     | 
    
         
            -
            	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
         
     | 
| 
       333 
     | 
    
         
            -
            	    ;;
         
     | 
| 
       334 
     | 
    
         
            -
            	  *)
         
     | 
| 
       335 
     | 
    
         
            -
            	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
         
     | 
| 
       336 
     | 
    
         
            -
            	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
         
     | 
| 
       337 
     | 
    
         
            -
             
     | 
| 
       338 
     | 
    
         
            -
            	    if (umask $mkdir_umask &&
         
     | 
| 
       339 
     | 
    
         
            -
            		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
         
     | 
| 
       340 
     | 
    
         
            -
            	    then
         
     | 
| 
       341 
     | 
    
         
            -
            	      if test -z "$dir_arg" || {
         
     | 
| 
       342 
     | 
    
         
            -
            		   # Check for POSIX incompatibilities with -m.
         
     | 
| 
       343 
     | 
    
         
            -
            		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
         
     | 
| 
       344 
     | 
    
         
            -
            		   # other-writeable bit of parent directory when it shouldn't.
         
     | 
| 
       345 
     | 
    
         
            -
            		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
         
     | 
| 
       346 
     | 
    
         
            -
            		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
         
     | 
| 
       347 
     | 
    
         
            -
            		   case $ls_ld_tmpdir in
         
     | 
| 
       348 
     | 
    
         
            -
            		     d????-?r-*) different_mode=700;;
         
     | 
| 
       349 
     | 
    
         
            -
            		     d????-?--*) different_mode=755;;
         
     | 
| 
       350 
     | 
    
         
            -
            		     *) false;;
         
     | 
| 
       351 
     | 
    
         
            -
            		   esac &&
         
     | 
| 
       352 
     | 
    
         
            -
            		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
         
     | 
| 
       353 
     | 
    
         
            -
            		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
         
     | 
| 
       354 
     | 
    
         
            -
            		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
         
     | 
| 
       355 
     | 
    
         
            -
            		   }
         
     | 
| 
       356 
     | 
    
         
            -
            		 }
         
     | 
| 
       357 
     | 
    
         
            -
            	      then posix_mkdir=:
         
     | 
| 
       358 
     | 
    
         
            -
            	      fi
         
     | 
| 
       359 
     | 
    
         
            -
            	      rmdir "$tmpdir/d" "$tmpdir"
         
     | 
| 
       360 
     | 
    
         
            -
            	    else
         
     | 
| 
       361 
     | 
    
         
            -
            	      # Remove any dirs left behind by ancient mkdir implementations.
         
     | 
| 
       362 
     | 
    
         
            -
            	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
         
     | 
| 
       363 
     | 
    
         
            -
            	    fi
         
     | 
| 
       364 
     | 
    
         
            -
            	    trap '' 0;;
         
     | 
| 
       365 
     | 
    
         
            -
            	esac;;
         
     | 
| 
       366 
     | 
    
         
            -
                esac
         
     | 
| 
      
 215 
     | 
    
         
            +
              # This sed command emulates the dirname command.
         
     | 
| 
      
 216 
     | 
    
         
            +
              dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
         
     | 
| 
       367 
217 
     | 
    
         | 
| 
       368 
     | 
    
         
            -
             
     | 
| 
       369 
     | 
    
         
            -
             
     | 
| 
       370 
     | 
    
         
            -
             
     | 
| 
       371 
     | 
    
         
            -
             
     | 
| 
       372 
     | 
    
         
            -
             
     | 
| 
       373 
     | 
    
         
            -
             
     | 
| 
       374 
     | 
    
         
            -
                 
     | 
| 
      
 218 
     | 
    
         
            +
              # Make sure that the destination directory exists.
         
     | 
| 
      
 219 
     | 
    
         
            +
             
     | 
| 
      
 220 
     | 
    
         
            +
              # Skip lots of stat calls in the usual case.
         
     | 
| 
      
 221 
     | 
    
         
            +
              if test ! -d "$dstdir"; then
         
     | 
| 
      
 222 
     | 
    
         
            +
                defaultIFS='
         
     | 
| 
      
 223 
     | 
    
         
            +
            	 '
         
     | 
| 
      
 224 
     | 
    
         
            +
                IFS="${IFS-$defaultIFS}"
         
     | 
| 
       375 
225 
     | 
    
         | 
| 
       376 
     | 
    
         
            -
             
     | 
| 
       377 
     | 
    
         
            -
             
     | 
| 
       378 
     | 
    
         
            -
             
     | 
| 
       379 
     | 
    
         
            -
             
     | 
| 
       380 
     | 
    
         
            -
             
     | 
| 
       381 
     | 
    
         
            -
             
     | 
| 
       382 
     | 
    
         
            -
             
     | 
| 
       383 
     | 
    
         
            -
             
     | 
| 
       384 
     | 
    
         
            -
             
     | 
| 
       385 
     | 
    
         
            -
             
     | 
| 
       386 
     | 
    
         
            -
                   
     | 
| 
       387 
     | 
    
         
            -
                    '')
         
     | 
| 
       388 
     | 
    
         
            -
            	  if (set -f) 2>/dev/null; then
         
     | 
| 
       389 
     | 
    
         
            -
            	    posix_glob=true
         
     | 
| 
       390 
     | 
    
         
            -
            	  else
         
     | 
| 
       391 
     | 
    
         
            -
            	    posix_glob=false
         
     | 
| 
       392 
     | 
    
         
            -
            	  fi ;;
         
     | 
| 
       393 
     | 
    
         
            -
                  esac
         
     | 
| 
       394 
     | 
    
         
            -
             
     | 
| 
       395 
     | 
    
         
            -
                  oIFS=$IFS
         
     | 
| 
       396 
     | 
    
         
            -
                  IFS=/
         
     | 
| 
       397 
     | 
    
         
            -
                  $posix_glob && set -f
         
     | 
| 
       398 
     | 
    
         
            -
                  set fnord $dstdir
         
     | 
| 
      
 226 
     | 
    
         
            +
                oIFS=$IFS
         
     | 
| 
      
 227 
     | 
    
         
            +
                # Some sh's can't handle IFS=/ for some reason.
         
     | 
| 
      
 228 
     | 
    
         
            +
                IFS='%'
         
     | 
| 
      
 229 
     | 
    
         
            +
                set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
         
     | 
| 
      
 230 
     | 
    
         
            +
                shift
         
     | 
| 
      
 231 
     | 
    
         
            +
                IFS=$oIFS
         
     | 
| 
      
 232 
     | 
    
         
            +
             
     | 
| 
      
 233 
     | 
    
         
            +
                pathcomp=
         
     | 
| 
      
 234 
     | 
    
         
            +
             
     | 
| 
      
 235 
     | 
    
         
            +
                while test $# -ne 0 ; do
         
     | 
| 
      
 236 
     | 
    
         
            +
                  pathcomp=$pathcomp$1
         
     | 
| 
       399 
237 
     | 
    
         
             
                  shift
         
     | 
| 
       400 
     | 
    
         
            -
                   
     | 
| 
       401 
     | 
    
         
            -
             
     | 
| 
       402 
     | 
    
         
            -
             
     | 
| 
       403 
     | 
    
         
            -
             
     | 
| 
       404 
     | 
    
         
            -
             
     | 
| 
       405 
     | 
    
         
            -
             
     | 
| 
       406 
     | 
    
         
            -
                  do
         
     | 
| 
       407 
     | 
    
         
            -
            	test -z "$d" && continue
         
     | 
| 
       408 
     | 
    
         
            -
             
     | 
| 
       409 
     | 
    
         
            -
            	prefix=$prefix$d
         
     | 
| 
       410 
     | 
    
         
            -
            	if test -d "$prefix"; then
         
     | 
| 
       411 
     | 
    
         
            -
            	  prefixes=
         
     | 
| 
       412 
     | 
    
         
            -
            	else
         
     | 
| 
       413 
     | 
    
         
            -
            	  if $posix_mkdir; then
         
     | 
| 
       414 
     | 
    
         
            -
            	    (umask=$mkdir_umask &&
         
     | 
| 
       415 
     | 
    
         
            -
            	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
         
     | 
| 
       416 
     | 
    
         
            -
            	    # Don't fail if two instances are running concurrently.
         
     | 
| 
       417 
     | 
    
         
            -
            	    test -d "$prefix" || exit 1
         
     | 
| 
       418 
     | 
    
         
            -
            	  else
         
     | 
| 
       419 
     | 
    
         
            -
            	    case $prefix in
         
     | 
| 
       420 
     | 
    
         
            -
            	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
         
     | 
| 
       421 
     | 
    
         
            -
            	      *) qprefix=$prefix;;
         
     | 
| 
       422 
     | 
    
         
            -
            	    esac
         
     | 
| 
       423 
     | 
    
         
            -
            	    prefixes="$prefixes '$qprefix'"
         
     | 
| 
       424 
     | 
    
         
            -
            	  fi
         
     | 
| 
       425 
     | 
    
         
            -
            	fi
         
     | 
| 
       426 
     | 
    
         
            -
            	prefix=$prefix/
         
     | 
| 
       427 
     | 
    
         
            -
                  done
         
     | 
| 
       428 
     | 
    
         
            -
             
     | 
| 
       429 
     | 
    
         
            -
                  if test -n "$prefixes"; then
         
     | 
| 
       430 
     | 
    
         
            -
            	# Don't fail if two instances are running concurrently.
         
     | 
| 
       431 
     | 
    
         
            -
            	(umask $mkdir_umask &&
         
     | 
| 
       432 
     | 
    
         
            -
            	 eval "\$doit_exec \$mkdirprog $prefixes") ||
         
     | 
| 
       433 
     | 
    
         
            -
            	  test -d "$dstdir" || exit 1
         
     | 
| 
       434 
     | 
    
         
            -
            	obsolete_mkdir_used=true
         
     | 
| 
      
 238 
     | 
    
         
            +
                  if test ! -d "$pathcomp"; then
         
     | 
| 
      
 239 
     | 
    
         
            +
                    $mkdirprog "$pathcomp"
         
     | 
| 
      
 240 
     | 
    
         
            +
            	# mkdir can fail with a `File exist' error in case several
         
     | 
| 
      
 241 
     | 
    
         
            +
            	# install-sh are creating the directory concurrently.  This
         
     | 
| 
      
 242 
     | 
    
         
            +
            	# is OK.
         
     | 
| 
      
 243 
     | 
    
         
            +
            	test -d "$pathcomp" || exit
         
     | 
| 
       435 
244 
     | 
    
         
             
                  fi
         
     | 
| 
       436 
     | 
    
         
            -
             
     | 
| 
      
 245 
     | 
    
         
            +
                  pathcomp=$pathcomp/
         
     | 
| 
      
 246 
     | 
    
         
            +
                done
         
     | 
| 
       437 
247 
     | 
    
         
             
              fi
         
     | 
| 
       438 
248 
     | 
    
         | 
| 
       439 
249 
     | 
    
         
             
              if test -n "$dir_arg"; then
         
     | 
| 
       440 
     | 
    
         
            -
                 
     | 
| 
       441 
     | 
    
         
            -
             
     | 
| 
       442 
     | 
    
         
            -
             
     | 
| 
       443 
     | 
    
         
            -
                  test -z "$ 
     | 
| 
      
 250 
     | 
    
         
            +
                $doit $mkdircmd "$dst" \
         
     | 
| 
      
 251 
     | 
    
         
            +
                  && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
         
     | 
| 
      
 252 
     | 
    
         
            +
                  && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
         
     | 
| 
      
 253 
     | 
    
         
            +
                  && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
         
     | 
| 
      
 254 
     | 
    
         
            +
                  && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
         
     | 
| 
      
 255 
     | 
    
         
            +
             
     | 
| 
       444 
256 
     | 
    
         
             
              else
         
     | 
| 
      
 257 
     | 
    
         
            +
                dstfile=`basename "$dst"`
         
     | 
| 
       445 
258 
     | 
    
         | 
| 
       446 
259 
     | 
    
         
             
                # Make a couple of temp file names in the proper directory.
         
     | 
| 
       447 
260 
     | 
    
         
             
                dsttmp=$dstdir/_inst.$$_
         
     | 
| 
         @@ -449,9 +262,10 @@ do 
     | 
|
| 
       449 
262 
     | 
    
         | 
| 
       450 
263 
     | 
    
         
             
                # Trap to clean up those temp files at exit.
         
     | 
| 
       451 
264 
     | 
    
         
             
                trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
         
     | 
| 
      
 265 
     | 
    
         
            +
                trap '(exit $?); exit' 1 2 13 15
         
     | 
| 
       452 
266 
     | 
    
         | 
| 
       453 
267 
     | 
    
         
             
                # Copy the file name to the temp name.
         
     | 
| 
       454 
     | 
    
         
            -
                 
     | 
| 
      
 268 
     | 
    
         
            +
                $doit $cpprog "$src" "$dsttmp" &&
         
     | 
| 
       455 
269 
     | 
    
         | 
| 
       456 
270 
     | 
    
         
             
                # and set any options; do chmod last to preserve setuid bits.
         
     | 
| 
       457 
271 
     | 
    
         
             
                #
         
     | 
| 
         @@ -462,10 +276,10 @@ do 
     | 
|
| 
       462 
276 
     | 
    
         
             
                { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
         
     | 
| 
       463 
277 
     | 
    
         
             
                  && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
         
     | 
| 
       464 
278 
     | 
    
         
             
                  && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
         
     | 
| 
       465 
     | 
    
         
            -
                  && { test -z "$chmodcmd" || $doit $chmodcmd  
     | 
| 
      
 279 
     | 
    
         
            +
                  && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
         
     | 
| 
       466 
280 
     | 
    
         | 
| 
       467 
281 
     | 
    
         
             
                # Now rename the file to the real destination.
         
     | 
| 
       468 
     | 
    
         
            -
                { $doit $mvcmd -f "$dsttmp" "$ 
     | 
| 
      
 282 
     | 
    
         
            +
                { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
         
     | 
| 
       469 
283 
     | 
    
         
             
                  || {
         
     | 
| 
       470 
284 
     | 
    
         
             
            	   # The rename failed, perhaps because mv can't rename something else
         
     | 
| 
       471 
285 
     | 
    
         
             
            	   # to itself, or perhaps because mv is so ancient that it does not
         
     | 
| 
         @@ -477,12 +291,11 @@ do 
     | 
|
| 
       477 
291 
     | 
    
         
             
            	   # reasons.  In this case, the final cleanup might fail but the new
         
     | 
| 
       478 
292 
     | 
    
         
             
            	   # file should still install successfully.
         
     | 
| 
       479 
293 
     | 
    
         
             
            	   {
         
     | 
| 
       480 
     | 
    
         
            -
            	     if test -f "$ 
     | 
| 
       481 
     | 
    
         
            -
            	       $doit $rmcmd -f "$ 
     | 
| 
       482 
     | 
    
         
            -
            	       ||  
     | 
| 
       483 
     | 
    
         
            -
            		     && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
         
     | 
| 
      
 294 
     | 
    
         
            +
            	     if test -f "$dstdir/$dstfile"; then
         
     | 
| 
      
 295 
     | 
    
         
            +
            	       $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
         
     | 
| 
      
 296 
     | 
    
         
            +
            	       || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
         
     | 
| 
       484 
297 
     | 
    
         
             
            	       || {
         
     | 
| 
       485 
     | 
    
         
            -
            		 echo "$0: cannot unlink or rename $ 
     | 
| 
      
 298 
     | 
    
         
            +
            		 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
         
     | 
| 
       486 
299 
     | 
    
         
             
            		 (exit 1); exit 1
         
     | 
| 
       487 
300 
     | 
    
         
             
            	       }
         
     | 
| 
       488 
301 
     | 
    
         
             
            	     else
         
     | 
| 
         @@ -491,14 +304,17 @@ do 
     | 
|
| 
       491 
304 
     | 
    
         
             
            	   } &&
         
     | 
| 
       492 
305 
     | 
    
         | 
| 
       493 
306 
     | 
    
         
             
            	   # Now rename the file to the real destination.
         
     | 
| 
       494 
     | 
    
         
            -
            	   $doit $mvcmd "$dsttmp" "$ 
     | 
| 
      
 307 
     | 
    
         
            +
            	   $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
         
     | 
| 
       495 
308 
     | 
    
         
             
            	 }
         
     | 
| 
       496 
     | 
    
         
            -
                } 
     | 
| 
       497 
     | 
    
         
            -
             
     | 
| 
       498 
     | 
    
         
            -
                trap '' 0
         
     | 
| 
       499 
     | 
    
         
            -
              fi
         
     | 
| 
      
 309 
     | 
    
         
            +
                }
         
     | 
| 
      
 310 
     | 
    
         
            +
              fi || { (exit 1); exit 1; }
         
     | 
| 
       500 
311 
     | 
    
         
             
            done
         
     | 
| 
       501 
312 
     | 
    
         | 
| 
      
 313 
     | 
    
         
            +
            # The final little trick to "correctly" pass the exit status to the exit trap.
         
     | 
| 
      
 314 
     | 
    
         
            +
            {
         
     | 
| 
      
 315 
     | 
    
         
            +
              (exit 0); exit 0
         
     | 
| 
      
 316 
     | 
    
         
            +
            }
         
     | 
| 
      
 317 
     | 
    
         
            +
             
     | 
| 
       502 
318 
     | 
    
         
             
            # Local variables:
         
     | 
| 
       503 
319 
     | 
    
         
             
            # eval: (add-hook 'write-file-hooks 'time-stamp)
         
     | 
| 
       504 
320 
     | 
    
         
             
            # time-stamp-start: "scriptversion="
         
     | 
    
        data/lib/cdio.rb
    CHANGED
    
    | 
         @@ -1,23 +1,21 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            #!/usr/bin/env ruby
         
     | 
| 
       2 
     | 
    
         
            -
            # $Id: cdio.rb,v 1. 
     | 
| 
      
 2 
     | 
    
         
            +
            # $Id: cdio.rb,v 1.21 2008/05/02 13:05:40 karl Exp $
         
     | 
| 
       3 
3 
     | 
    
         
             
            #
         
     | 
| 
       4 
     | 
    
         
            -
            # 
     | 
| 
      
 4 
     | 
    
         
            +
            #  Copyright (C) 2006, 2007, 2008 Rocky Bernstein <rocky@gnu.org>
         
     | 
| 
       5 
5 
     | 
    
         
             
            #
         
     | 
| 
       6 
     | 
    
         
            -
            # 
     | 
| 
       7 
     | 
    
         
            -
            # 
     | 
| 
       8 
     | 
    
         
            -
            # 
     | 
| 
       9 
     | 
    
         
            -
            # 
     | 
| 
      
 6 
     | 
    
         
            +
            #  This program is free software: you can redistribute it and/or modify
         
     | 
| 
      
 7 
     | 
    
         
            +
            #  it under the terms of the GNU General Public License as published by
         
     | 
| 
      
 8 
     | 
    
         
            +
            #  the Free Software Foundation, either version 3 of the License, or
         
     | 
| 
      
 9 
     | 
    
         
            +
            #  (at your option) any later version.
         
     | 
| 
       10 
10 
     | 
    
         
             
            #
         
     | 
| 
       11 
     | 
    
         
            -
            # 
     | 
| 
       12 
     | 
    
         
            -
            # 
     | 
| 
       13 
     | 
    
         
            -
            # 
     | 
| 
       14 
     | 
    
         
            -
            # 
     | 
| 
       15 
     | 
    
         
            -
            #
         
     | 
| 
       16 
     | 
    
         
            -
            #    You should have received a copy of the GNU General Public License
         
     | 
| 
       17 
     | 
    
         
            -
            #    along with this program; if not, write to the Free Software
         
     | 
| 
       18 
     | 
    
         
            -
            #    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
         
     | 
| 
       19 
     | 
    
         
            -
            #    02110-1301 USA.
         
     | 
| 
      
 11 
     | 
    
         
            +
            #  This program is distributed in the hope that it will be useful,
         
     | 
| 
      
 12 
     | 
    
         
            +
            #  but WITHOUT ANY WARRANTY; without even the implied warranty of
         
     | 
| 
      
 13 
     | 
    
         
            +
            #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
         
     | 
| 
      
 14 
     | 
    
         
            +
            #  GNU General Public License for more details.
         
     | 
| 
       20 
15 
     | 
    
         
             
            #
         
     | 
| 
      
 16 
     | 
    
         
            +
            #  You should have received a copy of the GNU General Public License
         
     | 
| 
      
 17 
     | 
    
         
            +
            #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
       21 
19 
     | 
    
         
             
            # Author::    Rocky Bernstein  (mailto:rocky@gnu.org)
         
     | 
| 
       22 
20 
     | 
    
         
             
            #
         
     | 
| 
       23 
21 
     | 
    
         
             
            # = cdio
         
     | 
| 
         @@ -146,7 +144,7 @@ end 
     | 
|
| 
       146 
144 
     | 
    
         | 
| 
       147 
145 
     | 
    
         | 
| 
       148 
146 
     | 
    
         
             
            #    close media tray in CD drive if there is a routine to do so. 
         
     | 
| 
       149 
     | 
    
         
            -
            #    The driver id is returned. A DeviceException is thrown on error.
         
     | 
| 
      
 147 
     | 
    
         
            +
            #    The +driver id +is returned. A DeviceException is thrown on error.
         
     | 
| 
       150 
148 
     | 
    
         
             
            def close_tray(drive=nil, driver_id=Rubycdio::DRIVER_UNKNOWN)
         
     | 
| 
       151 
149 
     | 
    
         
             
                drc, found_driver_id = Rubycdio::close_tray(drive, driver_id)
         
     | 
| 
       152 
150 
     | 
    
         
             
              possibly_raise_exception__(drc)
         
     | 
| 
         @@ -156,7 +154,7 @@ end 
     | 
|
| 
       156 
154 
     | 
    
         
             
            #    Returns: [device, driver]
         
     | 
| 
       157 
155 
     | 
    
         
             
            #
         
     | 
| 
       158 
156 
     | 
    
         
             
            #    Return a string containing the default CD device if none is
         
     | 
| 
       159 
     | 
    
         
            -
            #    specified.  if driver_id is DRIVER_UNKNOWN or DRIVER_DEVICE
         
     | 
| 
      
 157 
     | 
    
         
            +
            #    specified.  if +driver_id+ is DRIVER_UNKNOWN or DRIVER_DEVICE
         
     | 
| 
       160 
158 
     | 
    
         
             
            #    then one set the default device for that.
         
     | 
| 
       161 
159 
     | 
    
         
             
            #    
         
     | 
| 
       162 
160 
     | 
    
         
             
            #    nil is returned as the device if we couldn't get a default
         
     | 
| 
         @@ -174,9 +172,9 @@ end 
     | 
|
| 
       174 
172 
     | 
    
         | 
| 
       175 
173 
     | 
    
         
             
            #    Returns: [device1, device2, ... driver_id]
         
     | 
| 
       176 
174 
     | 
    
         
             
            #
         
     | 
| 
       177 
     | 
    
         
            -
            #    Like get_devices, but return the  
     | 
| 
      
 175 
     | 
    
         
            +
            #    Like get_devices, but return the driver_id which may be different
         
     | 
| 
       178 
176 
     | 
    
         
             
            #    from the passed-in driver_id if it was Rubycdio::DRIVER_DEVICE or
         
     | 
| 
       179 
     | 
    
         
            -
            #    Rubycdio::DRIVER_UNKNOWN. The return driver_id may be useful because
         
     | 
| 
      
 177 
     | 
    
         
            +
            #    Rubycdio::DRIVER_UNKNOWN. The return +driver_id+ may be useful because
         
     | 
| 
       180 
178 
     | 
    
         
             
            #    often one wants to get a drive name and then *open* it
         
     | 
| 
       181 
179 
     | 
    
         
             
            #    afterwards. Giving the driver back facilitates this, and speeds things
         
     | 
| 
       182 
180 
     | 
    
         
             
            #    up for libcdio as well.
         
     | 
| 
         @@ -194,9 +192,9 @@ end 
     | 
|
| 
       194 
192 
     | 
    
         
             
            #
         
     | 
| 
       195 
193 
     | 
    
         
             
            #    To find a CD-drive of any type, use the mask Rubycdio::CDIO_FS_MATCH_ALL.
         
     | 
| 
       196 
194 
     | 
    
         
             
            #
         
     | 
| 
       197 
     | 
    
         
            -
            #    The array of device names is returned or  
     | 
| 
       198 
     | 
    
         
            -
            #    default device.  It is also possible to return a non  
     | 
| 
       199 
     | 
    
         
            -
            #    dereferencing the the value is  
     | 
| 
      
 195 
     | 
    
         
            +
            #    The array of device names is returned or nil if we couldn't get a
         
     | 
| 
      
 196 
     | 
    
         
            +
            #    default device.  It is also possible to return a non nil but after
         
     | 
| 
      
 197 
     | 
    
         
            +
            #    dereferencing the the value is nil. This also means nothing was
         
     | 
| 
       200 
198 
     | 
    
         
             
            #    found.
         
     | 
| 
       201 
199 
     | 
    
         
             
            def devices_with_cap(capabilities, any=false)
         
     | 
| 
       202 
200 
     | 
    
         
             
              return Rubycdio::get_devices_with_cap(capabilities, any)
         
     | 
| 
         @@ -233,7 +231,7 @@ end 
     | 
|
| 
       233 
231 
     | 
    
         
             
            #    binfile?(binfile_name)->cue_name
         
     | 
| 
       234 
232 
     | 
    
         
             
            #++
         
     | 
| 
       235 
233 
     | 
    
         
             
            #    
         
     | 
| 
       236 
     | 
    
         
            -
            #    Determine if binfile_name is the BIN file part of a CDRWIN CD
         
     | 
| 
      
 234 
     | 
    
         
            +
            #    Determine if +binfile_name+ is the BIN file part of a CDRWIN CD
         
     | 
| 
       237 
235 
     | 
    
         
             
            #    disk image.
         
     | 
| 
       238 
236 
     | 
    
         
             
            #    
         
     | 
| 
       239 
237 
     | 
    
         
             
            #    Return the corresponding CUE file if bin_name is a BIN file or
         
     | 
| 
         @@ -245,7 +243,7 @@ end 
     | 
|
| 
       245 
243 
     | 
    
         
             
            #--
         
     | 
| 
       246 
244 
     | 
    
         
             
            #   FIXME ? is not quite right
         
     | 
| 
       247 
245 
     | 
    
         
             
            #++
         
     | 
| 
       248 
     | 
    
         
            -
            #    return bin_name
         
     | 
| 
      
 246 
     | 
    
         
            +
            #    return bin_name for a corresponding CUE file
         
     | 
| 
       249 
247 
     | 
    
         
             
            #    
         
     | 
| 
       250 
248 
     | 
    
         
             
            #    Determine if cuefile_name is the CUE file part of a CDRWIN CD
         
     | 
| 
       251 
249 
     | 
    
         
             
            #    disk image.
         
     | 
| 
         @@ -273,12 +271,12 @@ end 
     | 
|
| 
       273 
271 
     | 
    
         | 
| 
       274 
272 
     | 
    
         
             
            #    tocfile?(tocfile_name)->bool
         
     | 
| 
       275 
273 
     | 
    
         
             
            #    
         
     | 
| 
       276 
     | 
    
         
            -
            #    Determine if tocfile_name is a cdrdao CD disc image
         
     | 
| 
      
 274 
     | 
    
         
            +
            #    Determine if +tocfile_name+ is a cdrdao CD disc image
         
     | 
| 
       277 
275 
     | 
    
         
             
            def tocfile?(tocfile_name)
         
     | 
| 
       278 
276 
     | 
    
         
             
              return Rubycdio::tocfile?(tocfile_name)
         
     | 
| 
       279 
277 
     | 
    
         
             
            end
         
     | 
| 
       280 
278 
     | 
    
         | 
| 
       281 
     | 
    
         
            -
            #    Convert  
     | 
| 
      
 279 
     | 
    
         
            +
            #    Convert +bitmask+ for miscellaneous drive properties
         
     | 
| 
       282 
280 
     | 
    
         
             
            #    into a dictionary of drive capabilities
         
     | 
| 
       283 
281 
     | 
    
         
             
            def convert_drive_cap_misc(bitmask)
         
     | 
| 
       284 
282 
     | 
    
         
             
              result={}
         
     | 
| 
         @@ -373,7 +371,7 @@ def convert_drive_cap_read(bitmask) 
     | 
|
| 
       373 
371 
     | 
    
         
             
              return result
         
     | 
| 
       374 
372 
     | 
    
         
             
            end
         
     | 
| 
       375 
373 
     | 
    
         | 
| 
       376 
     | 
    
         
            -
            #    Convert  
     | 
| 
      
 374 
     | 
    
         
            +
            #    Convert +bitmask+ for drive write properties
         
     | 
| 
       377 
375 
     | 
    
         
             
            #    into a dictionary of drive capabilities
         
     | 
| 
       378 
376 
     | 
    
         
             
            def convert_drive_cap_write(bitmask)
         
     | 
| 
       379 
377 
     | 
    
         
             
              result={}
         
     | 
| 
         @@ -458,7 +456,7 @@ class Device 
     | 
|
| 
       458 
456 
     | 
    
         | 
| 
       459 
457 
     | 
    
         
             
              # Returns: status
         
     | 
| 
       460 
458 
     | 
    
         
             
              # 
         
     | 
| 
       461 
     | 
    
         
            -
              # Playing CD through analog output  
     | 
| 
      
 459 
     | 
    
         
            +
              # Playing CD through analog output from +start_lsn+ to +ending_lsn+
         
     | 
| 
       462 
460 
     | 
    
         
             
              # A DeviceError exception may be raised.
         
     | 
| 
       463 
461 
     | 
    
         
             
              def audio_play_lsn(start_lsn, end_lsn)
         
     | 
| 
       464 
462 
     | 
    
         
             
                drc=Rubycdio::audio_play_lsn(@cd, start_lsn, end_lsn)
         
     | 
| 
         @@ -483,8 +481,9 @@ class Device 
     | 
|
| 
       483 
481 
     | 
    
         
             
                possibly_raise_exception__(drc)
         
     | 
| 
       484 
482 
     | 
    
         
             
              end
         
     | 
| 
       485 
483 
     | 
    
         | 
| 
       486 
     | 
    
         
            -
              # Free resources associated with  
     | 
| 
       487 
     | 
    
         
            -
              # using CD reading/control operations for the current 
     | 
| 
      
 484 
     | 
    
         
            +
              # Free (C memory) resources associated with the object.  Call this when
         
     | 
| 
      
 485 
     | 
    
         
            +
              # done using using CD reading/control operations for the current
         
     | 
| 
      
 486 
     | 
    
         
            +
              # device.
         
     | 
| 
       488 
487 
     | 
    
         
             
              def close()
         
     | 
| 
       489 
488 
     | 
    
         
             
                if @cd 
         
     | 
| 
       490 
489 
     | 
    
         
             
                  Rubycdio::close(@cd)
         
     | 
| 
         @@ -696,13 +695,13 @@ class Device 
     | 
|
| 
       696 
695 
     | 
    
         | 
| 
       697 
696 
     | 
    
         
             
              # Returns: track
         
     | 
| 
       698 
697 
     | 
    
         
             
              #    
         
     | 
| 
       699 
     | 
    
         
            -
              # Find the track which contains lsn 
     | 
| 
      
 698 
     | 
    
         
            +
              # Find the track which contains +lsn+.
         
     | 
| 
       700 
699 
     | 
    
         
             
              # nil is returned if the lsn outside of the CD or
         
     | 
| 
       701 
700 
     | 
    
         
             
              # if there was some error. 
         
     | 
| 
       702 
701 
     | 
    
         
             
              #    
         
     | 
| 
       703 
     | 
    
         
            -
              # If  
     | 
| 
      
 702 
     | 
    
         
            +
              # If +lsn+ is before the pregap of the first track,
         
     | 
| 
       704 
703 
     | 
    
         
             
              # A track object with a 0 track is returned.
         
     | 
| 
       705 
     | 
    
         
            -
              # Otherwise we return the track that spans the  
     | 
| 
      
 704 
     | 
    
         
            +
              # Otherwise we return the track that spans the LSN.
         
     | 
| 
       706 
705 
     | 
    
         
             
              def track_for_lsn(lsn)
         
     | 
| 
       707 
706 
     | 
    
         
             
                track = Rubycdio::get_last_track_num(@cd)
         
     | 
| 
       708 
707 
     | 
    
         
             
                if track == Rubycdio::INVALID_TRACK:
         
     | 
| 
         @@ -715,8 +714,8 @@ class Device 
     | 
|
| 
       715 
714 
     | 
    
         
             
              # Reposition read offset
         
     | 
| 
       716 
715 
     | 
    
         
             
              # Similar to (if not the same as) libc's fseek()
         
     | 
| 
       717 
716 
     | 
    
         
             
              #    
         
     | 
| 
       718 
     | 
    
         
            -
              #  
     | 
| 
       719 
     | 
    
         
            -
              # whence is like corresponding parameter in libc's lseek, e.g. 
         
     | 
| 
      
 717 
     | 
    
         
            +
              # +offset+ is amount to seek and 
         
     | 
| 
      
 718 
     | 
    
         
            +
              # +whence+ is like corresponding parameter in libc's lseek, e.g. 
         
     | 
| 
       720 
719 
     | 
    
         
             
              # it should be SEEK_SET or SEEK_END.
         
     | 
| 
       721 
720 
     | 
    
         
             
              #    
         
     | 
| 
       722 
721 
     | 
    
         
             
              # the offset is returned or -1 on error.
         
     | 
| 
         @@ -724,12 +723,12 @@ class Device 
     | 
|
| 
       724 
723 
     | 
    
         
             
                return Rubycdio::lseek(@cd, offset, whence)
         
     | 
| 
       725 
724 
     | 
    
         
             
              end
         
     | 
| 
       726 
725 
     | 
    
         | 
| 
       727 
     | 
    
         
            -
              # Sets up to read from place specified by source 
     | 
| 
       728 
     | 
    
         
            -
              #  
     | 
| 
      
 726 
     | 
    
         
            +
              # Sets up to read from place specified by +source+, +driver_id+ and
         
     | 
| 
      
 727 
     | 
    
         
            +
              # +access_mode+. This should be called before using any other routine
         
     | 
| 
       729 
728 
     | 
    
         
             
              # except those that act on a CD-ROM drive by name. 
         
     | 
| 
       730 
729 
     | 
    
         
             
              #        
         
     | 
| 
       731 
     | 
    
         
            -
              # If nil is  
     | 
| 
       732 
     | 
    
         
            -
              # If nil is  
     | 
| 
      
 730 
     | 
    
         
            +
              # If nil is the value of +source+, we'll use the default driver device.
         
     | 
| 
      
 731 
     | 
    
         
            +
              # If nil is the value of +driver_id+, we'll find a suitable device driver.
         
     | 
| 
       733 
732 
     | 
    
         
             
              #
         
     | 
| 
       734 
733 
     | 
    
         
             
              # If device object was, previously opened it is closed first.
         
     | 
| 
       735 
734 
     | 
    
         
             
              #        
         
     | 
| 
         @@ -753,7 +752,7 @@ class Device 
     | 
|
| 
       753 
752 
     | 
    
         | 
| 
       754 
753 
     | 
    
         
             
              # Returns: [size, data]
         
     | 
| 
       755 
754 
     | 
    
         
             
              #        
         
     | 
| 
       756 
     | 
    
         
            -
              # Reads the next size bytes.
         
     | 
| 
      
 755 
     | 
    
         
            +
              # Reads the next +size+ bytes.
         
     | 
| 
       757 
756 
     | 
    
         
             
              # Similar to (if not the same as) libc's read()
         
     | 
| 
       758 
757 
     | 
    
         
             
              #        
         
     | 
| 
       759 
758 
     | 
    
         
             
              # The number of bytes read and the data is returned. 
         
     | 
| 
         @@ -768,7 +767,7 @@ class Device 
     | 
|
| 
       768 
767 
     | 
    
         
             
              #        
         
     | 
| 
       769 
768 
     | 
    
         
             
              # Reads a number of data sectors (AKA blocks).
         
     | 
| 
       770 
769 
     | 
    
         
             
              #      
         
     | 
| 
       771 
     | 
    
         
            -
              # lsn is sector to read 
     | 
| 
      
 770 
     | 
    
         
            +
              # +lsn+ is the sector to read; +bytes+ is the number of bytes to read.
         
     | 
| 
       772 
771 
     | 
    
         
             
              # A DeviceError exception may be raised.
         
     | 
| 
       773 
772 
     | 
    
         
             
              def read_data_blocks(lsn, blocks=1)
         
     | 
| 
       774 
773 
     | 
    
         
             
                size = Rubycdio::ISO_BLOCKSIZE*blocks
         
     | 
| 
         @@ -786,19 +785,19 @@ class Device 
     | 
|
| 
       786 
785 
     | 
    
         
             
              #
         
     | 
| 
       787 
786 
     | 
    
         
             
              # Reads a number of sectors (AKA blocks).
         
     | 
| 
       788 
787 
     | 
    
         
             
              # 
         
     | 
| 
       789 
     | 
    
         
            -
              # lsn is sector to read, bytes is the number of bytes.
         
     | 
| 
      
 788 
     | 
    
         
            +
              # +lsn+ is the sector to read, +bytes+ is the number of bytes to read.
         
     | 
| 
       790 
789 
     | 
    
         
             
              #        
         
     | 
| 
       791 
     | 
    
         
            -
              # If read_mode is Rubycdio::MODE_AUDIO, the return buffer size will be
         
     | 
| 
      
 790 
     | 
    
         
            +
              # If +read_mode+ is Rubycdio::MODE_AUDIO, the return buffer size will be
         
     | 
| 
       792 
791 
     | 
    
         
             
              # truncated to multiple of Rubycdio::CDIO_FRAMESIZE_RAW i_blocks bytes.
         
     | 
| 
       793 
792 
     | 
    
         
             
              #        
         
     | 
| 
       794 
     | 
    
         
            -
              # If read_mode is Rubycdio::MODE_DATA, buffer will be truncated to a
         
     | 
| 
      
 793 
     | 
    
         
            +
              # If +read_mode+ is Rubycdio::MODE_DATA, buffer will be truncated to a
         
     | 
| 
       795 
794 
     | 
    
         
             
              # multiple of Rubycdio::ISO_BLOCKSIZE, Rubycdio::M1RAW_SECTOR_SIZE or
         
     | 
| 
       796 
795 
     | 
    
         
             
              # Rubycdio::M2F2_SECTOR_SIZE bytes depending on what mode the data is in.
         
     | 
| 
       797 
796 
     | 
    
         
             
              #
         
     | 
| 
       798 
     | 
    
         
            -
              # If read_mode is Rubycdio::MODE_M2F1, buffer will be truncated to a 
         
     | 
| 
      
 797 
     | 
    
         
            +
              # If +read_mode+ is Rubycdio::MODE_M2F1, buffer will be truncated to a 
         
     | 
| 
       799 
798 
     | 
    
         
             
              # multiple of Rubycdio::M2RAW_SECTOR_SIZE bytes.
         
     | 
| 
       800 
799 
     | 
    
         
             
              #        
         
     | 
| 
       801 
     | 
    
         
            -
              # If read_mode is Rubycdio::MODE_M2F2, the return buffer size will be
         
     | 
| 
      
 800 
     | 
    
         
            +
              # If +read_mode+ is Rubycdio::MODE_M2F2, the return buffer size will be
         
     | 
| 
       802 
801 
     | 
    
         
             
              # truncated to a multiple of Rubycdio::CD_FRAMESIZE bytes.
         
     | 
| 
       803 
802 
     | 
    
         
             
              #        
         
     | 
| 
       804 
803 
     | 
    
         
             
              # The number of bytes read and the data is returned. 
         
     |