Package: vorbis-tools
Version: 1.2.0-5
Severity: wishlist
File: /usr/bin/vorbistagedit
Tags: patch

Vorbistagedit currently (0.5) allows to set Vorbis tags on a per file
basis only. The attached patch extends vorbistagedit's functionality by
introducing additional global tags that are applied to all edited files.

This provides a convenient way to set tags common to all files in a
global scope ("ARTIST", "ALBUM", "GENRE", ...), while individual tags
are still specified in a per file scope ("TITLE", "TRACKNUMBER", ...).

As suggested by Martin F. Krafft, the patch also increases
vorbistagedit's version number to 0.6.

Kind regards,
Alex


-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-1-686 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages vorbis-tools depends on:
ii  libao2                    0.8.8-4        Cross Platform Audio Output Librar
ii  libc6                     2.7-16         GNU C Library: Shared libraries
ii  libcurl3-gnutls           7.18.2-5       Multi-protocol file transfer libra
ii  libflac8                  1.2.1-1.2      Free Lossless Audio Codec - runtim
ii  libogg0                   1.1.3-4        Ogg Bitstream Library
ii  libspeex1                 1.2~rc1-1      The Speex codec runtime library
ii  libvorbis0a               1.2.0.dfsg-3.1 The Vorbis General Audio Compressi
ii  libvorbisenc2             1.2.0.dfsg-3.1 The Vorbis General Audio Compressi
ii  libvorbisfile3            1.2.0.dfsg-3.1 The Vorbis General Audio Compressi

vorbis-tools recommends no packages.

vorbis-tools suggests no packages.

-- no debconf information
--- vorbistagedit.orig	2008-11-28 09:06:04.051540085 +0100
+++ vorbistagedit	2008-11-29 04:39:39.489074586 +0100
@@ -6,7 +6,7 @@
 # Released under the terms of the Artistic Licence 2.0
 #
 
-VERSION=0.5
+VERSION=0.6
 ME=${0##*/}
 
 versioninfo() {
@@ -68,6 +68,9 @@
 #
 # We are in directory:
 #  $(pwd)
+#
+# Tags that should be applied to all files can be specified
+# before the first per-file tag definiton starts.
 
 _eof
 
@@ -127,7 +130,8 @@
 write_tags() {
   echo -n "I:   processing $file... " >&2
   local file="$1"; shift
-  for tag; do echo "$tag"; done | vorbiscomment -w "$file"
+  for tag; do [ -n "${tag:-}" ] && echo "$tag"; done | \
+    vorbiscomment -w "$file"
   if [ -n "${filename_new:-}" ] && [ "${filename_new:-}" != "$file" ]; then
     echo; echo -n "I:     renaming to $filename_new... " >&2
     mv "$file" "$filename_new"
@@ -136,17 +140,18 @@
 }
 
 filename_new=
+global_tags=
 
 while read line; do
   case "$line" in
     ': EOF')
-      write_tags "$file" "$tags"
+      write_tags "$file" "$global_tags" "$tags"
       echo "done." >&2
       ;;
 
     :*)
       if [ -n "${file:-}" ]; then
-        write_tags "$file" "$tags"
+        write_tags "$file" "$global_tags" "$tags"
         echo "done." >&2
         tags=''
       fi
@@ -157,8 +162,14 @@
       filename_new="${line#* }";;
 
     *=*)
-      tags="${tags:+$tags
-}$line";;
+      if [ -z "${file:-}" ]; then  # global scope
+        global_tags="${global_tags:+$global_tags
+}$line"
+      else                         # file scope
+        tags="${tags:+$tags
+}$line"
+      fi
+      ;;
 
     *|'#*') :;;
   esac

Reply via email to