tagtool-0.12.3/0000755000175000017500000000000010571121451012577 5ustar kartikkartiktagtool-0.12.3/po/0000755000175000017500000000000010571121451013215 5ustar kartikkartiktagtool-0.12.3/po/ChangeLog0000644000175000017500000000340610570655456015012 0ustar kartikkartik2007-02-26 Pedro Lopes * Added pt_BR translation (Lucas Mazzardo Veloso ) 2006-08-22 Pedro Lopes * Added nl translation (Daniel van Eeden ) 2006-07-30 Pedro Lopes * Added sv translation (Christian Bjelle ) * Updated cs translation (Vítlav Kotrla ) 2005-09-12 Pedro Lopes * Added pl translation (Rafal Glazar ) 2005-05-26 Pedro Lopes * Added ru translation (Pavel Maryanov ) 2005-05-15 Pedro Lopes * Added ua translation (Oleksandr Korneta , Dmytro Goykolov ). 2005-04-02 Pedro Lopes * Added lt translation (Dovydas ) 2005-03-12 Pedro Lopes * Added bg translation (Rostislav Raykov ) 2005-03-07 Pedro Lopes * Added de translation (Jan Wenzel ) * Added en_GB translation (Christopher Orr ) * Updated cs and it translations. 2005-02-19 Pedro Lopes * Added it translation (Emilio Scalise ) 2005-02-12 Pedro Lopes * Added es translation (Rafael Bermúdez ) 2005-02-07 Pedro Lopes * Added cs translation (Vítězslav Kotrla ) 2005-01-16 Pedro Lopes * Added fr translation (Jeremie Knuesel ) 2005-01-07 Pedro Lopes * Added pt translation. 2004-11-01 Nickolay V. Shmyrev * Initial support for translation. tagtool-0.12.3/po/Makefile.in.in0000644000175000017500000001466210453343464015711 0ustar kartikkartik# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # # This file file be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = /bin/sh srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = .. VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi) POFILES=$(shell if test -n "$(PO_LINGUAS)"; then LINGUAS="$(PO_LINGUAS)"; else LINGUAS="$(ALL_LINGUAS)"; fi; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS POTFILES = \ #This Gets Replace for some reason CATALOGS=$(shell if test -n "$(PO_LINGUAS)"; then LINGUAS="$(PO_LINGUAS)"; else LINGUAS="$(ALL_LINGUAS)"; fi; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all $(mkdir_p) $(DESTDIR)$(itlocaledir) if test -n "$(PO_LINGUAS)"; then \ linguas="$(PO_LINGUAS)"; \ else \ linguas="$(ALL_LINGUAS)"; \ fi; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info tags TAGS ID: # Define this as empty until I found a useful application. installcheck: uninstall: if test -n "$(PO_LINGUAS)"; then \ linguas="$(PO_LINGUAS)"; \ else \ linguas="$(ALL_LINGUAS)"; \ fi; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ if test -n "$(PO_LINGUAS)"; then \ linguas="$(PO_LINGUAS)"; \ else \ linguas="$(ALL_LINGUAS)"; \ fi; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in ../config.status POTFILES.in cd .. \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tagtool-0.12.3/po/POTFILES.in0000644000175000017500000000061610541302761014777 0ustar kartikkartik# List of source files containing translatable strings. # data files data/tagtool.desktop.in # interface file src/tagtool.glade # source files src/clear_tab.c src/edit_tab.c src/file_list.c src/help.c src/main.c src/mpeg_edit.c src/mpeg_edit_field.c src/mpeg_file.c src/playlist_tab.c src/progress_dlg.c src/rename_tab.c src/tag_tab.c src/vorbis_edit.c src/vorbis_edit_field.c src/vorbis_file.c tagtool-0.12.3/po/pt.po0000644000175000017500000006614710541302761014220 0ustar kartikkartik# Copyright (C) 2004 Pedro Lopes # This file is distributed under the same license as the tagtool package. # Pedro Ávila Lopes # msgid "" msgstr "" "Project-Id-Version: tagtool 0.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2005-02-13 13:04+0000\n" "Last-Translator: Pedro Ávila Lopes \n" "Language-Team: Portugal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Audio Tag Tool" #: src/tagtool.glade:36 msgid "_File" msgstr "_Ficheiro" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Abrir Directório..." #: src/tagtool.glade:66 msgid "Refresh" msgstr "Actualizar" #: src/tagtool.glade:94 msgid "Quit" msgstr "Sair" #: src/tagtool.glade:119 msgid "_Settings" msgstr "_Definições" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "Conversão de Caracteres..." #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "Preferências ID3..." #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "Ver" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Simples" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Avançado" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "Copiar v1 para v2" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "Copiar v2 para v1" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "_Ajuda" #: src/tagtool.glade:279 msgid "Contents..." msgstr "Conteúdo..." #: src/tagtool.glade:300 msgid "About..." msgstr "Sobre..." #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Incluir subdirectórios" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Seleccionar directório de trabalho" #: src/tagtool.glade:471 msgid "Working Directory" msgstr "Directório de Trabalho" #: src/tagtool.glade:559 msgid "Files" msgstr "Ficheiros" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Actualizar a lista de ficheiros" #: src/tagtool.glade:706 msgid "Edit Tag" msgstr "Editar Tag" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Seleccione um ficheiro para editar" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "Tag" msgstr "Tag" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "Ficheiro não tem tag ID3v1" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Criar" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Título:" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Coment.:" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Ano:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "Álbum:" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Género:" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Faixa:" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Artista:" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "Ficheiro não tem tag ID3v2" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Adicionar" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Remover" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Editar (duplo-click)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Remover Tag" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Gravar Alterações" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Limpar Tag" #: src/tagtool.glade:3468 msgid "File Info" msgstr "Informação Sobre o Ficheiro" #: src/tagtool.glade:3658 msgid "Tag Multiple Files" msgstr "" "Escrever Tags de Múltiplos Ficheiros" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "File Name Format" msgstr "Formato dos Nomes de Ficheiro" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Ajuda sobre formato de nomes de ficheiro" #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "Character and Case Conversion" msgstr "Conversões de Caracteres" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Configurar" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Auto-incremento" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Preencher tags a partir do nome do ficheiro" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Aplicar a " #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "Todos os ficheiros\n" "Ficheiros seleccionados" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Começar!" #: src/tagtool.glade:4607 msgid "Clear Tags" msgstr "Eliminar Tags" #: src/tagtool.glade:4663 msgid "Tags to Clear" msgstr "Tags a Eliminar" #: src/tagtool.glade:4688 msgid "All" msgstr "Todas" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Apenas tags ID3 v1" #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Apenas tags ID3 v2" #: src/tagtool.glade:4949 msgid "Rename Multiple Files" msgstr "" "Renomear Múltiplos Ficheiros" #: src/tagtool.glade:5416 msgid "Create Playlists" msgstr "Criar Playlists" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "Todos os directórios" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "Directório de topo" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "Ambos" #: src/tagtool.glade:5516 msgid "Create In" msgstr "Criar Em" #: src/tagtool.glade:5580 msgid "Playlist File Name" msgstr "Nome da Playlist" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Fixo:" #: src/tagtool.glade:5631 msgid "playlist" msgstr "playlist" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Mesmo nome do directório" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Extensão:" #: src/tagtool.glade:5756 msgid "Sort Entries" msgstr "Ordenar" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "Pelo campo da tag (se existir):" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Título\n" "Artista\n" "Álbum\n" "Ano\n" "Género\n" "Comentário\n" "Faixa" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "Ordenar ignorando directórios" #: src/tagtool.glade:5904 msgid "By file name" msgstr "Pelo nome do ficheiro" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Conversão de Caracteres" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "Nenhuma conversão" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "Converter este caracter em espaço:" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "Space Conversion" msgstr "Conversão de Espaços" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "Case Conversion" msgstr "Conversão Maiúsculas/Minúsculas" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(sem conversão)\n" "minúsculas\n" "MAIÚSCULAS\n" "Como frase\n" "Como Título" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "Ao Escrever Tags" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Converter espaços em:" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Omitir" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Converter em:" #: src/tagtool.glade:6869 msgid "Invalid File Name Characters" msgstr "Caracteres Inválidos em Nomes de Ficheiros" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "Ao Renomear Ficheiros" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "Sobre o Audio Tag Tool" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "C_réditos" #: src/tagtool.glade:7125 msgid "Audio Tag Tool" msgstr "Audio Tag Tool" #: src/tagtool.glade:7146 msgid "version %s" msgstr "versão %s" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Formatos áudio suportados:" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" "Este programa é disponibilizado nos termos da GNU General Public Licence.\n" "Ver o ficheiro COPYING para o texto integral da licença." #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "Preferências ID3" #: src/tagtool.glade:7373 msgid "When tagging multiple files" msgstr "Ao Escrever Tags de Múltiplos Ficheiros" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "Versão de tag ID3 a criar:" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "Apenas v1" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "Apenas v2" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "v1 por omissão, v2 apenas se necessário" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Preservar versões preexistentes" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Texto:" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Campo:" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Progresso" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Renomear um ficheiro manualmente" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Renomear Manualmente..." #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Apagar ficheiros seleccionados do disco" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Apagar Ficheiros Seleccionados" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "Anular selecção" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "Anular Selecção" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Renomear Ficheiro" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "Nome do Ficheiro:" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Progresso da Busca" #: src/tagtool.glade:8048 msgid "Scanning..." msgstr "A procurar..." #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Directórios percorridos:\n" "Ficheiros encontrados:" #: src/tagtool.glade:8134 msgid "Credits" msgstr "Créditos" #: src/tagtool.glade:8215 msgid "Written by" msgstr "Escrito por" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "Traduzido por" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "A Eliminar Tags" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "A começar no directório \"%s\"" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "Operação interrompida pelo utilizador" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(erro na conversão UTF8)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "A entrar no directório \"%.*s\"" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Erro no ficheiro \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "Não foi possível abrir o ficheiro para escrita" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "Formato áudio não reconhecido" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "Erro desconhecido (%d)" #: src/clear_tab.c:155 #, c-format msgid "Skipped \"%s\"" msgstr "Ignorando \"%s\"" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "Eliminada tag de \"%s\"" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "Pronto (Eliminadas tags em %d de %d ficheiros)" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "Nenhum ficheiro seleccionado" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "Não foi possível abrir o ficheiro %s" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "Formato de áudio não reconhecido: %s" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "Erro desconhecido ao abrir ficheiro %s" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "Ficheiro protegido contra escrita: %s" #: src/edit_tab.c:123 msgid "File Type:" msgstr "Tipo:" #: src/file_list.c:116 msgid "No files found" msgstr "Nenhum ficheiro encontrado" #: src/file_list.c:118 msgid "1 file found" msgstr "1 ficheiro encontrado" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "%i ficheiros encontrados" #: src/file_list.c:123 msgid " (1 selected)" msgstr " (1 seleccionado)" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr " (%i seleccionados)" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "(erro ao converter nome do directório para UTF8)" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "(erro ao converter nome do ficheiro para UTF8)" #: src/file_list.c:212 msgid "Deleting Files" msgstr "A Apagar Ficheiros" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "Apagado ficheiro \"%s\"" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "Erro ao apagar ficheiro \"%s\"" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "Pronto (apagados %d de %d ficheiros)" #: src/file_list.c:258 msgid "File Exists" msgstr "Ficheiro já existente" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" "Já existe um ficheiro com esse nome.\n" "Deseja substitui-lo por este?" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" "Erro ao renomear ficheiro:\n" "%s (%d)" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "Erro ao Renomear Ficheiro" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "Erro: Não é possível abrir o directório \"%s\"" #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "Erro: \"%s\" não é um directório." #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "Erro: Sem permissão sobre \"%s\"." #: src/file_list.c:374 msgid "Scanning..." msgstr "A procurar..." #: src/file_list.c:397 msgid "No files found." msgstr "Nenhum ficheiro encontrado." #: src/file_list.c:400 msgid "1 file found." msgstr "1 ficheiro encontrado." #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "%d ficheiros encontrados." #: src/file_list.c:451 msgid "Delete selected files" msgstr "Apagar ficheiros seleccionados" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "Os ficheiros seleccionados serão apagados do disco. Continuar?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Seleccionar Directório" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "Ajuda - Formato dos Nomes de Ficheiro" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " \n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" "Este campo descreve o formato esperado dos nomes dos ficheiros \n" "(excluindo a extensão). O Audio Tag Tool usa esta informação \n" "para preencher automaticamente as tags a partir do nome dos \n" "ficheiros\n" "\n" "A cada campo da tag corresponde um marcador especial:\n" "\n" " <title>\t\t- Título\n" " <artist>\t- Artista\n" " <album>\t- Álbum\n" " <year>\t\t- Ano\n" " <comment>\t- Comentário\n" " <track>\t- Faixa\n" " <genre>\t- Género\n" "\n" "Exemplos: \n" "\n" "O formato \"<artist> - <album> - <title>\" condiz com um ficheiro \n" "chamado \"Pink Floyd - The Wall - Hey You.mp3\". Neste exemplo os\n" "campos Artista, Álbum e Título da tag serão preenchidos com\n" "\"Pink Floyd\", \"The Wall\" e \"Hey You\", respectivamente.\n" "\n" "O formato \"<artist> - <*> - <title>\" também poderia ser usado \n" "no exemplo anterior se não se pretendesse preencher o nome do \n" "Álbum (o marcador especial <*> faz com que essa parte do nome \n" "do ficheiro seja ignorada.) \n" #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" "Este campo descreve o formato desejado para os nomes dos \n" "ficheiros (excluindo a extensão). O Audio Tag Tool usa esta \n" "informação para renomear ou mover os ficheiros, com base no \n" "conteúdo das suas tags.\n" "\n" "A cada campo da tag corresponde um marcador especial:\n" "\n" " <title>\t\t- Título\n" " <artist>\t- Artista\n" " <album>\t- Álbum\n" " <year>\t\t- Ano\n" " <comment>\t- Comentário\n" " <track>\t- Faixa\n" " <genre>\t- Género\n" "\n" "Exemplo - Renomear: \n" "\n" "Para renomear os ficheiros de maneira a que o seu nome seja \n" "o número da faixa seguido do título pode ser usado o formato \n" "\"<track> - <title>\".\n" "\n" "Exemplo - Mover: \n" "\n" "O formato dos nomes de ficheiro pode incluir subdirectórios. \n" "Se no exemplo anterior desejássemos colocar os ficheiros num \n" "directório com o nome do álbum, poderiamos usar o formato \n" "\"<album>/<track> - <title>\". \n" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "Formatos áudio suportados: " #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" "Utilização:\n" " tagtool [DIR]\t\tComeçar no directório DIR\n" " tagtool --dump FICH\tMostrar toda a informação conhecida sobre FICH e " "sair\n" " tagtool --help\tMostrar esta mensagem de ajuda\n" " tagtool --version\tMostrar a versão do programa\n" "\n" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" "Não foi possível abrir o ficheiro %s\n" "\n" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" "Formato de áudio não reconhecido: %s\n" "\n" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Campo" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "Texto" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "Avançado (%i)" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" "Erro ao gravar ficheiro \"%s\":\n" "%s (%d)" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "Erro ao Gravar Ficheiro" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "A Tag ID3 foi modificada. Gravar as alterações?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Não Gravar" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "Novo Campo ID3" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Editar Campo ID3" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" "Bit Rate\n" "%d kbps\n" "Freq. Amostragem\n" "%d Hz\n" "Modo Canal\n" "%s\n" "Copyright\n" "%s\n" "Original\n" "%s\n" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "Sim" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "Não" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "Ficheiro \"%s\" não incluido" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "Não foi possível abrir o ficheiro para leitura" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "Erro ao criar playlist \"%s\"" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "Escrito \"%s\" (%d entradas)" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "A Escrever Playlists" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "A entrar no directório \"%s\"" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "Pronto (escritas %d de %d playlists)" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "A Mover Ficheiros" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "A Renomear Ficheiros" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "Erro ao renomear \"%s\"" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "Erro desconhecido" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "Ficheiro não tem tag" #: src/rename_tab.c:242 msgid "One of the tag fields is empty" msgstr "Um dos campos está vazio" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "Nome do ficheiro \"%s\" já está no formato desejado" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "Erro ao mover \"%s\"" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "Já existe o ficheiro \"%s\"" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "Erro ao criar directório \"%s\"" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "Criado o directório \"%s\"" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "Movido \"%s\" para \"%s\"" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "Renomeado \"%s\" para \"%s\"" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "Pronto (movidos %d de %d ficheiros)" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "Pronto (renomeados %d de %d ficheiros)" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "A Escrever Tags" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "Não há campos a escrever!" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "Erro ao escrever tag em \"%s\"" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "Nome do ficheiro não corresponde ao formato esperado" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "Tag escrita em \"%s\"" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "Pronto (escritas tags em %d de %d ficheiros)" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" "Erro ao gravar ficheiro \"%s\":\n" "%s (%d)\n" "\n" "Nota:\n" "Para gravar as alterações a um ficheiro Ogg Vorbis é necessário ter\n" "permissão de escrita sobre o directório onde o ficheiro se encontra." #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "A Tag Vorbis foi modificada. Gravar alterações?" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "Novo Campo Vorbis" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "Editar Campo Vorbis" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" "Bit Rate Médio\n" "%ld kbps\n" "Bit Rate Nominal\n" "%ld kbps\n" "Freq. Amostragem\n" "%ld Hz\n" "Canais\n" "%d\n" "Duração\n" "%dm %ds %dms\n" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/po/fr.po�����������������������������������������������������������������������������0000644�0001750�0001750�00000067500�10541302761�014176� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# French translation of Audio Tag Tool. # This file is distributed under the same license as the Audio Tag Tool package. # Jeremie Knuesel <jeremie.knuesel@epfl.ch>, 2005. # # msgid "" msgstr "" "Project-Id-Version: Audio Tag Tool 0.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2005-01-16 15:04+0100\n" "Last-Translator: Jeremie Knuesel <jeremie.knuesel@epfl.ch>\n" "Language-Team: French <jeremie.knuesel@epfl.ch>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Audio Tag Tool" #: src/tagtool.glade:36 msgid "_File" msgstr "_Fichier" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Ouvrir un répertoire" #: src/tagtool.glade:66 msgid "Refresh" msgstr "Rafraîchir" #: src/tagtool.glade:94 msgid "Quit" msgstr "Quitter" #: src/tagtool.glade:119 msgid "_Settings" msgstr "_Paramètres" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "Conversion de caractères" #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "Préférences ID3" #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "Affichage" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Simple" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Avancé" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "Copier v1 vers v2" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "Copier v2 vers v1" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "_Aide" #: src/tagtool.glade:279 msgid "Contents..." msgstr "Sommaire" #: src/tagtool.glade:300 msgid "About..." msgstr "À propos" #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Inclure les sous-répertoires" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Sélectionner le répertoire de travail" #: src/tagtool.glade:471 msgid "<b>Working Directory</b>" msgstr "<b>Répertoire de travail</b>" #: src/tagtool.glade:559 msgid "<b>Files</b>" msgstr "<b>Fichiers</b>" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Rafraîchir la liste de fichiers" #: src/tagtool.glade:706 msgid "<span size=\"large\" weight=\"bold\">Edit Tag</span>" msgstr "<span size=\"large\" weight=\"bold\">Édition de tags</span>" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Sélectionnez un fichier à éditer" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "<b>Tag</b>" msgstr "<b>Tag</b>" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "Le fichier n'a pas de tag ID3v1" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Créer" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Titre :" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Comm. :" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Année:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "Album :" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Genre :" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Piste :" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Artiste :" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "Le fichier n'a pas de tag ID3v2" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Ajouter" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Enlever" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Éditer (double clique)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Supprimer le tag" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Enregistrer" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Effacer le tag" #: src/tagtool.glade:3468 msgid "<b>File Info</b>" msgstr "<b>Info fichier</b>" #: src/tagtool.glade:3658 msgid "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" msgstr "<span size=\"large\" weight=\"bold\">Taguer plusieurs fichiers</span>" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "<b>File Name Format</b>" msgstr "<b>Format du nom de fichier</b>" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Aide sur les formats de noms de fichiers" #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "<b>Character and Case Conversion</b>" msgstr "<b>Conversion de caractères et de casse</b>" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Configurer" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Incrémentation automatique" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Tags déterminés à partir du nom du fichier" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Appliquer à" #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "Tous les fichiers\n" "Fichiers sélectionnés" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Go !" #: src/tagtool.glade:4607 msgid "<span size=\"large\" weight=\"bold\">Clear Tags</span>" msgstr "<span size=\"large\" weight=\"bold\">Suppression de tags</span>" #: src/tagtool.glade:4663 msgid "<b>Tags to Clear</b>" msgstr "<b>Tags à effacer</b>" #: src/tagtool.glade:4688 msgid "All" msgstr "Tous" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Tags ID3 v1 seulement" #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Tags ID3 v2 seulement" #: src/tagtool.glade:4949 msgid "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Renommer plusieurs fichiers</span>" #: src/tagtool.glade:5416 msgid "<span size=\"large\" weight=\"bold\">Create Playlists</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Création de listes de lecture</span>" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "Chaque répertoire" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "Répertoire supérieur" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "Les deux" #: src/tagtool.glade:5516 msgid "<b>Create In</b>" msgstr "<b>Créer dans</b>" #: src/tagtool.glade:5580 msgid "<b>Playlist File Name</b>" msgstr "<b>Nom de la liste de lecture</b>" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Autre :" #: src/tagtool.glade:5631 msgid "playlist" msgstr "liste de lecture" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Identique au nom du répertoire" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Extension :" #: src/tagtool.glade:5756 msgid "<b>Sort Entries</b>" msgstr "<b>Trier les entrées</b>" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "Par champ du tag (si disponible) :" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Titre\n" "Artiste\n" "Album\n" "Année\n" "Genre\n" "Commentaire\n" "num. de piste" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "Trier à travers les répertoires" #: src/tagtool.glade:5904 msgid "By file name" msgstr "Par nom de fichier" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Conversion de caractères" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "Pas de conversion" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "Convertir ce caractère en espace :" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "<b>Space Conversion</b>" msgstr "<b>Conversion d'espaces</b>" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "<b>Case Conversion</b>" msgstr "<b>Conversion de casse</b>" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(pas de conversion)\n" "minuscules\n" "MAJUSCULES\n" "Comme une phrase\n" "Titre Façon Anglaise" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "Pour taguer" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Convertir les espaces en :" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Ommettre" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Convertir en :" #: src/tagtool.glade:6869 msgid "<b>Invalid File Name Characters</b>" msgstr "<b>Caractères invalides dans les noms de fichiers</b>" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "Pour renommer des fichiers" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "À propos de Audio Tag Tool" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "" #: src/tagtool.glade:7125 msgid "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" msgstr "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" #: src/tagtool.glade:7146 msgid "<b>version %s</b>" msgstr "<b>version %s</b>" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Formats audio pris en charge :" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" "Ce logiciel est distribué sous license publique générale GNU.\n" "Consultez le fichier COPYING pour en connaître les termes exacts." #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "Préférences ID3" #: src/tagtool.glade:7373 msgid "<b>When tagging multiple files</b>" msgstr "<b>Pour taguer plusieurs fichiers</b>" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "Versions du tag ID3 à créer :" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "v1 seulement" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "v2 seulement" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "v1 par défaut, ajouter v2 si nécessaire" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Préserver les versions de tag existantes" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Texte :" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Champ :" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Progression" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Renommer un fichier manuellement" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Renommer manuellement" #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Supprimer les fichiers sélectionnés du disque" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Supprimer les fichiers sélectionnés" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "Ne sélectionner aucun fichier" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "Tout désélectionner" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Renommer le fichier" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "Nom de fichier :" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Progression de l'examen" #: src/tagtool.glade:8048 msgid "<b>Scanning...</b>" msgstr "<b>Examen en cours...</b>" #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Répertoires examinés :\n" "Fichiers trouvés :" #: src/tagtool.glade:8134 #, fuzzy msgid "Credits" msgstr "Créer" #: src/tagtool.glade:8215 msgid "Written by" msgstr "" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "Suppression des tags" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "Démarrage dans le répertoire \"%s\"" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "Opération arrêtée à la demande de l'utilisateur" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(Erreur de conversion UTF8)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "Entrée dans le répertoire \"%.*s\"" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Erreur dans le fichier \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "Impossible d'écrire dans le fichier" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "Format audio non reconnu" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "Erreur inconnue (%d)" #: src/clear_tab.c:155 #, fuzzy, c-format msgid "Skipped \"%s\"" msgstr "Ommission du fichier \"%s\"" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "Tag de \"%s\" effacé" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "Fini (%d fichiers sur %d nettoyés)" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "Aucun fichier sélectionné" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "Impossible d'ouvrir le fichier %s" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "Format audio non reconnu : %s" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "Erreur inconnue à l'ouverture du fichier %s" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "Le fichier est en lecture seule : %s" #: src/edit_tab.c:123 msgid "File Type:" msgstr "Type de fichier :" #: src/file_list.c:116 msgid "No files found" msgstr "Aucun fichier trouvé" #: src/file_list.c:118 msgid "1 file found" msgstr "1 fichier trouvé" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "%i fichiers trouvés" #: src/file_list.c:123 msgid " (1 selected)" msgstr " (1 sélectionné)" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr " (%i sélectionnés)" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "(impossible de convertir le nom du répertoire en UTF8)" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "(impossible de convertir le nom du fichier en UTF8)" #: src/file_list.c:212 msgid "Deleting Files" msgstr "Suppression des fichiers" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "Fichier \"%s\" supprimé" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "Impossible de supprimer le fichier \"%s\"" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "Fini (%d fichiers sur %d supprimés)" #: src/file_list.c:258 msgid "File Exists" msgstr "Le fichier existe" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" "Un fichier du même nom existe déjà.\n" "Voulez-vous l'écraser ?" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" "Impossible de renommer le fichier:\n" "%s (%d)" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "Impossible de renommer le fichier" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "Erreur : impossible d'ouvrir le répertoire \"%s\"." #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "Erreur : \"%s\" n'est pas un répertoire." #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "Erreur : permission refusée pour \"%s\"." #: src/file_list.c:374 msgid "Scanning..." msgstr "Examen en cours..." #: src/file_list.c:397 msgid "No files found." msgstr "Aucun fichier trouvé." #: src/file_list.c:400 msgid "1 file found." msgstr "1 fichier trouvé." #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "%d fichiers trouvés." #: src/file_list.c:451 msgid "Delete selected files" msgstr "Effacer les fichiers sélectionnés" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "Les fichiers sélectionnés vont être effacés du disque. Continuer ?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Sélectionner le répertoire" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "Aide - Fichier Nom Format" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" "Ce champ décrit le format attendu pour le nom du fichier \n" "(sans l'extension). Audio Tag Tool utilise cette information \n" "pour remplir automatiquement les tags à partir du nom du \n" "fichier. \n" "\n" "À chaque champ du tag correspond un symbole, dont voici \n" "la liste : \n" "\n" " <title> (le titre de la piste) \n" " <artist> \n" "..<album> \n" " <year> (l'année de parution) \n" "..<comment> (un commentaire éventuel) \n" "..<track> (le numéro de la piste) \n" "..<genre> \n" "\n" "Exemples : \n" "\n" "Le format \"<artist> - <album> - <title>\" décrit \n" "correctement un fichier nommé \n" "\"Pink Floyd - The Wall - Hey You.mp3\". Dans cet exemple, \n" "les champs Artiste, Album et Titre du tag prendront \n" "comme valeur \"Pink Floyd\", \"The Wall\" et \"Hey You\" \n" "respectivement.\n" "\n" "Le format \"<artiste> - <*> - <title>\" pourrait également \n" "être utilisé dans l'exemple précédent si on ne voulait pas \n" "remplir le nom de l'album (le symbole spécial <*> \n" "entraîne qu'une partie du nom du fichier sera ignorée). \n" #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" "Ce champ décrit le format désiré pour les noms de fichiers. \n" "Audio Tag Tool peut utiliser cette information pour renommer \n" "les fichiers ou pour les organiser dans des sous-répertoires, \n" "à partir du contenu de leur tag. \n" "\n" "À chaque champ ID3 est associé un symbole, dont voici la \n" "liste : \n" "\n" " <title> (le titre de la piste) \n" " <artist> \n" "..<album> \n" " <year> (l'année de parution) \n" "..<comment> (un commentaire éventuel) \n" "..<track> (le numéro de la piste) \n" "..<genre> \n" "\n" "Exemple pour renommer des fichiers : \n" "\n" "Pour que le nom de chaque fichier consiste en un numéro \n" "de piste suivi du titre de la piste, un format du type \n" "\"<track> - <title>\" peut être utilisé. \n" "\n" "Exemple pour déplacer des fichiers : \n" "\n" "Le format du nom de fichier peut inclure des sous-répertoires. \n" "Si dans l'exemple précédent on avait voulu placer les fichiers \n" "dans un répertoire du nom de l'album, on aurait utilisé le \n" "format \"<album>/<track> - <title>\". \n" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "Formats audio pris en charge : " #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" "Utilisation :\n" " tagtool [REP]\t\t\tDémarre dans le répertoire REP\n" " tagtool --dump FICHIER\tRécupère toutes les informations connues au \t\t\t" "\tsujet de FICHIER et quitte\n" " tagtool --help\t\tAffiche ce message d'aide\n" " tagtool --version\t\tAffiche la version du programme\n" "\n" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" "Impossible d'ouvrir le fichier : %s\n" "\n" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" "Format audio du fichier non reconnu : %s\n" "\n" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Champ" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "Texte" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "Avancé (%i)" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" "Erreur lors de l'enregistrement du fichier \"%s\" :\n" "%s (%d)" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "Erreur lors de l'enregistrement du fichier" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "Le tag ID3 a été modifié. Enregistrer les changements ?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Abandonner les modifications" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "Nouveau champ ID3" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Éditer le champ ID3" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" "Taux \n" "%d kbps\n" "Taux d'échant.\n" "%d Hz\n" "Canaux\n" "%s\n" "Copyright\n" "%s\n" "Original\n" "%s\n" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "Oui" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "Non" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "Ommission du fichier \"%s\"" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "Impossible d'ouvrir le fichier en lecture" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "Impossible de créer la liste de lecture \"%s\"" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "\"%s\" écrit (%d entrées)" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "Écriture des listes de lecture" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "Entrée dans le répertoire \"%s\"" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "Fini (%d listes de lecture sur %d écrites)" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "Déplacement des fichiers" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "Renommage des fichiers" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "Impossible de renommer \"%s\"" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "Erreur inconnue" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "Le fichier ne possède aucun tag" #: src/rename_tab.c:242 #, fuzzy msgid "One of the tag fields is empty" msgstr "Aucun champ de tag à enregistrer !" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "Le nom de fichier \"%s\" est déjà au format désiré" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "Impossible de déplacer \"%s\"" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "Le fichier \"%s\" existe déjà" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "Impossible de créer le répertoire \"%s\"" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "Répertoire \"%s\" créé" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "\"%s\" déplacé vers \"%s\"" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "\"%s\" renommé en \"%s\"" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "Fini (%d fichiers sur %s déplacés)" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "Fini (%d fichiers sur %d renommés)" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "Enregistrement des tags" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "Aucun champ de tag à enregistrer !" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "Impossible de taguer \"%s\"" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "Le nom du fichier ne correspond pas au format attendu" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "Tag appliqué à \"%s\"" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "Fini (%d fichiers sur %d tagués)" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" "Impossible d'enregistrer le fichier \"%s\" :\n" "%s (%d)\n" "\n" "Note :\n" "Pour enregistrer les modifications dans un fichier Ogg Vorbis, \n" "vous devez avoir l'autorisation d'écrire dans le répertoire qui \n" "le contient." #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "Le tag Vorbis a été modifié. Enregistrer ?" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "Nouveau champ Vorbis" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "Éditer le champ Vorbis" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" "Taux moyen\n" "%ld kbps\n" "Taux nominal\n" "%ld kbps\n" "Taux d'échantillonnage\n" "%ld Hz\n" "Canaux\n" "%d\n" "Durée\n" "%dm %ds %dms\n" #~ msgid "Homepage:" #~ msgstr "Page d'accueil :" #~ msgid "Author:" #~ msgstr "Auteur :" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/po/cs.po�����������������������������������������������������������������������������0000644�0001750�0001750�00000066676�10541302761�014211� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# This file is distributed under the same license as the tagtool package. # Vítězslav Kotrla <vitko@post.cz>, 2005. # msgid "" msgstr "" "Project-Id-Version: cs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2005-02-05 07:51+0100\n" "Last-Translator: Vitezslav Kotrla <vitko@post.cz>\n" "Language-Team: <cs@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Audio Tag Tool" #: src/tagtool.glade:36 msgid "_File" msgstr "Soubor" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Otevřít adresář..." #: src/tagtool.glade:66 msgid "Refresh" msgstr "Obnovit" #: src/tagtool.glade:94 msgid "Quit" msgstr "Konec" #: src/tagtool.glade:119 msgid "_Settings" msgstr "Nastavení" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "Převod znaků..." #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "Předvolby ID3" #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "Pohled" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Základní" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Pokročilé" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "Kopírovat v1 do v2" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "Kopírovat v2 do v1" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "Nápověda" #: src/tagtool.glade:279 msgid "Contents..." msgstr "Obsah..." #: src/tagtool.glade:300 msgid "About..." msgstr "O aplikaci..." #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Včetně podadresářů" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Vyber pracovní adresář" #: src/tagtool.glade:471 msgid "<b>Working Directory</b>" msgstr "<b>Pracovní adresář</b>" #: src/tagtool.glade:559 msgid "<b>Files</b>" msgstr "<b>Soubory</b>" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Obnovit seznam souborů" #: src/tagtool.glade:706 msgid "<span size=\"large\" weight=\"bold\">Edit Tag</span>" msgstr "<span size=\"large\" weight=\"bold\">Upravit popisek</span>" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Vyber soubor k editaci" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "<b>Tag</b>" msgstr "<b>Popisek</b>" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "Soubor nemá žádný popisek ID3v1" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Vytvořit" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Název:" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Poznámka:" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Rok:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "Album:" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Žánr:" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Stopa:" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Umělec:" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "Soubor nemá žádný popisek ID3v2" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Přidat" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Odstranit" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Upravit (dvojité kliknutí)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Odstranit popisek" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Uložit změny" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Vyčistit popisek" #: src/tagtool.glade:3468 msgid "<b>File Info</b>" msgstr "<b>Informace o souboru</b>" #: src/tagtool.glade:3658 msgid "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Upravit popisky více souborů</span>" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "<b>File Name Format</b>" msgstr "<b>Formát názvu souboru</b>" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Získat nápovědu o formátech názvů souborů" #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "<b>Character and Case Conversion</b>" msgstr "<b>Konverze znaků</b>" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Nastavit" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Automaticky zvyšovat hodnotu" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Nastavit popisky podle názvů souborů" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Aplikovat na " #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "Všechny soubory\n" "Vybrané soubory" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Spustit" #: src/tagtool.glade:4607 msgid "<span size=\"large\" weight=\"bold\">Clear Tags</span>" msgstr "<span size=\"large\" weight=\"bold\">Vyčistit popisky</span>" #: src/tagtool.glade:4663 msgid "<b>Tags to Clear</b>" msgstr "<b>Co vyčistit</b>" #: src/tagtool.glade:4688 msgid "All" msgstr "Vše" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Pouze popisky ID3 v1" #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Pouze popisky ID3 v2" #: src/tagtool.glade:4949 msgid "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Přejmenovat více souborů najednou</span>" #: src/tagtool.glade:5416 msgid "<span size=\"large\" weight=\"bold\">Create Playlists</span>" msgstr "<span size=\"large\" weight=\"bold\">Vytvořit seznam skladeb</span>" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "V každém adresáři" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "Pouze v nejsvrchnějším adresáři" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "Všude" #: src/tagtool.glade:5516 msgid "<b>Create In</b>" msgstr "<b>Kde seznam vytvořit</b>" #: src/tagtool.glade:5580 msgid "<b>Playlist File Name</b>" msgstr "<b>Jméno souboru pro seznam skladeb</b>" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Zapsat jako:" #: src/tagtool.glade:5631 msgid "playlist" msgstr "seznam" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Stejné jako název adresáře" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Přípona:" #: src/tagtool.glade:5756 msgid "<b>Sort Entries</b>" msgstr "<b>Třídit položky</b>" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "Podle pole (pokud je k dispozici):" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Název\n" "Umělec\n" "Album\n" "Rok\n" "Žánr\n" "Poznámka\n" "Stopa" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "Třídit bez ohledu na adresář" #: src/tagtool.glade:5904 msgid "By file name" msgstr "Podle jména souboru" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Konverze znaků" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "Bez konverze" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "Tento znak konvertovat na mezeru:" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "<b>Space Conversion</b>" msgstr "<b>Konverze mezer</b>" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "<b>Case Conversion</b>" msgstr "<b>Konverze malých/velkých písmen</b>" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(bez konverze)\n" "všechna malá\n" "VŠECHNA VELKÁ\n" "Jako ve větě\n" "První Vždy Velké" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "Při popisování" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Konvertovat mezery na:" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Vynechat" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Převést na:" #: src/tagtool.glade:6869 msgid "<b>Invalid File Name Characters</b>" msgstr "<b>Neplatné znaky v názvu souboru</b>" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "Při přejmenování" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "O nástroji pro práci s popisky zvukových souborů" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "" #: src/tagtool.glade:7125 msgid "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" msgstr "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" #: src/tagtool.glade:7146 msgid "<b>version %s</b>" msgstr "<b>verze %s</b>" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Podporované zvukové formáty:" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" "Tento software je dostupný pod licencí GNU GPL.\n" "Úplné licenční podmínky naleznete v souboru COPYING." #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "Předvolby ID3" #: src/tagtool.glade:7373 msgid "<b>When tagging multiple files</b>" msgstr "<b>Při popisování více souborů najednou</b>" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "Vytvořit tyto verze ID3 popisků:" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "Pouze v1" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "Pouze v2" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "Vytvořit v1, přidat v2 pouze v případě potřeby" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Zachovat stávající verze popisků" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Text:" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Pole:" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Průběh" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Ručně přejmenovat soubor" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Ruční přejmenování..." #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Odstranit vybrané soubory z disku" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Odstranit vybrané soubory" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "Zrušit výběr všech souborů" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "Zrušit výběr" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Přejmenovat soubor" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "Název souboru:" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Průběh načítání" #: src/tagtool.glade:8048 msgid "<b>Scanning...</b>" msgstr "<b>Načítám...</b>" #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Prohledáno adresářů:\n" "Nalezeno souborů:" #: src/tagtool.glade:8134 #, fuzzy msgid "Credits" msgstr "Vytvořit" #: src/tagtool.glade:8215 msgid "Written by" msgstr "" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "Čistím značky" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "Začínám v adresáři \"%s\"" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "Operace zastavena na žádost uživatele" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(chyba při konverzi UTF-8)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "Vstupuji do adresáře \"%.*s\"" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Chyba v souboru \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "Nepodařilo se soubor otevřít pro zápis" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "Typ zvukového souboru nerozpoznán" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "Neznámá chyba (%d)" #: src/clear_tab.c:155 #, fuzzy, c-format msgid "Skipped \"%s\"" msgstr "Přeskakuji soubor \"%s\"" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "Popisek odebrán z \"%s\"" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "Hotovo (vyčištěno %d z %d souborů)" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "Žádný soubor nebyl vybrán" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "Nemohu otevřít soubor %s" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "Formát zvukového souboru nerozpoznán: %s" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "Neznámá chyba při otevírání souboru %s" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "Soubor je pouze ke čtení: %s" #: src/edit_tab.c:123 msgid "File Type:" msgstr "Typ souboru:" #: src/file_list.c:116 msgid "No files found" msgstr "Žádný soubor nebyl nalezen" #: src/file_list.c:118 msgid "1 file found" msgstr "Nalezen 1 soubor" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "Nalezeno %i souborů" #: src/file_list.c:123 msgid " (1 selected)" msgstr " (1 vybrán)" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr " (vybráno %i)" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "(jméno adresáře nemohlo být převedeno do UTF-8)" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "(jméno souboru nemohlo být převedeno do UTF-8)" #: src/file_list.c:212 msgid "Deleting Files" msgstr "Odstraňuji soubory" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "Odstraněn soubor \"%s\"" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "Chyba při odstraňování souboru \"%s\"" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "Hotovo (odstraněno %d z %d souborů)" #: src/file_list.c:258 msgid "File Exists" msgstr "Soubor existuje" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" "Soubor s tímto jménem už existuje.\n" "Chcete jej přepsat?" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" "Chyba při přejmenování souboru:\n" "%s (%d)" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "Chyba při přejmenování souboru" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "Chyba: Nemohu otevřít adresář \"%s\"." #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "Chyba: \"%s\" není adresář." #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "Chyba: Přístup odepřen pro \"%s\"." #: src/file_list.c:374 msgid "Scanning..." msgstr "Načítám..." #: src/file_list.c:397 msgid "No files found." msgstr "Žádný soubor nebyl nalezen." #: src/file_list.c:400 msgid "1 file found." msgstr "Nalezen 1 soubor." #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "Nalezeno %d souborů." #: src/file_list.c:451 msgid "Delete selected files" msgstr "Odstranit vybrané soubory" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "Vybrané soubory budou odstraněny. Chcete pokračovat?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Vybrat adresář" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "Nápověda - Formát názvu souborů" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" "Toto pole popisuje očekávaný formát názvu souboru (bez \n" "přípony). Tato informace bude použita pro automatické \n" "vyplnění popisků na základě názvu souboru. \n" "\n" "Každé z polí popisku je označeno odpovídajícím symbolem:\n" "\n" " <title> pro pole Název\n" " <artist> pro pole Umělec\n" " <album> pro pole Album\n" " <year> pro pole Rok\n" " <comment> pro pole Poznámka\n" " <track> pro pole Stopa\n" " <genre> pro pole Žánr\n" "\n" "Příklady: \n" "\n" "Formátu \"<artist> - <album> - <title>\" vyhoví soubor \n" "s názvem \"Pink Floyd - The Wall - Hey You.mp3\". V tomto \n" "případě budou pole popisku Umělec, Album a Název naplněna \n" "údaji \"Pink Floyd\", \"The Wall\" a \"Hey You\".\n" "\n" "Formát \"<artist> - <*> - <title>\" bychom mohli v předchozím příkladě \n" "použít tehdy, pokud bychom nechtěli vyplnit název alba (zvláštní \n" "symbol <*> způsobí, že příslušná část názvu souboru bude ignorována. \n" # pozor na synchronizaci s překladem názvů ID3 polí # #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" "Toto pole popisuje, jak má vypadat očekávaný formát názvu souboru.\n" "Tato informace bude použita pro přejmenování souborů a pro jejich\n" "případné uspořádání do podadresářů a to na základě jejich popisků.\n" "\n" "Každému poli popisku ID3 je přiřazen odpovídající symbol, jak je \n" "naznačeno níže: \n" "\n" " <title> pro pole Název\n" " <artist> pro pole Umělec\n" " <album> pro pole Album\n" " <year> pro pole Rok\n" " <comment> pro pole Poznámka\n" " <track> pro pole Stopa\n" " <genre> pro pole Žánr\n" "\n" "Příklad přejmenování: \n" "\n" "Pokud chcete, aby názvy všech souborů byly ve tvaru Stopa - Název \n" "(např. \"01 - Zelená je tráva\"), použijete formát \"<track> - <title>\". \n" "\n" "Příklad přesunu: \n" "\n" "Formát názvu souboru může zahrnovat podadresáře. Pokud bychom \n" "v předchozím příkladě chtěli soubory umístit do adresáře s názvem alba, \n" "použili bychom formát \"<album>/<track> - <title>\". \n" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "Podporované zvukové formáty: " #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" "Použití:\n" " tagtool [ADRESÁŘ]\t\tZačít v adresáři ADRESÁŘ\n" " tagtool --dump SOUBOR\tVypsat veškeré dostupné údaje o souboru SOUBOR a " "skončit\n" " tagtool --help\tZobrazit tuto nápovědu\n" " tagtool --version\tVypsat verzi programu\n" "\n" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" "Nepodařilo se otevřít soubor: %s\n" "\n" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" "Audio formát souboru nerozpoznán: %s\n" "\n" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Pole" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "Text" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "Pokročilý (%i)" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" "Chyba při ukládání souboru \"%s\":\n" "%s (%d)" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "Chyba při ukládání souboru" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "Popisek ID3 byl změněn. Uložit?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Zrušit" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "Nové pole ID3" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Upravit pole ID3" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" "Bitrate\n" "%d kbps\n" "Vzorkovací frekvence\n" "%d Hz\n" "Kanály:\n" "%s\n" "Opatřeno copyrightem\n" "%s\n" "Původní\n" "%s\n" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "Ano" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "Ne" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "Přeskakuji soubor \"%s\"" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "Nemohu otevřít soubor pro čtení" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "Chyba při vytváření seznamu skladeb \"%s\"" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "Zapsáno \"%s\" (%d položek)" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "Zápis seznamu skladeb" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "Vstupuji do adresáře \"%s\"" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "Hotovo (zapsáno %d z %d seznamů)" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "Přesun souborů" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "Přejmenování souborů" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "Chyba při přejmenování \"%s\"" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "Neznámá chyba" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "Soubor nemá žádný popisek" #: src/rename_tab.c:242 #, fuzzy msgid "One of the tag fields is empty" msgstr "Není žádné pole, které by bylo možno nastavit!" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "Název souboru \"%s\" už je v požadovaném tvaru" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "Chyba při přesunu \"%s\"" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "Soubor \"%s\" už existuje" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "Chyba při vytváření adresáře \"%s\"" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "Vytvořen adresář \"%s\"" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "Soubor \"%s\" byl přesunut do \"%s\"" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "Soubor \"%s\" byl přejmenován na \"%s\"" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "Hotovo (přesunuto %d z %d souborů)" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "Hotovo (přejmenováno %d z %d souborů)" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "Popisování souborů" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "Není žádné pole, které by bylo možno nastavit!" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "Chyba při popisování souboru \"%s\"" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "Jméno souboru nemá očekávaný formát" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "Nastaven popisek souboru \"%s\"" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "Hotovo (Nastaveny popisky %d z %d souborů)" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" "Chyba při ukládání souboru \"%s\":\n" "%s (%d)\n" "\n" "Poznámka:\n" "Aby bylo možno uložit změny do souboru Ogg Vorbis, musíte mít oprávněníve\n" "write permission for the directory where it is located." #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "Popisek Vorbis Ogg byl změněn. Uložit změny?" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "Nové pole Vorbis Ogg" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "Upravit pole Vorbis Ogg" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" "Průměrný bitrate \n" "%ld kbps\n" "Nominální bitrate \n" "%ld kbps\n" "Vzorkovací frekvence \n" "%ld Hz\n" "Kanály \n" "%d\n" "Délka \n" "%dm %ds %dms\n" #~ msgid "Homepage:" #~ msgstr "Domovská stránka:" #~ msgid "Author:" #~ msgstr "Autor:" ������������������������������������������������������������������tagtool-0.12.3/po/es.po�����������������������������������������������������������������������������0000644�0001750�0001750�00000066140�10541302761�014175� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Spanish translation of Audio Tag Tool. # This file is distributed under the same license as the Audio Tag Tool package. # Rafael Bermdez <rafaelber@yahoo.com.mx>, 2005. # msgid "" msgstr "" "Project-Id-Version: Tagtool 0.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2005-02-12 14:03+0000\n" "Last-Translator: Rafael Bermdez <rafaelber@yahoo.com.mx>\n" "Language-Team: Spanish <ll@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Audio Tag Tool" #: src/tagtool.glade:36 msgid "_File" msgstr "_Archivo" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Abrir _directorio" #: src/tagtool.glade:66 msgid "Refresh" msgstr "_Recargar" #: src/tagtool.glade:94 msgid "Quit" msgstr "_Salir" #: src/tagtool.glade:119 msgid "_Settings" msgstr "_Configuracin" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "C_onversin de caracteres" #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "Pr_eferencias de ID3..." #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "Ver" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Bsico" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Avanzado" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "Copiar v1 a v2" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "Copiar v2 a v1" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "A_yuda" #: src/tagtool.glade:279 msgid "Contents..." msgstr "nd_ice..." #: src/tagtool.glade:300 msgid "About..." msgstr "A_cerca..." #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Incluir subdirectorios" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Seleccionar directorio de trabajo" #: src/tagtool.glade:471 msgid "<b>Working Directory</b>" msgstr "<b>Directorio de trabajo</b>" #: src/tagtool.glade:559 msgid "<b>Files</b>" msgstr "<b>Archivos</b>" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Recargar lista de archivo" #: src/tagtool.glade:706 msgid "<span size=\"large\" weight=\"bold\">Edit Tag</span>" msgstr "<span size=\"large\" weight=\"bold\">Editar tags</span>" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Seleccionar archivo a editar" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "<b>Tag</b>" msgstr "<b>Tag</b>" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "El archivo no tiene tag ID3v1" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Crear" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Ttulo:" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Comentario:" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Ao:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "lbum:" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Gnero:" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Pista:" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Artista:" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "El archivo no tiene tag ID3v2" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Agregar" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Quitar" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Editar (doble-clic)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Quitar tag" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Guardar cambios" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Eliminar tags" #: src/tagtool.glade:3468 msgid "<b>File Info</b>" msgstr "<b>Informacin del archivo</b>" #: src/tagtool.glade:3658 msgid "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Editar tags de mltiples archivos</span>" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "<b>File Name Format</b>" msgstr "<b>Formato de nombre de archivo</b>" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Ayuda sobre formatos de nombre de archivo" #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "<b>Character and Case Conversion</b>" msgstr "<b>Conversin de caracteres</b>" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Configurar" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Auto-incrementar" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Editar tags a partir de nombres de archivo" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Aplicar a " #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "Todos los archivos\n" "Archivos seleccionados" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Comenzar!" #: src/tagtool.glade:4607 msgid "<span size=\"large\" weight=\"bold\">Clear Tags</span>" msgstr "<span size=\"large\" weight=\"bold\">Eliminar tags</span>" #: src/tagtool.glade:4663 msgid "<b>Tags to Clear</b>" msgstr "<b>Tags a eliminar</b>" #: src/tagtool.glade:4688 msgid "All" msgstr "Todas" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Slo tags ID3 v1" #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Slo tags ID3 v2" #: src/tagtool.glade:4949 msgid "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Renombrar mltiples archivos</span>" #: src/tagtool.glade:5416 msgid "<span size=\"large\" weight=\"bold\">Create Playlists</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Crear listas de reproduccin</span>" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "Cada directorio" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "Directorio superior" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "Ambos" #: src/tagtool.glade:5516 msgid "<b>Create In</b>" msgstr "<b>Crear en</b>" #: src/tagtool.glade:5580 msgid "<b>Playlist File Name</b>" msgstr "<b>Nombre de la lista de reproduccin</b>" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Cambiar a:" #: src/tagtool.glade:5631 msgid "playlist" msgstr "lista de reproduccin" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Igual que el directorio" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Extensin:" #: src/tagtool.glade:5756 msgid "<b>Sort Entries</b>" msgstr "<b>Ordenar entradas</b>" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "Por tag (si existe):" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Ttulo\n" "Artista\n" "lbum\n" "Ao\n" "Gnero\n" "Comentario\n" "Pista #" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "Ordenar ignorando directorios" #: src/tagtool.glade:5904 msgid "By file name" msgstr "Por nombre" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Conversin de caracteres" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "Sin conversin" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "Convertir este caracter a espacio" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "<b>Space Conversion</b>" msgstr "<b>Conversin de espacios</b>" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "<b>Case Conversion</b>" msgstr "<b>Capitalizacin</b>" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(sin conversin)\n" "minsculas\n" "MAYSCULAS\n" "Como frase\n" "Como Ttulo" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "Al editar tags" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Convertir espacios a:" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Omitir" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Convertir a:" #: src/tagtool.glade:6869 msgid "<b>Invalid File Name Characters</b>" msgstr "<b>Caracteres no vlidos</b>" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "Al renombrar" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "Acerca de Audio Tag Tool" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "" #: src/tagtool.glade:7125 msgid "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" msgstr "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" #: src/tagtool.glade:7146 msgid "<b>version %s</b>" msgstr "<b>versin %s</b>" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Formatos de sonido soportados:" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" "Este software est disponible bajo los trminos de la GNU General Public " "License.\n" "Vea el archivo COPYING para leer todos los trminos de la licencia." #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "Preferencias de ID3" #: src/tagtool.glade:7373 msgid "<b>When tagging multiple files</b>" msgstr "<b>Al editar tags de mltiples archivos</b>" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "Versin de ID3 a crear" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "Slo v1" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "Slo v2" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "Usar v1 como predeterminado, agregar v2 slo cuando sea necesario" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Conservar versiones de tags existentes" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Texto:" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Campo:" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Progreso" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Renombrar un archivo manualmente" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Renombrado manual..." #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Borrar del disco los archivos seleccionados" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Borrar archivos seleccionados" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "Deseleccionar todos los archivos" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "Deseleccionar todo" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Renombrar archivo" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "Nombre de archivo:" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Progreso de la bsqueda" #: src/tagtool.glade:8048 msgid "<b>Scanning...</b>" msgstr "<b>Buscando...</b>" #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Directorios explorados:\n" "Archivos encontrados:" #: src/tagtool.glade:8134 #, fuzzy msgid "Credits" msgstr "Crear" #: src/tagtool.glade:8215 msgid "Written by" msgstr "" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "Eliminando tags" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "Iniciando en el directorio \"%s\"" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "Operacin detenida a peticin del usuario" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(Error de conversin UTF8)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "Entrando en directorio \"%.*s\"" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Error en el archivo \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "No se puede escribir en el archivo" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "Formato de sonido no reconocido" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "Error desconocido (%d)" #: src/clear_tab.c:155 #, c-format msgid "Skipped \"%s\"" msgstr "Archivo \"%s\" omitido" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "Eliminada tag de \"%s\"" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "Terminado (eliminadas %d tags de %d archivos)" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "No hay archivos seleccionados" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "No se puede abrir el archivo %s" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "Formato de sonido no reconocido: %s" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "Error al abrir el archivo %s" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "El archivo %s es de slo lectura" #: src/edit_tab.c:123 msgid "File Type:" msgstr "Tipo de archivo:" #: src/file_list.c:116 msgid "No files found" msgstr "No se encontraron archivos" #: src/file_list.c:118 msgid "1 file found" msgstr "1 archivo encontrado" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "%i archivos encontrados" #: src/file_list.c:123 msgid " (1 selected)" msgstr " (1 seleccionado)" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr " (%i seleccionados)" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "(el nombre del directorio no se puede convertir a UTF8)" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "el nombre del archivo no se puede convertir a UTF8)" #: src/file_list.c:212 msgid "Deleting Files" msgstr "Borrando archivos" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "Borrando el archivo \"%s\"" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "Error al borrar el archivo \"%s\"" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "Terminado (borrados %d de %d archivos)" #: src/file_list.c:258 msgid "File Exists" msgstr "El archivo ya existe" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" "Un archivo con este nombre ya existe.\n" "Desea sobreescribirlo?" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" "Error al renombrar archivo:\n" "%s (%d)" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "Error al renombrar archivo" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "Error: No se puede abrir el directorio \"%s\"." #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "Error: \"%s\" no es un directorio." #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "Error: Permiso denegado para \"%s\"." #: src/file_list.c:374 msgid "Scanning..." msgstr "Buscando..." #: src/file_list.c:397 msgid "No files found." msgstr "No se encontraron archivos." #: src/file_list.c:400 msgid "1 file found." msgstr "1 archivo encontrado." #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "%d archivos encontrados." #: src/file_list.c:451 msgid "Delete selected files" msgstr "Borrar archivos seleccionados" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "Esto borrar el archivo seleccionado del disco. Continuar?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Seleccionar directorio" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "Ayuda - Formato de nombre de archivo" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" "Este campo describe el formato esperado del nombre de archivo \n" "(sin incluir la extensin). Audio Tag Tool usa esta \n" "informacin para llenar automticamente las tags a partir del \n" "nombre de los archivos. \n" "\n" "A cada campo le corresponde un smbolo, como se lista abajo: \n" "\n" " <ttulo>\n" " <artista>\n" " <lbum>\n" " <ao>\n" " <comentario>\n" " <pista>\n" " <gnero>\n" "\n" "Ejemplos: \n" "\n" "El formato \"<artista> - <lbum> - <ttulo>\" corresponder a \n" "un archivo llamado \"Pink Floyd - The Wall - Hey You.mp3\". En este \n" "ejemplo los campos de Artista, lbum y Ttulo sern \n" "cambiados a \"Pink Floyd\", \"The Wall\" y \"Hey You\", \n" "respectivamente.\n" "\n" "El formato \"<artista> - <*> - <ttulo>\" puede ser usado \n" "en el ejemplo anterior si no queremos poner el nombre del lbum \n" "(el smbolo especial <*> hace que esa parte del nombre del archivo\n" "sea ignorada.) \n" #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" "Este campo describe el formato deseado del nombre de archivo. \n" "Audio Tag Tool puede usar esta informacin para renombrar archivos \n" "u organizarlos dentro de subdirectorios, a partir del contenido de \n" "sus tags. \n" "\n" "A cada campo ID3 le corresponde un smbolo, como se lista abajo: \n" "\n" " <ttulo>\n" " <artista>\n" " <lbum>\n" " <ao>\n" " <comentario>\n" " <pista>\n" " <gnero>\n" "\n" "Renombrando (ejemplo): \n" "\n" "Para que el nombre de los archivos sea el nmero de la pista \n" "seguido del ttulo, un formato como \"<track> - <title>\" puede \n" "ser usado. \n" "\n" "Moviendo (ejemplo): \n" "\n" "El formato del nombre de archivo puede incluir sub-directorios. \n" "Si en el ejemplo anterior quisieramos poner los archivos en un \n" "directorio con el nombre del lbum, deberamos usar el formato \n" "\"<lbum>/<pista> - <ttulo>\". \n" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "Formatos de sonido soportados: " #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" "Utilizado:\n" " tagtool [DIR]\t\tIniciar en el directorio DIR\n" " tagtool --dump FILE\tMuestra toda la informacin conocida de ARCHIVO y " "sale\n" " tagtool --help\tMuestra este mensaje de ayuda\n" " tagtool --version\tMuestra la versin del programa\n" "\n" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" "No se puede abrir el archivo: %s\n" "\n" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" "Formato de archivo de sonido no reconocido: %s\n" "\n" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Campo" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "Texto" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "Avanzado (%i)" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" "Error al guardar el archivo \"%s\":\n" "%s (%d)" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "Error al guardar el archivo" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "La tag ID3 ha sido modificada. Desea guardar los cambios?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Descartar" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "Nuevo campo ID3" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Editar campo ID3" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" "Bit rate\n" "%d kbps\n" "Frecuencia de muestreo\n" "%d Hz\n" "Modo de canal\n" "%s\n" "Con copyright\n" "%s\n" "Original\n" "%s\n" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "S" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "No" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "Omitiendo archivo \"%s\"" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "No se puede abrir el archivo para lectura" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "Error al crear lista de reproduccin \"%s\"" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "Se escribi \"%s\" (%d entradas)" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "Escribiendo listas de reproduccin" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "Entrando en directorio \"%s\"" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "Terminado (escritas %d de %d listas de reproduccin)" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "Moviendo archivos" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "Renombrando archivos" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "Error al renombrar \"%s\"" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "Error desconocido" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "El archivo no tiene tag" #: src/rename_tab.c:242 msgid "One of the tag fields is empty" msgstr "Uno de los campos est vaco" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "El nombre de archivo \"%s\" ya est en el formato deseado" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "Error al mover \"%s\"" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "El archivo \"%s\" ya existe" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "Error al crear directorio \"%s\"" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "Directorio \"%s\" creado" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "\"%s\" fue movido a \"%s\"" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "\"%s\" fue renombrado a \"%s\"" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "Terminado (movidos %d de %d archivos)" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "Terminado (renombrados %d de %d archivos)" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "Escribiendo tags" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "No hay campos a escribir!" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "Error al escribir tag en \"%s\"" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "El nombre de archivo no corresponde al formato esperado" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "Tag escrita en \"%s\"" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "Terminado (editados %d de %d archivos)" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" "Error al guardar el archivo \"%s\":\n" "%s (%d)\n" "\n" "Nota:\n" "Para guardar los cambios a un archivo Ogg Vorbis, necesita tener\n" "permiso de escritura en el directorio donde est ubicado." #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "La tag vorbis ha sido modificada. Desea guardar los cambios?" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "Nuevo campo vorbis" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "Editar campo vorbis" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" "Bit rate promedio\n" "%ld kbps\n" "Bit rate nominal\n" "%ld kbps\n" "Frecuencia de muestreo\n" "%ld Hz\n" "Canales\n" "%d\n" "Duracin\n" "%dmin %dseg %dms\n" #~ msgid "Homepage:" #~ msgstr "Pgina web" #~ msgid "Author:" #~ msgstr "Autor" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/po/it.po�����������������������������������������������������������������������������0000644�0001750�0001750�00000066022�10541302761�014201� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Italian translation of Audio Tag Tool. # This file is distributed under the same license as the Audio Tag Tool package. # Emilio Scalise <emisca@rocketmail.com>, 2005. # msgid "" msgstr "" "Project-Id-Version: tagtool 0.12.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2005-03-05 13:37+0100\n" "Last-Translator: Emilio Scalise <emisca@rocketmail.com>\n" "Language-Team: tagtool-it <emisca@rocketmail.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Italian\n" "X-Poedit-Country: ITALY\n" "X-Poedit-Basepath: /usr/local/src/tagtool-0-12.1\n" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Audio Tag Tool" #: src/tagtool.glade:36 msgid "_File" msgstr "_File" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Apri Directory..." #: src/tagtool.glade:66 msgid "Refresh" msgstr "Aggiorna" #: src/tagtool.glade:94 msgid "Quit" msgstr "Esci" #: src/tagtool.glade:119 msgid "_Settings" msgstr "_Impostazioni" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "Conversione dei caratteri" #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "Preferenze ID3..." #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "Vista" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Semplice" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Avanzata" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "Copia v1 a v2" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "Copia v2 a v1" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "_Aiuto" #: src/tagtool.glade:279 msgid "Contents..." msgstr "Contenuti..." #: src/tagtool.glade:300 msgid "About..." msgstr "Informazioni su..." #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Includi sottodirectory" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Scegli la Directory di Lavoro" #: src/tagtool.glade:471 msgid "<b>Working Directory</b>" msgstr "<b>Directory di Lavoro</b>" #: src/tagtool.glade:559 msgid "<b>Files</b>" msgstr "<b>Files</b>" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Aggiorna la lista dei file" #: src/tagtool.glade:706 msgid "<span size=\"large\" weight=\"bold\">Edit Tag</span>" msgstr "<span size=\"large\" weight=\"bold\">Modifica Tag</span>" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Scegli un file da modificare" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "<b>Tag</b>" msgstr "<b>Tag</b>" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "Il file non ha tag ID3v1" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Crea" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Titolo:" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Commento:" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Anno:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "Album:" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Genere:" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Traccia:" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Artista:" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "Il file non ha tag ID3v2" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Aggiungi" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Rimuovi" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Modifica (doppio-click)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Rimuovi Tag" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Salva le modifiche" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Cancella Tag" #: src/tagtool.glade:3468 msgid "<b>File Info</b>" msgstr "<b>Informazioni sul file</b>" #: src/tagtool.glade:3658 msgid "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" msgstr "<span size=\"large\" weight=\"bold\">Aggiungi Tag a più Files</span>" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "<b>File Name Format</b>" msgstr "<b>Formato del nome del File</b>" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Aiuto sui formati di nome per i file" #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "<b>Character and Case Conversion</b>" msgstr "<b>Conversione dei caratteri e Maiuscole/Minuscole</b>" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Configura" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Auto-incremento" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Imposta i tag secondo i nomi dei file" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Applica a" #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "Tutti i files\n" "File Selezionati" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Vai!" #: src/tagtool.glade:4607 msgid "<span size=\"large\" weight=\"bold\">Clear Tags</span>" msgstr "Cancella Tag" #: src/tagtool.glade:4663 msgid "<b>Tags to Clear</b>" msgstr "<b>Tag da Cancellare</b>" #: src/tagtool.glade:4688 msgid "All" msgstr "Tutti" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Solo tag ID3 v1" #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Solo tags ID3 v2" #: src/tagtool.glade:4949 msgid "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" msgstr "<span size=\"large\" weight=\"bold\">Rinomina file multipli</span>" #: src/tagtool.glade:5416 msgid "<span size=\"large\" weight=\"bold\">Create Playlists</span>" msgstr "<span size=\"large\" weight=\"bold\">Crea Playlist</span>" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "Ogni directory" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "Directory di livello superiore" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "Entrambi" #: src/tagtool.glade:5516 msgid "<b>Create In</b>" msgstr "<b>Crea In</b>" #: src/tagtool.glade:5580 msgid "<b>Playlist File Name</b>" msgstr "<b>Nome del file della Playlist</b>" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Imposta a:" #: src/tagtool.glade:5631 msgid "playlist" msgstr "playlist" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Stesso nome della directory" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Estensione:" #: src/tagtool.glade:5756 msgid "<b>Sort Entries</b>" msgstr "<b>Ordina Elementi</b>" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "Secondo il tag (se disponibile)" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Titolo\n" "Artista\n" "Album\n" "Anno\n" "Genere\n" "Commento\n" "Traccia #" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "Ordina tra tutte le directory" #: src/tagtool.glade:5904 msgid "By file name" msgstr "Secondo il nome del file" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Conversione dei caratteri" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "Nessuna conversione" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "Converti questo carattere in uno spazio:" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "<b>Space Conversion</b>" msgstr "<b>Conversione degli spazi</b>" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "<b>Case Conversion</b>" msgstr "<b>Conversione Maiuscole</b>" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(nessuna conversione)\n" "minuscole\n" "MAIUSCOLE\n" "Prima Lettera\n" "Iniziali" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "Mentre Aggiungi Tag" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Converti spazi in:" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Ometti" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Converti in:" #: src/tagtool.glade:6869 msgid "<b>Invalid File Name Characters</b>" msgstr "<b>Caratteri del nome del file non validi</b>" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "Mentre Rinomini" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "Informazioni su Audio Tag Tool" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "" #: src/tagtool.glade:7125 msgid "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" msgstr "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" #: src/tagtool.glade:7146 msgid "<b>version %s</b>" msgstr "<b>versione %s</b>" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Formati audio supportati:" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" "Questo software è reso disponibile secondo la GNU General Public Licence.\n" "Guarda il file COPYING per i termini completi di licenza." #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "Preferenze ID3" #: src/tagtool.glade:7373 msgid "<b>When tagging multiple files</b>" msgstr "<b>Mentre aggiungi i tag a più file</b>" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "Versioni di tag ID3 da creare:" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "Solo v1" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "Solo v2" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "Di default v1, aggiungi v2 solo se necessario" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Preserva le versioni di tag esistenti" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Testo:" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Campo:" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Avanzamento" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Rinomina manualmente il file" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Rinomina manualmente..." #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Cancella i file selezionati dal disco" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Cancella i file selezionati" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "Deseleziona tutti i file" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "Deseleziona tutti" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Rinomina file" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "Nome del file:" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Avanzamento della scansione" #: src/tagtool.glade:8048 msgid "<b>Scanning...</b>" msgstr "<b>Scansione...</b>" #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Directories scandite:\n" "Files trovati:" #: src/tagtool.glade:8134 #, fuzzy msgid "Credits" msgstr "Crea" #: src/tagtool.glade:8215 msgid "Written by" msgstr "" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "Rimuovo i Tag" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "Parto dalla directory \"%s\"" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "Operazione fermata su richiesta dell'utente" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(errore di conversione UTF-8)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "Sto entrando nella directory \"%.*s\"" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Errore nel file \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "Non posso aprire il file per la scrittura" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "Formato audio non riconosciuto" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "Errore sconosciuto (%d)" #: src/clear_tab.c:155 #, fuzzy, c-format msgid "Skipped \"%s\"" msgstr "Salto il file \"%s\"" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "Tag rimosso da \"%s\"" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "Finito (Puliti %d of %d files)" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "Nessun file selezionato" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "Non posso aprire il file %s" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "Formato di file audio non riconosciuto: %s" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "Errore sconosciuto all'apertura del file %s" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "Il file è di sola lettura: %s" #: src/edit_tab.c:123 msgid "File Type:" msgstr "Tipo di file:" #: src/file_list.c:116 msgid "No files found" msgstr "Nessun file trovato" #: src/file_list.c:118 msgid "1 file found" msgstr "1 file trovato" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "%i files trovati" #: src/file_list.c:123 msgid " (1 selected)" msgstr "(1 selezionato)" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr "(%i selezionati)" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "(il nome della dir non può essere convertito in UTF8)" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "(il nome del file non può essere convertito in UTF8)" #: src/file_list.c:212 msgid "Deleting Files" msgstr "Rimuovo i files" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "Rimuovo il file \"%s\"" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "Errore nella rimozione del file \"%s\"" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "Finito (rimossi %d of %d files)" #: src/file_list.c:258 msgid "File Exists" msgstr "Il file esiste" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" "Un file con lo stesso nome esiste già.\n" "Lo vuoi sovrascrivere?" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" "Errore rinominando il file:\n" "%s (%d)" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "Errore rinominando il file" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "Errore: Non posso aprire la directory \"%s\"." #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "Errore:\"%s\" non è una directory" #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "Errore: Permesso negato per \"%s\"." #: src/file_list.c:374 msgid "Scanning..." msgstr "Scansione..." #: src/file_list.c:397 msgid "No files found." msgstr "Nessun file trovato." #: src/file_list.c:400 msgid "1 file found." msgstr "1 file trovato" #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "%d files trovati" #: src/file_list.c:451 msgid "Delete selected files" msgstr "Cancella i file selezionati" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "Questo cancellerà i file selezionati dal disco. Procedere?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Scegli la directory" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "Aiuto - Formato del nome del file" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" "Questo campo descrive il formato atteso del nome del file\n" "(senza includere l'estensione). Audio Tag Tool usa questa\n" "informazione per riempire automaticamente i tag basandosi\n" "sul nome del file.\n" "\n" "Ogni campo del tag ha un simbolo corrispondente, come elencato sotto:\n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Esempi: \n" "\n" "Il formato \"<artist> - <album> - <title>\" rappresenta un \n" "file chiamato \"Pink Floyd - The Wall - Hey You.mp3\". In questo\n" "esempio i campi Artista, Album and Titolo del tag saranno \n" "impostati a \"Pink Floyd\", \"The Wall\" e \"Hey You\", \n" "rispettivamente.\n" "\n" "Il fomato \"<artist> - <*> - <title>\" può anche essere usato \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" "Questo campo descrive il formato desiderato del nome del file.\n" "Audio Tag Tool può usare questa informazione per rinominare file o\n" "organizzarli in sottodirectory, basandosi sul contenuto dei\n" "loro tag. \n" "\n" "Ogni campo ID3 ha un simbolo corrispondente, come elencato sotto:\n" "\n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Esempio di rinominazione: \n" "\n" "Per avere tutti i nomi di file con il numero di traccia seguito \n" "dal titolo della traccia, un formato tipo questo \"<track> - <title>\" può \n" "essere usato. \n" "\n" "Esempio di spostamento: \n" "\n" "Il nome del file può includere sotto-directory. Se nell'esempio\n" "precedente volevamo avere i file posizionati in una \n" "directory con il nome dell'album, avremmo dovuto usare il \n" "formato \"<album>/<track> - <title>\". \n" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "Formati audio supportati:" #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" "Uso:\n" " tagtool [DIR]\t\tParti nella directory DIR\n" " tagtool --dump FILE\tVisualizza tutte le informazioni conosciute sul FILE " "e esce\n" " tagtool --help\tVisualizza questo messaggio di aiuto\n" " tagtool --version\tVisualizza la versione del programma\n" "\n" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" "Non posso aprire il file: %s\n" "\n" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" "Formato del file audio non riconosciuto: %s\n" "\n" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Campo" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "Testo" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "Avanzato (%i)" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" "Errore nel salvataggio del file \"%s\":\n" "%s (%d)" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "Errore nel salvataggio del file" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "Il tag ID3 è stato modificato. Salvo i cambiamenti?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Scarta" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "Nuovo campo ID3" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Modifica campo ID3" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "Si" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "No" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "Salto il file \"%s\"" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "Non posso aprire il file per la lettura" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "Errore nella creazione della playlist \"%s\"" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "Scritte \"%s\" (%d occorenze)" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "Sto scrivendo le playlist" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "Entro nella directory \"%s\"" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "Finito (scritte %d di %d playlist)" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "Sto spostando i file" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "Sto rinominando i file" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "Errore rinominando \"%s\"" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "Errore sconosciuto" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "Il file non ha tag" #: src/rename_tab.c:242 #, fuzzy msgid "One of the tag fields is empty" msgstr "Nessun campo del tag impostato" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "Il nome del file \"%s\" è già nel formato desiderato" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "Errore spostando \"%s\"" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "Il file \"%s\" esiste già" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "Errore nella creazione della directory \"%s\"" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "Creata la directory \"%s\"" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "Spostata \"%s\" in \"%s\"" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "Rinominato \"%s\" in \"%s\"" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "Finito (spostati %d su %d files)" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "Finito (rinominati %d su %d files)" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "Sto inserendo i tag nei files" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "Nessun campo del tag impostato" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "Errore nell'inserimento del tag su \"%s\"" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "Il nome del file non corrisponde al formato atteso" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "Inserito il tag \"%s\"" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "Finito (tag inseriti in %d su %d files)" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" "Errore nel salvataggio del file \"%s\":\n" "%s (%d)\n" "\n" "Nota:\n" "Per poter salvare cambiamenti in un file Ogg Vorbis, devi avere\n" "i permessi in scrittura per la directory dove sono posizionati." #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "Il Tag Vorbis è stato modificato. Salvo i cambiamenti?" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "Nuovo campo Vorbis" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "Modifica Campo Vorbis" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" #~ msgid "Homepage:" #~ msgstr "Homepage:" #~ msgid "Author:" #~ msgstr "Autore:" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/po/en_GB.po��������������������������������������������������������������������������0000644�0001750�0001750�00000063725�10541302761�014546� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# English (British) translation. # This file is distributed under the same license as the tagtool package. # msgid "" msgstr "" "Project-Id-Version: Audio Tag Tool 0.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2005-02-20 16:53+0000\n" "Last-Translator: Christopher Orr <chris@protactin.co.uk>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Audio Tag Tool" #: src/tagtool.glade:36 msgid "_File" msgstr "_File" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Open Directory..." #: src/tagtool.glade:66 msgid "Refresh" msgstr "Refresh" #: src/tagtool.glade:94 msgid "Quit" msgstr "Quit" #: src/tagtool.glade:119 msgid "_Settings" msgstr "_Settings" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "Character Conversions..." #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "ID3 Preferences..." #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "View" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Simple" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Advanced" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "Copy v1 to v2" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "Copy v2 to v1" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "_Help" #: src/tagtool.glade:279 msgid "Contents..." msgstr "Contents..." #: src/tagtool.glade:300 msgid "About..." msgstr "About..." #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Include subdirectories" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Select Working Directory" #: src/tagtool.glade:471 msgid "<b>Working Directory</b>" msgstr "<b>Working Directory</b>" #: src/tagtool.glade:559 msgid "<b>Files</b>" msgstr "<b>Files</b>" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Refresh file list" #: src/tagtool.glade:706 msgid "<span size=\"large\" weight=\"bold\">Edit Tag</span>" msgstr "<span size=\"large\" weight=\"bold\">Edit Tag</span>" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Select a file to edit" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "<b>Tag</b>" msgstr "<b>Tag</b>" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "File has no ID3v1 Tag" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Create" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Title:" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Comnt.:" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Year:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "Album:" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Genre:" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Track:" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Artist:" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "File has no ID3v2 Tag" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Add" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Remove" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Edit (double-click)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Remove Tag" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Save Changes" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Clear Tag" #: src/tagtool.glade:3468 msgid "<b>File Info</b>" msgstr "<b>File Info</b>" #: src/tagtool.glade:3658 msgid "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" msgstr "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "<b>File Name Format</b>" msgstr "<b>File Name Format</b>" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Get help on filename formats" #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "<b>Character and Case Conversion</b>" msgstr "<b>Character and Case Conversion</b>" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Configure" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Auto-increment" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Set tags based on file names" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Apply to " #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "All files\n" "Selected files" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Go!" #: src/tagtool.glade:4607 msgid "<span size=\"large\" weight=\"bold\">Clear Tags</span>" msgstr "<span size=\"large\" weight=\"bold\">Clear Tags</span>" #: src/tagtool.glade:4663 msgid "<b>Tags to Clear</b>" msgstr "<b>Tags to Clear</b>" #: src/tagtool.glade:4688 msgid "All" msgstr "All" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Only ID3 v1 tags" #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Only ID3 v2 tags" #: src/tagtool.glade:4949 msgid "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" msgstr "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" #: src/tagtool.glade:5416 msgid "<span size=\"large\" weight=\"bold\">Create Playlists</span>" msgstr "<span size=\"large\" weight=\"bold\">Create Playlists</span>" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "Every directory" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "Top-level directory" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "Both" #: src/tagtool.glade:5516 msgid "<b>Create In</b>" msgstr "<b>Create In</b>" #: src/tagtool.glade:5580 msgid "<b>Playlist File Name</b>" msgstr "<b>Playlist File Name</b>" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Set to:" #: src/tagtool.glade:5631 msgid "playlist" msgstr "playlist" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Same as directory name" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Extension:" #: src/tagtool.glade:5756 msgid "<b>Sort Entries</b>" msgstr "<b>Sort Entries</b>" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "By tag field (if available):" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "Sort across directories" #: src/tagtool.glade:5904 msgid "By file name" msgstr "By file name" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Character Conversions" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "No conversion" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "Convert this character to space:" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "<b>Space Conversion</b>" msgstr "<b>Space Conversion</b>" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "<b>Case Conversion</b>" msgstr "<b>Case Conversion</b>" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "When Tagging" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Convert spaces to:" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Omit" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Convert to:" #: src/tagtool.glade:6869 msgid "<b>Invalid File Name Characters</b>" msgstr "<b>Invalid File Name Characters</b>" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "When Renaming" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "About Audio Tag Tool" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "" #: src/tagtool.glade:7125 msgid "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" msgstr "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" #: src/tagtool.glade:7146 msgid "<b>version %s</b>" msgstr "<b>version %s</b>" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Supported audio formats:" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full licence terms." #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "ID3 Preferences" #: src/tagtool.glade:7373 msgid "<b>When tagging multiple files</b>" msgstr "<b>When tagging multiple files</b>" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "ID3 tag versions to create:" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "Only v1" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "Only v2" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "Default to v1, add v2 only when necessary" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Preserve existing tag versions" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Text:" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Field:" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Progress" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Manually rename a file" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Manual Rename..." #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Delete selected files from disk" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Delete Selected Files" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "Unselect all files" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "Unselect All" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Rename File" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "File Name:" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Scan Progress" #: src/tagtool.glade:8048 msgid "<b>Scanning...</b>" msgstr "<b>Scanning...</b>" #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Directories scanned:\n" "Files found:" #: src/tagtool.glade:8134 #, fuzzy msgid "Credits" msgstr "Create" #: src/tagtool.glade:8215 msgid "Written by" msgstr "" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "Clearing Tags" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "Starting in directory \"%s\"" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "Operation stopped at user's request" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(UTF8 conversion error)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "Entering directory \"%.*s\"" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Error in file \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "Couldn't open file for writing" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "Audio format not recognised" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "Unknown error (%d)" #: src/clear_tab.c:155 #, c-format msgid "Skipped \"%s\"" msgstr "Skipped \"%s\"" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "Cleared tag from \"%s\"" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "Done (Cleared %d of %d files)" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "No files selected" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "Couldn't open file %s" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "Audio file format not recognised: %s" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "Unknow error when opening file %s" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "File is read-only: %s" #: src/edit_tab.c:123 msgid "File Type:" msgstr "File Type:" #: src/file_list.c:116 msgid "No files found" msgstr "No files found" #: src/file_list.c:118 msgid "1 file found" msgstr "1 file found" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "%i files found" #: src/file_list.c:123 msgid " (1 selected)" msgstr " (1 selected)" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr " (%i selected)" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "(dir name could not be converted to UTF8)" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "(file name could not be converted to UTF8)" #: src/file_list.c:212 msgid "Deleting Files" msgstr "Deleting Files" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "Deleted file \"%s\"" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "Error deleting file \"%s\"" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "Done (deleted %d of %d files)" #: src/file_list.c:258 msgid "File Exists" msgstr "File Exists" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" "A file with this name already exists.\n" "Do you want to overwrite it?" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" "Error renaming file:\n" "%s (%d)" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "Error Renaming File" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "Error: Can't open directory \"%s\"." #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "Error: \"%s\" is not a directory." #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "Error: Permission denied for \"%s\"." #: src/file_list.c:374 msgid "Scanning..." msgstr "Scanning..." #: src/file_list.c:397 msgid "No files found." msgstr "No files found." #: src/file_list.c:400 msgid "1 file found." msgstr "1 file found." #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "%d files found." #: src/file_list.c:451 msgid "Delete selected files" msgstr "Delete selected files" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "This will delete the selected files from disk. Proceed?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Select Directory" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "Help - File Name Format" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organise them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "Supported audio formats: " #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" "Couldn't open file: %s\n" "\n" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" "File audio format not recognised: %s\n" "\n" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Field" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "Text" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "Advanced (%i)" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" "Error saving file \"%s\":\n" "%s (%d)" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "Error Saving File" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "ID3 Tag has been modified. Save changes?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Discard" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "New ID3 Field" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Edit ID3 Field" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "Yes" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "No" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "Skipping file \"%s\"" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "Couldn't open file for reading" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "Error creating playlist \"%s\"" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "Wrote \"%s\" (%d entries)" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "Writing Playlists" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "Entering directory \"%s\"" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "Done (wrote %d of %d playlists)" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "Moving Files" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "Renaming Files" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "Error renaming \"%s\"" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "Unknown error" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "File has no tag" #: src/rename_tab.c:242 msgid "One of the tag fields is empty" msgstr "One of the tag fields is empty" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "File name \"%s\" already in desired format" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "Error moving \"%s\"" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "File \"%s\" already exists" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "Error creating directory \"%s\"" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "Created directory \"%s\"" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "Moved \"%s\" to \"%s\"" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "Renamed \"%s\" to \"%s\"" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "Done (moved %d of %d files)" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "Done (renamed %d of %d files)" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "Tagging Files" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "No tag fields to set!" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "Error tagging \"%s\"" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "File name does not match expected format" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "Tagged \"%s\"" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "Done (tagged %d of %d files)" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "Vorbis Tag has been modified. Save changes?" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "New Vorbis Field" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "Edit Vorbis Field" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" #~ msgid "MP3 and Ogg Vorbis tag editor" #~ msgstr "MP3 and Ogg Vorbis tag editor" #~ msgid "Author:" #~ msgstr "Author:" #~ msgid "Homepage:" #~ msgstr "Homepage:" �������������������������������������������tagtool-0.12.3/po/de.po�����������������������������������������������������������������������������0000644�0001750�0001750�00000065757�10541302761�014173� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of de.po to deutsch # translation of tagtool.po to German # translation of tagtool.po to deutsch # This file is distributed under the same license as the PACKAGE package. # Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER. # Jan Wenzel <scripter01@gmx.net>, 2005. # msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2005-02-28 18:11+0100\n" "Last-Translator: Jan Wenzel <scripter01@gmx.net>\n" "Language-Team: deutsch <de@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Audio Tag Tool" #: src/tagtool.glade:36 msgid "_File" msgstr "_Datei" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Öffne Ordner..." #: src/tagtool.glade:66 msgid "Refresh" msgstr "Aktualisieren" #: src/tagtool.glade:94 msgid "Quit" msgstr "Beenden" #: src/tagtool.glade:119 msgid "_Settings" msgstr "_Einstellungen" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "Zeichenkonvertierung..." #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "ID3 Einstellungen..." #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "Ansicht" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Einfach" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Erweitert" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "Kopiere v1 nach v2" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "Kopiere v2 nach v1" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "_Hilfe" #: src/tagtool.glade:279 msgid "Contents..." msgstr "Inhalt..." #: src/tagtool.glade:300 msgid "About..." msgstr "Über..." #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Mit Unterordnern" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Basisordner auswählen" #: src/tagtool.glade:471 msgid "<b>Working Directory</b>" msgstr "<b>Basisordner</b>" #: src/tagtool.glade:559 msgid "<b>Files</b>" msgstr "<b>Dateien</b>" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Dateiliste aktualisieren" #: src/tagtool.glade:706 msgid "<span size=\"large\" weight=\"bold\">Edit Tag</span>" msgstr "<span size=\"large\" weight=\"bold\">Tag bearbeiten</span>" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Wählen Sie eine Datei" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "<b>Tag</b>" msgstr "<b>Tag</b>" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "Datei hat keinen ID3v1-Tag" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Erstellen" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Titel:" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Vermerk:" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Jahr:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "Album:" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Genre:" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Stück:" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Künstler:" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "Datei hat keinen ID3v2-Tag" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Hinzufügen" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Entfernen" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Bearbeiten (Doppelklick)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Entferne Tag" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Änderungen speichern" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Entferne Tag" #: src/tagtool.glade:3468 msgid "<b>File Info</b>" msgstr "<b>Datei-Info</b>" #: src/tagtool.glade:3658 msgid "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" msgstr "<span size=\"large\" weight=\"bold\">Mehrere Dateien taggen</span>" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "<b>File Name Format</b>" msgstr "<b>Format des Dateinamen</b>" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Hilfe zur Dateinamen-Formatierung" #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "<b>Character and Case Conversion</b>" msgstr "<b>Buchstaben- und Sonderzeichenbehandlung</b>" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Einstellungen" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Durchlaufend nummerieren" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Erstelle Tag aus Dateiname" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Anwenden auf" #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "Alle Dateien\n" "Ausgewählte Dateien" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Los!" #: src/tagtool.glade:4607 msgid "<span size=\"large\" weight=\"bold\">Clear Tags</span>" msgstr "<span size=\"large\" weight=\"bold\">Entferne Tags</span>" #: src/tagtool.glade:4663 msgid "<b>Tags to Clear</b>" msgstr "<b>Zu entfernende Tags</b>" #: src/tagtool.glade:4688 msgid "All" msgstr "Alle" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Nur ID3v1-Tags" #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Nur ID3v2-Tags" #: src/tagtool.glade:4949 msgid "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Umbenennen mehrerer Dateien</span>" #: src/tagtool.glade:5416 msgid "<span size=\"large\" weight=\"bold\">Create Playlists</span>" msgstr "<span size=\"large\" weight=\"bold\">Erstelle Playlisten</span>" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "Jedem Ordner" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "Basisordner" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "Beiden" #: src/tagtool.glade:5516 msgid "<b>Create In</b>" msgstr "<b>Erstelle In</b>" #: src/tagtool.glade:5580 msgid "<b>Playlist File Name</b>" msgstr "<b>Dateiname der Playlist</b>" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Setze auf:" #: src/tagtool.glade:5631 msgid "playlist" msgstr "Playlist" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Name des Ordners" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Erweiterung:" #: src/tagtool.glade:5756 msgid "<b>Sort Entries</b>" msgstr "<b>Sortiere Einträge</b>" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "Nach Tag-Feld (wenn vorhanden)" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Titel\n" "Künstler\n" "Album\n" "Jahr\n" "Genre\n" "Vermerk\n" "Stück #" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "Sortierung quer durch Ordner" #: src/tagtool.glade:5904 msgid "By file name" msgstr "Nach Dateiname" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Behandlung von Sonderzeichen" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "Keine Umwandlung" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "Wandle dieses Zeichen in Leerzeichen" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "<b>Space Conversion</b>" msgstr "<b>Leerzeichen</b>" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "<b>Case Conversion</b>" msgstr "<b>Groß- u. Kleinbuchstaben</b>" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(keine Umwandlung)\n" "kleinbuchstaben\n" "GROSSBUCHSTABEN\n" "Erstes wort groß\n" "Jedes Wort Groß" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "Beim Setzen des Tags" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Wandle Leerzeichen in:" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Auslassen" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Wandle in:" #: src/tagtool.glade:6869 msgid "<b>Invalid File Name Characters</b>" msgstr "<b>Ungültige Zeichen im Dateinamen</b>" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "Beim Umbenennen" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "Über Audio Tag Tool" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "" #: src/tagtool.glade:7125 msgid "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" msgstr "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" #: src/tagtool.glade:7146 msgid "<b>version %s</b>" msgstr "<b>Version %s</b>" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Unterstützte Audio-Formate:" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" "Dieses Programm wird unter den Bedingungen der GNU General Public Lizenz " "veröffentlicht. Die Lizenzbestimmungen finden Sie in der Datei COPYING." #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "ID3 Einstellungen" #: src/tagtool.glade:7373 msgid "<b>When tagging multiple files</b>" msgstr "<b>Beim Umbenennen mehrerer Dateien</b>" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "Erstelle ID3-Tag-Versionen:" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "Nur v1" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "Nur v2" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "v1 als Standard, v2 bei Bedarf" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Erhalte vorhandene Tag-Versionen" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Inhalt:" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Feld:" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Fortschritt" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Datei manuell umbenennen" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Manuell umbenennen..." #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Entferne ausgewählte Dateien" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Entferne ausgewählte Dateien" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "Alle Markierungen aufheben" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "Alle Markierungen aufheben" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Datei umbenennen" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "Dateiname:" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Fortschritt des Einlesevorgangs" #: src/tagtool.glade:8048 msgid "<b>Scanning...</b>" msgstr "<b>Lese ein...</b>" #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Ordner eingelesen:\n" "\n" "Dateien gefunden:" #: src/tagtool.glade:8134 #, fuzzy msgid "Credits" msgstr "Erstellen" #: src/tagtool.glade:8215 msgid "Written by" msgstr "" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "Entferne Tags" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "Starte in Ordner \"%s\"" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "Vorgang auf Wunsch des Benutzers abgebrochen" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(UTF8 Konvertierungsfehler)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "Erfasse Ordner \"%.*s\"" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Fehler in Datei \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "Datei konnte nicht zum Schreiben geöffnet werden" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "Audio-Format nicht erkannt" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "Unbekannter Fehler (%d)" #: src/clear_tab.c:155 #, c-format msgid "Skipped \"%s\"" msgstr "Übersprungen \"%s\"" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "Tag entfernt von \"%s\"" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "Fertig (%d von %d Dateien von Tag befreit)" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "Keine Dateien ausgewählt" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "Konnte Datei %s nicht öffnen" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "Audio-Format nicht erkannt: %s" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "Unbekannter Fehler beim Öffnen der Datei %s" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "Datei ist nur lesbar: %s" #: src/edit_tab.c:123 msgid "File Type:" msgstr "Datei-Typ:" #: src/file_list.c:116 msgid "No files found" msgstr "Keine Dateien gefunden" #: src/file_list.c:118 msgid "1 file found" msgstr "1 Datei gefunden" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "%i Dateien gefunden" #: src/file_list.c:123 msgid " (1 selected)" msgstr " (1 ausgewählt)" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr " (%i ausgewählt)" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "(Ordnername konnte nicht in UTF8 umgewandelt werden)" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "(Dateiname konnte nicht in UTF8 umgewandelt werden)" #: src/file_list.c:212 msgid "Deleting Files" msgstr "Entferne Dateien" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "Datei entfernt: \"%s\"" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "Fehler beim Entfernen der Datei \"%s\"" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "Fertig (%d von %d Dateien entfernt)" #: src/file_list.c:258 msgid "File Exists" msgstr "Datei existiert" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" "Eine Datei mit dem Namen existiert bereits.\n" "Möchten Sie diese überschreiben?" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" "Fehler beim Umbenennen von Datei:\n" "%s (%d)" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "Fehler beim Umbenennen von Datei" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "Fehler: Kann Ordner nicht öffnen: \"%s\"." #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "Fehler: \"%s\" ist kein Ordner." #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "Fehler: Keine Berechtigung für \"%s\"." #: src/file_list.c:374 msgid "Scanning..." msgstr "Lese ein..." #: src/file_list.c:397 msgid "No files found." msgstr "Keine Dateien gefunden." #: src/file_list.c:400 msgid "1 file found." msgstr "1 Datei gefunden." #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "%d Dateien gefunden." #: src/file_list.c:451 msgid "Delete selected files" msgstr "Entferne ausgewählte Dateien" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "Die ausgewählten Dateien werden endgültig entfernt. Weiter?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Wähle Ordner" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "Hilfe - Format des Dateinamen" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" "In diesem Feld wird das erwartete Format des Dateinamen\n" "(ohne Erweiterung) eingestellt. Audio Tag Tool benutzt diese Einstellung,\n" "um automatisch Tags aus dem Dateinamen zu lesen.\n" "\n" "Jedes Tag-Feld besitzt ein zugehöriges Schlüsselwort:\n" "\n" "Titel:\t\t<title>\n" "Künstler:\t<artist>\n" "Album:\t<album>\n" "Jahr:\t\t<year>\n" "Vermerk:\t<comment>\n" "Stück:\t<track>\n" "Genre:\t<genre>\n" "\n" "Beispiele: \n" "\n" "Das Format \"<artist> - <album> - <title>\" erkennt eine Datei wie\n" "\"Pink Floyd - The Wall - Hey You.mp3\".\n" "In diesem Beispiel werden die Felder Künstler, Album und Titel auf\n" "\"Pink Floyd\", \"The Wall\" und \"Hey You\" gesetzt.\n" "\n" "Das Format \"<artist> - <*> - <title>\" kann ebenfalls im vorherigen " "Beispiel\n" "genutzt werden, wenn der Albenname nicht gesetzt werden soll\n" "(Das spezielle Symbol <*> verursacht, dass ein Teil ignoriert wird.)\n" #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" "In diesem Feld wird das gewünschte Format des Dateinamen eingestellt.\n" "Audio Tag Tool benutzt diese Einstellung um Dateien zu benennen\n" "oder in Unterordnern zu verwalten (ausgehend vom Inhalt Ihrer Tags).\n" "\n" "Jedes ID3-Feld besitzt ein zugehöriges Schlüsselwort:\n" "\n" "Titel:\t\t<title>\n" "Künstler:\t<artist>\n" "Album:\t<album>\n" "Jahr:\t\t<year>\n" "Vermerk:\t<comment>\n" "Stück:\t<track>\n" "Genre:\t<genre>\n" "\n" "Beispiel zum Umbenennen: \n" "\n" "Um den Dateinamen aus der Nummer und dem Titel bestehen zu lassen,\n" "könnte man das Format \"<track> - <title>\" verwenden.\n" "\n" "Beispiel zum Verschieben: \n" "\n" "Das Format des Dateinamens kann Unterordner einschliessen:\n" "Wenn vom vorherigen Beispiel ausgehend der zusätzliche Wunsch\n" "besteht, dass die Dateien sich in einem Unterordner mit dem Namen des\n" "Album befinden sollen, könnte folgendes Format verwendet werden:\n" "\"<album>/<track> - <title>\". \n" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "Unterstützte Audio-Formate: " #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" "Hinweise zur Benutzung:\n" " tagtool [DIR]\t\tStarte in Ordner DIR\n" " tagtool --dump DATEI\tGib bekannte Information über DATEI aus und beende\n" " tagtool --help\tDiese Hilfe\n" " tagtool --version\tProgrammversion\n" "\n" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" "Konnte Datei nicht öffnen: %s\n" "\n" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" "Audio-Format nicht erkannt: %s\n" "\n" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Feld" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "Inhalt" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "Erweitert (%i)" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" "Fehler beim Speichern von Datei \"%s\":\n" "%s (%d)" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "Fehler beim Speichern von Datei" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "ID3-Tag wurde geändert. Änderungen speichern?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Verwerfen" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "Neues ID3-Feld" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Bearbeite ID3-Feld" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Kanal Modus\n" "%s\n" "Kopiergeschützt\n" "%s\n" "Original\n" "%s\n" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "Ja" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "Nein" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "Überspringe Datei \"%s\"" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "Konnte Datei nicht zum Lesen öffnen" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "Fehler beim Erstellen der Playlist \"%s\"" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "\"%s\" geschrieben (%d Einträge)" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "Schreibe Playlisten" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "Wechsle in Verzeichnis \"%s\"" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "Fertig (%d von %d Playlisten geschrieben)" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "Dateien verschieben" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "Dateien umbenennen" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "Fehler beim Umbenennen von \"%s\"" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "Unbekannter Fehler" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "Datei hat kein Tag" #: src/rename_tab.c:242 msgid "One of the tag fields is empty" msgstr "Eines der Tag-Felder ist leer" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "Dateiname \"%s\" hat bereits gewünschtes Format" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "Fehler beim Verschieben von \"%s\"" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "Datei \"%s\" existiert bereits" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "Fehler beim Erstellen von Ordner \"%s\"" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "Ordner \"%s\" erstellt" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "\"%s\" nach \"%s\" verschoben" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "\"%s\" nach \"%s\" umbenannt" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "Fertig (%d von %d Dateien verschoben)" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "Fertig (%d von %d Dateien umbenannt)" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "Taggen von Dateien" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "Keine Tag-Felder zu setzen!" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "Fehler beim Taggen von \"%s\"" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "Dateiname erfüllt nicht das erwartete Format" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "Tagged \"%s\"" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "Fertig (%d von %d Dateien getagged)" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" "Fehler beim Speichern von Datei \"%s\":\n" "%s (%d)\n" "\n" "Hinweis:\n" "Um Änderungen an einer Ogg Vorbis-Datei zu speichern benötigen\n" "Sie Schreibzugriff auf den Ordner, in dem sich die Datei befindet." #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "Vorbis Tag wurde geändert. Änderungen speichern?" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "Neues Vorbis Feld" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "Bearbeite Vorbis Feld" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" "Durchschnittl. Bit Rate\n" "%ld kbps\n" "Nominelle Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Kanäle\n" "%d\n" "Abspielzeit\n" "%dm %ds %dms\n" #~ msgid "Homepage:" #~ msgstr "Homepage:" #~ msgid "Author:" #~ msgstr "Autor:" �����������������tagtool-0.12.3/po/bg.po�����������������������������������������������������������������������������0000644�0001750�0001750�00000077727�10541302761�014173� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Bulgarian translation of tagtool. # This file is distributed under the same license as the tagtool package. # Rostislav Raykov <zbrox@i-space.org>, 2005. # # msgid "" msgstr "" "Project-Id-Version: tagtool 0.12.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2005-03-09 11:48+0200\n" "Last-Translator: Rostislav Raykov <zbrox@i-space.org>\n" "Language-Team: Bulgarian <dict@linux.zonebg.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Audio Tag Tool" #: src/tagtool.glade:36 msgid "_File" msgstr "Файл" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Отваряне на папка..." #: src/tagtool.glade:66 msgid "Refresh" msgstr "Опресняване" #: src/tagtool.glade:94 msgid "Quit" msgstr "Изход" #: src/tagtool.glade:119 msgid "_Settings" msgstr "Настройки" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "Преобразуване на символи..." #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "ID3 Настройки" #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "Преглед" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Прост" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Подробен" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "Копиране на v1 към v2" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "Копиране на v2 към v1" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "_Помощ" #: src/tagtool.glade:279 msgid "Contents..." msgstr "Потребителско ръководство" #: src/tagtool.glade:300 msgid "About..." msgstr "Относно..." #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Включително в съдържащите се папки" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Избор на работна папка" #: src/tagtool.glade:471 msgid "<b>Working Directory</b>" msgstr "<b>Работна папка</b>" #: src/tagtool.glade:559 msgid "<b>Files</b>" msgstr "<b>Файлове</b>" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Опресняване на списъка с файлове" #: src/tagtool.glade:706 msgid "<span size=\"large\" weight=\"bold\">Edit Tag</span>" msgstr "<span size=\"large\" weight=\"bold\">Редактиране на етикет</span>" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Избор на файл за редакция" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "<b>Tag</b>" msgstr "<b>Етикет</b>" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "Файлът няма ID3v1 етикет" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Създаване" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Заглавие:" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Коментар:" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Година:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "Албум:" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Жанр:" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Номер в албума:" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Изпълнител:" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "Файлът няма ID3v2 етикет" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Добавяне" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Премахване" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Редакция (двойно-натискане)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Премахване на етикет" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Запазване на промените" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Изчистване на етикета" #: src/tagtool.glade:3468 msgid "<b>File Info</b>" msgstr "<b>Информация за файла</b>" #: src/tagtool.glade:3658 msgid "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Поставяне на етикет на много файлове</" "span>" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "<b>File Name Format</b>" msgstr "<b>Формат на файловото име</b>" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Помощ за формата на файловите имена" #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "<b>Character and Case Conversion</b>" msgstr "<b>Преобразуване на големи/малки букви и символи</b>" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Настройки" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Автоматично увеличаване" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Поставяне етикети на база файловите имена" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Прилагане към " #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "Всички файлове\n" "Избраните файлове" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Изпълнение" #: src/tagtool.glade:4607 msgid "<span size=\"large\" weight=\"bold\">Clear Tags</span>" msgstr "<span size=\"large\" weight=\"bold\">Изчистване на етикетите</span>" #: src/tagtool.glade:4663 msgid "<b>Tags to Clear</b>" msgstr "<b>Етикетите, който да се изчистят</b>" #: src/tagtool.glade:4688 msgid "All" msgstr "Всички" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Само ID3v1 етикетите" #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Само ID3v2 етикетите" #: src/tagtool.glade:4949 msgid "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Преименуване на много файлове</span>" #: src/tagtool.glade:5416 msgid "<span size=\"large\" weight=\"bold\">Create Playlists</span>" msgstr "<span size=\"large\" weight=\"bold\">Създаване на плейлисти</span>" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "Всяка папка" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "Най-горната папка" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "И двете" #: src/tagtool.glade:5516 msgid "<b>Create In</b>" msgstr "<b>Създаване в</b>" #: src/tagtool.glade:5580 msgid "<b>Playlist File Name</b>" msgstr "<b>Файлово име на плейлиста</b>" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Друго име:" #: src/tagtool.glade:5631 msgid "playlist" msgstr "плейлист" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Същото като името на папката" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Разширение:" #: src/tagtool.glade:5756 msgid "<b>Sort Entries</b>" msgstr "<b>Подреждане на записите</b>" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "По поле от етикета (ако е наличен):" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Заглавие\n" "Изпълнител\n" "Албум\n" "Година\n" "Жанр\n" "Коментар\n" "Номер в албума" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "Сортиране във всички папки" #: src/tagtool.glade:5904 msgid "By file name" msgstr "По файлово име" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Преобразуване на символи" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "Без преобразуване" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "Преобразуване на този символ към интервал:" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "<b>Space Conversion</b>" msgstr "<b>Преобразуване на интервалите</b>" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "<b>Case Conversion</b>" msgstr "<b>Преобразуване на малки/големи букви</b>" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(без преобразуване)\n" "само малки букви\n" "САМО ГОЛЕМИ БУКВИ\n" "Като в изречение\n" "Всяка Първа Буква Голяма" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "При поставянето на етикети" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Преобразуване на интервалите в:" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Пропускане" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Преобразуване в:" #: src/tagtool.glade:6869 msgid "<b>Invalid File Name Characters</b>" msgstr "<b>Невалидни символи за файловото име</b>" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "При преименуването" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "Относно Audio Tag Tool" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "Заслуги" #: src/tagtool.glade:7125 msgid "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" msgstr "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" #: src/tagtool.glade:7146 msgid "<b>version %s</b>" msgstr "<b>версия %s</b>" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Поддържани аудио формати:" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" "Този софтуер е пуснат под лиценза GNU General Public Licence.\n" "Вижте файлът COPYING за пълните условия на лиценза." #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "ID3 предпочитания" #: src/tagtool.glade:7373 msgid "<b>When tagging multiple files</b>" msgstr "<b>При поставяне на етикети на много файлове</b>" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "Версия на ID3 етикета, която да се създава:" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "Само v1" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "Само v2" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "Стандартното да е v1, но да се добавя v2, когато е необходимо" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Запазване на текущите версии на етикетите" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Текст:" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Поле:" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Прогрес" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Ръчно преименуване на файл" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Ръчно преименуване..." #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Изтриване на избраните файлове от диска" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Изтриване на избраните файлове" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "Отизбиране на всички файлове" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "Отизбиране на всичко" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Преименуване на файл" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "Файлово име:" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Прогрес на обхождането" #: src/tagtool.glade:8048 msgid "<b>Scanning...</b>" msgstr "<b>Обхождане...</b>" #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Обходени папки:\n" "Намерени файлове:" #: src/tagtool.glade:8134 msgid "Credits" msgstr "Заслуги" #: src/tagtool.glade:8215 msgid "Written by" msgstr "Написано от" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "Преведено от" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "Изчистване на етикети" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "Започва в папката \"%s\"" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "Операцията е прекъсната по искане на потребителя" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(грешка при конвертиране на UTF-8)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "Влизане в папката \"%. *s\"" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Грешка във файла \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "Не може да се пише по файла" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "Аудио формата не е разпознат" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "Непозната грешка (%d)" #: src/clear_tab.c:155 #, c-format msgid "Skipped \"%s\"" msgstr "Пропускане на \"%s\"" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "Изчистен етикет от \"%s\"" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "Готово (Изчистени %d от %d файлове)" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "Няма избрани файлове" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "Не може да се отвори файла %s" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "Аудио формата не е разпознат: %s" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "Непозната грешка при отваряне на файла %s" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "Файлът е само за четене: %s" #: src/edit_tab.c:123 msgid "File Type:" msgstr "Вид на файла:" #: src/file_list.c:116 msgid "No files found" msgstr "Няма открити файлове" #: src/file_list.c:118 msgid "1 file found" msgstr "1 открит файл" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "%i открити файла" #: src/file_list.c:123 msgid " (1 selected)" msgstr " (1 избран)" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr " (%i избрани)" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "(името на папката не може да бъде преобразувано в UTF-8)" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "(името на файла не може да бъде преобразувано в UTF-8)" #: src/file_list.c:212 msgid "Deleting Files" msgstr "Изтриване на файлове" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "Изтрит е файлът \"%s\"" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "Грешка при изтриване на файла \"%s\"" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "Готово (изтритиа са %d от %d файла)" #: src/file_list.c:258 msgid "File Exists" msgstr "Файлът съществува" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" "Файл с такова име вече съществува.\n" "Искате ли да го презапишете?" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" "Грешка при преименуване на файла:\n" "%s (%d)" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "Грешка при преименуване на файл" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "Грешка: Не може да се отвори папката \"%s\"" #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "Грешка: \"%s\" не е папка." #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "Грешка: Няма достатъчно права за \"%s\"" #: src/file_list.c:374 msgid "Scanning..." msgstr "Обхождане..." #: src/file_list.c:397 msgid "No files found." msgstr "Няма открити файлове." #: src/file_list.c:400 msgid "1 file found." msgstr "1 открит файл." #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "%d открити файла" #: src/file_list.c:451 msgid "Delete selected files" msgstr "Изтриване на избраните файлове" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "" "Това ще изтрие избраните файлове от твърдия диск. Сигурни ли сте, че го " "искате?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Избор на папка" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "Помощ - Формат на файловите имена" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" "Това поле описва очаквания формат на файловото име. (без в това да се\n" "включва разширението). Audio Tag Tool използва тази информация, за\n" "да попълни автоматично полетата от етикета, за които има информация в\n" "файловото име.\n" "\n" "Всяко поле от етикета има кореспондиращ символ, както са изписани долу:\n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Примери:\n" "\n" "Форматът \"<artist> - <album> - <title>\" ще отговаря за файлови имена\n" "като това да речем \"Pink Floyd - The Wall - Hey You.mp3\". В този\n" "пример полетата на етикета за изпълнител, албум и заглавие ще бъдат\n" "попълнени както следва \"Pink Floyd\", \"The Wall\" и \"Hey You\".\n" "\n" "Форматът \"<artist> - <*> - <title>\" също може да бъде използван в " "предишния\n" "пример, ако не искахме да записваме в етикета името на албума. Специалният\n" "символ <*> указва някаква чест от файловото име да се пропусне.\n" #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" "Това поле описва желания формат за файловото име. Audio Tag Tool\n" "може да използва тази информация, за да преименува файлове, да ги\n" "организира в подпапки, в зависимост от съдържанието на етикетите им.\n" "\n" "Всяко ID3 поле има кореспондиращ символ, както са изброени долу: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Примери за преименуване: \n" "\n" "За да направите всички имена да се състоят от номера на песента в албума\n" "следвана от името на песента, можете примерно да използвате \"<track> - " "<title>\".\n" "\n" "Примери за преместване: \n" "\n" "Формата на файловото име може да съдържа и подпапки. Ако в предния пример\n" "искахме файловете да бъдат поставени в отделна папка с името на албума, " "щяхме\n" "да използваме подобен формат - \"<album>/<track> - <title>\". \n" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "Поддържани аудио формати: " #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" "Употреба:\n" " tagtool [ПАПКА]\t\tСтартиране в папката ПАПКА\n" " tagtool --dump ФАЙЛ\tИзчистване на всичката информация относно ФАЙЛ и " "излизане\n" " tagtool --help\tПоказване на това помощно съобщение\n" " tagtool --version\tПоказване версията на програмата\n" "\n" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" "Не може да се отвори файлът: %s\n" "\n" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" "Аудио форматът на файла не е разпознат: %s\n" "\n" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Поле" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "Текст" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "Подробни" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" "Грешка при запазване на файла \"%s\":\n" "%s (%d)" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "Грешка при запазване на файла" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "ID3 етикета е бил променен. Запазване на промените?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Пренебрегване" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "Ново ID3 поле" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Редактиране на ID3 поле" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "Да" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "Не" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "Пропускане на файла \"%s\"" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "Не може да се отвори файлът за четене" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "Грешка при създаване на плейлиста \"%s\"" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "Записване на плейлисти" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "Влизане в папката \"%s\"" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "Готово (записани %d от %d плейлисти)" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "Преместване на файлове" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "Преименуване на файлове" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "Грешка при преименуване на \"%s\"" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "Непозната грешка" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "Файлът няма етикет" #: src/rename_tab.c:242 msgid "One of the tag fields is empty" msgstr "Едно от полетата на етикета е празно" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "Файловото име на \"%s\" е вече в желания формат" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "Грешка при преместване на \"%s\"" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "Файлът \"%s\" вече съществува" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "Грешка при създаване на папката \"%s\"" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "Създадена е папката \"%s\"" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "\"%s\" беше преместен в \"%s\"" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "\"%s\" беше преименувано в \"%s\"" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "Готово (преместени са %d от %d файла)" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "Готово (преименувани са %d от %d файла)" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "Поставяне на етикети на файлове" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "Няма полета на етикета, който да се попълнят" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "Грешка при поставяне на етикет на \"%s\"" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "Файловото име на отговаря на очаквания формат" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "Поставен етикет на \"%s\"" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "Готово (поставен етикет на %d от %d файла)" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" "Грешка при запазването на файла \"%s\":\n" "%s (%d)\n" "\n" "Забележка:\n" "За да запазите промените към един Ogg Vorbis файл, трябва да имате\n" "разрешение да пишете в папката, където се намира файла." #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "Vorbis етикета е бил променен. Запазване на промените?" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "Ново Vorbis поле" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "Редактиране на Vorbis поле" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" �����������������������������������������tagtool-0.12.3/po/lt.po�����������������������������������������������������������������������������0000644�0001750�0001750�00000066006�10541302761�014206� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of lt.po to Lithuanian # This file is distributed under the same license as the Audio Tag Tool package. # Dovydas <laisve@gmail.com>, 2005. # msgid "" msgstr "" "Project-Id-Version: lt\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2005-03-23 18:27+0200\n" "Last-Translator: Dovydas <laisve@gmail.com>\n" "Language-Team: Lithuanian <komp_lt@konf.lt>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.9.1\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%" "100<10 || n%100>=20) ? 1 : 2);\n" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Audio Tag Tool" #: src/tagtool.glade:36 msgid "_File" msgstr "_Byla" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Atverti katalogą..." #: src/tagtool.glade:66 msgid "Refresh" msgstr "Atnaujinti" #: src/tagtool.glade:94 msgid "Quit" msgstr "Baigti" #: src/tagtool.glade:119 msgid "_Settings" msgstr "_Nustatymai" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "Keisti simbolius..." #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "ID3 parinktys..." #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "Rodyti" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Glaustai" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Išsamiai" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "Kopijuoti v1 į v2" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "Kopijuoti v2 į v1" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "_Pagalba" #: src/tagtool.glade:279 msgid "Contents..." msgstr "Turinys..." #: src/tagtool.glade:300 msgid "About..." msgstr "Apie..." #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Įtraukti pakatalogius" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Darbinio katalogo pasirinkimas" #: src/tagtool.glade:471 msgid "<b>Working Directory</b>" msgstr "<b>Darbinis katalogas</b>" #: src/tagtool.glade:559 msgid "<b>Files</b>" msgstr "<b>Bylos</b>" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Bylų sąrašo atnaujinimas" #: src/tagtool.glade:706 msgid "<span size=\"large\" weight=\"bold\">Edit Tag</span>" msgstr "<span size=\"large\" weight=\"bold\">Keisti Žymę</span>" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Pasirinkite redaguojamą bylą" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "<b>Tag</b>" msgstr "<b>Žymė</b>" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "Byla neturi ID3v1 žymės" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Sukurti" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Pavadinimas:" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Komentaras:" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Metai:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "Albumas:" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Žanras:" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Takelis:" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Atlikėjas:" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "Byla neturi ID3v2 žymės" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Pridėti" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Pašalinti" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Keisti (spragtelėkite dukart)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Pašalinti žymę" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Įrašyti pakeitimus" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Išvalyti žymę" #: src/tagtool.glade:3468 msgid "<b>File Info</b>" msgstr "<b>Informacija apie bylą</b>" #: src/tagtool.glade:3658 msgid "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Keisti žymes daugeliui bylų</span>" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "<b>File Name Format</b>" msgstr "<b>Bylos pavadinimo formatas</b>" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Informacija apie bylų formatus" #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "<b>Character and Case Conversion</b>" msgstr "<b>Simbolių ir raidžių lygio keitimas</b>" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Derinti" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Automatiškai didėjantys numeriai" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Žymes keisti atsižvelgiant į bylos pavadinimą" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Pritaikyti" #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "Visoms byloms\n" "Parinktoms byloms" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Vykdyti!" #: src/tagtool.glade:4607 msgid "<span size=\"large\" weight=\"bold\">Clear Tags</span>" msgstr "<span size=\"large\" weight=\"bold\">Pašalinti žymes</span>" #: src/tagtool.glade:4663 msgid "<b>Tags to Clear</b>" msgstr "<b>Šalinamos žymės</b>" #: src/tagtool.glade:4688 msgid "All" msgstr "Visos" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Tik ID3v1 žymės" #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Tik ID3v2 žymės" #: src/tagtool.glade:4949 msgid "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" msgstr "<span size=\"large\" weight=\"bold\">Pervadinti daugelį bylų</span>" #: src/tagtool.glade:5416 msgid "<span size=\"large\" weight=\"bold\">Create Playlists</span>" msgstr "<span size=\"large\" weight=\"bold\">Sudaryti grojaraštį</span>" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "Visuose kataloguose" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "Aukščiausiame kataloge" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "Ir v1, ir v2" #: src/tagtool.glade:5516 msgid "<b>Create In</b>" msgstr "<b>Sukurti</b>" #: src/tagtool.glade:5580 msgid "<b>Playlist File Name</b>" msgstr "<b>Grojaraščio bylos pavadinimas</b>" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Nustatyti:" #: src/tagtool.glade:5631 msgid "playlist" msgstr "grojaraštį" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Kaip katalogo pavadinimas" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Prievardis:" #: src/tagtool.glade:5756 msgid "<b>Sort Entries</b>" msgstr "<b>Rūšiuoti bylas</b>" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "Pagal žymės lauką (jei yra):" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Pavadinimą\n" "Atlikėją\n" "Albumą\n" "Metus\n" "Žanra\n" "Komentarą\n" "Takelį #" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "Rūšiuoti visuose kataloguose" #: src/tagtool.glade:5904 msgid "By file name" msgstr "Pagal bylos pavadinimą" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Simbolių keitimas" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "Jokio keitimo" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "Keisti šį simbolį tarpu:" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "<b>Space Conversion</b>" msgstr "<b>Tarpų keitimas</b>" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "<b>Case Conversion</b>" msgstr "<b>Raidžių dydžio keitimas</b>" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(jokio keitimo)\n" "mažosios raidės\n" "DIDŽIOSIOS RAIDĖS\n" "Sakinio tipas\n" "Pavadinimo Tipas" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "Sukuriant žymes" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Keisti tarpus į:" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Panaikinti" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Pakeisti į:" #: src/tagtool.glade:6869 msgid "<b>Invalid File Name Characters</b>" msgstr "<b>Klaidingi simboliai bylos pavadinime</b>" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "Pervadinant" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "Apie Audio Tag Tool" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "P_adėka" #: src/tagtool.glade:7125 msgid "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" msgstr "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" #: src/tagtool.glade:7146 msgid "<b>version %s</b>" msgstr "<b>versija %s</b>" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Suderinama su šiais garso formatais:" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" "Ši programa platinama sąlygomis, nurodytomis GNU General Public Licence.\n" "Perskaitykite bylą COPYING, jei norite išsamių licencijos sąlygų." #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "ID3 parinktys" #: src/tagtool.glade:7373 msgid "<b>When tagging multiple files</b>" msgstr "<b>Keičiant žymes daugeliui bylų</b>" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "Sukurti šias ID3 žymių versijas:" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "Tik v1" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "Tik v2" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "Numatytas v1, o v2 sukurti tik kai reikia" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Išlaikyti esamas žymių versijas" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Tekstas:" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Laukas:" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Pažanga" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Pervadinti bylą vartotojui nurodžius" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Pervadinti vartotojui nurodžius..." #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Fiziškai pašalinti parinktas bylas" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Pašalinti parinktas bylas" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "Nužymėti visas bylas" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "Nužymėti viską" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Pervadinti bylą" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "Bylos pavadinimas:" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Skaitymo pažanga" #: src/tagtool.glade:8048 msgid "<b>Scanning...</b>" msgstr "<b>Skaitoma...</b>" #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Nuskaityta katalogų:\n" "Rasta bylų:" #: src/tagtool.glade:8134 msgid "Credits" msgstr "Autoriai" #: src/tagtool.glade:8215 msgid "Written by" msgstr "Parašė" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "Išvertė" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "Valomos žymės" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "Pradėti kataloge \"%s\"" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "Vykdymas nutraukas vartotojo prašymu" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(UTF8 keitimo klaida)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "Atveriamas katalogas \"%.*s\"" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Klaida byloje \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "Nepavyko atverti bylos rašymui" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "Garso bylos formatas neatpažintas" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "Nežinoma klaida (%d)" #: src/clear_tab.c:155 #, c-format msgid "Skipped \"%s\"" msgstr "Praleista \"%s\"" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "Žymė išvaloma nuo \"%s\"" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "Atlikta (išvalyta %d iš %d bylų)" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "Neparinkta nei viena byla" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "Nepavyko atverti bylos %s" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "Garso bylos formatas neatpažintas: %s" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "Nežinoma klaida atveriant bylą %s" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "Byla tik skaitymui: %s" #: src/edit_tab.c:123 msgid "File Type:" msgstr "Bylos tipas:" #: src/file_list.c:116 msgid "No files found" msgstr "Nerasta nei viena byla" #: src/file_list.c:118 msgid "1 file found" msgstr "Rasta 1 byla" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "Rastos %i bylos" #: src/file_list.c:123 msgid " (1 selected)" msgstr "(1 parinkta)" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr " (%i parinktos)" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "(katalogo pavadinimo nepavyko pakeisti į UTF8)" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "(bylos pavadinimo nepavyko pakeisti į UTF8)" #: src/file_list.c:212 msgid "Deleting Files" msgstr "Šalinamos bylos" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "Pašalinta byla \"%s\"" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "Klaida šalinant bylą \"%s\"" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "Atlikta (pašalinta %d iš %d bylų)" #: src/file_list.c:258 msgid "File Exists" msgstr "Byla jau yra" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" "Byla tokiu pavadinimu jau yra.\n" "Ar norite pakeisti?" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" "Klaida pervadinant bylą:\n" "%s (%d)" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "Klaida pervadinant bylą" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "Klaida: Nepavyko atverti katalogo \"%s\"." #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "Klaida: \"%s\" nėra katalogas." #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "Klaida: \"%s\" neturi teisių." #: src/file_list.c:374 msgid "Scanning..." msgstr "Skaitoma..." #: src/file_list.c:397 msgid "No files found." msgstr "Bylų nerasta." #: src/file_list.c:400 msgid "1 file found." msgstr "Rasta 1 byla." #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "Rasta %d bylų." #: src/file_list.c:451 msgid "Delete selected files" msgstr "Pašalinti parinktas bylas" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "Bus fiziškai pašalintos parinktos bylos. Ar tęsti?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Parinkite katalogą" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "Pagalba - Bylos pavadinimo formatas" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" "Šiame lauke aprašomas esamas bylos pavadinimo \n" "formatas (neįskaitant prievardžio). Audio Tag Tool šią \n" "informaciją naudoja automatiniam žymių užpildymui \n" "pagal bylos vardą.\n" "\n" "Visi žymių laukai turi atitinkamą pavadinimą:\n" "\n" " <title> - pavadinimas\n" " <artist> - atlikėjas\n" " <album> - albumas\n" " <year> - metai\n" " <comment> - komentaras\n" " <track> - takelis\n" " <genre> - žanras\n" "\n" "Pavyzdžiai: \n" "\n" "Formatas \"<artist> - <album> - <title>\" atitiks bylos \n" "vardą \"Pink Floyd - The Wall - Hey You.mp3\". Šiame \n" "pavyzdyje atlikėjo, albumo ir pavadinimo žymių laukai \n" "bus atitinkamai pakeisti į \"Pink Floyd\", \"The Wall\" ir \n" "\"Hey You\".\n" "\n" "Formatas \"<artist> - <*> - <title>\" taip pat galėjo \n" "būti panaudotas praeitame pavyzdyje, jei nenorima \n" "užpildyti albumo lauko (ypatingasis simbolis <*> \n" "reiškia, kad dalis bylos pavadinimo bus ignoruojama.) \n" #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" "Šiame lauke aprašomas būsimas bylos pavadinimo \n" "formatas. Audio Tag Tool šią informaciją naudoja \n" "pervadindamas bylas arba dėliodamas bylas į \n" "pakatalogius. Šis darbas atliekamas atsižvelgiant į \n" "žymių laukų turinį.\n" "\n" "Visi ID3 žymių laukai turi atitinkamą pavadinimą:\n" "\n" " <title> - pavadinimas\n" " <artist> - atlikėjas\n" " <album> - albumas\n" " <year> - metai\n" " <comment> - komentaras\n" " <track> - takelis\n" " <genre> - žanras\n" "\n" "Pervadinimo pavyzdys: \n" "\n" "Norint, kad visų bylų vardai būtų sudaryti tik iš takelio \n" "numerio ir takelio pavadinimo, reikia naudoti formatą \n" "\"<track> - <title>\".\n" "\n" "Perkėlimo pavyzdys: \n" "\n" "Bylos pavadinimo formatą gali sudaryti pakatalogiai. \n" "Praeitame pavyzdyje norint bylas sukelti į katalogą, \n" "kurio pavadinimas yra albumas, reikia naudoti formatą \n" "\"<album>/<track> - <title>\". \n" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "Suderinama su šiais garso formatais: " #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" "Naudojimas:\n" " tagtool [KTLG]\t\t Pradėti kataloge KTLG\n" " tagtool --dump BYLA\tPateikti visą žinomą informaciją apie BYLĄ ir baigti " "darbą\n" " tagtool --help\tIšspausdinti šį pagalbinį tekstą\n" " tagtool --version\tIšspausdinti programos versiją\n" "\n" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" "Nepavyko atverti bylos: %s\n" "\n" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" "Garso bylos formatas neatpažintas: %s\n" "\n" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Laukas" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "Tekstas" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "Išsamiai (%i)" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" "Klaida įrašant bylą \"%s\":\n" "%s (%d)" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "Klaida įrašant bylą" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "ID3 žymė buvo pakeista. Įrašyti pakeitimus?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Atšaukti" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "Naujas ID3 laukas" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Keisti ID3 lauką" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" "Bitų srautas\n" "%d kbps\n" "Kadrų dažnis\n" "%d Hz\n" "Kanalo tipas\n" "%s\n" "Autorizuota\n" "%s\n" "Originalas\n" "%s\n" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "Taip" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "Ne" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "Praleidžiama byla \"%s\"" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "Nepavyko atverti bylos skaitymui" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "Klaida sudarant grojaraštį \"%s\"" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "Įrašyta \"%s\" (%d įrašų)" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "Rašomi grojaraščiai" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "Atveriamas katalogas \"%s\"" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "Atlikta (įrašyta %d iš %d grojaraščių)" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "Perkeliamos bylos" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "Pervadinamos bylos" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "Klaida pervadinant \"%s\"" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "Nežinoma klaida" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "Byla neturi žymės" #: src/rename_tab.c:242 msgid "One of the tag fields is empty" msgstr "Vienas iš žymės laukų tuščias" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "Bylos vardas \"%s\" jau yra pageidaujamo formato" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "Klaida perkeliant \"%s\"" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "Byla \"%s\" jau yra" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "Klaida kuriant katalogą \"%s\"" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "Katalogas \"%s\" sukurtas" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "\"%s\" perkeltas į \"%s\"" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "\"%s\" pervadintas į \"%s\"" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "Atlikta (perkelta %d iš %d bylų)" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "Atlikta (pervadinta %d iš %d bylų)" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "Kuriamos žymės" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "Nėra laukų pakeitimų!" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "Klaida kuriant žymę \"%s\"" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "Bylos pavadinimas ne toks, kokio tikėtasi" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "\"%s\" žymė sukurta" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "Atlikta (žymės sukurtos %d iš %d bylų)" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" "Klaida įrašant bylą \"%s\":\n" "%s (%d)\n" "\n" "Pastaba:\n" "Norint pakeisti Ogg Vorbis bylą, būtina turėti teises rašyti \n" "tame kataloge, kuriame yra byla." #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "Vorbis žymė buvo pakeista. Įrašyti pakeitimus?" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "Naujas Vorbis laukas" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "Keisti Vorbis lauką" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" "Vidutinis bitų srautas\n" "%ld kbps\n" "Numatytasis bitų srautas\n" "%ld kbps\n" "Kadrų dažnis\n" "%ld Hz\n" "Kanalai\n" "%d\n" "Grojimo trukmė\n" "%dm %ds %dms\n" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/po/ua.po�����������������������������������������������������������������������������0000644�0001750�0001750�00000076051�10541302761�014175� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2005 # This file is distributed under the same license as the tagtool package. # Oleksandr Korneta <atenrok@ua.fm>, # Dmytro Goykolov <goykolov@pisem.net>, 2005. # # msgid "" msgstr "" "Project-Id-Version: tagtool 0.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2005-05-07 17:18-0400\n" "Last-Translator: Dmytro Goykolov, Oleksandr Korneta <goykolov@pisem.net, " "atenrok@ua.fm>\n" "Language-Team: English <en@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Audio Tag Tool" #: src/tagtool.glade:36 msgid "_File" msgstr "_Файл" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Відкрити директорію..." #: src/tagtool.glade:66 msgid "Refresh" msgstr "Поновити" #: src/tagtool.glade:94 msgid "Quit" msgstr "Вихід" #: src/tagtool.glade:119 msgid "_Settings" msgstr "_Налаштування" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "Перетворення символів" #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "ID3 вподобання ..." #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "Вигляд" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Простий" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Розгорнутий" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "Копіювати v1 в v2" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "Копіювати v2 в v1" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "_Допомога" #: src/tagtool.glade:279 msgid "Contents..." msgstr "Зміст..." #: src/tagtool.glade:300 msgid "About..." msgstr "Про програму..." #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Включаючи піддиректорії" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Вибрати директорію для роботи" #: src/tagtool.glade:471 msgid "<b>Working Directory</b>" msgstr "<b>Поточна директорія</b>" #: src/tagtool.glade:559 msgid "<b>Files</b>" msgstr "<b>Файли</b>" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Поновити список файлів" #: src/tagtool.glade:706 msgid "<span size=\"large\" weight=\"bold\">Edit Tag</span>" msgstr "<span size=\"large\" weight=\"bold\">Редагувати мітку</span>" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Вибрати файл для редагування" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "<b>Tag</b>" msgstr "<b>Мітка</b>" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "Файл не містить ID3v1 мітки" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Створити" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Назва:" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Коментар:" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Рік:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "Альбом:" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Жанр:" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Доріжка:" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Виконавець:" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "Файл не містить ID3v2 мітки" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Додати" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Видалити" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Редагувати (подвійний клік)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Видалити мітку" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Зберегти зміни" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Очистити мітку" #: src/tagtool.glade:3468 msgid "<b>File Info</b>" msgstr "<b>Інформація про файл</b>" #: src/tagtool.glade:3658 msgid "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Застосувати до декількох файлів</span>" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "<b>File Name Format</b>" msgstr "<b>Формат імені файлу</b>" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Допомога по форматах імені файлу" #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "<b>Character and Case Conversion</b>" msgstr "Перетворення символів та регістру" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Налаштувати" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Автонарощування" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Мітки на основі імен файлів" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Застосувати до " #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "Всіх файлів\n" "Вибраних файлів" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Застосувати!" #: src/tagtool.glade:4607 msgid "<span size=\"large\" weight=\"bold\">Clear Tags</span>" msgstr "<span size=\"large\" weight=\"bold\">Очистити мітки</span>" #: src/tagtool.glade:4663 msgid "<b>Tags to Clear</b>" msgstr "<b>Очистити поля мітки</b>" #: src/tagtool.glade:4688 msgid "All" msgstr "Усі" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Тільки мітки ID3 v1 " #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Тільки мітки ID3 v2" #: src/tagtool.glade:4949 msgid "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" msgstr "<span size=\"large\" weight=\"bold\">Перейменувати групу файлів</span>" #: src/tagtool.glade:5416 msgid "<span size=\"large\" weight=\"bold\">Create Playlists</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Створити список програвання</span>" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "В кожній директорії" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "В директорії верхнього рівня" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "В обох директоріях" #: src/tagtool.glade:5516 msgid "<b>Create In</b>" msgstr "<b>Створити в</b>" #: src/tagtool.glade:5580 msgid "<b>Playlist File Name</b>" msgstr "<b>Ім'я файлу списку програвання</b>" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Задати:" #: src/tagtool.glade:5631 msgid "playlist" msgstr "playlist" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Таке саме, як ім'я директорії" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Розширення:" #: src/tagtool.glade:5756 msgid "<b>Sort Entries</b>" msgstr "<b>Впорядкувати записи</b>" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "За міткою (якщо наявна):" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Назва\n" "Виконавець\n" "Альбом\n" "Рік\n" "Жанр\n" "Коментар\n" "Доріжка" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "Впорядкувати за директоріями" #: src/tagtool.glade:5904 msgid "By file name" msgstr "За іменем файлу" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Заміна символів" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "Без змін" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "Замінювати пробілом символ:" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "<b>Space Conversion</b>" msgstr "Замінювати пробіли" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "<b>Case Conversion</b>" msgstr "Зміна регістру" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(без змін)\n" "нижній регістр\n" "ВЕРХНІЙ РЕГІСТР\n" "Перша в реченні\n" "Перша В Слові" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "Обробка міток" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Замінювати пробіли на:" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Пропускати" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Замінити на:" #: src/tagtool.glade:6869 msgid "<b>Invalid File Name Characters</b>" msgstr "<b>Недопустимі символи в імені файлу</b>" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "Перейменування файлів" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "Про Audio Tag Tool" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "" #: src/tagtool.glade:7125 msgid "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" msgstr "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" #: src/tagtool.glade:7146 msgid "<b>version %s</b>" msgstr "<b>версія %s</b>" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Аудіоформати, що підтримуються:" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" "Ця програма розповсюджується за умов GNU General Public License.\n" "З повним текстом ліцензії можна ознайомитись в файлі COPYING." #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "ID3 Вподобання" #: src/tagtool.glade:7373 msgid "<b>When tagging multiple files</b>" msgstr "При обробці декількох файлів" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "Створювати ID3 мітку версії:" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "Тільки v1" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "Тільки v2" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "По замовчуванню v1, додати v2 за необхідністю" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Зберігати існуючу версію мітки" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Текст:" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Поле:" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Перебіг" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Перейменувати файл вручну" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Перейменувати вручну..." #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Видалити обрані файли з диску" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Видалити обрані файли" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "Зняти виділення" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "Зняти всі виділення" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Перейменувати файл" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "Ім'я файлу:" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Перебіг сканування" #: src/tagtool.glade:8048 msgid "<b>Scanning...</b>" msgstr "<b>Сканування...</b>" #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Відскановано директорій:\n" "Знайдено файлів:" #: src/tagtool.glade:8134 #, fuzzy msgid "Credits" msgstr "Створити" #: src/tagtool.glade:8215 msgid "Written by" msgstr "" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "Очищення міток" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "Початок в директорії \"%s\"" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "Операція призупинена користувачем" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(Помилка при перетворенні в UTF8)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "Зміна директорії на \"%.*s\"" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Помилка в файлі \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "Не вдається відкрити файл для запису" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "Невідомий аудіо формат" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "Невідома помилка (%d)" #: src/clear_tab.c:155 #, fuzzy, c-format msgid "Skipped \"%s\"" msgstr "Пропущено файл \"%s\"" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "Видалено мітку з \"%s\"" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "Виконано (Очищено файлів: %d з %d)" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "Не вибрано жодного файлу" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "Не вдається відкрити файл %s" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "Невідомий аудіо формат: %s" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "Невідома помилка при відкритті файлу %s" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "Файл тільки для перегляду: %s" #: src/edit_tab.c:123 msgid "File Type:" msgstr "Тип фалу:" #: src/file_list.c:116 msgid "No files found" msgstr "Не знайдено жодного файлу" #: src/file_list.c:118 msgid "1 file found" msgstr "Знайдено 1 файл" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "Знайдено файлів: %i" #: src/file_list.c:123 msgid " (1 selected)" msgstr " (обрано: 1)" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr " (обрано: %i)" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "Не вдається перетворити ім'я директорії в UTF8" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "Не вдається перетворити ім'я файлу в UTF8" #: src/file_list.c:212 msgid "Deleting Files" msgstr "Видалення файлів" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "Файл \"%s\" видалено" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "Помилка при видаленні файлу \"%s\"" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "Виконано (видалено файлів %d з %d)" #: src/file_list.c:258 msgid "File Exists" msgstr "Файл існує" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" "Файл з таким ім'ям вже існує.\n" "Перезаписати?" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" "Помилка при перейменуванні файлу:\n" "%s (%d)" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "Помилка при перейменуванні файлу" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "Помилка: Не вдається відкрити директорію \"%s\"" #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "Помилка: \"%s\" не є директорією." #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "Помилка: доступ до \"%s\" заборонено." #: src/file_list.c:374 msgid "Scanning..." msgstr "Сканування..." #: src/file_list.c:397 msgid "No files found." msgstr "Не знайдено жодного файлу." #: src/file_list.c:400 msgid "1 file found." msgstr "Знайдено 1 файл." #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "Знайдено файлів %d." #: src/file_list.c:451 msgid "Delete selected files" msgstr "Видалити обрані файли" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "Обрані файли будуть видалені з диску. Продовжити?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Виберіть директорію" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "Допомога - Формат імені файлу" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" "Поле описує бажаний формат імені файлу \n" "(за виключенням розширення). Audio Tag Tool використовує цю \n" "інформацію для автоматичного заповнення полей міток на основі \n" "імені файлу. \n" "\n" "У кожного поля мітки є відповідний символ, як наведено нижче: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Приклади: \n" "\n" "Формат \"<artist> - <album> - <title>\" відповідає \n" "імені файлу \"Pink Floyd - The Wall - Hey You.mp3\". В цьому \n" "прикладі поля Виконавець, Альбом і Назва будуть \n" "встановленні як \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "відповідно.\n" "\n" "Формат \"<artist> - <*> - <title>\" також може бути використаний \n" "в попередньому прикладі, якщо ви не бажаєте задавати \n" "назву альбому (спеціальний символ <*> ігнорує \n" "частину імені файла). \n" #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" "Поле описує бажаний формат імені файлу. \n" "Audio Tag Tool використовує цю інформацію для перейменування \n" "файлів або організації їх в підкаталоги, використовуючи зміст \n" "їх міток. \n" "\n" "Кожне поле ID3 мітки має відповідний симовл, як наведено нижче: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Приклад переіменування: \n" "\n" "Для того, щоб всі імена файлів складались з номеру доріжки \n" "та назви пісні, можна використати наступний формат: \"<track> - <genre>\" \n" "\n" "Приклад переміщення: \n" "\n" "Формат імені файлу може включати піддиректорію. Якщо в \n" "попередньому прикладі необхідно було б помісти файли в \n" "директорію, з їм'ям за назвою альбома, потрібно б було використати \n" "конструкцію \"<album>/<track> - <title>\". \n" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "Аудіо формати що підтримуються: " #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" "Використання:\n" " tagtool [DIR]\t\tЗапустити в директорії DIR\n" " tagtool --dump FILE\tВивести всю відому інформацію про FILE і завершити " "роботу\n" " tagtool --help\tВивести це повідомлення\n" " tagtool --version\tВивести версію програми\n" "\n" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" "Не вдається відкрити файл: %s\n" "\n" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" "Невідомий аудіоформат файлу: %s\n" "\n" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Поле" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "Текст" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "Розгорнутий (%i)" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" "Помилка при записі файлу \"%s\":\n" "%s (%d)" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "Помилка при записі файлу" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "ID3 мітку змінено. Зберегти зміни?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Відмінити" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "Нове ID3 поле" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Редагувати ID3 поле" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "Так" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "Ні" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "Пропущено файл \"%s\"" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "Не вдається відкрити файл для читання" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "Помилка при створенні списку програвання \"%s\"" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "Записано \"%s\" (записів %d)" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "Запис списків програвання" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "Зміна директорії на \"%s\"" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "Виконано (записано списків програвання: %d з %d)" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "Переміщення файлів" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "Перейменування файлів" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "Помилка при перейменуванні \"%s\"" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "Невідома помилка" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "Файл не містить міток" #: src/rename_tab.c:242 #, fuzzy msgid "One of the tag fields is empty" msgstr "Не вибрано жодного поля для обробки!" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "Ім'я файлу \"%s\" вже в бажаному форматі" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "Помилка при переміщенні \"%s\"" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "Файл \"%s\" вже існує" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "Помилка при створенні директорії \"%s\"" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "Створено директорію \"%s\"" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "Переміщено \"%s\" в \"%s\"" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "Переіменовано \"%s\" в \"%s\"" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "Виконано (переміщено файлів: %d з %d)" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "Виконано (переіменовано файлів: %d з %d)" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "Обробка файлів" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "Не вибрано жодного поля для обробки!" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "Помилка при обробці \"%s\"" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "Ім'я файлу не відповідає очікуваному формату" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "Оброблено \"%s\"" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "Виконано (оброблено файлів: %d of %d)" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" "Помилка при записі в файл \"%s\":\n" "%s (%d)\n" "\n" "Примітка:\n" "Для того, щоб зберегти зміни в файл формату Ogg Vorbis, у вас \n" "повинен бути дозвіл на запис в директорію де міститься даний файл." #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "Мітку Vorbis змінено. Зберегти зміни?" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "Нове поле Vorbis" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "Редагувати поле Vorbis" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" #~ msgid "Homepage:" #~ msgstr "Домашня сторінка:" #~ msgid "Author:" #~ msgstr "Автор:" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/po/ru.po�����������������������������������������������������������������������������0000644�0001750�0001750�00000077030�10541302761�014214� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of tagtool-0.12.1.po to Russian # This file is distributed under the same license as the tagtool package. # Copyright (C) 2005. # Pavel Maryanov <acid_jack@ukr.net>, 2005. # msgid "" msgstr "" "Project-Id-Version: tagtool-0.12.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2005-05-26 15:48+0300\n" "Last-Translator: Pavel Maryanov <acid_jack@ukr.net>\n" "Language-Team: Russian <docteam@lafox.net>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.9.1\n" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Audio Tag Tool" #: src/tagtool.glade:36 msgid "_File" msgstr "_Файл" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Открыть каталог..." #: src/tagtool.glade:66 msgid "Refresh" msgstr "Обновить" #: src/tagtool.glade:94 msgid "Quit" msgstr "Выход" #: src/tagtool.glade:119 msgid "_Settings" msgstr "_Настройка" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "Преобразование символов..." #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "Параметры ID3..." #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "Вид" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Меньше" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Больше" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "Копировать v1 в v2" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "Копировать v2 в v1" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "_Справка" #: src/tagtool.glade:279 msgid "Contents..." msgstr "Содержание..." #: src/tagtool.glade:300 msgid "About..." msgstr "О программе..." #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Включая подкаталоги" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Выбор рабочего каталога" #: src/tagtool.glade:471 msgid "<b>Working Directory</b>" msgstr "<b>Рабочий каталог</b>" #: src/tagtool.glade:559 msgid "<b>Files</b>" msgstr "<b>Файлы</b>" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Обновление списка файлов" #: src/tagtool.glade:706 msgid "<span size=\"large\" weight=\"bold\">Edit Tag</span>" msgstr "<span size=\"large\" weight=\"bold\">Редактирование тега</span>" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Выберите файл для редактирования" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "<b>Tag</b>" msgstr "<b>Тег</b>" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "В файле нет тега ID3v1" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Создать" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Заголовок:" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Комментарий:" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Год:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "Альбом:" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Жанр:" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Дорожка:" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Исполнитель:" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "В файле нет тега ID3v2" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Добавить" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Удалить" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Редактировать (двойной щелчок)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Удалить тег" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Сохранить изменения" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Удалить тег" #: src/tagtool.glade:3468 msgid "<b>File Info</b>" msgstr "<b>Информация о файле</b>" #: src/tagtool.glade:3658 msgid "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Обработка тегов нескольких файлов</span>" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "<b>File Name Format</b>" msgstr "<b>Формат имени файла</b>" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Вызвать справку по формату имён файлов" #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "<b>Character and Case Conversion</b>" msgstr "<b>Преобразование символов и регистра</b>" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Настроить" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Автоувеличение" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Установить теги на основе имён файлов" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Применить к" #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "всем файлам\n" "выбранным файлам" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Вперёд!" #: src/tagtool.glade:4607 msgid "<span size=\"large\" weight=\"bold\">Clear Tags</span>" msgstr "<span size=\"large\" weight=\"bold\">Удаление тегов</span>" #: src/tagtool.glade:4663 msgid "<b>Tags to Clear</b>" msgstr "<b>Удалить теги</b>" #: src/tagtool.glade:4688 msgid "All" msgstr "Все" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Только теги ID3 v1" #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Только теги ID3 v2" #: src/tagtool.glade:4949 msgid "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Переименование нескольких файлов</span>" #: src/tagtool.glade:5416 msgid "<span size=\"large\" weight=\"bold\">Create Playlists</span>" msgstr "<span size=\"large\" weight=\"bold\">Создание списка песен</span>" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "Каждом каталоге" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "Каталоге верхнего уровня" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "Оба" #: src/tagtool.glade:5516 msgid "<b>Create In</b>" msgstr "<b>Создать в</b>" #: src/tagtool.glade:5580 msgid "<b>Playlist File Name</b>" msgstr "<b>Имя файла со списком песен</b>" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Установить в:" #: src/tagtool.glade:5631 msgid "playlist" msgstr "playlist" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Совпадает с именем каталога" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Расширение:" #: src/tagtool.glade:5756 msgid "<b>Sort Entries</b>" msgstr "<b>Сортировать элементы</b>" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "По полю тега (если доступно):" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Заголовок\n" "Исполнитель\n" "Альбом\n" "Год\n" "Жанр\n" "Комментарий\n" "Дорожка №" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "Сортировать сквозь каталоги" #: src/tagtool.glade:5904 msgid "By file name" msgstr "По имени файла" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Преобразование символов" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "Не преобразовывать" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "Преобразовать этот символ в пробел:" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "<b>Space Conversion</b>" msgstr "<b>Преобразование пробелов</b>" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "<b>Case Conversion</b>" msgstr "<b>Преобразование регистра</b>" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(без преобразования)\n" "нижний регистр\n" "ВЕРХНИЙ РЕГИСТР\n" "Первое слово\n" "Каждое Слово" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "При обработке тегов" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Преобразовать пробелы в:" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Пропускать" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Преобразовать в:" #: src/tagtool.glade:6869 msgid "<b>Invalid File Name Characters</b>" msgstr "<b>Недопустимые символы в именах файлов</b>" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "При переименовании" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "Об Audio Tag Tool" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "У_частники" #: src/tagtool.glade:7125 msgid "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" msgstr "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" #: src/tagtool.glade:7146 msgid "<b>version %s</b>" msgstr "<b>версия %s</b>" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Поддерживаемые звуковые форматы:" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" "На это программное обеспечение распространяется действие GNU General Public " "License.\n" "Полный текст соглашения смотрите в файле COPYING." #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "Параметры ID3" #: src/tagtool.glade:7373 msgid "<b>When tagging multiple files</b>" msgstr "<b>При обработке тегов для нескольких файлов</b>" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "Создавать ID3-теги версий:" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "Только v1" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "Только v2" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "По умолчанию v1, v2 добавлять по необходимости" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Не трогать теги существующих версий" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Текст:" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Поле:" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Ход работы" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Переименование файла вручную" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Переименовать вручную..." #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Удаление выбранных файлов с диска" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Удалить выбранные файлы" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "Отмена выделения всех файлов" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "Отменить выделение" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Переименовать файл" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "Имя файла:" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Процесс сканирования" #: src/tagtool.glade:8048 msgid "<b>Scanning...</b>" msgstr "<b>Сканирование...</b>" #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Просканировано каталогов:\n" "Найдено файлов:" #: src/tagtool.glade:8134 msgid "Credits" msgstr "Список участников" #: src/tagtool.glade:8215 msgid "Written by" msgstr "Авторы" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "Переводчики" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "Удаление тегов" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "Начальный каталог \"%s\"" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "Операция остановлена по запросу пользователя" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(ошибка преобразования UTF8)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "Вход в каталог \"%.*s\"" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Ошибка в файле \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "Невозможно открыть файл для записи" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "Формат звука не распознан" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "Неизвестная ошибка (%d)" #: src/clear_tab.c:155 #, c-format msgid "Skipped \"%s\"" msgstr "Пропущен \"%s\"" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "Удалён тег из \"%s\"" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "Готово (удалены теги в %d из %d файлов)" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "Файлы не выбраны" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "Невозможно открыть файл %s" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "Формат звукового файла не распознан: %s" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "Неизвестная ошибка при открытии файла %s" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "Файл только для чтения: %s" #: src/edit_tab.c:123 msgid "File Type:" msgstr "Тип файла:" #: src/file_list.c:116 msgid "No files found" msgstr "Файлы не найдены" #: src/file_list.c:118 msgid "1 file found" msgstr "Найден 1 файл" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "Найдено %d файлов" #: src/file_list.c:123 msgid " (1 selected)" msgstr " (выбран 1)" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr " (выбрано %i)" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "(название каталога не может быть преобразовано в UTF8)" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "(имя файла не может быть преобразовано в UTF8)" #: src/file_list.c:212 msgid "Deleting Files" msgstr "Удаление файлов" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "Удалён файл \"%s\"" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "Ошибка удаления файла \"%s\"" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "Готово (удалено %d из %d файлов)" #: src/file_list.c:258 msgid "File Exists" msgstr "Файл существует" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" "Файл с таким именем уже существует.\n" "Хотите перезаписать его?" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" "Ошибка переименования файла:\n" "%s (%d)" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "Ошибка переименования файлов" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "Ошибка: Невозможно открыть каталог \"%s\"." #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "Ошибка: \"%s\" не является каталогом." #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "Ошибка: Запрещён доступ к \"%s\"." #: src/file_list.c:374 msgid "Scanning..." msgstr "Сканирование..." #: src/file_list.c:397 msgid "No files found." msgstr "Файлы не найдены." #: src/file_list.c:400 msgid "1 file found." msgstr "Найден 1 файл." #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "Найдено %d файлов." #: src/file_list.c:451 msgid "Delete selected files" msgstr "Удаление выбранных файлов" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "При этом выбранные файлы будут удалены с диска. Продолжить?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Выбрать каталог" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "Справка - Формат имён файлов" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" "Эти поля описывают ожидаемый формат имени файла (без \n" "расширения). Audio Tag Tool использует эту информацию \n" "для автоматического заполнения тегов, основанного на \n" "имени файла. \n" "\n" "Каждое поле тега имеет соответствующее обозначение, как\n" "показано в приведенном ниже списке: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Примеры: \n" "\n" "Формат \"<artist> - <album> - <title>\" будет соответствовать \n" "файлу с именем \"Pink Floyd - The Wall - Hey You.mp3\". В этом \n" "примере поля тега Artist, Album и Title будут установлены \n" "соответственно в \"Pink Floyd\", \"The Wall\" и \"Hey You\".\n" "\n" "Формат \"<artist> - <*> - <title>\" также мог быть использован \n" "в предыдущем примере, если бы мы не хотели заполнять название \n" "альбома (специальный символ <*> обозначает игнорируемую часть \n" "файла). \n" #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" "Это поле описывает желаемый формат имени файла. \n" "Audio Tag Tool может использовать эту информацию для \n" "переименования файлов или упорядочивания их по подкаталогам, \n" "основываясь на содержимом их тегов. \n" "\n" "Каждое поле ID3 имеет соответствующее обозначение, как \n" "показано в приведенном ниже списке: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Пример переименования: \n" "\n" "Чтобы сделать имена всех файлов состоящими из номера дорожки \n" "и её заголовка, может быть использован формат типа \n" "\"<track> - <title>\". \n" "\n" "Пример перемещения: \n" "\n" "Формат имени файла может включать подкаталоги. Если бы в \n" "предыдущем примере нам нужно было поместить файлы каталог \n" "с названием альбома, мы бы должны были использовать \n" "формат \"<album>/<track> - <title>\". \n" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "Поддерживаемые звуковые форматы: " #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" "Использование:\n" " tagtool [КАТ]\t\tЗапуск в каталоге КАТ\n" " tagtool --dump ФАЙЛ\tСброс всей доступной информации о ФАЙЛЕ и выход\n" " tagtool --help\tВывод этого справочного сообщения\n" " tagtool --version\tВывод версии программы\n" "\n" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" "Невозможно открыть файл: %s\n" "\n" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" "Формат звукового файла не распознан: %s\n" "\n" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Поле" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "Текст" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "Больше (%i)" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" "Ошибка сохранения файла \"%s\":\n" "%s (%d)" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "Ошибка сохранения файлов" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "Тег ID3 был изменён. Сохранить изменения?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Отмена" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "Нове поле ID3" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Редактировать поле ID3" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" "Битрейт\n" "%d кбит/с\n" "Частота дискретизации\n" "%d Гц\n" "Режим канала\n" "%s\n" "Защищён копирайтом\n" "%s\n" "Оригинальный\n" "%s\n" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "Да" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "Нет" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "Пропускается файл \"%s\"" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "Невозможно открыть файл для чтения" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "Ошибка создания списка песен \"%s\"" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "Записан \"%s\" (%d элементов)" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "Запись списков песен" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "Вход в каталог \"%s\"" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "Готово (записано %d из %d списков)" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "Перемещение файлов" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "Переименование файлов" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "Ошибка переименования \"%s\"" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "Неизвестная ошибка" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "В файле нет тега" #: src/rename_tab.c:242 msgid "One of the tag fields is empty" msgstr "Одно из полей тега пустое" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "Имя файла \"%s\" уже в нужном формате" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "Ошибка перемещения \"%s\"" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "Файл \"%s\" уже существует" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "Ошибка создания каталога \"%s\"" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "Создан каталог \"%s\"" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "\"%s\" перемещён в \"%s\"" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "\"%s\" переименован в \"%s\"" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "Готово (перемещено %d из %d файлов)" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "Готово (переименовано %d из %d файлов)" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "Обработка тегов файлов" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "Не установлены поля тега!" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "Ошибка обработки тега \"%s\"" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "Имя файла не соответствует ожидаемому формату" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "Обработан тег \"%s\"" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "Готово (обработаны теги в %d из %d файлов)" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" "Ошибка сохранения файла \"%s\":\n" "%s (%d)\n" "\n" "Примечание:\n" "Чтобы сохранить изменения в файле Ogg Vorbis, вы должны иметь\n" "права на запись в каталог, где он находится." #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "Тег Vorbis был изменён. Сохранить изменения?" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "Нове поле Vorbis" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "Редактировать поле Vorbis" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" "Средний битрейт\n" "%ld кбит/с\n" "Номинальный битрейт\n" "%ld кбит/с\n" "Частота дискретизации\n" "%ld Гц\n" "Каналов\n" "%d\n" "Время воспроизведения\n" "%dm %ds %dмс\n" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/po/pl.po�����������������������������������������������������������������������������0000644�0001750�0001750�00000066514�10541302761�014206� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# translation of pl.po to Polski # This file is distributed under the same license as the tagtool package. # Rafal Glazar <rafal_glazar@o2.pl>, 2005. # msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2005-07-27 04:02+0200\n" "Last-Translator: Rafal Glazar <rafal_glazar@o2.pl>\n" "Language-Team: Polski <pl@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.10.1\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Audio Tag Tool" #: src/tagtool.glade:36 msgid "_File" msgstr "_Plik" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Otwórz Katalog..." #: src/tagtool.glade:66 msgid "Refresh" msgstr "Odśwież" #: src/tagtool.glade:94 msgid "Quit" msgstr "Wyjdź" #: src/tagtool.glade:119 msgid "_Settings" msgstr "_Ustawienia" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "Konwersja Znaków..." #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "Ustawienia ID3..." #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "Widok" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Prosty" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Zaawansowany" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "Kopiuj v1 do v2" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "Kopiuj v2 do v1" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "_Pomoc" #: src/tagtool.glade:279 msgid "Contents..." msgstr "Zawartość..." #: src/tagtool.glade:300 msgid "About..." msgstr "O programie..." #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Uwzględnij podkatalogi" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Wybierz katalog roboczy" #: src/tagtool.glade:471 msgid "<b>Working Directory</b>" msgstr "<b>Katalog Roboczy</b>" #: src/tagtool.glade:559 msgid "<b>Files</b>" msgstr "<b>Pliki</b>" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Odśwież listę plików" #: src/tagtool.glade:706 msgid "<span size=\"large\" weight=\"bold\">Edit Tag</span>" msgstr "<span size=\"large\" weight=\"bold\">Edytuj Znaczniki</span>" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Zaznacz plik do edycji" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "<b>Tag</b>" msgstr "<b>Znacznik</b>" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "Plik nie posiada znacznika ID3v1" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Utwórz" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Tytuł:" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Koment.:" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Rok:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "Album:" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Gatunek:" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Ścieżka:" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Artysta:" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "Plik nie posiada znacznika ID3v2" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Dodaj" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Usuń" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Edytuj (podwójne kliknięcie)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Usuń znacznik" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Zapisz zmiany" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Wyczyść znacznik" #: src/tagtool.glade:3468 msgid "<b>File Info</b>" msgstr "<b>Informacje o pliku</b>" #: src/tagtool.glade:3658 msgid "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" msgstr "<span size=\"large\" weight=\"bold\">Edytuj znaczniki dla wielu plików</span>" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "<b>File Name Format</b>" msgstr "<b>Format nazwy pliku</b>" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Uzyskaj pomoc odnośnie formatu nazwy pliku" #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "<b>Character and Case Conversion</b>" msgstr "<b>Konwersja znaków i ich wielkości</b>" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Konfiguruj" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Autozwiększanie" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Ustaw znaczniki w oparciu o nazwy plików" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Zastosuj dla " #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "Wszystkich plików\n" "Zaznaczonych plików" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Wykonaj!" #: src/tagtool.glade:4607 msgid "<span size=\"large\" weight=\"bold\">Clear Tags</span>" msgstr "<span size=\"large\" weight=\"bold\">Wyczyść znaczniki</span>" #: src/tagtool.glade:4663 msgid "<b>Tags to Clear</b>" msgstr "<b>Znaczniki do wyczyszczenia</b>" #: src/tagtool.glade:4688 msgid "All" msgstr "Wszystkie" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Tylko znaczniki ID3 v1" #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Tylko znaczniki ID3 v2" #: src/tagtool.glade:4949 msgid "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" msgstr "<span size=\"large\" weight=\"bold\">Zmień nazwy dla wielu plików</span>" #: src/tagtool.glade:5416 msgid "<span size=\"large\" weight=\"bold\">Create Playlists</span>" msgstr "<span size=\"large\" weight=\"bold\">Utwórz Playlisty</span>" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "We wszystkich katalogach" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "W nadrzędnych katalogach" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "W obu" #: src/tagtool.glade:5516 msgid "<b>Create In</b>" msgstr "<b>Utwórz w</b>" #: src/tagtool.glade:5580 msgid "<b>Playlist File Name</b>" msgstr "<b>Nazwa pliku playlisty</b>" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Ustaw na:" #: src/tagtool.glade:5631 msgid "playlist" msgstr "playlista" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Taka jak nazwa katalogu" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Rozszerzenie:" #: src/tagtool.glade:5756 msgid "<b>Sort Entries</b>" msgstr "<b>Sortuj elementy</b>" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "Według pola znacznika (jeśli istnieje)" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Tytuł\n" "Artysta\n" "Album\n" "Rok\n" "Gatunek\n" "Komentarz\n" "Ścieżka nr" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "Sortuj w katalogach" #: src/tagtool.glade:5904 msgid "By file name" msgstr "Według nazwy pliku" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Konwersja znaków" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "Bez konwersji" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "Zamień ten znak na spację" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "<b>Space Conversion</b>" msgstr "<b>Konwersja spacji</b>" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "<b>Case Conversion</b>" msgstr "<b>Konwersja wielkości znaków</b>" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(brak konwersji)\n" "małe litery\n" "DUŻE LITERY\n" "Pierwsza w zdaniu\n" "Pierwsza W Wyrazie" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "Przy zmianie znaczników" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Zamień spację na:" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Omiń" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Zamień na:" #: src/tagtool.glade:6869 msgid "<b>Invalid File Name Characters</b>" msgstr "<b>Błędne znaki w nazwie pliku</b>" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "Przy zmianie nazwy" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "O Audio Tag Tool" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "Z_asługi" #: src/tagtool.glade:7125 msgid "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" msgstr "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" #: src/tagtool.glade:7146 msgid "<b>version %s</b>" msgstr "<b>wersja %s</b>" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Obsługiwane formaty audio:" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" "Program ten został udostępniony na licencji GNU General Public Licence.\n" "Aby zapoznać się ze wszystkimi warunkami licencji przeglądnij plik COPYING." #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "Ustawienia ID3" #: src/tagtool.glade:7373 msgid "<b>When tagging multiple files</b>" msgstr "<b>Zmieniając znaczniki dla wielu plików</b>" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "Wersja znacznika ID3 do utworzenia:" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "Tylko v1" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "Tylko v2" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "Domyślnie v1, dodaj v2 tylko gdy konieczne" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Pozostaw istniejącą wersję znacznika" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Tekst:" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Pole:" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Postęp" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Ręcznie zmień nazwę pliku" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Zmień ręcznie..." #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Usuń zaznaczone pliki z dysku" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Usuń zaznaczone pliki" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "Odznacz wszystkie pliki" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "Odznacz wszystkie" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Zmień nazwę pliku" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "Nazwa pliku:" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Postęp skanowania" #: src/tagtool.glade:8048 msgid "<b>Scanning...</b>" msgstr "<b>Skanowanie...</b>" #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Przeskanowane katalogi:\n" "Znalezione pliki:" #: src/tagtool.glade:8134 msgid "Credits" msgstr "Zasługi" #: src/tagtool.glade:8215 msgid "Written by" msgstr "Autorzy" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "Tłumaczenie" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "Czyszczenie znaczników" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "Zaczynam w katalogu \"%s\"" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "Operacja zatrzymana na żądanie użytkownika" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(Błąd konwersji UTF8)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "Wchodzę do katalogu \"%.*s\"" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Błąd w pliku \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "Nie można otworzyć pliku do zapisu" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "Nie rozpoznany format audio" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "Nieznany błąd (%d)" #: src/clear_tab.c:155 #, c-format msgid "Skipped \"%s\"" msgstr "Ominięte \"%s\"" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "Wyczyszczono znaczniki z \"%s\"" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "Skończone (Wyczyszczono %d z %d plików)" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "Brak zaznaczonych plików" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "Nie można otworzyć pliku %s" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "Nieznany format pliku audio: %s" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "Nieznany błąd przy otwieraniu pliku %s" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "Plik tylko-do-odczytu: %s" #: src/edit_tab.c:123 msgid "File Type:" msgstr "Typ pliku:" #: src/file_list.c:116 msgid "No files found" msgstr "Nie znaleziono plików" #: src/file_list.c:118 msgid "1 file found" msgstr "1 plik znaleziony" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "%i plików znalezionych" #: src/file_list.c:123 msgid " (1 selected)" msgstr " (1 zaznaczony)" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr " (%i zaznaczonych)" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "(nazwa katalogu nie może być przekonwertowana do UTF8)" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "(nazwa pliku nie może być przekonwertowana do UTF8)" #: src/file_list.c:212 msgid "Deleting Files" msgstr "Kasowanie plików" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "Skasowano plik\"%s\"" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "Błąd podczas kasowania pliku \"%s\"" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "Skończone (skasowano %d z %d plików)" #: src/file_list.c:258 msgid "File Exists" msgstr "Plik istnieje" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" "Plik o tej nazwie już istnieje.\n" "Czy chcesz go nadpisać?" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" "Błąd podczas zmiany nazwy pliku:\n" "%s (%d)" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "Błąd podczas zmiany nazwy pliku" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "Błąd: Nie można otworzyć katalogu \"%s\"." #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "Błąd: \"%s\" nie jest katalogiem." #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "Błąd: Brak uprawnień dla \"%s\"." #: src/file_list.c:374 msgid "Scanning..." msgstr "Skanowanie..." #: src/file_list.c:397 msgid "No files found." msgstr "Nie znaleziono plików" #: src/file_list.c:400 msgid "1 file found." msgstr "1 plik znaleziony." #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "%d plików znalezionych." #: src/file_list.c:451 msgid "Delete selected files" msgstr "Skasuj zaznaczone pliki" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "Operacja ta usunie zaznaczone pliki z dysku. Kontynuować?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Zaznacz katalog" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "Pomoc - Format nazwy pliku" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" "Pole to opisuje oczekiwany format nazwy pliku (z wyłącze-\n" "niem rozszerzenia). Audio Tag Tool używa tych informacji \n" "w celu automatycznego wypełnienia znaczników w oparciu \n" "o nazwę pliku. \n" "\n" "Każde z pól znacznika ma odpowiadajacy mu symbol, co \n" "pokazano poniżej: \n" "\n" " <title> - Tytuł\n" " <artist> - Artysta\n" " <album> - Album\n" " <year> - Rok\n" " <comment> - Komentarz\n" " <track> - Ścieżka\n" " <genre> - Gatunek\n" "\n" "Przykłady: \n" "\n" "Format \"<artist> - <album> - <title>\" odpowiada plikowi \n" "o nazwie \"Pink Floyd - The Wall - Hey You.mp3\". W tym \n" "przykładzie pola znacznika Artysta, Album i Tytuł zostaną \n" "ustawione odpowiednio na \"Pink Floyd\", \"The Wall\" i \n" "\"Hey You\".\n" "\n" "Format \"<artist> - <*> - <title>\" może również zostać \n" "użyty w poprzednim przykładzie wtedy, gdy nie chcemy \n" "ustawić pola Album (specjalny symbol <*> powoduje, że \n" "ta część nazwy pliku zostanie zignorowana.) \n" #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" "Pole to opisuje pożądany format nazwy pliku. Audio Tag \n" "Tool może użyć tych informacji w celu zmiany nazwy pliku \n" "lub w celu zorganizowania ich w podkatalogi, w oparciu o \n" "zawartość ich znaczników. \n" "\n" "Każde z pół ID3 posiada odpowiadający mu symbol, co \n" "pokazano poniżej: \n" "\n" " <title> - Tytuł\n" " <artist> - Artysta\n" " <album> - Album\n" " <year> - Rok\n" " <comment> - Komentarz\n" " <track> - Ścieżka\n" " <genre> - Gatunek\n" "\n" "Przykład zmiany nazwy pliku: \n" "\n" "Aby wszystkie nazwy plików składały się z numeru ścieżki \n" "i jej tytułu rozdzielonych myślnikiem, można użyć formatu \n" "wyglądającego tak: \"<track> - <title>\" \n" "\n" "Przykład przenoszenia pliku: \n" "\n" "Format nazwy pliku może zawierać podkatalogi. Jeżeli w po-\n" "przednim przykładzie chcielibyśmy aby pliki znalazły się \n" "w katalogu o nazwie takiej jak album, użylibyśmy formatu \n" "wyglądającego tak: \"<album>/<track> - <title>\". \n" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "Obsługiwane formaty audio: " #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" "Stosowanie:\n" " tagtool [DIR]\t\tStart w katalogu DIR\n" " tagtool --dump FILE\tWyświetlenie wszystkich znanych informacji o pliku FILE i wyjście\n" " tagtool --help\tWyświetlenie tego komunikatu\n" " tagtool --version\tWyświetlenie wersji programu\n" "\n" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" "Nie można otworzyć pliku: %s\n" "\n" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" "Format pliku audio nie rozpoznany: %s\n" "\n" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Pole" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "Tekst" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "Zaawansowane (%i)" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" "Błąd podczas zapisu pliku \"%s\":\n" "%s (%d)" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "Błąd podczas zapisu pliku" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "Znacznik ID3 został zmodyfikowany. Zapisać zmiany?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Porzuć" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "Nowe pole ID3" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Edutyj pole ID3" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" "Rozdzielczość bitowa\n" "%d kbps\n" "Częstotliwość próbkowania\n" "%d Hz\n" "Ustawienie kanałów\n" "%s\n" "Chroniony prawami autorskimi\n" "%s\n" "Oryginał\n" "%s\n" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "Tak" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "Nie" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "Ominięcie pliku \"%s\"" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "Nie można otworzyć pliku do odczytu" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "Błąd przy tworzeniu playlisty \"%s\"" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "Zapisano \"%s\" (%d elementów)" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "Zapisywanie playlisty" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "Wchodzę do katalogu \"%s\"" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "Skończono (zapisano %d z %d playlist)" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "Przenoszenie plików" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "Zmiana nazw plików" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "Błąd przy zmianie nazwy \"%s\"" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "Nieznany błąd" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "Plik nie posiada znacznika" #: src/rename_tab.c:242 msgid "One of the tag fields is empty" msgstr "Jedno z pól znacznika jest puste" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "Nazwa pliku \"%s\" posiada zadany format" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "Błąd przy przenoszeniu \"%s\"" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "Plik \"%s\" już istnieje" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "Błąd przy tworzeniu katalogu \"%s\"" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "Tworzenie katalogu \"%s\"" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "Przeniesiono \"%s\" do \"%s\"" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "Zmieniono nazwę \"%s\" na \"%s\"" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "Skończone (przeniesiono %d z %d plików)" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "Skończone (zmieniono nazwy %d z %d plików)" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "Tworzenie znaczników dla plików" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "Brak pola znacznika do ustawienia!" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "Błąd przy tworzeniu znaczników \"%s\"" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "Nazwa pliku niezgodna z oczekiwanym formatem" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "Ustawiono znaczniki \"%s\"" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "Skończone (zmieniono %d z %d plików)" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" "Błąd przy zapisywaniu pliku\"%s\":\n" "%s (%d)\n" "\n" "Uwaga:\n" "Aby zapisać zmiany w pliku Ogg Vorbis, musisz mieć\n" "prawa zapisu dla katalogu w którym on się znajduje." #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "Vorbis Tag został zmodyfikowany. Zapisać zmiany?" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "Nowe pole Vorbis" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "Edytuj pole Vorbis" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" "Średnia rozdzielczość bitowa\n" "%ld kbps\n" "Nominalna rozdzielczość bitowa\n" "%ld kbps\n" "Częstotliwość próbkowania\n" "%ld Hz\n" "Kanały\n" "%d\n" "Czas odtwarzania\n" "%dm %ds %dms\n" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/po/sv.po�����������������������������������������������������������������������������0000644�0001750�0001750�00000064473�10541302761�014225� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Svensk översättning. # Denna fil distribueras under samma licens som tagtool package. # # msgid "" msgstr "" "Project-Id-Version: Audio Tag Tool 0.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2005-10-02 16:53+0200\n" "Last-Translator: Christian Bjelle <christian@bjelle.se>\n" "Language-Team: Swedish <sv@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Audio Tag Tool" #: src/tagtool.glade:36 msgid "_File" msgstr "_Fil" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Öppna katalog..." #: src/tagtool.glade:66 msgid "Refresh" msgstr "Uppdatera" #: src/tagtool.glade:94 msgid "Quit" msgstr "Avsluta" #: src/tagtool.glade:119 msgid "_Settings" msgstr "_Inställningar" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "Teckenkonverteringar..." #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "ID3-önskemål..." #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "Visa" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Enkel" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Avancerad" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "Kopiera v1 to v2" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "Kopiera v2 to v1" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "_Hjälp" #: src/tagtool.glade:279 msgid "Contents..." msgstr "Innehåll..." #: src/tagtool.glade:300 msgid "About..." msgstr "Om..." #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Inkludera underkataloger" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Välj arbetskatalog" #: src/tagtool.glade:471 msgid "<b>Working Directory</b>" msgstr "<b>Arbetskatalog</b>" #: src/tagtool.glade:559 msgid "<b>Files</b>" msgstr "<b>Filer</b>" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Uppdatera fillista" #: src/tagtool.glade:706 msgid "<span size=\"large\" weight=\"bold\">Edit Tag</span>" msgstr "<span size=\"large\" weight=\"bold\">Redigera etikett</span>" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Välj en fil att redigera" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "<b>Tag</b>" msgstr "<b>Etikett</b>" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "Filen har ingen ID3v1 etikett" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Skapa" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Titel:" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Kommentar:" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Årtal:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "Album:" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Genre:" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Spår:" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Artist:" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "Filen har ingen ID3v2 etikett" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Lägg till" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Ta bort" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Redigera (dubbel-klick)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Ta bort etikett" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Spara ändringar" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Rensa etikett" #: src/tagtool.glade:3468 msgid "<b>File Info</b>" msgstr "<b>Filinformation</b>" #: src/tagtool.glade:3658 msgid "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" msgstr "<span size=\"large\" weight=\"bold\">Sätt etikett på flera filer</span>" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "<b>File Name Format</b>" msgstr "<b>Filnamnsformat</b>" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Få hjälp om filenamnsformat" #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "<b>Character and Case Conversion</b>" msgstr "<b>Tecken- och teckenläge</b>" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Konfigurera" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Automatisk uppräkning" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Sätt etikett baserat på filnamn" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Applicera på" #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "Alla filer\n" "Valda filer" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Starta!" #: src/tagtool.glade:4607 msgid "<span size=\"large\" weight=\"bold\">Clear Tags</span>" msgstr "<span size=\"large\" weight=\"bold\">Rensa etiketter</span>" #: src/tagtool.glade:4663 msgid "<b>Tags to Clear</b>" msgstr "<b>Etiketter att rensa</b>" #: src/tagtool.glade:4688 msgid "All" msgstr "Alla" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Endast ID3 v1 etiketter" #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Endast ID3 v2 etiketter" #: src/tagtool.glade:4949 msgid "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" msgstr "<span size=\"large\" weight=\"bold\">Döp om flera filer</span>" #: src/tagtool.glade:5416 msgid "<span size=\"large\" weight=\"bold\">Create Playlists</span>" msgstr "<span size=\"large\" weight=\"bold\">Skapa spellista</span>" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "Alla kataloger" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "Rotkatalog" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "Både och" #: src/tagtool.glade:5516 msgid "<b>Create In</b>" msgstr "<b>Skapa i</b>" #: src/tagtool.glade:5580 msgid "<b>Playlist File Name</b>" msgstr "<b>Filnamn för spellista</b>" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Sätt till:" #: src/tagtool.glade:5631 msgid "playlist" msgstr "spellista" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Samma som katalognamn" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Filändelse:" #: src/tagtool.glade:5756 msgid "<b>Sort Entries</b>" msgstr "<b>Sortera poster</b>" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "Enligt etikettfält (om det finns)" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Titel\n" "Artist\n" "Album\n" "Årtal\n" "Genre\n" "Kommentar\n" "Spår #" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "Sortera över kataloger" #: src/tagtool.glade:5904 msgid "By file name" msgstr "Efter filnamn" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Teckenkonverteringar" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "Ingen konvertering" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "Ersätt detta tecken med blanksteg:" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "<b>Space Conversion</b>" msgstr "<b>Blankstegskonvertering</b>" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "<b>Case Conversion</b>" msgstr "<b>Versal-/Gemen- konvertering</b>" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(ingen konvertering)\n" "gemener\n" "VERSALER\n" "Versal begynnelsebokstav, mening\n" "Versal begynnelsebokstav, ord" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "Vid sättning av etiketter" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Ersätt blanksteg med:" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Utelämna" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Ersätt med:" #: src/tagtool.glade:6869 msgid "<b>Invalid File Name Characters</b>" msgstr "<b>Ogiltiga tecken för filnamn</b>" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "Vid omdöpning" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "Om Audio Tag Tool" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "_Tack" #: src/tagtool.glade:7125 msgid "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" msgstr "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" #: src/tagtool.glade:7146 msgid "<b>version %s</b>" msgstr "<b>version %s</b>" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Ljudformat som stöds:" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" "Denna programvara har gjorts tillgänglig under GNU General Public Licence.\n" "Se filen COPYING för fullständiga licensvillkor." #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "ID3-önskemål" #: src/tagtool.glade:7373 msgid "<b>When tagging multiple files</b>" msgstr "<b>Vid sättning av etiketter på flera filer</b>" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "ID3-etikettversioner att skapa:" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "Endast v1" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "Endast v2" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "Endast v1, lägg till v2 vid behov" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Bevara existerande etikettversioner" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Text:" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Fält:" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Förlopp" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Döp om fil manuellt" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Manuell omdöpning..." #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Radera valda filer från skiva" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Radera valda filer" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "Välj inga filer" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "Välj ingen" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Döp om fil" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "Filnamn:" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Sökförlopp" #: src/tagtool.glade:8048 msgid "<b>Scanning...</b>" msgstr "<b>Söker...</b>" #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Kataloger genomsökta:\n" "Filer funna:" #: src/tagtool.glade:8134 msgid "Credits" msgstr "Tack" #: src/tagtool.glade:8215 msgid "Written by" msgstr "Skrivet av" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "Översatt av" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "Raderar etiketter" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "Börjar i katalog \"%s\"" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "Operationen stoppades av användaren" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(UTF8 koverteringsfel)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "Går in i katalog \"%.*s\"" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Fel i fil \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "Filen ej skrivbar" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "Okänt ljudformat" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "Okänt fel (%d)" #: src/clear_tab.c:155 #, c-format msgid "Skipped \"%s\"" msgstr "Hoppade över \"%s\"" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "Raderat etikett från \"%s\"" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "Färdig (Rensade %d av %d filer)" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "Inga filer valda" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "Kunde inte öppna fil %s" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "Okänt ljudfilformat: %s" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "Okänt fel vid öppning av fil·%s" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "Filen kan endast läsas: %s" #: src/edit_tab.c:123 msgid "File Type:" msgstr "Filtyp:" #: src/file_list.c:116 msgid "No files found" msgstr "Inga filer funna" #: src/file_list.c:118 msgid "1 file found" msgstr "1 fil funnen" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "%i filer funna" #: src/file_list.c:123 msgid " (1 selected)" msgstr " (1 vald)" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr " (%i valda)" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "(katalognamn kunde inte konverteras till UTF8)" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "(filnamn kunde inte konverteras till UTF8)" #: src/file_list.c:212 msgid "Deleting Files" msgstr "Raderar filer" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "Raderat fil \"%s\"" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "Fel vid radering av fil \"%s\"" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "Klart·(raderat %d av %d filer)" #: src/file_list.c:258 msgid "File Exists" msgstr "Filen finns redan" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" "En fil med detta namn finns redan.\n" "Vill du skriva över den?" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" "Fel vid omdöpning av fil:\n" "%s (%d)" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "Fel vid omdöpning av fil" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "Fel: Kan inte öppna katalog \"%s\"." #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "Fel: \"%s\" är inte en katalog." #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "Fel: Tillstånd nekas för \"%s\"." #: src/file_list.c:374 msgid "Scanning..." msgstr "Genomsöker..." #: src/file_list.c:397 msgid "No files found." msgstr "Inga filer funna." #: src/file_list.c:400 msgid "1 file found." msgstr "1 fil funnen." #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "%d filer funna." #: src/file_list.c:451 msgid "Delete selected files" msgstr "Radera valda fiiler" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "Detta kommer radera de valda filerna från skivan. Fortsätta?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Välj katalog" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "Hjälp - Filnamnsformat" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" "Detta fält beskriver det förväntade filnamnsformatet, (utom ändelse)\n" "Audio Tag Tool använder denna information för att automatiskt \n" "fylla i etiketter baserade på filnamnet.\n" "\n" "Varje etikettfält har en motsvarande symbol enligt nedan:\n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Exempel:\n" "\n" "Formatet \"<artist> - <album> - <title>\" passar filen\n" "\"Pink·Floyd - The Wall - Hey You.mp3\". I detta exempel sätts\n" "Artist-, Album- och Titel- fälten i etiketten till respektive\n" "\"Pink Floyd\", \"The Wall\" och \"Hey You\".\n" "\n" "I det föregående exemplet kunde vi använt formatet\n" "\"<artist> - <*> - <title>\" om vi inte ville fylla i albumfältet.\n" "(Den speciella symbolen <*> betyder att en del av filnamnet skall ignoreras)\n" #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" "Detta fält beskriver det önskade filformatet. Audio Tag Tool\n" "kan använda denna information för att döpa om filer eller\n" "organisera dem i underkataloger, baserat på innehållet i deras\n" "etiketter.\n" "\n" "Varje fält har en motsvarande symbol enligt nedan:\n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Exempel på omdöpning:\n" "\n" "För att ge alla filer namn med spårnummer följt av titel\n" "Kan vi använda ett format som \"<track> - <title>\"\n" "\n" "Exempel på flytt:\n" "\n" "Formatet kan innehålla underkataloger. Om vi i det föregående\n" "exemplet ville ha filerna sparade i en katalog med albumets namn\n" "kunde vi använt formatet \"<album>/<track> - <title>\".\n" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "Ljudformat som stöds:··" #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" "Användning:\n" "··tagtool [KAT]\t\tBörja i katalog KAT\n" "··tagtool --dump FIL\tRapportera all tillgänglig information om FIL och avsluta sedan\n" "··tagtool --help\tDetta meddelande\n" "··tagtool --version\tRapportera programmets version\n" "\n" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" "Kunde inte öppna fil: %s\n" "\n" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" "Filens ljudformat känns inte igen: %s\n" "\n" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Fält" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "Text" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "Avancerat (%i)" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" "Fel vid sparande av fil \"%s\":\n" "%s (%d)" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "Fel vid sparande av fil" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "ID3-etikett har ändrats. Spara ändringar?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Släng" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "Nytt ID3-fält" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Redigera ID3-fält" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" "Bithastighet\n" "%d kbps\n" "Samplingsfrekvens\n" "%d Hz\n" "Kanalkonfiguration\n" "%s\n" "Copyright\n" "%s\n" "Original\n" "%s\n" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "Ja" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "Nej" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "Hoppar över fil \"%s\"" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "Kunde inte öppna filen för läsning" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "Fel vid skapande av spellista \"%s\"" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "Skrev \"%s\" (%d poster)" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "Skriver spellistor" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "Går in i katalog \"%s\"" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "Klart (skrev %d av %d spellistor)" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "Flyttar filer" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "Döper om filer" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "Fel vid omdöpning av \"%s\"" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "Okänt fel" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "Filen har ingen etikett" #: src/rename_tab.c:242 msgid "One of the tag fields is empty" msgstr "Ett av etikettens fält är tomt" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "Filnamnet \"%s\" redan i önskat format" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "Fel vid flyttning av \"%s\"" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "Filen \"%s\" finns redan" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "Fel vid skapande av katalog \"%s\"" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "Skapade katalog \"%s\"" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "Flyttade \"%s\" till \"%s\"" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "Döpte om \"%s\" till \"%s\"" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "Klar (flyttade %d av %d filer)" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "Klar (döpte om %d av %d filer)" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "Sätter etiketter på filer" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "Inga etikettfält att sätta" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "Fel vid sättande av etikett \"%s\"" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "Filnamn överensstämmer inte med förväntat format" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "Satte etikett \"%s\"" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "Klar (satte etiketter i %d av % filer)" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" "Fel vid sparande av fil \"%s\":\n" "%s (%d)\n" "\n" "Notera:\n" "För att kunna spara en Ogg Vorbis fil måste du ha\n" "skrivrättigheter i katalogen där den befinner sig." #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "Vorbisetiketten har ändrats. Spara ändringar?" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "Nytt Vorbisfält" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "Redigera Vorbisfält" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" "Genomsnittlig bithastighet\n" "%ld kbps\n" "Nominell bithastighet\n" "%ld kbps\n" "Samplingsfrekvens\n" "%ld Hz\n" "Kanaler\n" "%d\n" "Speltid\n" "%dm %ds %dms\n" #~ msgid "MP3 and Ogg Vorbis tag editor" #~ msgstr "MP3 and Ogg Vorbis tag editor" #~ msgid "Author:" #~ msgstr "Author:" #~ msgid "Homepage:" #~ msgstr "Homepage:" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/po/nl.po�����������������������������������������������������������������������������0000644�0001750�0001750�00000054172�10541302761�014201� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Dutch translation of tagtool # Copyright (C) 2006 Free Software Foundation, Inc. # This file is distributed under the same license as the tagtool package. # Daniel van Eeden <daniel_e@dds.nl>, 2006 # msgid "" msgstr "" "Project-Id-Version: tagtool 0.12.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2006-08-19 14:14+0200\n" "Last-Translator: Daniel van Eeden <daniel_e@dds.nl>\n" "Language-Team: Dutch <vertaling@vrijschrift.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Geluidslabel Gereedschap" #: src/tagtool.glade:36 msgid "_File" msgstr "_Bestand" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Open map..." #: src/tagtool.glade:66 msgid "Refresh" msgstr "Vernieuwen" #: src/tagtool.glade:94 msgid "Quit" msgstr "Afsluiten" #: src/tagtool.glade:119 msgid "_Settings" msgstr "_Voorkeuren" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "Tekstcodering conversie..." #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "ID3 Voorkeuren..." #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "Bekijken" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Eenvoudig" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Uitgebreid" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "_Hulp" #: src/tagtool.glade:279 msgid "Contents..." msgstr "Inhoud..." #: src/tagtool.glade:300 msgid "About..." msgstr "I_nfo..." #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Inclusief onderliggende mappen" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Selecteer werkmap" #: src/tagtool.glade:471 msgid "<b>Working Directory</b>" msgstr "<b>Werk Map</b>" #: src/tagtool.glade:559 msgid "<b>Files</b>" msgstr "<b>Bestanden</b>" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Vernieuw bestandslijst" #: src/tagtool.glade:706 msgid "<span size=\"large\" weight=\"bold\">Edit Tag</span>" msgstr "<span size=\"large\" weight=\"bold\">Bewerk label</span>" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Selecteer een bestand om te bewerken" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "<b>Tag</b>" msgstr "<b>Label</b>" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "Bestand heeft geen ID3v1 label" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Aanmaken" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Titel:" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Opm.:" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Jaar:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "Album:" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Genre:" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Nummer:" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Artiest:" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "Bestand heeft geen ID3v2 label" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Toevoegen" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Verwijderen" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Bewerk (dubbel klik)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Verwijder label" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Veranderingen opslaan" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Label wissen" #: src/tagtool.glade:3468 msgid "<b>File Info</b>" msgstr "<b>Bestands informatie</b>" #: src/tagtool.glade:3658 msgid "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" msgstr "<span size=\"large\" weight=\"bold\">Label meerdere bestanden</span>" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "<b>File Name Format</b>" msgstr "<b>Bestandsnaam formaat</b>" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Hulp met bestandsformaten." #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "<b>Character and Case Conversion</b>" msgstr "<b>Teken en hoofdletter omzetting</b>" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Instellen" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Automatich verhogen" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Labels instellen op bestandsnamen" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Toepassen op " #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "Alle bestanden\n" "Geselecteerde bestanden" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Gaan!" #: src/tagtool.glade:4607 msgid "<span size=\"large\" weight=\"bold\">Clear Tags</span>" msgstr "<span size=\"large\" weight=\"bold\">Labels wissen</span>" #: src/tagtool.glade:4663 msgid "<b>Tags to Clear</b>" msgstr "<b>Labels te wissen</b>" #: src/tagtool.glade:4688 msgid "All" msgstr "Alle" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Enkel ID3 v1 labels" #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Enkel ID3 v2 labels" #: src/tagtool.glade:4949 msgid "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" msgstr "<span size=\"large\" weight=\"bold\">Meerdere bestanden hernoemen</span>" #: src/tagtool.glade:5416 msgid "<span size=\"large\" weight=\"bold\">Create Playlists</span>" msgstr "<span size=\"large\" weight=\"bold\">Speellijst aanmaken</span>" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "Elke map" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "Hoogste nivo map" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "Beide" #: src/tagtool.glade:5516 msgid "<b>Create In</b>" msgstr "<b>Aanmaken in</b>" #: src/tagtool.glade:5580 msgid "<b>Playlist File Name</b>" msgstr "<b>Speellijst bestandsnaam</b>" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Instellen op:" #: src/tagtool.glade:5631 msgid "playlist" msgstr "speellijst" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Gelijk aan de mapnaam" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Extensie:" #: src/tagtool.glade:5756 msgid "<b>Sort Entries</b>" msgstr "<b>Lijst sorteren</b>" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "Bij labelveld (mits beschikbaar):" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Titel\n" "Artiest\n" "Album\n" "Jaar\n" "Genre\n" "Opmerking\n" "Nummer #" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "" #: src/tagtool.glade:5904 msgid "By file name" msgstr "" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Tekencodering conversie" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "Geen conversie" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "<b>Space Conversion</b>" msgstr "<b>Spatie conversie</b>" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "<b>Case Conversion</b>" msgstr "<b>Hoofdletter omzetting</b>" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(geen omzetting)\n" "kleine letters\n" "HOOFDLETTERS\n" "Als in een zin\n" "Als In Titels" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "Tijdens het labellen" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Vervang spaties met:" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Overslaan" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Converteer naar:" #: src/tagtool.glade:6869 msgid "<b>Invalid File Name Characters</b>" msgstr "<b>Ongeldigen bestandsnaam-tekens</b>" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "Tijdens het hernoemen" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "Over Geluidslabel Gereedschap" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "_Met dank aan" #: src/tagtool.glade:7125 msgid "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" msgstr "<span size=\"xx-large\" weight=\"bold\">Geluidslabel Gereedschap</span>" #: src/tagtool.glade:7146 msgid "<b>version %s</b>" msgstr "<b>versie %s</b>" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Ondersteunde geluidsformaten:" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "ID3 Voorkeuren" #: src/tagtool.glade:7373 msgid "<b>When tagging multiple files</b>" msgstr "" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "ID3 label versies om aan te maken:" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "Enkel v1" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "Enkel v2" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "Standaard enkel v1, en v2 zo nodig" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Huidige label versie behouden" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Tekst:" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Veld:" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Voortgang" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Handmatig een bestand hernoemen" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Handmatig hernoemen..." #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Geselecteerde bestanden van schijf verwijderen" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Geselecteerde bestanden verwijderen" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Hernoem bestand" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "Bestandsnaam:" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Voortgang van het zoeken" #: src/tagtool.glade:8048 msgid "<b>Scanning...</b>" msgstr "<b>Zoeken...</b>" #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Mappen doorzocht:\n" "Bestanden gevonden:" #: src/tagtool.glade:8134 msgid "Credits" msgstr "Met dank aan" #: src/tagtool.glade:8215 msgid "Written by" msgstr "Geschreven door" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "Vertaald door" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(UTF8 conversie fout)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Fout in bestand \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "" #: src/clear_tab.c:155 #, c-format msgid "Skipped \"%s\"" msgstr "" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "Geen bestand geselecteerd" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "Bestand is alleen-lezen: %s" #: src/edit_tab.c:123 msgid "File Type:" msgstr "Bestands type:" #: src/file_list.c:116 msgid "No files found" msgstr "Geen bestanden gevonden" #: src/file_list.c:118 msgid "1 file found" msgstr "1 bestand gevonden" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "%i bestanden gevonden" #: src/file_list.c:123 msgid " (1 selected)" msgstr "" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr "" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "" #: src/file_list.c:212 msgid "Deleting Files" msgstr "Bestanden verwijderen" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "" #: src/file_list.c:258 msgid "File Exists" msgstr "Bestand bestaat" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "" #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "" #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "" #: src/file_list.c:374 msgid "Scanning..." msgstr "Zoeken..." #: src/file_list.c:397 msgid "No files found." msgstr "Geen bestanden gevonden." #: src/file_list.c:400 msgid "1 file found." msgstr "1 bestand gevonden." #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "%d bestanden gevonden." #: src/file_list.c:451 msgid "Delete selected files" msgstr "Verwijder geselecteerde bestanden" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "De geselecteerde bestanden zullen permanent van schijf verwijderd worden. Doorgaan?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Selecteer map" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "" #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Veld" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "ID3 Label is gewijzigd. Veranderingen opslaan?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Verwerpen" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "Nieuw ID3 veld" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Bewerk ID3 veld" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "Ja" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "Nee" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "Hernoemen bestanden" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "" #: src/rename_tab.c:242 msgid "One of the tag fields is empty" msgstr "" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/po/pt_BR.po��������������������������������������������������������������������������0000644�0001750�0001750�00000066407�10565641402�014606� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2006 Lucas Mazzardo Veloso # This file is distributed under the same license as the tagtool package. # Lucas Mazzardo Veloso <lmveloso@gmail.com> # msgid "" msgstr "" "Project-Id-Version: tagtool 0.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-05-26 16:50+0100\n" "PO-Revision-Date: 2007-02-14 02:50+0300\n" "Last-Translator: Lucas Mazzardo Veloso <lmveloso@gmail.com>\n" "Language-Team: Brasil <pt@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/tagtool.glade:8 msgid "Audio Tag Tool" msgstr "Ferramenta para Etiquetar Audio" #: src/tagtool.glade:36 msgid "_File" msgstr "_Arquivo" #: src/tagtool.glade:45 msgid "Open Directory..." msgstr "Abrir Diretório..." #: src/tagtool.glade:66 msgid "Refresh" msgstr "Atualizar" #: src/tagtool.glade:94 msgid "Quit" msgstr "Sair" #: src/tagtool.glade:119 msgid "_Settings" msgstr "_Definições" #: src/tagtool.glade:128 msgid "Character Conversions..." msgstr "Conversão de Caracteres..." #: src/tagtool.glade:137 msgid "ID3 Preferences..." msgstr "Preferências ID3..." #: src/tagtool.glade:150 msgid "ID_3" msgstr "ID_3" #: src/tagtool.glade:159 src/tagtool.glade:232 msgid "View" msgstr "Ver" #: src/tagtool.glade:168 src/tagtool.glade:241 src/tagtool.glade:2169 #: src/tagtool.glade:3159 msgid "Simple" msgstr "Simples" #: src/tagtool.glade:178 src/tagtool.glade:251 src/tagtool.glade:1936 #: src/tagtool.glade:2926 src/mpeg_edit.c:279 src/vorbis_edit.c:204 msgid "Advanced" msgstr "Avançado" #: src/tagtool.glade:199 msgid "Copy v1 to v2" msgstr "Copiar v1 para v2" #: src/tagtool.glade:209 msgid "Copy v2 to v1" msgstr "Copiar v2 para v1" #: src/tagtool.glade:223 msgid "_Vorbis" msgstr "_Vorbis" #: src/tagtool.glade:270 msgid "_Help" msgstr "_Ajuda" #: src/tagtool.glade:279 msgid "Contents..." msgstr "Conteúdo..." #: src/tagtool.glade:300 msgid "About..." msgstr "Sobre..." #: src/tagtool.glade:355 msgid "Include subdirectories" msgstr "Incluir subdiretórios" #: src/tagtool.glade:440 msgid "Select Working Directory" msgstr "Selecionar diretório de trabalho" #: src/tagtool.glade:471 msgid "<b>Working Directory</b>" msgstr "<b>Diretório de Trabalho</b>" #: src/tagtool.glade:559 msgid "<b>Files</b>" msgstr "<b>Arquivos</b>" #: src/tagtool.glade:614 msgid "Refresh file list" msgstr "Atualizar a lista de arquivos" #: src/tagtool.glade:706 msgid "<span size=\"large\" weight=\"bold\">Edit Tag</span>" msgstr "<span size=\"large\" weight=\"bold\">Editar Etiqueta</span>" #: src/tagtool.glade:740 msgid "Select a file to edit" msgstr "Selecione um arquivo para editar" #: src/tagtool.glade:795 src/tagtool.glade:3945 msgid "<b>Tag</b>" msgstr "<b>Etiqueta</b>" #: src/tagtool.glade:898 msgid "File has no ID3v1 Tag" msgstr "Arquivo não tem etiqueta ID3v1" #: src/tagtool.glade:920 src/tagtool.glade:1478 msgid "Create" msgstr "Criar" #: src/tagtool.glade:972 src/tagtool.glade:1530 src/tagtool.glade:2535 #: src/tagtool.glade:3970 msgid "Title:" msgstr "Título:" #: src/tagtool.glade:996 src/tagtool.glade:1874 src/tagtool.glade:2559 #: src/tagtool.glade:4062 msgid "Comnt.:" msgstr "Coment.:" #: src/tagtool.glade:1020 src/tagtool.glade:1898 src/tagtool.glade:2583 #: src/tagtool.glade:4039 msgid "Year:" msgstr "Ano:" #: src/tagtool.glade:1044 src/tagtool.glade:1554 src/tagtool.glade:2607 #: src/tagtool.glade:4016 msgid "Album:" msgstr "Álbum:" #: src/tagtool.glade:1068 src/tagtool.glade:1578 src/tagtool.glade:2655 #: src/tagtool.glade:4197 msgid "Genre:" msgstr "Género:" #: src/tagtool.glade:1277 src/tagtool.glade:1763 src/tagtool.glade:2864 #: src/tagtool.glade:4085 msgid "Track:" msgstr "Faixa:" #: src/tagtool.glade:1324 src/tagtool.glade:1787 src/tagtool.glade:2631 #: src/tagtool.glade:3993 msgid "Artist:" msgstr "Artista:" #: src/tagtool.glade:1456 msgid "File has no ID3v2 Tag" msgstr "Arquivo não tem etiqueta ID3v2" #: src/tagtool.glade:2051 src/tagtool.glade:3041 msgid "Add" msgstr "Adicionar" #: src/tagtool.glade:2079 src/tagtool.glade:3069 msgid "Remove" msgstr "Remover" #: src/tagtool.glade:2107 src/tagtool.glade:3097 msgid "Edit (double-click)" msgstr "Editar (duplo-click)" #: src/tagtool.glade:2370 msgid "Remove Tag" msgstr "Remover Etiqueta" #: src/tagtool.glade:2446 src/tagtool.glade:3380 src/mpeg_edit.c:673 #: src/vorbis_edit.c:454 msgid "Save Changes" msgstr "Gravar Alterações" #: src/tagtool.glade:3305 msgid "Clear Tag" msgstr "Limpar Etiqueta" #: src/tagtool.glade:3468 msgid "<b>File Info</b>" msgstr "<b>Informação Sobre o Arquivo</b>" #: src/tagtool.glade:3658 msgid "<span size=\"large\" weight=\"bold\">Tag Multiple Files</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Escrever Etiqueta de Arquivos Múltiplos</" "span>" #: src/tagtool.glade:3690 src/tagtool.glade:5074 msgid "<b>File Name Format</b>" msgstr "<b>Formato dos Nomes de Arquivo</b>" #: src/tagtool.glade:3777 src/tagtool.glade:5043 msgid "Get help on filename formats" msgstr "Ajuda sobre formato de nomes de arquivo" #: src/tagtool.glade:3872 src/tagtool.glade:5162 msgid "<b>Character and Case Conversion</b>" msgstr "<b>Conversões de Caracteres</b>" #: src/tagtool.glade:3909 src/tagtool.glade:5199 msgid "Configure" msgstr "Configurar" #: src/tagtool.glade:4328 msgid "Auto-increment" msgstr "Auto-incremento" #: src/tagtool.glade:4388 msgid "Set tags based on file names" msgstr "Preencher etiquetas a partir do nome do arquivo" #: src/tagtool.glade:4435 src/tagtool.glade:4777 src/tagtool.glade:5244 #: src/tagtool.glade:5951 msgid "Apply to " msgstr "Aplicar a " #: src/tagtool.glade:4456 src/tagtool.glade:4798 src/tagtool.glade:5265 #: src/tagtool.glade:5972 msgid "" "All files\n" "Selected files" msgstr "" "Todos os arquivos\n" "Arquivos selecionados" #: src/tagtool.glade:4533 src/tagtool.glade:4875 src/tagtool.glade:5342 #: src/tagtool.glade:6049 msgid "Go!" msgstr "Começar!" #: src/tagtool.glade:4607 msgid "<span size=\"large\" weight=\"bold\">Clear Tags</span>" msgstr "<span size=\"large\" weight=\"bold\">Eliminar Etiquetas</span>" #: src/tagtool.glade:4663 msgid "<b>Tags to Clear</b>" msgstr "<b>Etiquetas para Limpar</b>" #: src/tagtool.glade:4688 msgid "All" msgstr "Todas" #: src/tagtool.glade:4709 msgid "Only ID3 v1 tags" msgstr "Apenas etiquetas ID3 v1" #: src/tagtool.glade:4731 msgid "Only ID3 v2 tags" msgstr "Apenas etiquetas ID3 v2" #: src/tagtool.glade:4949 msgid "<span size=\"large\" weight=\"bold\">Rename Multiple Files</span>" msgstr "" "<span size=\"large\" weight=\"bold\">Renomear Arquivos Múltiplos</span>" #: src/tagtool.glade:5416 msgid "<span size=\"large\" weight=\"bold\">Create Playlists</span>" msgstr "<span size=\"large\" weight=\"bold\">Criar Listas de Reprodução</span>" #: src/tagtool.glade:5449 msgid "Every directory" msgstr "Todos os diretórios" #: src/tagtool.glade:5471 msgid "Top-level directory" msgstr "Diretório de topo" #: src/tagtool.glade:5494 src/tagtool.glade:7489 msgid "Both" msgstr "Ambos" #: src/tagtool.glade:5516 msgid "<b>Create In</b>" msgstr "<b>Criar Em</b>" #: src/tagtool.glade:5580 msgid "<b>Playlist File Name</b>" msgstr "<b>Nome da Lista de Reprodução</b>" #: src/tagtool.glade:5605 msgid "Set to:" msgstr "Fixo:" #: src/tagtool.glade:5631 msgid "playlist" msgstr "playlist" #: src/tagtool.glade:5649 msgid "Same as directory name" msgstr "Mesmo nome do diretório" #: src/tagtool.glade:5671 msgid "Extension:" msgstr "Extensão:" #: src/tagtool.glade:5756 msgid "<b>Sort Entries</b>" msgstr "<b>Ordenar</b>" #: src/tagtool.glade:5805 msgid "By tag field (if available):" msgstr "Pelo campo da etiqueta (se existir):" #: src/tagtool.glade:5827 msgid "" "Title\n" "Artist\n" "Album\n" "Year\n" "Genre\n" "Comment\n" "Track #" msgstr "" "Título\n" "Artista\n" "Álbum\n" "Ano\n" "Género\n" "Comentário\n" "Faixa" #: src/tagtool.glade:5876 msgid "Sort across directories" msgstr "Ordenar ignorando diretórios" #: src/tagtool.glade:5904 msgid "By file name" msgstr "Pelo nome do arquivo" #: src/tagtool.glade:6222 msgid "Character Conversions" msgstr "Conversão de Caracteres" #: src/tagtool.glade:6340 src/tagtool.glade:6586 msgid "No conversion" msgstr "Nenhuma conversão" #: src/tagtool.glade:6363 msgid "Convert this character to space:" msgstr "Converter este caracter em espaço:" #: src/tagtool.glade:6385 src/tagtool.glade:6654 msgid "<b>Space Conversion</b>" msgstr "<b>Conversão de Espaços</b>" #: src/tagtool.glade:6447 src/tagtool.glade:6694 msgid "<b>Case Conversion</b>" msgstr "Conversão Maiúsculas/Minúsculas" #: src/tagtool.glade:6471 src/tagtool.glade:6742 msgid "" "(no conversion)\n" "lower case\n" "UPPER CASE\n" "Sentence case\n" "Title Case" msgstr "" "(sem conversão)\n" "minúsculas\n" "MAIÚSCULAS\n" "Como frase\n" "Como Título" #: src/tagtool.glade:6526 msgid "When Tagging" msgstr "Ao Etiquetar" #: src/tagtool.glade:6609 msgid "Convert spaces to:" msgstr "Converter espaços para:" #: src/tagtool.glade:6801 msgid "Omit" msgstr "Omitir" #: src/tagtool.glade:6824 msgid "Convert to:" msgstr "Converter para:" #: src/tagtool.glade:6869 msgid "<b>Invalid File Name Characters</b>" msgstr "<b>Caracteres Inválidos no Nome do Arquivo</b>" #: src/tagtool.glade:6929 msgid "When Renaming" msgstr "Ao Renomear Arquivos" #: src/tagtool.glade:6956 msgid "About Audio Tag Tool" msgstr "Sobre o Audio Tag Tool" #: src/tagtool.glade:7029 msgid "C_redits" msgstr "C_réditos" #: src/tagtool.glade:7125 msgid "<span size=\"xx-large\" weight=\"bold\">Audio Tag Tool</span>" msgstr "<span size=\"xx-large\" weight=\"bold\">Ferramenta para Etiquetar Audio</span>" #: src/tagtool.glade:7146 msgid "<b>version %s</b>" msgstr "<b>versão %s</b>" #: src/tagtool.glade:7212 msgid "Supported audio formats:" msgstr "Formatos de áudio suportados:" #: src/tagtool.glade:7261 msgid "" "This software is made available under the GNU General Public Licence.\n" "See the file COPYING for the full license terms." msgstr "" "Este programa é disponibilizado nos termos da <i>GNU General Public Licence</" "i>.\n" "Veja o arquivo COPYING para o texto integral da licença." #: src/tagtool.glade:7291 msgid "ID3 Preferences" msgstr "Preferências ID3" #: src/tagtool.glade:7373 msgid "<b>When tagging multiple files</b>" msgstr "<b>Ao Etiquetar Múltiplos Arquivos</b>" #: src/tagtool.glade:7428 msgid "ID3 tag versions to create:" msgstr "Versão da etiqueta ID3 a criar:" #: src/tagtool.glade:7450 msgid "Only v1" msgstr "Apenas v1" #: src/tagtool.glade:7469 msgid "Only v2" msgstr "Apenas v2" #: src/tagtool.glade:7509 msgid "Default to v1, add v2 only when necessary" msgstr "v1 por omissão, v2 apenas se necessário" #: src/tagtool.glade:7540 msgid "Preserve existing tag versions" msgstr "Preservar versões preexistentes" #: src/tagtool.glade:7655 msgid "Text:" msgstr "Texto:" #: src/tagtool.glade:7701 msgid "Field:" msgstr "Campo:" #: src/tagtool.glade:7735 src/progress_dlg.c:114 msgid "Progress" msgstr "Progresso" #: src/tagtool.glade:7833 msgid "Manually rename a file" msgstr "Renomear um arquivo manualmente" #: src/tagtool.glade:7834 msgid "Manual Rename..." msgstr "Renomear Manualmente..." #: src/tagtool.glade:7849 msgid "Delete selected files from disk" msgstr "Apagar arquivos selecionados do disco" #: src/tagtool.glade:7850 msgid "Delete Selected Files" msgstr "Apagar Arquivos Selecionados" #: src/tagtool.glade:7865 msgid "Unselect all files" msgstr "Anular seleção" #: src/tagtool.glade:7866 msgid "Unselect All" msgstr "Anular Seleção" #: src/tagtool.glade:7874 msgid "Rename File" msgstr "Renomear Arquivo" #: src/tagtool.glade:7943 msgid "File Name:" msgstr "Nome do Arquivo:" #: src/tagtool.glade:7992 msgid "Scan Progress" msgstr "Progresso da Busca" #: src/tagtool.glade:8048 msgid "<b>Scanning...</b>" msgstr "<b>Procurando...</b>" #: src/tagtool.glade:8075 msgid "" "Directories scanned:\n" "Files found:" msgstr "" "Diretórios percorridos:\n" "Arquivos encontrados:" #: src/tagtool.glade:8134 msgid "Credits" msgstr "Créditos" #: src/tagtool.glade:8215 msgid "Written by" msgstr "Escrito por" #: src/tagtool.glade:8268 msgid "Translated by" msgstr "Traduzido por" #: src/clear_tab.c:110 src/clear_tab.c:205 msgid "Clearing Tags" msgstr "Limpando Etiquetas" #: src/clear_tab.c:111 src/playlist_tab.c:300 src/rename_tab.c:186 #: src/tag_tab.c:330 #, c-format msgid "Starting in directory \"%s\"" msgstr "Iniciando no diretório \"%s\"" #: src/clear_tab.c:120 src/file_list.c:219 src/playlist_tab.c:329 #: src/rename_tab.c:195 src/tag_tab.c:351 msgid "Operation stopped at user's request" msgstr "Operação interrompida pelo usuário" #: src/clear_tab.c:130 src/clear_tab.c:138 src/edit_tab.c:97 #: src/edit_tab.c:113 src/file_list.c:223 src/playlist_tab.c:150 #: src/playlist_tab.c:262 src/playlist_tab.c:346 src/rename_tab.c:203 #: src/rename_tab.c:212 src/rename_tab.c:255 src/rename_tab.c:269 #: src/rename_tab.c:292 src/rename_tab.c:296 src/tag_tab.c:361 #: src/tag_tab.c:371 msgid "(UTF8 conversion error)" msgstr "(erro de conversão UTF8)" #: src/clear_tab.c:133 src/rename_tab.c:205 src/tag_tab.c:363 #, c-format msgid "Entering directory \"%.*s\"" msgstr "Entrando no diretório \"%.*s\"" #: src/clear_tab.c:142 src/clear_tab.c:162 #, c-format msgid "Error in file \"%s\"" msgstr "Erro no arquivo \"%s\"" #: src/clear_tab.c:144 src/tag_tab.c:378 msgid "Couldn't open file for writing" msgstr "Não foi possível abrir o arquivo para escrita" #: src/clear_tab.c:146 src/playlist_tab.c:156 src/rename_tab.c:221 #: src/tag_tab.c:380 msgid "Audio format not recognized" msgstr "Formato de áudio não reconhecido" #: src/clear_tab.c:148 src/playlist_tab.c:158 src/tag_tab.c:382 #: src/tag_tab.c:436 #, c-format msgid "Unknown error (%d)" msgstr "Erro desconhecido (%d)" #: src/clear_tab.c:155 #, c-format msgid "Skipped \"%s\"" msgstr "Ignorando \"%s\"" #: src/clear_tab.c:168 #, c-format msgid "Cleared tag from \"%s\"" msgstr "A Etiqueta de \"%s\" foi limpada" #: src/clear_tab.c:180 #, c-format msgid "Done (Cleared %d of %d files)" msgstr "Pronto (Etiquetas Eliminadas em %d de %d arquivos)" #: src/clear_tab.c:206 src/playlist_tab.c:441 src/rename_tab.c:337 #: src/tag_tab.c:471 msgid "No files selected" msgstr "Nenhum arquivo selecionado" #: src/edit_tab.c:100 #, c-format msgid "Couldn't open file %s" msgstr "Não foi possível abrir o arquivo %s" #: src/edit_tab.c:102 #, c-format msgid "Audio file format not recognized: %s" msgstr "Formato de áudio não reconhecido: %s" #: src/edit_tab.c:104 #, c-format msgid "Unknow error when opening file %s" msgstr "Erro desconhecido ao abrir arquivo %s" #: src/edit_tab.c:114 #, c-format msgid "File is read-only: %s" msgstr "Arquivo protegido contra escrita: %s" #: src/edit_tab.c:123 msgid "File Type:" msgstr "Tipo:" #: src/file_list.c:116 msgid "No files found" msgstr "Nenhum arquivo encontrado" #: src/file_list.c:118 msgid "1 file found" msgstr "1 arquivo encontrado" #: src/file_list.c:120 #, c-format msgid "%i files found" msgstr "%i arquivos encontrados" #: src/file_list.c:123 msgid " (1 selected)" msgstr " (1 selecionado)" #: src/file_list.c:125 #, c-format msgid " (%i selected)" msgstr " (%i selecionados)" #: src/file_list.c:154 msgid "(dir name could not be converted to UTF8)" msgstr "(nome do diretório não pode ser convertido para UTF8)" #: src/file_list.c:167 msgid "(file name could not be converted to UTF8)" msgstr "(nome do arquivo não pode ser convertido para UTF8)" #: src/file_list.c:212 msgid "Deleting Files" msgstr "Apagando Arquivos" #: src/file_list.c:227 #, c-format msgid "Deleted file \"%s\"" msgstr "Arquivo \"%s\" apagado" #: src/file_list.c:231 #, c-format msgid "Error deleting file \"%s\"" msgstr "Erro ao apagar arquivo \"%s\"" #: src/file_list.c:238 #, c-format msgid "Done (deleted %d of %d files)" msgstr "Pronto (apagados %d de %d arquivos)" #: src/file_list.c:258 msgid "File Exists" msgstr "Arquivo já existe" #: src/file_list.c:259 msgid "" "A file with this name already exists.\n" "Do you want to overwrite it?" msgstr "" "Já existe um arquivo com esse nome.\n" "Deseja substituí-lo ?" #: src/file_list.c:272 #, c-format msgid "" "Error renaming file:\n" "%s (%d)" msgstr "" "Erro ao renomear arquivo:\n" "%s (%d)" #: src/file_list.c:273 msgid "Error Renaming File" msgstr "Erro ao Renomear Arquivo" #: src/file_list.c:309 #, c-format msgid "Error: Can't open directory \"%s\"." msgstr "Erro: Não é possível abrir o diretório \"%s\"" #: src/file_list.c:313 #, c-format msgid "Error: \"%s\" is not a directory." msgstr "Erro: \"%s\" não é um diretório." #: src/file_list.c:317 #, c-format msgid "Error: Permission denied for \"%s\"." msgstr "Erro: Permissão negada para \"%s\"." #: src/file_list.c:374 msgid "Scanning..." msgstr "Procurando..." #: src/file_list.c:397 msgid "No files found." msgstr "Nenhum arquivo encontrado." #: src/file_list.c:400 msgid "1 file found." msgstr "1 arquivo encontrado." #: src/file_list.c:403 #, c-format msgid "%d files found." msgstr "%d arquivos encontrados." #: src/file_list.c:451 msgid "Delete selected files" msgstr "Apagar arquivos selecionados" #: src/file_list.c:452 msgid "This will delete the selected files from disk. Proceed?" msgstr "Os arquivos selecionados serão apagados do disco. Continuar?" #: src/file_list.c:623 msgid "Select Directory" msgstr "Selecionar Diretório" #. HELP_TAG_FORMAT #. HELP_RENAME_FORMAT #: src/help.c:14 src/help.c:17 msgid "Help - File Name Format" msgstr "Ajuda - Formato dos Nomes de Arquivo" #. HELP_TAG_FORMAT #: src/help.c:22 msgid "" "This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n" msgstr "" "Este campo descreve o formato esperado dos nomes dos arquivos \n" "(excluindo a extensão). A Ferramenta para Etiquetar Audio usa \n" "esta informação para preencher automaticamente as etiquetas \n" "a partir do nome dos arquivos\n" "\n" "Cada campo da etiqueta corresponde um marcador especial:\n" "\n" " <title>\t\t- Título\n" " <artist>\t- Artista\n" " <album>\t- Álbum\n" " <year>\t\t- Ano\n" " <comment>\t- Comentário\n" " <track>\t- Faixa\n" " <genre>\t- Género\n" "\n" "Exemplos: \n" "\n" "O formato \"<artist> - <album> - <title>\" condiz com um arquivo \n" "chamado \"Pink Floyd - The Wall - Hey You.mp3\". Neste exemplo os\n" "campos Artista, Álbum e Título da tag serão preenchidos com\n" "\"Pink Floyd\", \"The Wall\" e \"Hey You\", respectivamente.\n" "\n" "O formato \"<artist> - <*> - <title>\" também poderia ser usado \n" "no exemplo anterior se não quisessemos preencher o nome do \n" "Álbum (o marcador especial <*> faz com que essa parte do nome \n" "do arquivo seja ignorada.) \n" #. HELP_RENAME_FORMAT #: src/help.c:51 msgid "" "This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n" msgstr "" "Este campo descreve o formato desejado para os nomes dos \n" "arquivos (excluindo a extensão). A Ferramenta para Etiquetar Audio \n" "usa esta informação para renomear ou mover os arquivos, com base no \n" "conteúdo das suas etiquetas.\n" "\n" "A cada campo da etiqueta corresponde um marcador especial:\n" "\n" " <title>\t\t- Título\n" " <artist>\t- Artista\n" " <album>\t- Álbum\n" " <year>\t\t- Ano\n" " <comment>\t- Comentário\n" " <track>\t- Faixa\n" " <genre>\t- Género\n" "\n" "Exemplo - Renomear: \n" "\n" "Para renomear os arquivos de maneira que o seu nome seja \n" "o número da faixa seguido do título pode ser usado o formato \n" "\"<track> - <title>\".\n" "\n" "Exemplo - Mover: \n" "\n" "O formato dos nomes de arquivo pode incluir subdiretórios. \n" "Se no exemplo anterior desejássemos colocar os arquivos num \n" "diretório com o nome do álbum, poderiamos usar o formato \n" "\"<album>/<track> - <title>\". \n" #: src/main.c:43 #, c-format msgid "Supported audio formats: " msgstr "Formatos de áudio suportados: " #: src/main.c:61 #, c-format msgid "" "Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n" "\n" msgstr "" "Utilização:\n" " tagtool [DIR]\t\tComeçar no diretório DIR\n" " tagtool --dump ARQIVO\tMostrar toda a informação conhecida sobre ARQUIVO e " "sair\n" " tagtool --help\tMostrar esta mensagem de ajuda\n" " tagtool --version\tMostrar a versão do programa\n" "\n" #: src/main.c:78 #, c-format msgid "" "Couldn't open file: %s\n" "\n" msgstr "" "Não foi possível abrir o arquivo %s\n" "\n" #: src/main.c:80 #, c-format msgid "" "File audio format not recognized: %s\n" "\n" msgstr "" "Formato de áudio não reconhecido: %s\n" "\n" #: src/mpeg_edit.c:118 src/vorbis_edit.c:88 msgid "Field" msgstr "Campo" #: src/mpeg_edit.c:127 src/vorbis_edit.c:97 msgid "Text" msgstr "Texto" #: src/mpeg_edit.c:275 src/vorbis_edit.c:200 #, c-format msgid "Advanced (%i)" msgstr "Avançado (%i)" #: src/mpeg_edit.c:419 src/vorbis_edit.c:287 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)" msgstr "" "Erro ao gravar arquivo \"%s\":\n" "%s (%d)" #: src/mpeg_edit.c:421 src/vorbis_edit.c:291 msgid "Error Saving File" msgstr "Erro ao Gravar Arquivo" #: src/mpeg_edit.c:674 msgid "ID3 Tag has been modified. Save changes?" msgstr "A Etiqueta ID3 foi modificada. Gravar as alterações?" #: src/mpeg_edit.c:675 src/vorbis_edit.c:456 msgid "Discard" msgstr "Não Gravar" #: src/mpeg_edit_field.c:45 msgid "New ID3 Field" msgstr "Novo Campo ID3" #: src/mpeg_edit_field.c:77 msgid "Edit ID3 Field" msgstr "Editar Campo ID3" #: src/mpeg_file.c:595 #, c-format msgid "" "Bit Rate\n" "%d kbps\n" "Sample Rate\n" "%d Hz\n" "Channel Mode\n" "%s\n" "Copyrighted\n" "%s\n" "Original\n" "%s\n" msgstr "" "Bit Rate\n" "%d kbps\n" "Freq. Amostragem\n" "%d Hz\n" "Modo Canal\n" "%s\n" "Copyright\n" "%s\n" "Original\n" "%s\n" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "Yes" msgstr "Sim" #: src/mpeg_file.c:601 src/mpeg_file.c:602 msgid "No" msgstr "Não" #: src/playlist_tab.c:151 #, c-format msgid "Skipping file \"%s\"" msgstr "Arquivo \"%s\" não incluido" #: src/playlist_tab.c:154 src/rename_tab.c:219 msgid "Couldn't open file for reading" msgstr "Não foi possível abrir o arquivo para leitura" #: src/playlist_tab.c:267 #, c-format msgid "Error creating playlist \"%s\"" msgstr "Erro ao criar playlist \"%s\"" #: src/playlist_tab.c:273 #, c-format msgid "Wrote \"%s\" (%d entries)" msgstr "Escrito \"%s\" (%d entradas)" #: src/playlist_tab.c:299 src/playlist_tab.c:440 msgid "Writing Playlists" msgstr "Escrevendo Listas de Reprodução" #: src/playlist_tab.c:347 #, c-format msgid "Entering directory \"%s\"" msgstr "A entrar no diretório \"%s\"" #: src/playlist_tab.c:367 #, c-format msgid "Done (wrote %d of %d playlists)" msgstr "Pronto (escritas %d de %d listas de reprodução)" #: src/rename_tab.c:183 msgid "Moving Files" msgstr "Movendo Arquivos" #: src/rename_tab.c:185 msgid "Renaming Files" msgstr "Renomeando Arquivos" #: src/rename_tab.c:216 src/rename_tab.c:229 src/rename_tab.c:241 #: src/rename_tab.c:254 src/rename_tab.c:287 #, c-format msgid "Error renaming \"%s\"" msgstr "Erro ao renomear \"%s\"" #: src/rename_tab.c:223 msgid "Unknown error" msgstr "Erro desconhecido" #: src/rename_tab.c:230 msgid "File has no tag" msgstr "Arquivo não tem etiqueta" #: src/rename_tab.c:242 msgid "One of the tag fields is empty" msgstr "Um dos campos da etiqueta está vazio" #: src/rename_tab.c:246 #, c-format msgid "File name \"%s\" already in desired format" msgstr "Nome do arquivo \"%s\" já está no formato desejado" #: src/rename_tab.c:252 src/rename_tab.c:285 #, c-format msgid "Error moving \"%s\"" msgstr "Erro ao mover \"%s\"" #: src/rename_tab.c:256 #, c-format msgid "File \"%s\" already exists" msgstr "O arquivo \"%s\" já existe" #: src/rename_tab.c:270 #, c-format msgid "Error creating directory \"%s\"" msgstr "Erro ao criar diretório \"%s\"" #: src/rename_tab.c:276 #, c-format msgid "Created directory \"%s\"" msgstr "Criado o diretório \"%s\"" #: src/rename_tab.c:293 #, c-format msgid "Moved \"%s\" to \"%s\"" msgstr "Movido \"%s\" para \"%s\"" #: src/rename_tab.c:297 #, c-format msgid "Renamed \"%s\" to \"%s\"" msgstr "Renomeado \"%s\" para \"%s\"" #: src/rename_tab.c:316 #, c-format msgid "Done (moved %d of %d files)" msgstr "Pronto (movidos %d de %d arquivos)" #: src/rename_tab.c:318 #, c-format msgid "Done (renamed %d of %d files)" msgstr "Pronto (renomeados %d de %d arquivos)" #: src/tag_tab.c:322 msgid "Tagging Files" msgstr "Etiquetando Arquivos" #: src/tag_tab.c:326 msgid "No tag fields to set!" msgstr "Não há campos para definir!" #: src/tag_tab.c:375 src/tag_tab.c:421 src/tag_tab.c:431 #, c-format msgid "Error tagging \"%s\"" msgstr "Erro ao escrever etiqueta em \"%s\"" #: src/tag_tab.c:422 msgid "File name does not match expected format" msgstr "Nome do arquivo não corresponde ao formato esperado" #: src/tag_tab.c:441 #, c-format msgid "Tagged \"%s\"" msgstr "Etiquetado \"%s\"" #: src/tag_tab.c:452 #, c-format msgid "Done (tagged %d of %d files)" msgstr "Pronto (etiquetado %d de %d arquivos)" #: src/vorbis_edit.c:279 #, c-format msgid "" "Error saving file \"%s\":\n" "%s (%d)\n" "\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located." msgstr "" "Erro ao gravar arquivo \"%s\":\n" "%s (%d)\n" "\n" "Nota:\n" "Para gravar as alterações em um arquivo Ogg Vorbis é necessário ter\n" "permissão de escrita sobre o diretório onde o arquivo se encontra." #: src/vorbis_edit.c:455 msgid "Vorbis Tag has been modified. Save changes?" msgstr "A Etiqueta Vorbis foi modificada. Gravar alterações?" #: src/vorbis_edit_field.c:59 msgid "New Vorbis Field" msgstr "Novo Campo Vorbis" #: src/vorbis_edit_field.c:62 msgid "Edit Vorbis Field" msgstr "Editar Campo Vorbis" #: src/vorbis_file.c:228 #, c-format msgid "" "Average Bit Rate\n" "%ld kbps\n" "Nominal Bit Rate\n" "%ld kbps\n" "Sample Rate\n" "%ld Hz\n" "Channels\n" "%d\n" "Playing Time\n" "%dm %ds %dms\n" msgstr "" "Bit Rate Médio\n" "%ld kbps\n" "Bit Rate Nominal\n" "%ld kbps\n" "Freq. Amostragem\n" "%ld Hz\n" "Canais\n" "%d\n" "Duração\n" "%dm %ds %dms\n" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/po/Makevars��������������������������������������������������������������������������0000644�0001750�0001750�00000003446�10541302761�014722� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Pedro Ávila Lopes # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = http://pwp.netcabo.pt/paol/tagtool/ # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/README�������������������������������������������������������������������������������0000644�0001750�0001750�00000007307�10541302764�013473� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ========================== Audio Tag Tool ========================== DESCRIPTION =========== Audio Tag Tool is a program to manage the information fields in MP3 and Ogg Vorbis files (commonly called 'tags'). It is available under the GNU General Public Licence (GPL). Please send me any comments or bugs you find. Tag Tool can be used to edit tags one by one, but the most useful features are the ability to easily tag or rename hundreds of files at once, in any desired format. The interface is arranged into two sections, with the list of available files on the left and a set of tabs on the right. Each tab corresponds to one of the main operations Audio Tag Tool can do: - Tag Editor Lets you edit the tags individually. - Tag Multiple Files Here you can set the tags of multiple files at once. The tag fields can be set to a fixed value, filled in automatically from the file's name, or left alone. - Clear Tags Allows you to remove the tags from multiple files at once. For MP3 files it lets you choose to remove only ID3v1 or ID3v2 tags. - Move/Rename Multiple Files Here you can rename multiple files at once and/or organize them into directories. File names can be based on the contents of the tag. - Create Playlists Generates playlists. Playlists can be sorted by file name or by any tag field. The mass tag and mass rename features can handle filenames in any format thanks to an easily configurable format template. RELEASE NOTES ============= Read the file NEWS for information about the current release. LIMITATIONS =========== For MP3 files: - Images and other non-text fields in ID3v2 tags cannot be edited. For Ogg Vorbis files: - Multiple logical streams are tolerated, but only the tags of the first stream can be edited. This is not likely to change. - Multiple comments with the same name are concatenated with a comma as separator and cannot be edited (or saved back) separately. This is not likely to change either, unless someone can suggest a simple and sane user interface for it. See also the BUGS file for a list of currently know problems. FILESYSTEM ENCODINGS ==================== The filesystem encoding is assumed to be UTF-8. As with other Gtk2 apps, if your filesystem is not in UTF-8 you will need to set the G_FILENAME_ENCODING environment variable. From the Gtk documentation: "G_FILENAME_ENCODING may be set to a comma-separated list of character set names. The special token "@locale" is taken to mean the character set for the current locale. The first character set from the list is taken as the filename encoding." INSTALLATION ============ At the console type ./configure make make install For more information refer to the file INSTALL. Audio Tag Tool is tested on Linux, and is reported to run without trouble on NetBSD and OpenBSD. If you succeed in compiling on other platforms please let me know. If you don't succeed let me know too, and I'll try to fix it... LICENSE ======= This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details (it should be included in this package in the file COPYING.) CONTACTS ======== Author: Pedro vila Lopes (paol1976@yahoo.com) Homepage: http://pwp.netcabo.pt/paol/tagtool/ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/Makefile.in��������������������������������������������������������������������������0000644�0001750�0001750�00000045602�10571112705�014655� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.7.9 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_MP3_FALSE = @ENABLE_MP3_FALSE@ ENABLE_MP3_TRUE = @ENABLE_MP3_TRUE@ ENABLE_VORBIS_FALSE = @ENABLE_VORBIS_FALSE@ ENABLE_VORBIS_TRUE = @ENABLE_VORBIS_TRUE@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_ICONV = @INTLTOOL_ICONV@ INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@ INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@ INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@ INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPEC_RELEASE = @SPEC_RELEASE@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ #SUBDIRS = src pixmaps data po help SUBDIRS = src pixmaps data po EXTRA_DIST = \ BUGS \ autogen.sh \ intltool-update.in \ intltool-extract.in \ intltool-merge.in \ config.rpath \ mkinstalldirs \ tagtool.spec \ tagtool.spec.in ACLOCAL_AMFLAGS = -I m4 subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = tagtool.spec DIST_SOURCES = RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure \ ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL Makefile.am NEWS \ THANKS TODO aclocal.m4 compile config.guess config.h.in \ config.rpath config.sub configure configure.ac depcomp \ install-sh missing mkinstalldirs tagtool.spec.in DIST_SUBDIRS = $(SUBDIRS) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe) $(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.ac m4/codeset.m4 m4/gettext.m4 m4/glibc2.m4 m4/glibc21.m4 m4/iconv.m4 m4/intdiv0.m4 m4/intmax.m4 m4/inttypes-pri.m4 m4/inttypes.m4 m4/inttypes_h.m4 m4/isc-posix.m4 m4/lcmessage.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/longdouble.m4 m4/longlong.m4 m4/nls.m4 m4/po.m4 m4/printf-posix.m4 m4/progtest.m4 m4/signed.m4 m4/size_max.m4 m4/stdint_h.m4 m4/uintmax_t.m4 m4/ulonglong.m4 m4/wchar_t.m4 m4/wint_t.m4 m4/xsize.m4 cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOHEADER) touch $(srcdir)/config.h.in distclean-hdr: -rm -f config.h stamp-h1 tagtool.spec: $(top_builddir)/config.status tagtool.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = . distdir = $(PACKAGE)-$(VERSION) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkinstalldirs) $(distdir)/. $(distdir)/po @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist dist-all: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist $(am__remove_distdir) GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && $(mkinstalldirs) "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \ && rm -f $(distdir).tar.gz \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @echo "$(distdir).tar.gz is ready for distribution" | \ sed 'h;s/./=/g;p;x;p;x' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-generic clean-recursive ctags ctags-recursive dist \ dist-all dist-gzip distcheck distclean distclean-generic \ distclean-hdr distclean-recursive distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am dvi-recursive info \ info-am info-recursive install install-am install-data \ install-data-am install-data-recursive install-exec \ install-exec-am install-exec-recursive install-info \ install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-recursive pdf pdf-am pdf-recursive ps ps-am \ ps-recursive tags tags-recursive uninstall uninstall-am \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/configure����������������������������������������������������������������������������0000755�0001750�0001750�00001126231�10571112706�014517� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.60 for tagtool 0.12.3. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # Find out whether ``test -x'' works. Don't use a zero-byte file, as # systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then as_executable_p="test -x" else as_executable_p=: fi rm -f conf$$.file # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 </dev/null 6>&1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='tagtool' PACKAGE_TARNAME='tagtool' PACKAGE_VERSION='0.12.3' PACKAGE_STRING='tagtool 0.12.3' PACKAGE_BUGREPORT='' ac_unique_file="src/main.c" # Factoring default headers for most tests. ac_includes_default="\ #include <stdio.h> #if HAVE_SYS_TYPES_H # include <sys/types.h> #endif #if HAVE_SYS_STAT_H # include <sys/stat.h> #endif #if STDC_HEADERS # include <stdlib.h> # include <stddef.h> #else # if HAVE_STDLIB_H # include <stdlib.h> # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include <memory.h> # endif # include <string.h> #endif #if HAVE_STRINGS_H # include <strings.h> #endif #if HAVE_INTTYPES_H # include <inttypes.h> #endif #if HAVE_STDINT_H # include <stdint.h> #endif #if HAVE_UNISTD_H # include <unistd.h> #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT SPEC_RELEASE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE LN_S CPP GREP EGREP PKG_CONFIG GTK_CFLAGS GTK_LIBS ENABLE_MP3_TRUE ENABLE_MP3_FALSE ENABLE_VORBIS_TRUE ENABLE_VORBIS_FALSE LIBOBJS POW_LIB INTLTOOL_DESKTOP_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_KEYS_RULE INTLTOOL_PROP_RULE INTLTOOL_OAF_RULE INTLTOOL_PONG_RULE INTLTOOL_SERVER_RULE INTLTOOL_SHEET_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_UI_RULE INTLTOOL_XAM_RULE INTLTOOL_KBD_RULE INTLTOOL_XML_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_CAVES_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_THEME_RULE INTLTOOL_SERVICE_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE INTLTOOL_PERL INTLTOOL_ICONV INTLTOOL_MSGFMT INTLTOOL_MSGMERGE INTLTOOL_XGETTEXT ALL_LINGUAS GETTEXT_PACKAGE USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLLIBS PO_IN_DATADIR_TRUE PO_IN_DATADIR_FALSE POFILES POSUB MKINSTALLDIRS LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS CPPFLAGS CPP PKG_CONFIG GTK_CFLAGS GTK_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval enable_$ac_feature=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval enable_$ac_feature=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval with_$ac_package=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures tagtool 0.12.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/tagtool] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of tagtool 0.12.3:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --disable-mp3 Disable MP3 support (if enabled, id3lib is required) --disable-vorbis Disable Ogg Vorbis support (if enabled, libvorbis is required) --disable-dependency-tracking Speeds up one-time builds --enable-dependency-tracking Do not reject slow dependency extractors Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir> CPP C preprocessor PKG_CONFIG path to pkg-config utility GTK_CFLAGS C compiler flags for GTK, overriding pkg-config GTK_LIBS linker flags for GTK, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF tagtool configure 0.12.3 generated by GNU Autoconf 2.60 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by tagtool $as_me 0.12.3, which was generated by GNU Autoconf 2.60. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version="1.7" ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm -f conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=${PACKAGE_NAME} VERSION=${PACKAGE_VERSION} cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} AMTAR=${AMTAR-"${am_missing_run}tar"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. ac_config_headers="$ac_config_headers config.h" { echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE SPEC_RELEASE="1" # Check whether --enable-mp3 was given. if test "${enable_mp3+set}" = set; then enableval=$enable_mp3; enable_mp3=no; disable_mp3_reason="(disabled)" else enable_mp3=yes fi # Check whether --enable-vorbis was given. if test "${enable_vorbis+set}" = set; then enableval=$enable_vorbis; enable_vorbis=no; disable_vorbis_reason="(disabled)" else enable_vorbis=yes fi if test "$enable_mp3" = "no" && test "$enable_vorbis" = "no"; then { { echo "$as_me:$LINENO: error: At least one of 'mp3' or 'vorbis' must be enabled. Try './configure --help' for a list of options." >&5 echo "$as_me: error: At least one of 'mp3' or 'vorbis' must be enabled. Try './configure --help' for a list of options." >&2;} { (exit 1); exit 1; }; } fi; ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi { echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c : > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # (even with -Werror). So we grep stderr for any message # that says an option was ignored. if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6; } fi { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <sys/types.h> #include <$ac_hdr> int main () { if ((DIR *) 0) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then { echo "$as_me:$LINENO: checking for library containing opendir" >&5 echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } if test "${ac_cv_search_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' dir; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_search_opendir=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then break fi done if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 echo "${ECHO_T}$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi else { echo "$as_me:$LINENO: checking for library containing opendir" >&5 echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } if test "${ac_cv_search_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' x; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_search_opendir=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then break fi done if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 echo "${ECHO_T}$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since # <limits.h> exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since # <limits.h> exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_executable_p "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_executable_p "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <float.h> int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <string.h> _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <stdlib.h> _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <ctype.h> #include <stdlib.h> #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in stdlib.h string.h unistd.h langinfo.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else { { echo "$as_me:$LINENO: error: Missing necessary header files." >&5 echo "$as_me: error: Missing necessary header files." >&2;} { (exit 1); exit 1; }; } fi done OSTYPE=`uname -s` if test "$OSTYPE" = "FreeBSD"; then for ac_header in gnuregex.h gnu/regex.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for main in -lgnuregex" >&5 echo $ECHO_N "checking for main in -lgnuregex... $ECHO_C" >&6; } if test "${ac_cv_lib_gnuregex_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgnuregex $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_gnuregex_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_gnuregex_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_gnuregex_main" >&5 echo "${ECHO_T}$ac_cv_lib_gnuregex_main" >&6; } if test $ac_cv_lib_gnuregex_main = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBGNUREGEX 1 _ACEOF LIBS="-lgnuregex $LIBS" else { { echo "$as_me:$LINENO: error: Missing required library" >&5 echo "$as_me: error: Missing required library" >&2;} { (exit 1); exit 1; }; } fi fi; if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 echo "${ECHO_T}$PKG_CONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { echo "$as_me:$LINENO: checking for GTK" >&5 echo $ECHO_N "checking for GTK... $ECHO_C" >&6; } if test -n "$PKG_CONFIG"; then if test -n "$GTK_CFLAGS"; then pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.12.0 gtk+-2.0 >= 2.8.0 libglade-2.0 >= 2.6.0\"") >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.12.0 gtk+-2.0 >= 2.8.0 libglade-2.0 >= 2.6.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.12.0 gtk+-2.0 >= 2.8.0 libglade-2.0 >= 2.6.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$GTK_LIBS"; then pkg_cv_GTK_LIBS="$GTK_LIBS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.12.0 gtk+-2.0 >= 2.8.0 libglade-2.0 >= 2.6.0\"") >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.12.0 gtk+-2.0 >= 2.8.0 libglade-2.0 >= 2.6.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.12.0 gtk+-2.0 >= 2.8.0 libglade-2.0 >= 2.6.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0 >= 2.12.0 gtk+-2.0 >= 2.8.0 libglade-2.0 >= 2.6.0"` else GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0 >= 2.12.0 gtk+-2.0 >= 2.8.0 libglade-2.0 >= 2.6.0"` fi # Put the nasty error message in config.log where it belongs echo "$GTK_PKG_ERRORS" >&5 { { echo "$as_me:$LINENO: error: Package requirements (glib-2.0 >= 2.12.0 gtk+-2.0 >= 2.8.0 libglade-2.0 >= 2.6.0) were not met: $GTK_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GTK_CFLAGS and GTK_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 echo "$as_me: error: Package requirements (glib-2.0 >= 2.12.0 gtk+-2.0 >= 2.8.0 libglade-2.0 >= 2.6.0) were not met: $GTK_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GTK_CFLAGS and GTK_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&2;} { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GTK_CFLAGS and GTK_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>. See \`config.log' for more details." >&5 echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GTK_CFLAGS and GTK_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else GTK_CFLAGS=$pkg_cv_GTK_CFLAGS GTK_LIBS=$pkg_cv_GTK_LIBS { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } : fi if test "$enable_mp3" = "yes"; then for ac_header in id3.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else enable_mp3=no; disable_mp3_reason="(missing id3lib headers)" fi done fi; if test "$enable_mp3" = "yes"; then SAVE_LDFLAGS=$LDFLAGS LDFLAGS="-lstdc++ -lz $LDFLAGS" { echo "$as_me:$LINENO: checking for main in -lid3" >&5 echo $ECHO_N "checking for main in -lid3... $ECHO_C" >&6; } if test "${ac_cv_lib_id3_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lid3 $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_id3_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_id3_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_id3_main" >&5 echo "${ECHO_T}$ac_cv_lib_id3_main" >&6; } if test $ac_cv_lib_id3_main = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBID3 1 _ACEOF LIBS="-lid3 $LIBS" else enable_mp3=no; disable_mp3_reason="(missing id3 library)" fi { echo "$as_me:$LINENO: checking for ID3FrameInfo_LongName in -lid3" >&5 echo $ECHO_N "checking for ID3FrameInfo_LongName in -lid3... $ECHO_C" >&6; } if test "${ac_cv_lib_id3_ID3FrameInfo_LongName+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lid3 $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ID3FrameInfo_LongName (); int main () { return ID3FrameInfo_LongName (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_id3_ID3FrameInfo_LongName=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_id3_ID3FrameInfo_LongName=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_id3_ID3FrameInfo_LongName" >&5 echo "${ECHO_T}$ac_cv_lib_id3_ID3FrameInfo_LongName" >&6; } if test $ac_cv_lib_id3_ID3FrameInfo_LongName = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBID3 1 _ACEOF LIBS="-lid3 $LIBS" else cat >>confdefs.h <<\_ACEOF #define LIBID3_MISSING_ID3FRAMEINFO 1 _ACEOF fi if test "$enable_mp3" = "no"; then LDFLAGS=$SAVE_LDFLAGS fi; fi; if test "$enable_vorbis" = "yes"; then for ac_header in ogg/ogg.h vorbis/codec.h vorbis/vorbisfile.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else enable_vorbis=no; disable_vorbis_reason="(missing vorbis headers)" fi done fi; if test "$enable_vorbis" = "yes"; then { echo "$as_me:$LINENO: checking for main in -lvorbis" >&5 echo $ECHO_N "checking for main in -lvorbis... $ECHO_C" >&6; } if test "${ac_cv_lib_vorbis_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lvorbis $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_vorbis_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_vorbis_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_vorbis_main" >&5 echo "${ECHO_T}$ac_cv_lib_vorbis_main" >&6; } if test $ac_cv_lib_vorbis_main = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBVORBIS 1 _ACEOF LIBS="-lvorbis $LIBS" else enable_vorbis=no; disable_vorbis_reason="(missing vorbis library)" fi fi; if test "$enable_vorbis" = "yes"; then { echo "$as_me:$LINENO: checking for main in -lvorbisfile" >&5 echo $ECHO_N "checking for main in -lvorbisfile... $ECHO_C" >&6; } if test "${ac_cv_lib_vorbisfile_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lvorbisfile $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_vorbisfile_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_vorbisfile_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_vorbisfile_main" >&5 echo "${ECHO_T}$ac_cv_lib_vorbisfile_main" >&6; } if test $ac_cv_lib_vorbisfile_main = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBVORBISFILE 1 _ACEOF LIBS="-lvorbisfile $LIBS" else enable_vorbis=no; disable_vorbis_reason="(missing vorbisfile library)" fi fi; if test "$enable_mp3" = "yes"; then ENABLE_MP3_TRUE= ENABLE_MP3_FALSE='#' else ENABLE_MP3_TRUE='#' ENABLE_MP3_FALSE= fi if test "$enable_vorbis" = "yes"; then ENABLE_VORBIS_TRUE= ENABLE_VORBIS_FALSE='#' else ENABLE_VORBIS_TRUE='#' ENABLE_VORBIS_FALSE= fi if test "$enable_mp3" = "no" && test "$enable_vorbis" = "no"; then { echo "$as_me:$LINENO: result: No MP3 support $disable_mp3_reason No Ogg Vorbis support $disable_vorbis_reason " >&5 echo "${ECHO_T} No MP3 support $disable_mp3_reason No Ogg Vorbis support $disable_vorbis_reason " >&6; } { { echo "$as_me:$LINENO: error: Neither MP3 or Vorbis support is being built. Cannot continue." >&5 echo "$as_me: error: Neither MP3 or Vorbis support is being built. Cannot continue." >&2;} { (exit 1); exit 1; }; } fi; { echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; } if test "${ac_cv_c_const+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset x; /* SunOS 4.1.1 cc rejects this. */ char const *const *ccp; char **p; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; ccp = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++ccp; p = (char**) ccp; ccp = (char const *const *) p; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !x[0] && !zero.x; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_const=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 echo "${ECHO_T}$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then cat >>confdefs.h <<\_ACEOF #define const _ACEOF fi { echo "$as_me:$LINENO: checking for mode_t" >&5 echo $ECHO_N "checking for mode_t... $ECHO_C" >&6; } if test "${ac_cv_type_mode_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef mode_t ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_mode_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_mode_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 echo "${ECHO_T}$ac_cv_type_mode_t" >&6; } if test $ac_cv_type_mode_t = yes; then : else cat >>confdefs.h <<_ACEOF #define mode_t int _ACEOF fi { echo "$as_me:$LINENO: checking for size_t" >&5 echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } if test "${ac_cv_type_size_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef size_t ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_size_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_size_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 echo "${ECHO_T}$ac_cv_type_size_t" >&6; } if test $ac_cv_type_size_t = yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { echo "$as_me:$LINENO: checking whether lstat dereferences a symlink specified with a trailing slash" >&5 echo $ECHO_N "checking whether lstat dereferences a symlink specified with a trailing slash... $ECHO_C" >&6; } if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then ac_cv_func_lstat_dereferences_slashed_symlink=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_lstat_dereferences_slashed_symlink=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi else # If the `ln -s' command failed, then we probably don't even # have an lstat function. ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f conftest.sym conftest.file fi { echo "$as_me:$LINENO: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 echo "${ECHO_T}$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac fi { echo "$as_me:$LINENO: checking whether stat accepts an empty string" >&5 echo $ECHO_N "checking whether stat accepts an empty string... $ECHO_C" >&6; } if test "${ac_cv_func_stat_empty_string_bug+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_stat_empty_string_bug=yes else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; return stat ("", &sbuf) == 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_stat_empty_string_bug=no else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_stat_empty_string_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_stat_empty_string_bug" >&5 echo "${ECHO_T}$ac_cv_func_stat_empty_string_bug" >&6; } if test $ac_cv_func_stat_empty_string_bug = yes; then case " $LIBOBJS " in *" stat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS stat.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define HAVE_STAT_EMPTY_STRING_BUG 1 _ACEOF fi { echo "$as_me:$LINENO: checking for working POSIX fnmatch" >&5 echo $ECHO_N "checking for working POSIX fnmatch... $ECHO_C" >&6; } if test "${ac_cv_func_fnmatch_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Some versions of Solaris, SCO, and the GNU C Library # have a broken or incompatible fnmatch. # So we run a test program. If we are cross-compiling, take no chance. # Thanks to John Oleynick, Franc,ois Pinard, and Paul Eggert for this test. if test "$cross_compiling" = yes; then ac_cv_func_fnmatch_works=cross else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <fnmatch.h> # define y(a, b, c) (fnmatch (a, b, c) == 0) # define n(a, b, c) (fnmatch (a, b, c) == FNM_NOMATCH) int main () { return (!(y ("a*", "abc", 0) && n ("d*/*1", "d/s/1", FNM_PATHNAME) && y ("a\\\\bc", "abc", 0) && n ("a\\\\bc", "abc", FNM_NOESCAPE) && y ("*x", ".x", 0) && n ("*x", ".x", FNM_PERIOD) && 1)); ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_fnmatch_works=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_fnmatch_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_fnmatch_works" >&5 echo "${ECHO_T}$ac_cv_func_fnmatch_works" >&6; } if test $ac_cv_func_fnmatch_works = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_FNMATCH 1 _ACEOF fi { echo "$as_me:$LINENO: checking for working strcoll" >&5 echo $ECHO_N "checking for working strcoll... $ECHO_C" >&6; } if test "${ac_cv_func_strcoll_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_strcoll_works=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { return (strcoll ("abc", "def") >= 0 || strcoll ("ABC", "DEF") >= 0 || strcoll ("123", "456") >= 0) ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_strcoll_works=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_strcoll_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_strcoll_works" >&5 echo "${ECHO_T}$ac_cv_func_strcoll_works" >&6; } if test $ac_cv_func_strcoll_works = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_STRCOLL 1 _ACEOF fi { echo "$as_me:$LINENO: checking for working strtod" >&5 echo $ECHO_N "checking for working strtod... $ECHO_C" >&6; } if test "${ac_cv_func_strtod+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_strtod=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #ifndef strtod double strtod (); #endif int main() { { /* Some versions of Linux strtod mis-parse strings with leading '+'. */ char *string = " +69"; char *term; double value; value = strtod (string, &term); if (value != 69 || term != (string + 4)) return 1; } { /* Under Solaris 2.4, strtod returns the wrong value for the terminating character under some conditions. */ char *string = "NaN"; char *term; strtod (string, &term); if (term != string && *(term - 1) == 0) return 1; } return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_strtod=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_strtod=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_strtod" >&5 echo "${ECHO_T}$ac_cv_func_strtod" >&6; } if test $ac_cv_func_strtod = no; then case " $LIBOBJS " in *" strtod.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strtod.$ac_objext" ;; esac { echo "$as_me:$LINENO: checking for pow" >&5 echo $ECHO_N "checking for pow... $ECHO_C" >&6; } if test "${ac_cv_func_pow+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define pow to an innocuous variant, in case <limits.h> declares pow. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define pow innocuous_pow /* System header to define __stub macros and hopefully few prototypes, which can conflict with char pow (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef pow /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pow (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_pow || defined __stub___pow choke me #endif int main () { return pow (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_pow=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_pow=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_pow" >&5 echo "${ECHO_T}$ac_cv_func_pow" >&6; } if test $ac_cv_func_pow = no; then { echo "$as_me:$LINENO: checking for pow in -lm" >&5 echo $ECHO_N "checking for pow in -lm... $ECHO_C" >&6; } if test "${ac_cv_lib_m_pow+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pow (); int main () { return pow (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_m_pow=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_pow=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_m_pow" >&5 echo "${ECHO_T}$ac_cv_lib_m_pow" >&6; } if test $ac_cv_lib_m_pow = yes; then POW_LIB=-lm else { echo "$as_me:$LINENO: WARNING: cannot find library containing definition of pow" >&5 echo "$as_me: WARNING: cannot find library containing definition of pow" >&2;} fi fi fi for ac_func in strcasecmp nl_langinfo regcomp do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else { { echo "$as_me:$LINENO: error: Missing necessary functions." >&5 echo "$as_me: error: Missing necessary functions." >&2;} { (exit 1); exit 1; }; } fi done case "$am__api_version" in 1.01234) { { echo "$as_me:$LINENO: error: Automake 1.5 or newer is required to use intltool" >&5 echo "$as_me: error: Automake 1.5 or newer is required to use intltool" >&2;} { (exit 1); exit 1; }; } ;; *) ;; esac if test -n "0.30"; then { echo "$as_me:$LINENO: checking for intltool >= 0.30" >&5 echo $ECHO_N "checking for intltool >= 0.30... $ECHO_C" >&6; } INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.30 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`awk -F\" '/\\$VERSION / { print $ 2; }' ${ac_aux_dir}/intltool-update.in` INTLTOOL_APPLIED_VERSION_AS_INT=`awk -F\" '/\\$VERSION / { split($ 2, VERSION, "."); print VERSION[1] * 1000 + VERSION[2] * 100 + VERSION[3];}' ${ac_aux_dir}/intltool-update.in` { echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found" >&5 echo "${ECHO_T}$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || { { echo "$as_me:$LINENO: error: Your intltool is too old. You need intltool 0.30 or later." >&5 echo "$as_me: error: Your intltool is too old. You need intltool 0.30 or later." >&2;} { (exit 1); exit 1; }; } fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Use the tools built into the package, not the ones that are installed. INTLTOOL_EXTRACT='$(top_builddir)/intltool-extract' INTLTOOL_MERGE='$(top_builddir)/intltool-merge' INTLTOOL_UPDATE='$(top_builddir)/intltool-update' # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { echo "$as_me:$LINENO: result: $INTLTOOL_PERL" >&5 echo "${ECHO_T}$INTLTOOL_PERL" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test -z "$INTLTOOL_PERL"; then { { echo "$as_me:$LINENO: error: perl not found; required for intltool" >&5 echo "$as_me: error: perl not found; required for intltool" >&2;} { (exit 1); exit 1; }; } fi if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then { { echo "$as_me:$LINENO: error: perl 5.x required for intltool" >&5 echo "$as_me: error: perl 5.x required for intltool" >&2;} { (exit 1); exit 1; }; } fi if test "x" != "xno-xml"; then { echo "$as_me:$LINENO: checking for XML::Parser" >&5 echo $ECHO_N "checking for XML::Parser... $ECHO_C" >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6; } else { { echo "$as_me:$LINENO: error: XML::Parser perl module is required for intltool" >&5 echo "$as_me: error: XML::Parser perl module is required for intltool" >&2;} { (exit 1); exit 1; }; } fi fi # Extract the first word of "iconv", so it can be a program name with args. set dummy iconv; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_INTLTOOL_ICONV+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $INTLTOOL_ICONV in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_ICONV="$INTLTOOL_ICONV" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_ICONV="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_INTLTOOL_ICONV" && ac_cv_path_INTLTOOL_ICONV="iconv" ;; esac fi INTLTOOL_ICONV=$ac_cv_path_INTLTOOL_ICONV if test -n "$INTLTOOL_ICONV"; then { echo "$as_me:$LINENO: result: $INTLTOOL_ICONV" >&5 echo "${ECHO_T}$INTLTOOL_ICONV" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_INTLTOOL_MSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $INTLTOOL_MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MSGFMT="$INTLTOOL_MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MSGFMT="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_INTLTOOL_MSGFMT" && ac_cv_path_INTLTOOL_MSGFMT="msgfmt" ;; esac fi INTLTOOL_MSGFMT=$ac_cv_path_INTLTOOL_MSGFMT if test -n "$INTLTOOL_MSGFMT"; then { echo "$as_me:$LINENO: result: $INTLTOOL_MSGFMT" >&5 echo "${ECHO_T}$INTLTOOL_MSGFMT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_INTLTOOL_MSGMERGE+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $INTLTOOL_MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MSGMERGE="$INTLTOOL_MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_INTLTOOL_MSGMERGE" && ac_cv_path_INTLTOOL_MSGMERGE="msgmerge" ;; esac fi INTLTOOL_MSGMERGE=$ac_cv_path_INTLTOOL_MSGMERGE if test -n "$INTLTOOL_MSGMERGE"; then { echo "$as_me:$LINENO: result: $INTLTOOL_MSGMERGE" >&5 echo "${ECHO_T}$INTLTOOL_MSGMERGE" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_INTLTOOL_XGETTEXT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $INTLTOOL_XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_XGETTEXT="$INTLTOOL_XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_INTLTOOL_XGETTEXT" && ac_cv_path_INTLTOOL_XGETTEXT="xgettext" ;; esac fi INTLTOOL_XGETTEXT=$ac_cv_path_INTLTOOL_XGETTEXT if test -n "$INTLTOOL_XGETTEXT"; then { echo "$as_me:$LINENO: result: $INTLTOOL_XGETTEXT" >&5 echo "${ECHO_T}$INTLTOOL_XGETTEXT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Substitute ALL_LINGUAS so we can use it in po/Makefile ac_config_commands="$ac_config_commands intltool" GETTEXT_PACKAGE=tagtool cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF ALL_LINGUAS="pt fr cs es it en_GB de bg lt ua ru pl sv nl pt_BR" for ac_header in locale.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then { echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5 echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6; } if test "${am_cv_val_LC_MESSAGES+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <locale.h> int main () { return LC_MESSAGES ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_val_LC_MESSAGES=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5 echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_LC_MESSAGES 1 _ACEOF fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= if test "${ac_cv_header_libintl_h+set}" = set; then { echo "$as_me:$LINENO: checking for libintl.h" >&5 echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6; } if test "${ac_cv_header_libintl_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 echo "${ECHO_T}$ac_cv_header_libintl_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking libintl.h usability" >&5 echo $ECHO_N "checking libintl.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <libintl.h> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking libintl.h presence" >&5 echo $ECHO_N "checking libintl.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <libintl.h> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: libintl.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: libintl.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: libintl.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: libintl.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: libintl.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for libintl.h" >&5 echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6; } if test "${ac_cv_header_libintl_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_libintl_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 echo "${ECHO_T}$ac_cv_header_libintl_h" >&6; } fi if test $ac_cv_header_libintl_h = yes; then gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { echo "$as_me:$LINENO: checking for ngettext in libc" >&5 echo $ECHO_N "checking for ngettext in libc... $ECHO_C" >&6; } if test "${gt_cv_func_ngettext_libc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <libintl.h> int main () { return !ngettext ("","", 1) ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gt_cv_func_ngettext_libc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_ngettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $gt_cv_func_ngettext_libc" >&5 echo "${ECHO_T}$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { echo "$as_me:$LINENO: checking for dgettext in libc" >&5 echo $ECHO_N "checking for dgettext in libc... $ECHO_C" >&6; } if test "${gt_cv_func_dgettext_libc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <libintl.h> int main () { return !dgettext ("","") ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gt_cv_func_dgettext_libc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_dgettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5 echo "${ECHO_T}$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then { echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5 echo $ECHO_N "checking for bindtextdomain in -lintl... $ECHO_C" >&6; } if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char bindtextdomain (); int main () { return bindtextdomain (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_intl_bindtextdomain=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_bindtextdomain=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5 echo "${ECHO_T}$ac_cv_lib_intl_bindtextdomain" >&6; } if test $ac_cv_lib_intl_bindtextdomain = yes; then { echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5 echo $ECHO_N "checking for ngettext in -lintl... $ECHO_C" >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_intl_ngettext=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5 echo "${ECHO_T}$ac_cv_lib_intl_ngettext" >&6; } if test $ac_cv_lib_intl_ngettext = yes; then { echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5 echo $ECHO_N "checking for dgettext in -lintl... $ECHO_C" >&6; } if test "${ac_cv_lib_intl_dgettext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dgettext (); int main () { return dgettext (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_intl_dgettext=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_dgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5 echo "${ECHO_T}$ac_cv_lib_intl_dgettext" >&6; } if test $ac_cv_lib_intl_dgettext = yes; then gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5 echo $ECHO_N "checking if -liconv is needed to use gettext... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: " >&5 echo "${ECHO_T}" >&6; } { echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5 echo $ECHO_N "checking for ngettext in -lintl... $ECHO_C" >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_intl_ngettext=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5 echo "${ECHO_T}$ac_cv_lib_intl_ngettext" >&6; } if test $ac_cv_lib_intl_ngettext = yes; then { echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5 echo $ECHO_N "checking for dcgettext in -lintl... $ECHO_C" >&6; } if test "${ac_cv_lib_intl_dcgettext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_intl_dcgettext=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_dcgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5 echo "${ECHO_T}$ac_cv_lib_intl_dcgettext" >&6; } if test $ac_cv_lib_intl_dcgettext = yes; then gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi else : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset for ac_func in bind_textdomain_codeset do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then cat >>confdefs.h <<\_ACEOF #define HAVE_GETTEXT 1 _ACEOF # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { echo "$as_me:$LINENO: result: $MSGFMT" >&5 echo "${ECHO_T}$MSGFMT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { echo "$as_me:$LINENO: result: $GMSGFMT" >&5 echo "${ECHO_T}$GMSGFMT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { echo "$as_me:$LINENO: result: $XGETTEXT" >&5 echo "${ECHO_T}$XGETTEXT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then CATOBJEXT=.gmo DATADIRNAME=share else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 case $host in *-*-solaris*) { echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5 echo $ECHO_N "checking for bind_textdomain_codeset... $ECHO_C" >&6; } if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define bind_textdomain_codeset to an innocuous variant, in case <limits.h> declares bind_textdomain_codeset. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define bind_textdomain_codeset innocuous_bind_textdomain_codeset /* System header to define __stub macros and hopefully few prototypes, which can conflict with char bind_textdomain_codeset (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef bind_textdomain_codeset /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char bind_textdomain_codeset (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset choke me #endif int main () { return bind_textdomain_codeset (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_bind_textdomain_codeset=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_bind_textdomain_codeset=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5 echo "${ECHO_T}$ac_cv_func_bind_textdomain_codeset" >&6; } if test $ac_cv_func_bind_textdomain_codeset = yes; then CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_NLS 1 _ACEOF fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { echo "$as_me:$LINENO: checking for catalogs to be installed" >&5 echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { echo "$as_me:$LINENO: result: $LINGUAS" >&5 echo "${ECHO_T}$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" cat >>confdefs.h <<_ACEOF #define LOCALEDIR "$localedir" _ACEOF ac_config_files="$ac_config_files data/Makefile pixmaps/Makefile po/Makefile.in src/Makefile Makefile tagtool.spec" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${ENABLE_MP3_TRUE}" && test -z "${ENABLE_MP3_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"ENABLE_MP3\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"ENABLE_MP3\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${ENABLE_VORBIS_TRUE}" && test -z "${ENABLE_VORBIS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"ENABLE_VORBIS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"ENABLE_VORBIS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi ac_config_commands="$ac_config_commands po/stamp-it" : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # Find out whether ``test -x'' works. Don't use a zero-byte file, as # systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then as_executable_p="test -x" else as_executable_p=: fi rm -f conf$$.file # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by tagtool $as_me 0.12.3, which was generated by GNU Autoconf 2.60. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ tagtool config.status 0.12.3 configured by $0, generated by GNU Autoconf 2.60, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" INTLTOOL_PERL='${INTLTOOL_PERL}' ac_aux_dir='${ac_aux_dir}' prefix="$prefix" exec_prefix="$exec_prefix" INTLTOOL_LIBDIR="$libdir" INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' INTLTOOL_ICONV='${INTLTOOL_ICONV}' INTLTOOL_MSGFMT='${INTLTOOL_MSGFMT}' INTLTOOL_MSGMERGE='${INTLTOOL_MSGMERGE}' INTLTOOL_XGETTEXT='${INTLTOOL_XGETTEXT}' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "intltool") CONFIG_COMMANDS="$CONFIG_COMMANDS intltool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; "pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES pixmaps/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "tagtool.spec") CONFIG_FILES="$CONFIG_FILES tagtool.spec" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim CYGPATH_W!$CYGPATH_W$ac_delim PACKAGE!$PACKAGE$ac_delim VERSION!$VERSION$ac_delim ACLOCAL!$ACLOCAL$ac_delim AUTOCONF!$AUTOCONF$ac_delim AUTOMAKE!$AUTOMAKE$ac_delim AUTOHEADER!$AUTOHEADER$ac_delim MAKEINFO!$MAKEINFO$ac_delim AMTAR!$AMTAR$ac_delim install_sh!$install_sh$ac_delim STRIP!$STRIP$ac_delim INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim AWK!$AWK$ac_delim SET_MAKE!$SET_MAKE$ac_delim am__leading_dot!$am__leading_dot$ac_delim MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim MAINT!$MAINT$ac_delim SPEC_RELEASE!$SPEC_RELEASE$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim DEPDIR!$DEPDIR$ac_delim am__include!$am__include$ac_delim am__quote!$am__quote$ac_delim AMDEP_TRUE!$AMDEP_TRUE$ac_delim AMDEP_FALSE!$AMDEP_FALSE$ac_delim AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim CCDEPMODE!$CCDEPMODE$ac_delim am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim LN_S!$LN_S$ac_delim CPP!$CPP$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim PKG_CONFIG!$PKG_CONFIG$ac_delim GTK_CFLAGS!$GTK_CFLAGS$ac_delim GTK_LIBS!$GTK_LIBS$ac_delim ENABLE_MP3_TRUE!$ENABLE_MP3_TRUE$ac_delim ENABLE_MP3_FALSE!$ENABLE_MP3_FALSE$ac_delim ENABLE_VORBIS_TRUE!$ENABLE_VORBIS_TRUE$ac_delim ENABLE_VORBIS_FALSE!$ENABLE_VORBIS_FALSE$ac_delim LIBOBJS!$LIBOBJS$ac_delim POW_LIB!$POW_LIB$ac_delim INTLTOOL_DESKTOP_RULE!$INTLTOOL_DESKTOP_RULE$ac_delim INTLTOOL_DIRECTORY_RULE!$INTLTOOL_DIRECTORY_RULE$ac_delim INTLTOOL_KEYS_RULE!$INTLTOOL_KEYS_RULE$ac_delim INTLTOOL_PROP_RULE!$INTLTOOL_PROP_RULE$ac_delim INTLTOOL_OAF_RULE!$INTLTOOL_OAF_RULE$ac_delim INTLTOOL_PONG_RULE!$INTLTOOL_PONG_RULE$ac_delim INTLTOOL_SERVER_RULE!$INTLTOOL_SERVER_RULE$ac_delim INTLTOOL_SHEET_RULE!$INTLTOOL_SHEET_RULE$ac_delim INTLTOOL_SOUNDLIST_RULE!$INTLTOOL_SOUNDLIST_RULE$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS <conf$$subs.sed rm -f conf$$subs.sed cat >>$CONFIG_STATUS <<_ACEOF CEOF$ac_eof _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF INTLTOOL_UI_RULE!$INTLTOOL_UI_RULE$ac_delim INTLTOOL_XAM_RULE!$INTLTOOL_XAM_RULE$ac_delim INTLTOOL_KBD_RULE!$INTLTOOL_KBD_RULE$ac_delim INTLTOOL_XML_RULE!$INTLTOOL_XML_RULE$ac_delim INTLTOOL_XML_NOMERGE_RULE!$INTLTOOL_XML_NOMERGE_RULE$ac_delim INTLTOOL_CAVES_RULE!$INTLTOOL_CAVES_RULE$ac_delim INTLTOOL_SCHEMAS_RULE!$INTLTOOL_SCHEMAS_RULE$ac_delim INTLTOOL_THEME_RULE!$INTLTOOL_THEME_RULE$ac_delim INTLTOOL_SERVICE_RULE!$INTLTOOL_SERVICE_RULE$ac_delim INTLTOOL_EXTRACT!$INTLTOOL_EXTRACT$ac_delim INTLTOOL_MERGE!$INTLTOOL_MERGE$ac_delim INTLTOOL_UPDATE!$INTLTOOL_UPDATE$ac_delim INTLTOOL_PERL!$INTLTOOL_PERL$ac_delim INTLTOOL_ICONV!$INTLTOOL_ICONV$ac_delim INTLTOOL_MSGFMT!$INTLTOOL_MSGFMT$ac_delim INTLTOOL_MSGMERGE!$INTLTOOL_MSGMERGE$ac_delim INTLTOOL_XGETTEXT!$INTLTOOL_XGETTEXT$ac_delim ALL_LINGUAS!$ALL_LINGUAS$ac_delim GETTEXT_PACKAGE!$GETTEXT_PACKAGE$ac_delim USE_NLS!$USE_NLS$ac_delim MSGFMT!$MSGFMT$ac_delim GMSGFMT!$GMSGFMT$ac_delim XGETTEXT!$XGETTEXT$ac_delim CATALOGS!$CATALOGS$ac_delim CATOBJEXT!$CATOBJEXT$ac_delim DATADIRNAME!$DATADIRNAME$ac_delim GMOFILES!$GMOFILES$ac_delim INSTOBJEXT!$INSTOBJEXT$ac_delim INTLLIBS!$INTLLIBS$ac_delim PO_IN_DATADIR_TRUE!$PO_IN_DATADIR_TRUE$ac_delim PO_IN_DATADIR_FALSE!$PO_IN_DATADIR_FALSE$ac_delim POFILES!$POFILES$ac_delim POSUB!$POSUB$ac_delim MKINSTALLDIRS!$MKINSTALLDIRS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 35; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS <conf$$subs.sed rm -f conf$$subs.sed cat >>$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$ac_file_inputs $ac_f" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input="Generated from "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :H) # # CONFIG_HEADER # _ACEOF # Transform confdefs.h into a sed script `conftest.defines', that # substitutes the proper values into config.h.in to produce config.h. rm -f conftest.defines conftest.tail # First, append a space to every undef/define line, to ease matching. echo 's/$/ /' >conftest.defines # Then, protect against being on the right side of a sed subst, or in # an unquoted here document, in config.status. If some macros were # called several times there might be several #defines for the same # symbol, which is useless. But do not sort them, since the last # AC_DEFINE must be honored. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* # These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where # NAME is the cpp macro being defined, VALUE is the value it is being given. # PARAMS is the parameter list in the macro definition--in most cases, it's # just an empty string. ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,' uniq confdefs.h | sed -n ' t rset :rset s/^[ ]*#[ ]*define[ ][ ]*// t ok d :ok s/[\\&,]/\\&/g s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p ' >>conftest.defines # Remove the space that was appended to ease matching. # Then replace #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. # (The regexp can be short, since the line contains either #define or #undef.) echo 's/ $// s,^[ #]*u.*,/* & */,' >>conftest.defines # Break up conftest.defines: ac_max_sed_lines=50 # First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" # Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" # Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" # et cetera. ac_in='$ac_file_inputs' ac_out='"$tmp/out1"' ac_nxt='"$tmp/out2"' while : do # Write a here document: cat >>$CONFIG_STATUS <<_ACEOF # First, check the format of the line: cat >"\$tmp/defines.sed" <<\\CEOF /^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def /^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def b :def _ACEOF sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines conftest.tail echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then echo "/* $configure_input */" >"$tmp/config.h" cat "$ac_result" >>"$tmp/config.h" if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else rm -f $ac_file mv "$tmp/config.h" $ac_file fi else echo "/* $configure_input */" cat "$ac_result" fi rm -f "$tmp/out12" # Compute $ac_file's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $ac_file | $ac_file:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $ac_file" >`$as_dirname -- $ac_file || $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X$ac_file : 'X\(//\)[^/]' \| \ X$ac_file : 'X\(//\)$' \| \ X$ac_file : 'X\(/\)' \| . 2>/dev/null || echo X$ac_file | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue # Extract the definition of DEP_FILES from the Makefile without # running `make'. DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` test -z "$DEPDIR" && continue # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n -e '/^U = / s///p' < "$mf"` test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" # We invoke sed twice because it is the simplest approach to # changing $(DEPDIR) to its actual value in the expansion. for file in `sed -n -e ' /^DEP_FILES = .*\\\\$/ { s/^DEP_FILES = // :loop s/\\\\$// p n /\\\\$/ b loop p } /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; "intltool":C) for file in intltool-extract intltool-merge intltool-update; do sed -e "s|@INTLTOOL_EXTRACT@|`pwd`/intltool-extract|g" \ -e "s|@INTLTOOL_LIBDIR@|${INTLTOOL_LIBDIR}|g" \ -e "s|@INTLTOOL_ICONV@|${INTLTOOL_ICONV}|g" \ -e "s|@INTLTOOL_MSGFMT@|${INTLTOOL_MSGFMT}|g" \ -e "s|@INTLTOOL_MSGMERGE@|${INTLTOOL_MSGMERGE}|g" \ -e "s|@INTLTOOL_XGETTEXT@|${INTLTOOL_XGETTEXT}|g" \ -e "s|@INTLTOOL_PERL@|${INTLTOOL_PERL}|g" \ < ${ac_aux_dir}/${file}.in > ${file}.out if cmp -s ${file} ${file}.out 2>/dev/null; then rm -f ${file}.out else mv -f ${file}.out ${file} fi chmod ugo+x ${file} chmod u+w ${file} done ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "po/stamp-it":C) rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" if test ! -f "po/Makefile"; then { { echo "$as_me:$LINENO: error: po/Makefile is not ready." >&5 echo "$as_me: error: po/Makefile is not ready." >&2;} { (exit 1); exit 1; }; } fi mv "po/Makefile" "po/Makefile.tmp" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.tmp" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi { echo "$as_me:$LINENO: result: Configuration information: MP3 support: $enable_mp3 $disable_mp3_reason Ogg Vorbis support: $enable_vorbis $disable_vorbis_reason Now run 'make' to compile $PACKAGE_NAME " >&5 echo "${ECHO_T} Configuration information: MP3 support: $enable_mp3 $disable_mp3_reason Ogg Vorbis support: $enable_vorbis $disable_vorbis_reason Now run 'make' to compile $PACKAGE_NAME " >&6; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/ABOUT-NLS����������������������������������������������������������������������������0000644�0001750�0001750�00000235235�10513470151�014040� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������1 Notes on the Free Translation Project *************************************** Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that free software will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work on translations can contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. 1.1 Quick configuration advice ============================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. 1.2 INSTALL Matters =================== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the included GNU `gettext' library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will, respectively, bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might not be desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages usually have many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. 1.3 Using This Package ====================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your language by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from `no' to `nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under `nb' and some older ones under `no', it's recommended for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and older translations are used. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. 1.4 Translating Teams ===================== For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `translation@iro.umontreal.ca' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skill are praised more than programming skill, here. 1.5 Available Packages ====================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of July 2006. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB eo +----------------------------------------------------+ GNUnet | [] | a2ps | [] [] [] [] [] | aegis | () | ant-phone | () | anubis | [] | ap-utils | | aspell | [] [] [] [] | bash | [] [] [] | batchelor | [] | bfd | | bibshelf | [] | binutils | [] | bison | [] [] | bison-runtime | [] | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] | console-tools | [] [] | coreutils | [] [] [] [] | cpio | | cpplib | [] [] [] | cryptonit | [] | darkstat | [] () [] | dialog | [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] | doodle | [] | e2fsprogs | [] [] | enscript | [] [] [] [] | error | [] [] [] [] | fetchmail | [] [] () [] | fileutils | [] [] | findutils | [] [] [] | flex | [] [] [] | fslint | [] | gas | | gawk | [] [] [] | gbiff | [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] | gimp-print | [] [] [] [] | gip | [] | gliv | [] | glunarclock | [] | gmult | [] [] | gnubiff | () | gnucash | () () [] | gnucash-glossary | [] () | gnuedu | | gnulib | [] [] [] [] [] [] | gnunet-gtk | | gnutls | | gpe-aerial | [] [] | gpe-beam | [] [] | gpe-calendar | [] [] | gpe-clock | [] [] | gpe-conf | [] [] | gpe-contacts | | gpe-edit | [] | gpe-filemanager | | gpe-go | [] | gpe-login | [] [] | gpe-ownerinfo | [] [] | gpe-package | | gpe-sketchbook | [] [] | gpe-su | [] [] | gpe-taskmanager | [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | | gphoto2 | [] [] [] [] | gprof | [] [] | gpsdrive | () () | gramadoir | [] [] | grep | [] [] [] [] [] [] | gretl | | gsasl | | gss | | gst-plugins | [] [] [] [] | gst-plugins-base | [] [] [] | gst-plugins-good | [] [] [] [] [] [] [] | gstreamer | [] [] [] [] [] [] [] | gtick | [] () | gtkam | [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] | id-utils | [] [] | impost | | indent | [] [] [] | iso_3166 | [] [] | iso_3166_1 | [] [] [] [] [] | iso_3166_2 | | iso_3166_3 | [] | iso_4217 | [] | iso_639 | [] [] | jpilot | [] | jtag | | jwhois | | kbd | [] [] [] [] | keytouch | | keytouch-editor | | keytouch-keyboa... | | latrine | () | ld | [] | leafpad | [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] | libgpewidget | [] [] [] | libgpg-error | [] | libgphoto2 | [] [] | libgphoto2_port | [] [] | libgsasl | | libiconv | [] [] | libidn | [] [] | lifelines | [] () | lilypond | [] | lingoteach | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailutils | [] | make | [] [] | man-db | [] () [] [] | minicom | [] [] [] | mysecretdiary | [] [] | nano | [] [] () [] | nano_1_0 | [] () [] [] | opcodes | [] | parted | | pilot-qof | [] | psmisc | [] | pwdutils | | python | | qof | | radius | [] | recode | [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] [] [] [] [] [] | sed | [] [] [] | sh-utils | [] [] | shared-mime-info | [] [] [] | sharutils | [] [] [] [] [] [] | shishi | | silky | | skencil | [] () | sketch | [] () | solfege | | soundtracker | [] [] | sp | [] | stardict | [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] | texinfo | [] [] [] | textutils | [] [] [] | tin | () () | tp-robot | [] | tuxpaint | [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | vorbis-tools | [] [] [] [] | wastesedge | () | wdiff | [] [] [] [] | wget | [] [] | xchat | [] [] [] [] [] | xkeyboard-config | | xpad | [] [] | +----------------------------------------------------+ af am ar az be bg bs ca cs cy da de el en en_GB eo 11 0 1 2 8 21 1 42 43 2 62 99 18 1 16 16 es et eu fa fi fr ga gl gu he hi hr hu id is it +--------------------------------------------------+ GNUnet | | a2ps | [] [] [] () | aegis | | ant-phone | [] | anubis | [] | ap-utils | [] [] | aspell | [] [] [] | bash | [] [] [] | batchelor | [] [] | bfd | [] | bibshelf | [] [] [] | binutils | [] [] [] | bison | [] [] [] [] [] [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] | cflow | | clisp | [] [] | console-tools | | coreutils | [] [] [] [] [] [] | cpio | [] [] [] | cpplib | [] [] | cryptonit | [] | darkstat | [] () [] [] [] | dialog | [] [] [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] [] | enscript | [] [] [] | error | [] [] [] [] [] | fetchmail | [] | fileutils | [] [] [] [] [] [] | findutils | [] [] [] [] | flex | [] [] [] | fslint | [] | gas | [] [] | gawk | [] [] [] [] | gbiff | [] | gcal | [] [] | gcc | [] | gettext-examples | [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] | gettext-tools | [] [] [] | gimp-print | [] [] | gip | [] [] [] | gliv | () | glunarclock | [] [] [] | gmult | [] [] [] | gnubiff | () () | gnucash | () () () | gnucash-glossary | [] [] | gnuedu | [] | gnulib | [] [] [] [] [] [] [] [] | gnunet-gtk | | gnutls | | gpe-aerial | [] [] | gpe-beam | [] [] | gpe-calendar | [] [] [] [] | gpe-clock | [] [] [] [] | gpe-conf | [] | gpe-contacts | [] [] | gpe-edit | [] [] [] [] | gpe-filemanager | [] | gpe-go | [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] [] [] [] | gpe-package | [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] [] | gpe-taskmanager | [] [] [] | gpe-timesheet | [] [] [] [] | gpe-today | [] [] [] [] | gpe-todo | [] | gphoto2 | [] [] [] [] [] | gprof | [] [] [] [] | gpsdrive | () () [] () | gramadoir | [] [] | grep | [] [] [] [] [] [] [] [] [] [] [] [] | gretl | [] [] [] | gsasl | [] | gss | [] | gst-plugins | [] [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] [] | gstreamer | [] [] [] | gtick | [] [] [] [] [] | gtkam | [] [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] [] [] | impost | [] [] | indent | [] [] [] [] [] [] [] [] [] [] | iso_3166 | [] [] [] | iso_3166_1 | [] [] [] [] [] [] [] | iso_3166_2 | [] | iso_3166_3 | [] | iso_4217 | [] [] [] [] | iso_639 | [] [] [] [] [] | jpilot | [] [] | jtag | [] | jwhois | [] [] [] [] [] | kbd | [] [] | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | latrine | [] [] [] | ld | [] [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] | libgpewidget | [] [] [] [] [] | libgpg-error | | libgphoto2 | [] [] [] | libgphoto2_port | [] [] | libgsasl | [] [] | libiconv | [] | libidn | [] [] | lifelines | () | lilypond | [] | lingoteach | [] [] [] | lynx | [] [] [] | m4 | [] [] [] [] | mailutils | [] [] | make | [] [] [] [] [] [] [] [] | man-db | () | minicom | [] [] [] [] | mysecretdiary | [] [] [] | nano | [] () [] [] [] [] | nano_1_0 | [] [] [] [] [] | opcodes | [] [] [] [] | parted | [] [] [] [] | pilot-qof | | psmisc | [] [] [] | pwdutils | | python | | qof | | radius | [] [] | recode | [] [] [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] | sed | [] [] [] [] [] | sh-utils | [] [] [] [] [] [] [] | shared-mime-info | [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] [] | shishi | | silky | [] | skencil | [] [] | sketch | [] [] | solfege | [] | soundtracker | [] [] [] | sp | [] | stardict | [] | system-tools-ba... | [] [] [] [] [] [] [] [] | tar | [] [] [] [] [] [] | texinfo | [] [] | textutils | [] [] [] [] [] | tin | [] () | tp-robot | [] [] [] [] | tuxpaint | [] [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux | [] [] [] [] [] [] [] | vorbis-tools | [] [] | wastesedge | () | wdiff | [] [] [] [] [] [] [] [] | wget | [] [] [] [] [] [] [] [] | xchat | [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] | xpad | [] [] [] | +--------------------------------------------------+ es et eu fa fi fr ga gl gu he hi hr hu id is it 89 21 16 2 41 119 61 14 1 8 1 6 61 30 0 53 ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no +--------------------------------------------------+ GNUnet | | a2ps | () [] [] () | aegis | () | ant-phone | [] | anubis | [] [] [] | ap-utils | [] | aspell | [] [] | bash | [] | batchelor | [] [] | bfd | | bibshelf | [] | binutils | | bison | [] [] [] | bison-runtime | [] [] [] | bluez-pin | [] [] [] | cflow | | clisp | [] | console-tools | | coreutils | [] | cpio | | cpplib | [] | cryptonit | [] | darkstat | [] [] | dialog | [] [] | diffutils | [] [] [] | doodle | | e2fsprogs | [] | enscript | [] | error | [] | fetchmail | [] [] | fileutils | [] [] | findutils | [] | flex | [] [] | fslint | [] [] | gas | | gawk | [] [] | gbiff | [] | gcal | | gcc | | gettext-examples | [] [] | gettext-runtime | [] [] [] | gettext-tools | [] [] | gimp-print | [] [] | gip | [] [] | gliv | [] | glunarclock | [] [] | gmult | [] [] | gnubiff | | gnucash | () () | gnucash-glossary | [] | gnuedu | | gnulib | [] [] [] [] | gnunet-gtk | | gnutls | | gpe-aerial | [] | gpe-beam | [] | gpe-calendar | [] | gpe-clock | [] [] | gpe-conf | [] [] | gpe-contacts | [] | gpe-edit | [] [] | gpe-filemanager | [] | gpe-go | [] [] | gpe-login | [] [] | gpe-ownerinfo | [] | gpe-package | [] | gpe-sketchbook | [] [] | gpe-su | [] [] | gpe-taskmanager | [] [] [] | gpe-timesheet | [] | gpe-today | [] | gpe-todo | | gphoto2 | [] [] | gprof | | gpsdrive | () () () | gramadoir | () | grep | [] [] [] | gretl | | gsasl | [] | gss | | gst-plugins | [] | gst-plugins-base | | gst-plugins-good | [] | gstreamer | [] | gtick | [] | gtkam | [] | gtkorphan | [] | gtkspell | [] [] | gutenprint | | hello | [] [] [] [] [] [] [] [] | id-utils | [] | impost | | indent | [] [] | iso_3166 | [] | iso_3166_1 | [] [] | iso_3166_2 | [] | iso_3166_3 | [] | iso_4217 | [] [] [] | iso_639 | [] [] | jpilot | () () () | jtag | | jwhois | [] | kbd | [] | keytouch | [] | keytouch-editor | | keytouch-keyboa... | | latrine | [] | ld | | leafpad | [] [] | libc | [] [] [] [] [] | libexif | | libextractor | | libgpewidget | [] | libgpg-error | | libgphoto2 | [] | libgphoto2_port | [] | libgsasl | [] | libiconv | | libidn | [] [] | lifelines | [] | lilypond | | lingoteach | [] | lynx | [] [] | m4 | [] [] | mailutils | | make | [] [] [] | man-db | () | minicom | [] | mysecretdiary | [] | nano | [] [] [] | nano_1_0 | [] [] [] | opcodes | [] | parted | [] [] | pilot-qof | | psmisc | [] [] [] | pwdutils | | python | | qof | | radius | | recode | [] | rpm | [] [] | screem | [] | scrollkeeper | [] [] [] [] | sed | [] [] | sh-utils | [] [] | shared-mime-info | [] [] [] [] [] | sharutils | [] [] | shishi | | silky | [] | skencil | | sketch | | solfege | | soundtracker | | sp | () | stardict | [] [] | system-tools-ba... | [] [] [] [] | tar | [] [] [] | texinfo | [] [] [] | textutils | [] [] [] | tin | | tp-robot | [] | tuxpaint | [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] | vorbis-tools | [] | wastesedge | [] | wdiff | [] [] | wget | [] [] | xchat | [] [] [] [] | xkeyboard-config | [] | xpad | [] [] [] | +--------------------------------------------------+ ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no 40 24 2 1 1 3 1 2 3 21 0 15 1 101 5 3 nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta +------------------------------------------------------+ GNUnet | | a2ps | () [] [] [] [] [] [] | aegis | () () | ant-phone | [] [] | anubis | [] [] [] | ap-utils | () | aspell | [] [] | bash | [] [] [] | batchelor | [] [] | bfd | | bibshelf | [] | binutils | [] [] | bison | [] [] [] [] [] | bison-runtime | [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] [] | cflow | [] | clisp | [] | console-tools | [] | coreutils | [] [] [] [] | cpio | [] [] [] | cpplib | [] | cryptonit | [] [] | darkstat | [] [] [] [] [] [] | dialog | [] [] [] [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] [] | error | [] [] [] [] | fetchmail | [] [] [] | fileutils | [] [] [] [] [] | findutils | [] [] [] [] [] [] | flex | [] [] [] [] [] | fslint | [] [] [] [] | gas | | gawk | [] [] [] [] | gbiff | [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] [] [] | gimp-print | [] [] | gip | [] [] [] [] | gliv | [] [] [] [] | glunarclock | [] [] [] [] [] [] | gmult | [] [] [] [] | gnubiff | () | gnucash | () [] | gnucash-glossary | [] [] [] | gnuedu | | gnulib | [] [] [] [] [] | gnunet-gtk | [] | gnutls | [] [] | gpe-aerial | [] [] [] [] [] [] [] | gpe-beam | [] [] [] [] [] [] [] | gpe-calendar | [] [] [] [] [] [] [] [] | gpe-clock | [] [] [] [] [] [] [] [] | gpe-conf | [] [] [] [] [] [] [] | gpe-contacts | [] [] [] [] [] | gpe-edit | [] [] [] [] [] [] [] [] | gpe-filemanager | [] [] | gpe-go | [] [] [] [] [] [] | gpe-login | [] [] [] [] [] [] [] [] | gpe-ownerinfo | [] [] [] [] [] [] [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] [] [] [] [] [] [] | gpe-su | [] [] [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] [] | gpe-todo | [] [] [] [] | gphoto2 | [] [] [] [] [] | gprof | [] [] [] | gpsdrive | [] [] [] | gramadoir | [] [] | grep | [] [] [] [] [] [] [] [] | gretl | [] | gsasl | [] [] | gss | [] [] [] | gst-plugins | [] [] [] [] | gst-plugins-base | [] | gst-plugins-good | [] [] [] [] | gstreamer | [] [] [] | gtick | [] [] [] | gtkam | [] [] [] [] | gtkorphan | [] | gtkspell | [] [] [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] | id-utils | [] [] [] [] | impost | [] | indent | [] [] [] [] [] [] | iso_3166 | [] [] [] [] [] [] | iso_3166_1 | [] [] [] [] | iso_3166_2 | | iso_3166_3 | [] [] [] [] | iso_4217 | [] [] [] [] | iso_639 | [] [] [] [] | jpilot | | jtag | [] | jwhois | [] [] [] [] | kbd | [] [] [] | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | latrine | [] [] | ld | [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] [] | libgpewidget | [] [] [] [] [] [] [] | libgpg-error | [] [] | libgphoto2 | [] | libgphoto2_port | [] [] [] | libgsasl | [] [] [] [] | libiconv | | libidn | [] [] () | lifelines | [] [] | lilypond | | lingoteach | [] | lynx | [] [] [] | m4 | [] [] [] [] [] | mailutils | [] [] [] [] | make | [] [] [] [] | man-db | [] [] | minicom | [] [] [] [] [] | mysecretdiary | [] [] [] [] | nano | [] [] | nano_1_0 | [] [] [] [] | opcodes | [] [] | parted | [] | pilot-qof | [] | psmisc | [] [] | pwdutils | [] [] | python | | qof | [] | radius | [] [] | recode | [] [] [] [] [] [] [] | rpm | [] [] [] [] | screem | | scrollkeeper | [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] | sh-utils | [] [] [] | shared-mime-info | [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] | silky | [] | skencil | [] [] [] | sketch | [] [] [] | solfege | [] | soundtracker | [] [] | sp | | stardict | [] [] [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] [] [] [] [] | texinfo | [] [] [] [] | textutils | [] [] [] | tin | () | tp-robot | [] | tuxpaint | [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | vorbis-tools | [] [] | wastesedge | | wdiff | [] [] [] [] [] [] | wget | [] [] [] [] | xchat | [] [] [] [] [] [] [] | xkeyboard-config | [] [] | xpad | [] [] [] | +------------------------------------------------------+ nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta 0 2 3 58 31 53 5 76 72 5 42 48 12 51 130 2 tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu +---------------------------------------------------+ GNUnet | [] | 2 a2ps | [] [] [] | 19 aegis | | 0 ant-phone | [] [] | 6 anubis | [] [] [] | 11 ap-utils | () [] | 4 aspell | [] [] [] | 14 bash | [] | 11 batchelor | [] [] | 9 bfd | | 1 bibshelf | [] | 7 binutils | [] [] [] | 9 bison | [] [] [] | 19 bison-runtime | [] [] [] | 16 bluez-pin | [] [] [] [] [] [] | 28 cflow | [] [] | 4 clisp | | 6 console-tools | [] [] | 5 coreutils | [] [] | 17 cpio | [] [] [] | 9 cpplib | [] [] [] [] | 11 cryptonit | | 5 darkstat | [] () () | 15 dialog | [] [] [] [] [] | 30 diffutils | [] [] [] [] | 28 doodle | [] | 6 e2fsprogs | [] [] | 10 enscript | [] [] [] | 16 error | [] [] [] [] | 18 fetchmail | [] [] | 12 fileutils | [] [] [] | 18 findutils | [] [] [] | 17 flex | [] [] | 15 fslint | [] | 9 gas | [] | 3 gawk | [] [] | 15 gbiff | [] | 5 gcal | [] | 5 gcc | [] [] [] | 6 gettext-examples | [] [] [] [] [] [] | 26 gettext-runtime | [] [] [] [] [] [] | 28 gettext-tools | [] [] [] [] [] | 19 gimp-print | [] [] | 12 gip | [] [] | 12 gliv | [] [] | 8 glunarclock | [] [] [] | 15 gmult | [] [] [] [] | 15 gnubiff | [] | 1 gnucash | () | 2 gnucash-glossary | [] [] | 9 gnuedu | [] | 2 gnulib | [] [] [] [] [] | 28 gnunet-gtk | | 1 gnutls | | 2 gpe-aerial | [] [] | 14 gpe-beam | [] [] | 14 gpe-calendar | [] [] [] [] | 19 gpe-clock | [] [] [] [] | 20 gpe-conf | [] [] | 14 gpe-contacts | [] [] | 10 gpe-edit | [] [] [] [] | 19 gpe-filemanager | [] | 5 gpe-go | [] [] | 14 gpe-login | [] [] [] [] [] | 20 gpe-ownerinfo | [] [] [] [] | 20 gpe-package | [] | 5 gpe-sketchbook | [] [] | 16 gpe-su | [] [] [] | 19 gpe-taskmanager | [] [] [] | 19 gpe-timesheet | [] [] [] [] | 18 gpe-today | [] [] [] [] [] | 20 gpe-todo | [] | 6 gphoto2 | [] [] [] [] | 20 gprof | [] [] | 11 gpsdrive | | 4 gramadoir | [] | 7 grep | [] [] [] [] | 33 gretl | | 4 gsasl | [] [] | 6 gss | [] | 5 gst-plugins | [] [] [] | 15 gst-plugins-base | [] [] [] | 9 gst-plugins-good | [] [] [] | 18 gstreamer | [] [] [] | 17 gtick | [] | 11 gtkam | [] | 13 gtkorphan | [] | 7 gtkspell | [] [] [] [] [] [] | 26 gutenprint | | 3 hello | [] [] [] [] [] | 39 id-utils | [] [] | 14 impost | [] | 4 indent | [] [] [] [] | 25 iso_3166 | [] [] [] | 15 iso_3166_1 | [] [] | 20 iso_3166_2 | | 2 iso_3166_3 | [] [] | 9 iso_4217 | [] [] | 14 iso_639 | [] | 14 jpilot | [] [] [] [] | 7 jtag | [] | 3 jwhois | [] [] [] | 13 kbd | [] [] | 12 keytouch | [] | 4 keytouch-editor | | 2 keytouch-keyboa... | | 2 latrine | [] [] | 8 ld | [] [] [] [] | 8 leafpad | [] [] [] [] | 23 libc | [] [] [] | 23 libexif | [] | 4 libextractor | [] | 5 libgpewidget | [] [] [] | 19 libgpg-error | [] | 4 libgphoto2 | [] | 8 libgphoto2_port | [] [] [] | 11 libgsasl | [] | 8 libiconv | [] | 4 libidn | [] [] | 10 lifelines | | 4 lilypond | | 2 lingoteach | [] | 6 lynx | [] [] [] | 15 m4 | [] [] [] | 18 mailutils | [] | 8 make | [] [] [] | 20 man-db | [] | 6 minicom | [] | 14 mysecretdiary | [] [] | 12 nano | [] [] | 15 nano_1_0 | [] [] [] | 18 opcodes | [] [] | 10 parted | [] [] [] | 10 pilot-qof | [] | 3 psmisc | [] | 10 pwdutils | [] | 3 python | | 0 qof | [] | 2 radius | [] | 6 recode | [] [] [] | 25 rpm | [] [] [] [] | 14 screem | [] | 2 scrollkeeper | [] [] [] [] | 26 sed | [] [] [] | 22 sh-utils | [] | 15 shared-mime-info | [] [] [] [] | 23 sharutils | [] [] [] | 23 shishi | | 1 silky | [] | 4 skencil | [] | 7 sketch | | 6 solfege | | 2 soundtracker | [] [] | 9 sp | [] | 3 stardict | [] [] [] [] | 11 system-tools-ba... | [] [] [] [] [] [] [] | 37 tar | [] [] [] [] | 19 texinfo | [] [] [] | 15 textutils | [] [] [] | 17 tin | | 1 tp-robot | [] [] [] | 10 tuxpaint | [] [] [] | 16 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux | [] [] [] | 20 vorbis-tools | [] [] | 11 wastesedge | | 1 wdiff | [] [] | 22 wget | [] [] [] | 19 xchat | [] [] [] [] | 28 xkeyboard-config | [] [] [] [] | 11 xpad | [] [] [] | 14 +---------------------------------------------------+ 77 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu 172 domains 0 1 1 78 39 0 135 13 1 50 3 54 0 2054 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If July 2006 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. 1.6 Using `gettext' in new packages =================================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `translation@iro.umontreal.ca' to make the `.pot' files available to the translation teams. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/AUTHORS������������������������������������������������������������������������������0000644�0001750�0001750�00000000213�10541302765�013651� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Main Author: Pedro Lopes <paol1976@yahoo.com> Contributors: Chris Weyl <cweyl@mindspring.com> Nickolay V. Shmyrev <nshmyrev@yandex.ru> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/COPYING������������������������������������������������������������������������������0000644�0001750�0001750�00000043105�10541302765�013643� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the program's name and a brief idea of what it does.> Copyright (C) 19yy <name of author> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/ChangeLog����������������������������������������������������������������������������0000644�0001750�0001750�00000013612�10571121376�014362� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������0.12.3 (Feb 27 2007) - New application icon. (Jean-François Fortin Tam) - Allow application icon to be themed. (Brian Pepple) - Fixed: when mass tagging, allow formats like "<track> <title>" to work by not allowing spaces in the track number. - Fixed: when mass renaming with new path, absolute paths are no longer treated as relative. - Fixed: problem with the working dir MRU list not being case- sensitive. - Fixed: UI lockup with the Vorbis genre combobox. (Brian Pepple) - Other minor fixes. - Added nl, pl, sv and pt_BR translations. 0.12.2 (May 26 2005) - Fixed libglade signal autoconnect problems due to missing linker flag -export-dynamic (thanks to Felix Braun for pointing out the source of the problem) - Cleaned up some autoconf/automake stuff. Now using automake 1.9. - Added bg, lt, ua and ru translations. 0.12.1 (Mar 7 2005) - Added es, it, de and en_GB translations. - Added credits to the "About" dialog 0.12 (Feb 8 2005) - Internationalization support. (Nickolay V. Shmyrev, me) - Added pt, fr, cs translations. - Very large directory scans now pop up a progress dialog with a stop button. - Fixed: don't rename file when required tag field is missing. - Fixed clearing Vorbis tags even when "Clear only ID3 v1/2" was selected. - Fixed <track> only accepting digits when tagging from file name. - Other minor fixes and UI improvements. 0.11.1 (Oct 31 2004) - Fixed text encoding errors with Vorbis tags in non-UTF8 locales. - Fixed compilation error on FreeBSD. (Tom Pawlowski) - Removed direct access to the multi-file operations in the list context menu, because using them was error prone. - Other minor UI improvements. 0.11 (Oct 23 2004) - Major UI reorganization: * File list is always visible * The operation progress now pops up in a separate window * Better GNOME HIG compliance * Lots of other small changes - All multi-file operations can now optionally apply only to the selected files. This is the default if there is a selection in the file list. - All multi-file operations can now be interrupted. - The Clear Tags feature was moved to its own tab, with new options to clear all tags, only ID3v1 or only ID3v2. - Added a context menu to the file list. - New feature: Manual Rename (file list context menu). - New feature: Delete Selected Files (file list context menu). - Added a work-around for the id3lib link bugs to configure 0.10 (Aug 14 2004) - Ported to GTK 2.4 - All internal text handling is now done in UTF-8. - Resources (icons, glade file, etc.) are now installed as separate files, not embedded in the executable. - Fixed sorting playlist by tag field - Removed C99-style declarations that cause syntax errors in gcc 2.9x (again!) 0.9 (Mar 20 2004) - Added --disable-mp3 and --disable-vorbis options to configure. Support for each format is also disabled automatically if the required libraries are not present. - Automatic tagging can now get information from the file's location, e.g "<artist>/<album>/<track>. <title>.mp3". - Added an advanced mode for editing ID3v2 tags. - Made some changes to Vorbis advanced mode to make it work the same way as ID3v2 advanced mode. - Added command line switch --version and fixed a bug in --dump. 0.8 (Feb 12 2004) - Added ID3 v2 support through ID3Lib. - New ID3 preferences dialog, controlling what ID3 versions to write when mass tagging. 0.7 (not released) - New Character Converisons dialog. Includes support for case conversions when tagging and renaming. Space conversions are also more flexible. - Added an "about" dialog. - Added the menu bar. - Fixed problem with gcc 3 dropping support for multiline strings. 0.6.1 (Dec 1 2002) - Advanced editing mode for Ogg Vorbis tags allows full control over Vorbis comment fields. - Better keyboard navigation in the browse/edit tab. - UI responsiveness improvements. - Keep window size between sessions - Accept command line parameters. 0.6 (Oct 21 2002) - Renamed project to Audio Tag Tool, due to... - Support for Ogg Vorbis files. - New option: "Sort across directories" in playlist maker, when sorting by tag field. - New option: "Convert underscores to spaces" when tagging. (Tom Marshall) - When renaming, replace "/" with "-" in the file name (slash is not allowed in Unix file names.) - Use system locale (was missing call to gtk_set_locale) - Changes to autoconf stuff (now requires autoconf 2.5) 0.5.2 (Apr 16 2002) - Fixed the crash some people were experiencing when turning on the "Include subdirectories" option. 0.5.1 (Apr 14 2002) - Guard against loops in the directory structure (avoid infinite recursion.) - Removed a C99'ism in the source that was causing syntax errors in gcc 2.9 - Cleanup some minor memory problems detected by valgrind. 0.5 (Jan 26 2002) - File names are now case insensitive. This applies to automatic tagging and directory scanning (now you can see those files with upper-case extensions...) - The interface remembers more settings between sessions (rewrote the preferences to handle arbitrary attributes.) - File move/rename will no longer overwrite existing files. (Fredrik Estreen) - Fixed a number of bugs in the playlist maker. 0.4 (Dec 26 2001) - New tab: Playlist maker. - New option: auto-increment track number when tagging. - Fixed memory corruption in dir_select.c 0.3 (Nov 18 2001) - The file rename operation was extended to allow directories in the file name. This means mp3 files can now be organized automatically into directories. - Created autoconf/automake framework. (Chris Weyl) - Created spec file template for RPM packaging. (Chris Weyl) - Created desktop file for GNOME. (Chris Weyl) 0.2 (Nov 2 2001) - Added most recently used (MRU) dropdown lists to some of the fields. - Use an rc file (~/.tagtoolrc) to keep program settings. 0.1 (Oct 7 2001) - First release ����������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/INSTALL������������������������������������������������������������������������������0000644�0001750�0001750�00000020537�10541302765�013645� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������These installation instructions explain how to compile and install Audio Tag tool from source. What follows are generic instructions for autoconf based packages, however there are 2 options to 'configure' that are specific to Audio Tag Tool: --disable-mp3 Compiles the program without support for MPEG audio files. Support will also automatically be disabled if the id3lib library and headers are not found. --disable-vorbis Compiles the program without support for Ogg Vorbis files. Support will also automatically be disabled if the libvorbis library and headers are not found. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. �����������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/Makefile.am��������������������������������������������������������������������������0000644�0001750�0001750�00000000500�10541302765�014634� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in #SUBDIRS = src pixmaps data po help SUBDIRS = src pixmaps data po EXTRA_DIST = \ BUGS \ autogen.sh \ intltool-update.in \ intltool-extract.in \ intltool-merge.in \ config.rpath \ mkinstalldirs \ tagtool.spec \ tagtool.spec.in ACLOCAL_AMFLAGS = -I m4 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/NEWS���������������������������������������������������������������������������������0000644�0001750�0001750�00000000353�10570657137�013315� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������News for version 0.12.3 ======================= This is a long overdue bug-fix release (see the ChangeLog for details). There is also a new application icon and new translations for Polish, Swedish, Dutch and Brazilian Portuguese. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/THANKS�������������������������������������������������������������������������������0000644�0001750�0001750�00000001654�10570655644�013537� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������THANKS TO Brian Pepple <bpepple@fedoraproject.org> - Patches & bugfixes Nickolay V. Shmyrev <nshmyrev@yandex.ru> - Initial support for translation. Jean-François Fortin Tam <nekohayo@gmail.com> - For the new app icon Chris Weyl <cweyl@mindspring.com> - autoconfiscated the thing - RPM packaging Rafael Bermúdez <rafaelber@yahoo.com.mx> Christian Bjelle <christian@bjelle.se> Dovydas <laisve@gmail.com> Daniel van Eeden <daniel_e@dds.nl> Rafal Glazar <rafal_glazar@o2.pl> Dmytro Goykolov <goykolov@pisem.net> Jeremie Knuesel <jeremie.knuesel@epfl.ch> Oleksandr Korneta <atenrok@ua.fm> Vítězslav Kotrla <vitko@post.cz> Pavel Maryanov <acid_jack@ukr.net> Christopher Orr <chris@protactin.co.uk> Rostislav Raykov <zbrox@i-space.org> Emilio Scalise <emisca@rocketmail.com> Lucas Mazzardo Veloso <lmveloso@gmail.com> Jan Wenzel <scripter01@gmx.net> - For the translations And everyone who reported bugs and suggested features. ������������������������������������������������������������������������������������tagtool-0.12.3/TODO���������������������������������������������������������������������������������0000644�0001750�0001750�00000001327�10541302764�013277� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� Abandon id3lib. It's buggy and appears to no longer be maintained. This will make it possible to fix th current ID3v2 encoding problems, and other minor bugs. On-line help and documentation Support more formats: FLAC, Musepack Improvements of the MP3 frame header parsing. May need to parse the whole file rather than just the first frame: - More robust (don't confuse random data with valid frames) - Display the playing time of the file - Display correct info for VBR files Misc features: - Option to show file list as a treeview - Mass copy ID3v1 to v2 (and vice-versa) - Mass case/character conversions - Auto-update playlists when renaming - freedb/musibrainz support (will need playing time of each file) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/aclocal.m4���������������������������������������������������������������������������0000644�0001750�0001750�00000165360�10571112702�014451� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# generated automatically by aclocal 1.7.9 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. # Do all the work for Automake. -*- Autoconf -*- # This macro actually does too much some checks are only needed if # your package does certain things. But this isn't really a big deal. # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 10 AC_PREREQ([2.54]) # Autoconf 2.50 wants to disallow AM_ names. We explicitly allow # the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_MISSING_PROG(AMTAR, tar) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl ]) ]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $1 | $1:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) # Copyright 2002 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.7"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.7.9])]) # Helper functions for option handling. -*- Autoconf -*- # Copyright 2001, 2002 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 2 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # # Check to make sure that the build environment is sane. # # Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 3 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # -*- Autoconf -*- # Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 3 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # AM_AUX_DIR_EXPAND # Copyright 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. # Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50]) AC_DEFUN([AM_AUX_DIR_EXPAND], [ # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. # Copyright 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"$am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # AM_PROG_INSTALL_STRIP # Copyright 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # -*- Autoconf -*- # Copyright (C) 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 1 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # serial 5 -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c : > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # (even with -Werror). So we grep stderr for any message # that says an option was ignored. if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking Speeds up one-time builds --enable-dependency-tracking Do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH]) ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. #serial 2 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue # Extract the definition of DEP_FILES from the Makefile without # running `make'. DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` test -z "$DEPDIR" && continue # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n -e '/^U = / s///p' < "$mf"` test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" # We invoke sed twice because it is the simplest approach to # changing $(DEPDIR) to its actual value in the expansion. for file in `sed -n -e ' /^DEP_FILES = .*\\\\$/ { s/^DEP_FILES = // :loop s/\\\\$// p n /\\\\$/ b loop p } /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 2 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright 1997, 2000, 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 5 AC_PREREQ(2.52) # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE]) AC_SUBST([$1_FALSE]) if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]) fi])]) # Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*- # Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. AC_PREREQ([2.52]) # serial 6 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Add --enable-maintainer-mode option to configure. # From Jim Meyering # Copyright 1996, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 2 AC_DEFUN([AM_MAINTAINER_MODE], [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode is disabled by default AC_ARG_ENABLE(maintainer-mode, [ --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer], USE_MAINTAINER_MODE=$enableval, USE_MAINTAINER_MODE=no) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST(MAINT)dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # # Copyright © 2004 Scott James Remnant <scott@netsplit.com>. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # # Similar to PKG_CHECK_MODULES, make sure that the first instance of # this or PKG_CHECK_MODULES is called, or make sure to call # PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_ifval([$2], [$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$PKG_CONFIG"; then if test -n "$$1"; then pkg_cv_[]$1="$$1" else PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) fi else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` else $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD ifelse([$4], , [AC_MSG_ERROR(dnl [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT ])], [$4]) elif test $pkg_failed = untried; then ifelse([$4], , [AC_MSG_FAILURE(dnl [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.])], [$4]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) ifelse([$3], , :, [$3]) fi[]dnl ])# PKG_CHECK_MODULES dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 35 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [AC_PREREQ([2.50])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac if test -n "$1"; then AC_MSG_CHECKING(for intltool >= $1) INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`awk -F\" '/\\$VERSION / { print $ 2; }' ${ac_aux_dir}/intltool-update.in` [INTLTOOL_APPLIED_VERSION_AS_INT=`awk -F\" '/\\$VERSION / { split($ 2, VERSION, "."); print VERSION[1] * 1000 + VERSION[2] * 100 + VERSION[3];}' ${ac_aux_dir}/intltool-update.in` ] AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' AC_SUBST(INTLTOOL_DESKTOP_RULE) AC_SUBST(INTLTOOL_DIRECTORY_RULE) AC_SUBST(INTLTOOL_KEYS_RULE) AC_SUBST(INTLTOOL_PROP_RULE) AC_SUBST(INTLTOOL_OAF_RULE) AC_SUBST(INTLTOOL_PONG_RULE) AC_SUBST(INTLTOOL_SERVER_RULE) AC_SUBST(INTLTOOL_SHEET_RULE) AC_SUBST(INTLTOOL_SOUNDLIST_RULE) AC_SUBST(INTLTOOL_UI_RULE) AC_SUBST(INTLTOOL_XAM_RULE) AC_SUBST(INTLTOOL_KBD_RULE) AC_SUBST(INTLTOOL_XML_RULE) AC_SUBST(INTLTOOL_XML_NOMERGE_RULE) AC_SUBST(INTLTOOL_CAVES_RULE) AC_SUBST(INTLTOOL_SCHEMAS_RULE) AC_SUBST(INTLTOOL_THEME_RULE) AC_SUBST(INTLTOOL_SERVICE_RULE) # Use the tools built into the package, not the ones that are installed. AC_SUBST(INTLTOOL_EXTRACT, '$(top_builddir)/intltool-extract') AC_SUBST(INTLTOOL_MERGE, '$(top_builddir)/intltool-merge') AC_SUBST(INTLTOOL_UPDATE, '$(top_builddir)/intltool-update') AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found; required for intltool]) fi if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then AC_MSG_ERROR([perl 5.x required for intltool]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi AC_PATH_PROG(INTLTOOL_ICONV, iconv, iconv) AC_PATH_PROG(INTLTOOL_MSGFMT, msgfmt, msgfmt) AC_PATH_PROG(INTLTOOL_MSGMERGE, msgmerge, msgmerge) AC_PATH_PROG(INTLTOOL_XGETTEXT, xgettext, xgettext) # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) IT_PO_SUBDIR([po]) dnl The following is very similar to dnl dnl AC_CONFIG_FILES([intltool-extract intltool-merge intltool-update]) dnl dnl with the following slight differences: dnl - the *.in files are in ac_aux_dir, dnl - if the file haven't changed upon reconfigure, it's not touched, dnl - the evaluation of the third parameter enables a hack which computes dnl the actual value of $libdir, dnl - the user sees "executing intltool commands", instead of dnl "creating intltool-extract" and such. dnl dnl Nothing crucial here, and we could use AC_CONFIG_FILES, if there were dnl a reason for it. AC_CONFIG_COMMANDS([intltool], [ for file in intltool-extract intltool-merge intltool-update; do sed -e "s|@INTLTOOL_EXTRACT@|`pwd`/intltool-extract|g" \ -e "s|@INTLTOOL_LIBDIR@|${INTLTOOL_LIBDIR}|g" \ -e "s|@INTLTOOL_ICONV@|${INTLTOOL_ICONV}|g" \ -e "s|@INTLTOOL_MSGFMT@|${INTLTOOL_MSGFMT}|g" \ -e "s|@INTLTOOL_MSGMERGE@|${INTLTOOL_MSGMERGE}|g" \ -e "s|@INTLTOOL_XGETTEXT@|${INTLTOOL_XGETTEXT}|g" \ -e "s|@INTLTOOL_PERL@|${INTLTOOL_PERL}|g" \ < ${ac_aux_dir}/${file}.in > ${file}.out if cmp -s ${file} ${file}.out 2>/dev/null; then rm -f ${file}.out else mv -f ${file}.out ${file} fi chmod ugo+x ${file} chmod u+w ${file} done ], [INTLTOOL_PERL='${INTLTOOL_PERL}' ac_aux_dir='${ac_aux_dir}' prefix="$prefix" exec_prefix="$exec_prefix" INTLTOOL_LIBDIR="$libdir" INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' INTLTOOL_ICONV='${INTLTOOL_ICONV}' INTLTOOL_MSGFMT='${INTLTOOL_MSGFMT}' INTLTOOL_MSGMERGE='${INTLTOOL_MSGMERGE}' INTLTOOL_XGETTEXT='${INTLTOOL_XGETTEXT}']) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be exetuted at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] if test ! -f "$1/Makefile"; then AC_MSG_ERROR([$1/Makefile is not ready.]) fi mv "$1/Makefile" "$1/Makefile.tmp" [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.tmp" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) # Copyright (C) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General # Public License, this file may be distributed as part of a program # that contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # # Macro to add for using GNU gettext. # Ulrich Drepper <drepper@cygnus.com>, 1995, 1996 # # Modified to never use included libintl. # Owen Taylor <otaylor@redhat.com>, 12/15/1998 # # Major rework to remove unused code # Owen Taylor <otaylor@redhat.com>, 12/11/2002 # # Added better handling of ALL_LINGUAS from GNU gettext version # written by Bruno Haible, Owen Taylor <otaylor.redhat.com> 5/30/3002 # # Modified to require ngettext # Matthias Clasen <mclasen@redhat.com> 08/06/2004 # # We need this here as well, since someone might use autoconf-2.5x # to configure GLib then an older version to configure a package # using AM_GLIB_GNU_GETTEXT AC_PREREQ(2.53) dnl dnl We go to great lengths to make sure that aclocal won't dnl try to pull in the installed version of these macros dnl when running aclocal in the glib directory. dnl m4_copy([AC_DEFUN],[glib_DEFUN]) m4_copy([AC_REQUIRE],[glib_REQUIRE]) dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. dnl # GLIB_LC_MESSAGES #-------------------- glib_DEFUN([GLIB_LC_MESSAGES], [AC_CHECK_HEADERS([locale.h]) if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your <locale.h> file defines LC_MESSAGES.]) fi fi]) # GLIB_PATH_PROG_WITH_TEST #---------------------------- dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, [AC_TRY_LINK([ #include <libintl.h> ], [return !ngettext ("","", 1)], gt_cv_func_ngettext_libc=yes, gt_cv_func_ngettext_libc=no) ]) if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([ #include <libintl.h> ], [return !dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no) ]) fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CHECK_FUNCS(bind_textdomain_codeset) fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes)])]) if test "$gt_cv_func_dgettext_libintl" != "yes" ; then AC_MSG_CHECKING([if -liconv is needed to use gettext]) AC_MSG_RESULT([]) AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dcgettext, [gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv], :,-liconv)], :,-liconv) fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then AC_DEFINE(HAVE_GETTEXT,1, [Define if the GNU gettext() function is already present or preinstalled.]) GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share and dnl and CATOBJEXT=.gmo in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac]) LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi ]) if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.in. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLLIBS) AC_SUBST(PO_IN_DATADIR_TRUE) AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) # AM_GLIB_GNU_GETTEXT # ------------------- # Do checks necessary for use of gettext. If a suitable implementation # of gettext is found in either in libintl or in the C library, # it will set INTLLIBS to the libraries needed for use of gettext # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() # on various variables needed by the Makefile.in.in installed by # glib-gettextize. dnl glib_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_HEADER_STDC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ]) # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) # ------------------------------- # Define VARIABLE to the location where catalog files will # be installed by po/Makefile. glib_DEFUN([GLIB_DEFINE_LOCALEDIR], [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" AC_DEFINE_UNQUOTED($1, "$localedir", [Define the location where the catalogs will be installed]) ]) dnl dnl Now the definitions that aclocal will find dnl ifdef(glib_configure_in,[],[ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/compile������������������������������������������������������������������������������0000755�0001750�0001750�00000005761�10447737234�014204� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Wrapper for compilers which do not understand `-c -o'. # Copyright 1999, 2000 Free Software Foundation, Inc. # Written by Tom Tromey <tromey@cygnus.com>. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Usage: # compile PROGRAM [ARGS]... # `-o FOO.o' is removed from the args passed to the actual compile. # Usage statement added by Billy Biggs <vektor@dumbterm.net>. if [ -z $1 ]; then echo "Wrapper for compilers which do not understand '-c -o'." echo "usage: compile PROGRAM [ARGS]..." echo "'-o FOO.o' is removed from the args passed to the actual compile." exit 1 fi prog=$1 shift ofile= cfile= args= while test $# -gt 0; do case "$1" in -o) # configure might choose to run compile as `compile cc -o foo foo.c'. # So we do something ugly here. ofile=$2 shift case "$ofile" in *.o | *.obj) ;; *) args="$args -o $ofile" ofile= ;; esac ;; *.c) cfile=$1 args="$args $1" ;; *) args="$args $1" ;; esac shift done if test -z "$ofile" || test -z "$cfile"; then # If no `-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # `.c' file was seen then we are probably linking. That is also # ok. exec "$prog" $args fi # Name of file we expect compiler to create. cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'` # Create the lock directory. # Note: use `[/.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d while true; do if mkdir $lockdir > /dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir $lockdir; exit 1" 1 2 15 # Run the compile. "$prog" $args status=$? if test -f "$cofile"; then mv "$cofile" "$ofile" fi rmdir $lockdir exit $status ���������������tagtool-0.12.3/config.guess�������������������������������������������������������������������������0000755�0001750�0001750�00000126260�10541302764�015133� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2006-07-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner <per@bothner.com>. # Please send patches to <config-patches@gnu.org>. Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include <stdio.h> /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include <sys/systemcfg.h> main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include <stdlib.h> #include <unistd.h> int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include <unistd.h> int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; x86:Interix*:[3456]*) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T:Interix*:[3456]*) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include <features.h> #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` echo ${UNAME_MACHINE}-pc-isc$UNAME_REL elif /bin/uname -X 2>/dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says <Richard.M.Bartel@ccMail.Census.GOV> echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes <hewes@openmarket.com>. # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c <<EOF #ifdef _SEQUENT_ # include <sys/types.h> # include <sys/utsname.h> #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include <sys/param.h> printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include <sys/param.h> # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 <<EOF $0: unable to guess system type This script, last modified $timestamp, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess and http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub If the version you run ($0) is already up to date, please send the following data and any information you think might be pertinent to <config-patches@gnu.org> in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/config.h.in��������������������������������������������������������������������������0000644�0001750�0001750�00000010524�10541302765�014632� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* config.h.in. Generated from configure.ac by autoheader. */ /* always defined to indicate that i18n is enabled */ #undef ENABLE_NLS /* Gettext package */ #undef GETTEXT_PACKAGE /* Define to 1 if you have the `bind_textdomain_codeset' function. */ #undef HAVE_BIND_TEXTDOMAIN_CODESET /* Define to 1 if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'. */ #undef HAVE_DIRENT_H /* Define to 1 if your system has a working POSIX `fnmatch' function. */ #undef HAVE_FNMATCH /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the <gnuregex.h> header file. */ #undef HAVE_GNUREGEX_H /* Define to 1 if you have the <gnu/regex.h> header file. */ #undef HAVE_GNU_REGEX_H /* Define to 1 if you have the <id3.h> header file. */ #undef HAVE_ID3_H /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the <langinfo.h> header file. */ #undef HAVE_LANGINFO_H /* Define if your <locale.h> file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if you have the `gnuregex' library (-lgnuregex). */ #undef HAVE_LIBGNUREGEX /* Define to 1 if you have the `id3' library (-lid3). */ #undef HAVE_LIBID3 /* Define to 1 if you have the `vorbis' library (-lvorbis). */ #undef HAVE_LIBVORBIS /* Define to 1 if you have the `vorbisfile' library (-lvorbisfile). */ #undef HAVE_LIBVORBISFILE /* Define to 1 if you have the <locale.h> header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */ #undef HAVE_NDIR_H /* Define to 1 if you have the `nl_langinfo' function. */ #undef HAVE_NL_LANGINFO /* Define to 1 if you have the <ogg/ogg.h> header file. */ #undef HAVE_OGG_OGG_H /* Define to 1 if you have the `regcomp' function. */ #undef HAVE_REGCOMP /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ #undef HAVE_STAT_EMPTY_STRING_BUG /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strcoll' function and it is properly defined. */ #undef HAVE_STRCOLL /* Define to 1 if you have the <strings.h> header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the <string.h> header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'. */ #undef HAVE_SYS_DIR_H /* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'. */ #undef HAVE_SYS_NDIR_H /* Define to 1 if you have the <sys/stat.h> header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the <sys/types.h> header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the <vorbis/codec.h> header file. */ #undef HAVE_VORBIS_CODEC_H /* Define to 1 if you have the <vorbis/vorbisfile.h> header file. */ #undef HAVE_VORBIS_VORBISFILE_H /* Define to 1 if the ID3FrameInfo_* functions are missing from libid3 */ #undef LIBID3_MISSING_ID3FRAMEINFO /* Define the location where the catalogs will be installed */ #undef LOCALEDIR /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `int' if <sys/types.h> does not define. */ #undef mode_t /* Define to `unsigned int' if <sys/types.h> does not define. */ #undef size_t ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/config.rpath�������������������������������������������������������������������������0000755�0001750�0001750�00000037444�10513470170�015124� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2006 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; darwin*) case $cc_basename in xlc*) wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; newsos6) ;; linux*) case $cc_basename in icc* | ecc*) wl='-Wl,' ;; pgcc | pgf77 | pgf90) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; sco3.2v5*) ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) wl='-Wl,' ;; sysv4*MP*) ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we cannot use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if test "$GCC" = yes ; then : else case $cc_basename in xlc*) ;; *) ld_shlibs=no ;; esac fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | kfreebsd*-gnu | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; openbsd*) hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. libname_spec='lib$name' case "$host_os" in aix3*) ;; aix4* | aix5*) ;; amigaos*) ;; beos*) ;; bsdi[45]*) ;; cygwin* | mingw* | pw32*) shrext=.dll ;; darwin* | rhapsody*) shrext=.dylib ;; dgux*) ;; freebsd1*) ;; kfreebsd*-gnu) ;; freebsd* | dragonfly*) ;; gnu*) ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac ;; interix3*) ;; irix5* | irix6* | nonstopux*) case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux*) ;; knetbsd*-gnu) ;; netbsd*) ;; newsos6) ;; nto-qnx*) ;; openbsd*) ;; os2*) libname_spec='$name' shrext=.dll ;; osf3* | osf4* | osf5*) ;; solaris*) ;; sunos4*) ;; sysv4 | sysv4.3*) ;; sysv4*MP*) ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ;; uts4*) ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF # How to pass a linker flag through the compiler. wl="$escaped_wl" # Static library suffix (normally "a"). libext="$libext" # Shared library suffix (normally "so"). shlibext="$shlibext" # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec" # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator="$hardcode_libdir_separator" # Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the # resulting binary. hardcode_direct="$hardcode_direct" # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L="$hardcode_minus_L" EOF ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/config.sub���������������������������������������������������������������������������0000755�0001750�0001750�00000077460�10541302764�014605� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2006-09-20' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to <config-patches@gnu.org>. Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/configure.ac�������������������������������������������������������������������������0000644�0001750�0001750�00000010102�10570655546�015077� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl Process this file with autoconf to produce a configure script. AC_INIT(tagtool, 0.12.3) AM_INIT_AUTOMAKE(${PACKAGE_NAME}, ${PACKAGE_VERSION}) AC_CONFIG_SRCDIR([src/main.c]) AM_CONFIG_HEADER(config.h) AM_MAINTAINER_MODE SPEC_RELEASE="1" AC_SUBST(SPEC_RELEASE) dnl Command line options AC_ARG_ENABLE(mp3, AC_HELP_STRING([--disable-mp3], [Disable MP3 support (if enabled, id3lib is required)]), [enable_mp3=no; disable_mp3_reason="(disabled)"], [enable_mp3=yes]) AC_ARG_ENABLE(vorbis, AC_HELP_STRING([--disable-vorbis], [Disable Ogg Vorbis support (if enabled, libvorbis is required)]), [enable_vorbis=no; disable_vorbis_reason="(disabled)"], [enable_vorbis=yes]) if test "$enable_mp3" = "no" && test "$enable_vorbis" = "no"; then AC_MSG_ERROR([At least one of 'mp3' or 'vorbis' must be enabled. Try './configure --help' for a list of options.]) fi; dnl Checks for programs. AC_PROG_CC AC_PROG_AWK AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET dnl Checks for libraries and header files AC_HEADER_DIRENT AC_HEADER_STDC AC_CHECK_HEADERS([stdlib.h string.h unistd.h langinfo.h],, [AC_MSG_ERROR([Missing necessary header files.])]) dnl Use gnuregex in FreeBSD OSTYPE=`uname -s` if test "$OSTYPE" = "FreeBSD"; then AC_CHECK_HEADERS([gnuregex.h gnu/regex.h]) AC_CHECK_LIB(gnuregex, main,, [AC_MSG_ERROR([Missing required library])]) fi; dnl Check for gtk and related libraries PKG_CHECK_MODULES(GTK, [glib-2.0 >= 2.12.0 gtk+-2.0 >= 2.8.0 libglade-2.0 >= 2.6.0]) AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) dnl Check for libid3 and libvorbis if test "$enable_mp3" = "yes"; then AC_CHECK_HEADERS([id3.h],, [enable_mp3=no; disable_mp3_reason="(missing id3lib headers)"]) fi; if test "$enable_mp3" = "yes"; then dnl Fix missing link dependencies in libid3.so (some distros have fixed dnl this in their own libid3 packages, others haven't...) SAVE_LDFLAGS=$LDFLAGS LDFLAGS="-lstdc++ -lz $LDFLAGS" AC_CHECK_LIB(id3, main,, [enable_mp3=no; disable_mp3_reason="(missing id3 library)"]) AC_CHECK_LIB(id3, ID3FrameInfo_LongName,, [AC_DEFINE(LIBID3_MISSING_ID3FRAMEINFO, 1, [Define to 1 if the ID3FrameInfo_* functions are missing from libid3])]) if test "$enable_mp3" = "no"; then LDFLAGS=$SAVE_LDFLAGS fi; fi; if test "$enable_vorbis" = "yes"; then AC_CHECK_HEADERS([ogg/ogg.h vorbis/codec.h vorbis/vorbisfile.h],, [enable_vorbis=no; disable_vorbis_reason="(missing vorbis headers)"]) fi; if test "$enable_vorbis" = "yes"; then AC_CHECK_LIB(vorbis, main,, [enable_vorbis=no; disable_vorbis_reason="(missing vorbis library)"]) fi; if test "$enable_vorbis" = "yes"; then AC_CHECK_LIB(vorbisfile, main,, [enable_vorbis=no; disable_vorbis_reason="(missing vorbisfile library)"]) fi; AM_CONDITIONAL(ENABLE_MP3, test "$enable_mp3" = "yes") AM_CONDITIONAL(ENABLE_VORBIS, test "$enable_vorbis" = "yes") if test "$enable_mp3" = "no" && test "$enable_vorbis" = "no"; then AC_MSG_RESULT([ No MP3 support $disable_mp3_reason No Ogg Vorbis support $disable_vorbis_reason ]) AC_MSG_ERROR([Neither MP3 or Vorbis support is being built. Cannot continue.]) fi; dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_MODE_T AC_TYPE_SIZE_T dnl Checks for library functions. AC_FUNC_STAT AC_FUNC_FNMATCH AC_FUNC_STRCOLL AC_FUNC_STRTOD AC_CHECK_FUNCS([strcasecmp nl_langinfo regcomp],, [AC_MSG_ERROR([Missing necessary functions.])]) dnl Internationalization AC_PROG_INTLTOOL([0.30]) GETTEXT_PACKAGE=tagtool AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package]) ALL_LINGUAS="pt fr cs es it en_GB de bg lt ua ru pl sv nl pt_BR" AM_GLIB_GNU_GETTEXT dnl AM_GNU_GETTEXT([external]) dnl Define useful directories AM_GLIB_DEFINE_LOCALEDIR(LOCALEDIR) dnl Output AC_CONFIG_FILES([ data/Makefile pixmaps/Makefile po/Makefile.in src/Makefile Makefile tagtool.spec ]) dnl help/Makefile dnl help/C/Makefile AC_OUTPUT AC_MSG_RESULT([ Configuration information: MP3 support: $enable_mp3 $disable_mp3_reason Ogg Vorbis support: $enable_vorbis $disable_vorbis_reason Now run 'make' to compile $PACKAGE_NAME ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/depcomp������������������������������������������������������������������������������0000755�0001750�0001750�00000033052�10447737234�014175� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # depcomp - compile a program generating dependencies as side-effects # Copyright 1999, 2000, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # `libtool' can also be set to `yes' or `no'. if test -z "$depfile"; then base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` dir=`echo "$object" | sed 's,/.*$,/,'` if test "$dir" = "$object"; then dir= fi # FIXME: should be _deps on DOS. depfile="$dir.deps/$base" fi tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1="$dir.libs/$base.lo.d" tmpdepfile2="$dir.libs/$base.d" "$@" -Wc,-MD else tmpdepfile1="$dir$base.o.d" tmpdepfile2="$dir$base.d" "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" else tmpdepfile="$tmpdepfile2" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/install-sh���������������������������������������������������������������������������0000755�0001750�0001750�00000015722�10447737234�014630� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # # install - install a program, script, or datafile # # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd=$cpprog shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "$0: no input file specified" >&2 exit 1 else : fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d "$dst" ]; then instcmd=: chmodcmd="" else instcmd=$mkdirprog fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f "$src" ] || [ -d "$src" ] then : else echo "$0: $src does not exist" >&2 exit 1 fi if [ x"$dst" = x ] then echo "$0: no destination specified" >&2 exit 1 else : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d "$dst" ] then dst=$dst/`basename "$src"` else : fi fi ## this sed command emulates the dirname command dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` IFS=$oIFS pathcomp='' while [ $# -ne 0 ] ; do pathcomp=$pathcomp$1 shift if [ ! -d "$pathcomp" ] ; then $mkdirprog "$pathcomp" else : fi pathcomp=$pathcomp/ done fi if [ x"$dir_arg" != x ] then $doit $instcmd "$dst" && if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename "$dst"` else dstfile=`basename "$dst" $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename "$dst"` else : fi # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up temp files at exit. trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 trap '(exit $?); exit' 1 2 13 15 # Move or copy the file name to the temp name $doit $instcmd "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && # Now remove or move aside any old file at destination location. We try this # two ways since rm can't unlink itself on some systems and the destination # file might be busy for other reasons. In this case, the final cleanup # might fail but the new file should still install successfully. { if [ -f "$dstdir/$dstfile" ] then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" fi && # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit } ����������������������������������������������tagtool-0.12.3/missing������������������������������������������������������������������������������0000755�0001750�0001750�00000024032�10447737234�014215� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 Free Software Foundation, Inc. # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing 0.4 - GNU automake" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then # We have makeinfo, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; tar) shift if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 fi # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/mkinstalldirs������������������������������������������������������������������������0000755�0001750�0001750�00000003704�10447737234�015427� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman <friedman@prep.ai.mit.edu> # Created: 1993-05-16 # Public domain errstatus=0 dirmode="" usage="\ Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" 1>&2 exit 0 ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac case $dirmode in '') if mkdir -p -- . 2>/dev/null; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" fi ;; *) if mkdir -m "$dirmode" -p -- . 2>/dev/null; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" fi ;; esac for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr="" chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp="$pathcomp/" done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # End: # mkinstalldirs ends here ������������������������������������������������������������tagtool-0.12.3/tagtool.spec.in����������������������������������������������������������������������0000644�0001750�0001750�00000003052�10541302765�015537� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Summary: Audio Tag Tool is an MP3 and Vorbis tag manager. Name: @PACKAGE@ Version: @VERSION@ Release: @SPEC_RELEASE@ License: GPL Group: Sound Source: http://pwp.netcabo.pt/paol/tagtool/%{name}-%{version}.tar.gz URL: http://pwp.netcabo.pt/paol/tagtool/ Buildroot: %{_tmppath}/%{name}-root Packager: Pedro Lopes <paol1976@yahoo.com> Requires: gtk2 >= 2.4.0, libglade2 >= 2.3.6, libxml2 >= 2.6.0, libvorbis >= 1.0, id3lib >= 3.8.0 BuildRequires: gtk2-devel, libglade2-devel, libxml2-devel, libvorbis-devel, id3lib-devel %description Audio Tag Tool is a program to manage the information fields in MP3 and Ogg Vorbis files (commonly called 'tags'). It can be used to edit tags one by one, but the most useful features are mass tag and mass rename. These are designed to tag or rename hundreds of files at once, in any desired format. %prep %setup -q %build CFLAGS="-g -O2" %configure make %install rm -rf $RPM_BUILD_ROOT %makeinstall #rm -r $RPM_BUILD_ROOT/var/scrollkeeper %post scrollkeeper-update %postun scrollkeeper-update %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-, root, root) %doc AUTHORS BUGS COPYING ChangeLog NEWS README THANKS TODO %{_bindir}/%{name} %{_datadir}/applications/tagtool.desktop %{_datadir}/tagtool/* %{_datadir}/pixmaps/TagTool.png %{_datadir}/locale/* %changelog * Fri Jul 7 2006 Michael Kuerschner <m-i.kuerschner@gmx.de> - Rebuild on FC4 * Wed Nov 3 2004 Nickolay V. Shmyrev <nshmyrev@yandex.ru> - Update to recent version * Sun Nov 4 2001 Chris Weyl <cweyl@mindspring.com> - Autoconfiscated package. - First spec file. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/BUGS���������������������������������������������������������������������������������0000644�0001750�0001750�00000001250�10541302764�013265� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Known Bugs: - ID3v2 tags are always saved in Latin1 encoding. (This is due to a bug in the C binding of id3lib.) - When tagging multiple files, it should be possible to clear a field by checking it and leaving it empty. Currently this does not work for mp3 files that have both v1 and v2 tags, unless other tag fields are also being set to non-empty values (Appears to be another id3lib bug) Find a bug not listed here? Send me a message (paol1976@yahoo.com). Please include a reasonably detailed description of the problem. Mention at least your OS version, how you installed tagtool (from source, distro package, etc.) and how to reproduce the problem. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/autogen.sh���������������������������������������������������������������������������0000755�0001750�0001750�00000001765�10541302764�014616� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # Run this to generate all the initial makefiles, etc. srcdir=`dirname $0` test -z "$srcdir" && srcdir=. (test -f $srcdir/configure.ac) || { echo -n "*** Error: Directory "\`$srcdir\'" does not look like the" echo " project top-level directory" exit 1 } OSTYPE=`uname -s` echo "=== Running aclocal" aclocal -I m4 || { echo "*** Error: aclocal failed." exit 1 } echo "=== Running autoheader" autoheader || { echo "*** Error: autoheader failed." exit 1 } #echo "=== Running glib-gettextize" #gettextize -f --no-changelog || { # echo "*** Error: gettextize failed." # exit 1 #} # #echo "=== Running intltoolize" #intltoolize -f --automake || { # echo "*** Error: intltoolize failed." # exit 1 #} echo "=== Running automake" automake --add-missing || { echo "*** Error: automake failed." exit 1 } echo "=== Running autoconf" autoconf || { echo "*** Error: autoconf failed." exit 1 } echo echo "Now you are ready to run './configure'" echo �����������tagtool-0.12.3/intltool-update.in�������������������������������������������������������������������0000644�0001750�0001750�00000066635�10453343464�016304� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!@INTLTOOL_PERL@ -w # -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- # # The Intltool Message Updater # # Copyright (C) 2000-2003 Free Software Foundation. # # Intltool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # version 2 published by the Free Software Foundation. # # Intltool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # # Authors: Kenneth Christiansen <kenneth@gnu.org> # Maciej Stachowiak # Darin Adler <darin@bentspoon.com> ## Release information my $PROGRAM = "intltool-update"; my $VERSION = "0.35.0"; my $PACKAGE = "intltool"; ## Loaded modules use strict; use Getopt::Long; use Cwd; use File::Copy; use File::Find; ## Scalars used by the option stuff my $HELP_ARG = 0; my $VERSION_ARG = 0; my $DIST_ARG = 0; my $POT_ARG = 0; my $HEADERS_ARG = 0; my $MAINTAIN_ARG = 0; my $REPORT_ARG = 0; my $VERBOSE = 0; my $GETTEXT_PACKAGE = ""; my $OUTPUT_FILE = ""; my @languages; my %varhash = (); my %po_files_by_lang = (); # Regular expressions to categorize file types. # FIXME: Please check if the following is correct my $xml_support = "xml(?:\\.in)*|". # http://www.w3.org/XML/ (Note: .in is not required) "ui|". # Bonobo specific - User Interface desc. files "lang|". # ? "glade2?(?:\\.in)*|". # Glade specific - User Interface desc. files (Note: .in is not required) "scm(?:\\.in)*|". # ? (Note: .in is not required) "oaf(?:\\.in)+|". # DEPRECATED: Replaces by Bonobo .server files "etspec|". # ? "server(?:\\.in)+|". # Bonobo specific "sheet(?:\\.in)+|". # ? "schemas(?:\\.in)+|". # GConf specific "pong(?:\\.in)+|". # DEPRECATED: PONG is not used [by GNOME] any longer. "kbd(?:\\.in)+"; # GOK specific. my $ini_support = "icon(?:\\.in)+|". # http://www.freedesktop.org/Standards/icon-theme-spec "desktop(?:\\.in)+|". # http://www.freedesktop.org/Standards/menu-spec "caves(?:\\.in)+|". # GNOME Games specific "directory(?:\\.in)+|". # http://www.freedesktop.org/Standards/menu-spec "soundlist(?:\\.in)+|". # GNOME specific "keys(?:\\.in)+|". # GNOME Mime database specific "theme(?:\\.in)+|". # http://www.freedesktop.org/Standards/icon-theme-spec "service(?:\\.in)+"; # DBus specific my $buildin_gettext_support = "c|y|cs|cc|cpp|c\\+\\+|h|hh|gob|py"; ## Always flush buffer when printing $| = 1; ## Sometimes the source tree will be rooted somewhere else. my $SRCDIR = "."; my $POTFILES_in; $SRCDIR = $ENV{"srcdir"} if $ENV{"srcdir"}; $POTFILES_in = "<$SRCDIR/POTFILES.in"; my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null'); ## Handle options GetOptions ( "help" => \$HELP_ARG, "version" => \$VERSION_ARG, "dist|d" => \$DIST_ARG, "pot|p" => \$POT_ARG, "headers|s" => \$HEADERS_ARG, "maintain|m" => \$MAINTAIN_ARG, "report|r" => \$REPORT_ARG, "verbose|x" => \$VERBOSE, "gettext-package|g=s" => \$GETTEXT_PACKAGE, "output-file|o=s" => \$OUTPUT_FILE, ) or &Console_WriteError_InvalidOption; &Console_Write_IntltoolHelp if $HELP_ARG; &Console_Write_IntltoolVersion if $VERSION_ARG; my $arg_count = ($DIST_ARG > 0) + ($POT_ARG > 0) + ($HEADERS_ARG > 0) + ($MAINTAIN_ARG > 0) + ($REPORT_ARG > 0); &Console_Write_IntltoolHelp if $arg_count > 1; # --version and --help don't require a module name my $MODULE = $GETTEXT_PACKAGE || &FindPackageName || "unknown"; if ($POT_ARG) { &GenerateHeaders; &GeneratePOTemplate; } elsif ($HEADERS_ARG) { &GenerateHeaders; } elsif ($MAINTAIN_ARG) { &FindLeftoutFiles; } elsif ($REPORT_ARG) { &GenerateHeaders; &GeneratePOTemplate; &Console_Write_CoverageReport; } elsif ((defined $ARGV[0]) && $ARGV[0] =~ /^[a-z]/) { my $lang = $ARGV[0]; ## Report error if the language file supplied ## to the command line is non-existent &Console_WriteError_NotExisting("$SRCDIR/$lang.po") if ! -s "$SRCDIR/$lang.po"; if (!$DIST_ARG) { print "Working, please wait..." if $VERBOSE; &GenerateHeaders; &GeneratePOTemplate; } &POFile_Update ($lang, $OUTPUT_FILE); &Console_Write_TranslationStatus ($lang, $OUTPUT_FILE); } else { &Console_Write_IntltoolHelp; } exit; ######### sub Console_Write_IntltoolVersion { print <<_EOF_; ${PROGRAM} (${PACKAGE}) $VERSION Written by Kenneth Christiansen, Maciej Stachowiak, and Darin Adler. Copyright (C) 2000-2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. _EOF_ exit; } sub Console_Write_IntltoolHelp { print <<_EOF_; Usage: ${PROGRAM} [OPTION]... LANGCODE Updates PO template files and merge them with the translations. Mode of operation (only one is allowed): -p, --pot generate the PO template only -s, --headers generate the header files in POTFILES.in -m, --maintain search for left out files from POTFILES.in -r, --report display a status report for the module -d, --dist merge LANGCODE.po with existing PO template Extra options: -g, --gettext-package=NAME override PO template name, useful with --pot -o, --output-file=FILE write merged translation to FILE -x, --verbose display lots of feedback --help display this help and exit --version output version information and exit Examples of use: ${PROGRAM} --pot just create a new PO template ${PROGRAM} xy create new PO template and merge xy.po with it Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") or send email to <xml-i18n-tools\@gnome.org>. _EOF_ exit; } sub echo_n { my $str = shift; my $ret = `echo "$str"`; $ret =~ s/\n$//; # do we need the "s" flag? return $ret; } sub POFile_DetermineType ($) { my $type = $_; my $gettext_type; my $xml_regex = "(?:" . $xml_support . ")"; my $ini_regex = "(?:" . $ini_support . ")"; my $buildin_regex = "(?:" . $buildin_gettext_support . ")"; if ($type =~ /\[type: gettext\/([^\]].*)]/) { $gettext_type=$1; } elsif ($type =~ /schemas(\.in)+$/) { $gettext_type="schemas"; } elsif ($type =~ /glade2?(\.in)*$/) { $gettext_type="glade"; } elsif ($type =~ /scm(\.in)*$/) { $gettext_type="scheme"; } elsif ($type =~ /keys(\.in)+$/) { $gettext_type="keys"; } # bucket types elsif ($type =~ /$xml_regex$/) { $gettext_type="xml"; } elsif ($type =~ /$ini_regex$/) { $gettext_type="ini"; } elsif ($type =~ /$buildin_regex$/) { $gettext_type="buildin"; } else { $gettext_type="unknown"; } return "gettext\/$gettext_type"; } sub TextFile_DetermineEncoding ($) { my $gettext_code="ASCII"; # All files are ASCII by default my $filetype=`file $_ | cut -d ' ' -f 2`; if ($? eq "0") { if ($filetype =~ /^(ISO|UTF)/) { chomp ($gettext_code = $filetype); } elsif ($filetype =~ /^XML/) { $gettext_code="UTF-8"; # We asume that .glade and other .xml files are UTF-8 } } return $gettext_code; } sub isNotValidMissing { my ($file) = @_; return if $file =~ /^\{arch\}\/.*$/; return if $file =~ /^$varhash{"PACKAGE"}-$varhash{"VERSION"}\/.*$/; } sub FindLeftoutFiles { my (@buf_i18n_plain, @buf_i18n_xml, @buf_i18n_xml_unmarked, @buf_i18n_ini, @buf_potfiles, @buf_potfiles_ignore, @buf_allfiles, @buf_allfiles_sorted, @buf_potfiles_sorted ); ## Search and find all translatable files find sub { push @buf_i18n_plain, "$File::Find::name" if /\.($buildin_gettext_support)$/; push @buf_i18n_xml, "$File::Find::name" if /\.($xml_support)$/; push @buf_i18n_ini, "$File::Find::name" if /\.($ini_support)$/; push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/; }, ".."; open POTFILES, $POTFILES_in or die "$PROGRAM: there's no POTFILES.in!\n"; @buf_potfiles = grep !/^(#|\s*$)/, <POTFILES>; close POTFILES; foreach (@buf_potfiles) { s/^\[.*]\s*//; } print "Searching for missing translatable files...\n" if $VERBOSE; ## Check if we should ignore some found files, when ## comparing with POTFILES.in foreach my $ignore ("POTFILES.skip", "POTFILES.ignore") { (-s $ignore) or next; if ("$ignore" eq "POTFILES.ignore") { print "The usage of POTFILES.ignore is deprecated. Please consider moving the\n". "content of this file to POTFILES.skip.\n"; } print "Found $ignore: Ignoring files...\n" if $VERBOSE; open FILE, "<$ignore" or die "ERROR: Failed to open $ignore!\n"; while (<FILE>) { push @buf_potfiles_ignore, $_ unless /^(#|\s*$)/; } close FILE; @buf_potfiles = (@buf_potfiles_ignore, @buf_potfiles); } foreach my $file (@buf_i18n_plain) { my $in_comment = 0; my $in_macro = 0; open FILE, "<$file"; while (<FILE>) { # Handle continued multi-line comment. if ($in_comment) { next unless s-.*\*/--; $in_comment = 0; } # Handle continued macro. if ($in_macro) { $in_macro = 0 unless /\\$/; next; } # Handle start of macro (or any preprocessor directive). if (/^\s*\#/) { $in_macro = 1 if /^([^\\]|\\.)*\\$/; next; } # Handle comments and quoted text. while (m-(/\*|//|\'|\")-) # \' and \" keep emacs perl mode happy { my $match = $1; if ($match eq "/*") { if (!s-/\*.*?\*/--) { s-/\*.*--; $in_comment = 1; } } elsif ($match eq "//") { s-//.*--; } else # ' or " { if (!s-$match([^\\]|\\.)*?$match-QUOTEDTEXT-) { warn "mismatched quotes at line $. in $file\n"; s-$match.*--; } } } if (/\.GetString ?\(QUOTEDTEXT/) { if (defined isNotValidMissing (unpack("x3 A*", $file))) { ## Remove the first 3 chars and add newline push @buf_allfiles, unpack("x3 A*", $file) . "\n"; } last; } if (/_\(QUOTEDTEXT/) { if (defined isNotValidMissing (unpack("x3 A*", $file))) { ## Remove the first 3 chars and add newline push @buf_allfiles, unpack("x3 A*", $file) . "\n"; } last; } } close FILE; } foreach my $file (@buf_i18n_xml) { open FILE, "<$file"; while (<FILE>) { # FIXME: share the pattern matching code with intltool-extract if (/\s_[-A-Za-z0-9._:]+\s*=\s*\"([^"]+)\"/ || /<_[^>]+>/ || /translatable=\"yes\"/) { if (defined isNotValidMissing (unpack("x3 A*", $file))) { push @buf_allfiles, unpack("x3 A*", $file) . "\n"; } last; } } close FILE; } foreach my $file (@buf_i18n_ini) { open FILE, "<$file"; while (<FILE>) { if (/_(.*)=/) { if (defined isNotValidMissing (unpack("x3 A*", $file))) { push @buf_allfiles, unpack("x3 A*", $file) . "\n"; } last; } } close FILE; } foreach my $file (@buf_i18n_xml_unmarked) { if (defined isNotValidMissing (unpack("x3 A*", $file))) { push @buf_allfiles, unpack("x3 A*", $file) . "\n"; } } @buf_allfiles_sorted = sort (@buf_allfiles); @buf_potfiles_sorted = sort (@buf_potfiles); my %in2; foreach (@buf_potfiles_sorted) { $in2{$_} = 1; } my @result; foreach (@buf_allfiles_sorted) { if (!exists($in2{$_})) { push @result, $_ } } my @buf_potfiles_notexist; foreach (@buf_potfiles_sorted) { chomp (my $dummy = $_); if ("$dummy" ne "" and ! -f "../$dummy") { push @buf_potfiles_notexist, $_; } } ## Save file with information about the files missing ## if any, and give information about this procedure. if (@result + @buf_potfiles_notexist > 0) { if (@result) { print "\n" if $VERBOSE; unlink "missing"; open OUT, ">missing"; print OUT @result; close OUT; warn "\e[1mThe following files contain translations and are currently not in use. Please\e[0m\n". "\e[1mconsider adding these to the POTFILES.in file, located in the po/ directory.\e[0m\n\n"; print STDERR @result, "\n"; warn "If some of these files are left out on purpose then please add them to\n". "POTFILES.skip instead of POTFILES.in. A file \e[1m'missing'\e[0m containing this list\n". "of left out files has been written in the current directory.\n"; } if (@buf_potfiles_notexist) { unlink "notexist"; open OUT, ">notexist"; print OUT @buf_potfiles_notexist; close OUT; warn "\n" if ($VERBOSE or @result); warn "\e[1mThe following files do not exist anymore:\e[0m\n\n"; warn @buf_potfiles_notexist, "\n"; warn "Please remove them from POTFILES.in or POTFILES.skip. A file \e[1m'notexist'\e[0m\n". "containing this list of absent files has been written in the current directory.\n"; } } ## If there is nothing to complain about, notify the user else { print "\nAll files containing translations are present in POTFILES.in.\n" if $VERBOSE; } } sub Console_WriteError_InvalidOption { ## Handle invalid arguments print STDERR "Try `${PROGRAM} --help' for more information.\n"; exit 1; } sub GenerateHeaders { my $EXTRACT = "@INTLTOOL_EXTRACT@"; chomp $EXTRACT; $EXTRACT = $ENV{"INTLTOOL_EXTRACT"} if $ENV{"INTLTOOL_EXTRACT"}; ## Generate the .h header files, so we can allow glade and ## xml translation support if (! -x "$EXTRACT") { print STDERR "\n *** The intltool-extract script wasn't found!" ."\n *** Without it, intltool-update can not generate files.\n"; exit; } else { open (FILE, $POTFILES_in) or die "$PROGRAM: POTFILES.in not found.\n"; while (<FILE>) { chomp; next if /^\[\s*encoding/; ## Find xml files in POTFILES.in and generate the ## files with help from the extract script my $gettext_type= &POFile_DetermineType ($1); if (/\.($xml_support|$ini_support)$/ || /^\[/) { s/^\[[^\[].*]\s*//; my $filename = "../$_"; if ($VERBOSE) { system ($EXTRACT, "--update", "--srcdir=$SRCDIR", "--type=$gettext_type", $filename); } else { system ($EXTRACT, "--update", "--type=$gettext_type", "--srcdir=$SRCDIR", "--quiet", $filename); } } } close FILE; } } # # Generate .pot file from POTFILES.in # sub GeneratePOTemplate { my $XGETTEXT = $ENV{"XGETTEXT"} || "@INTLTOOL_XGETTEXT@"; my $XGETTEXT_ARGS = $ENV{"XGETTEXT_ARGS"} || ''; chomp $XGETTEXT; if (! -x $XGETTEXT) { print STDERR " *** xgettext is not found on this system!\n". " *** Without it, intltool-update can not extract strings.\n"; exit; } print "Building $MODULE.pot...\n" if $VERBOSE; open INFILE, $POTFILES_in; unlink "POTFILES.in.temp"; open OUTFILE, ">POTFILES.in.temp" or die("Cannot open POTFILES.in.temp for writing"); my $gettext_support_nonascii = 0; # checks for GNU gettext >= 0.12 my $dummy = `$XGETTEXT --version --from-code=UTF-8 >$devnull 2>$devnull`; if ($? == 0) { $gettext_support_nonascii = 1; } else { # urge everybody to upgrade gettext print STDERR "WARNING: This version of gettext does not support extracting non-ASCII\n". " strings. That means you should install a version of gettext\n". " that supports non-ASCII strings (such as GNU gettext >= 0.12),\n". " or have to let non-ASCII strings untranslated. (If there is any)\n"; } my $encoding = "ASCII"; my $forced_gettext_code; my @temp_headers; my $encoding_problem_is_reported = 0; while (<INFILE>) { next if (/^#/ or /^\s*$/); chomp; my $gettext_code; if (/^\[\s*encoding:\s*(.*)\s*\]/) { $forced_gettext_code=$1; } elsif (/\.($xml_support|$ini_support)$/ || /^\[/) { s/^\[.*]\s*//; print OUTFILE "../$_.h\n"; push @temp_headers, "../$_.h"; $gettext_code = &TextFile_DetermineEncoding ("../$_.h") if ($gettext_support_nonascii and not defined $forced_gettext_code); } else { if ($SRCDIR eq ".") { print OUTFILE "../$_\n"; } else { print OUTFILE "$SRCDIR/../$_\n"; } $gettext_code = &TextFile_DetermineEncoding ("../$_") if ($gettext_support_nonascii and not defined $forced_gettext_code); } next if (! $gettext_support_nonascii); if (defined $forced_gettext_code) { $encoding=$forced_gettext_code; } elsif (defined $gettext_code and "$encoding" ne "$gettext_code") { if ($encoding eq "ASCII") { $encoding=$gettext_code; } elsif ($gettext_code ne "ASCII") { # Only report once because the message is quite long if (! $encoding_problem_is_reported) { print STDERR "WARNING: You should use the same file encoding for all your project files,\n". " but $PROGRAM thinks that most of the source files are in\n". " $encoding encoding, while \"$_\" is (likely) in\n". " $gettext_code encoding. If you are sure that all translatable strings\n". " are in same encoding (say UTF-8), please \e[1m*prepend*\e[0m the following\n". " line to POTFILES.in:\n\n". " [encoding: UTF-8]\n\n". " and make sure that configure.in/ac checks for $PACKAGE >= 0.27 .\n". "(such warning message will only be reported once.)\n"; $encoding_problem_is_reported = 1; } } } } close OUTFILE; close INFILE; unlink "$MODULE.pot"; my @xgettext_argument=("$XGETTEXT", "--add-comments", "--directory\=\.", "--output\=$MODULE\.pot", "--files-from\=\.\/POTFILES\.in\.temp"); my $XGETTEXT_KEYWORDS = &FindPOTKeywords; push @xgettext_argument, $XGETTEXT_KEYWORDS; my $MSGID_BUGS_ADDRESS = &FindMakevarsBugAddress; push @xgettext_argument, "--msgid-bugs-address\=$MSGID_BUGS_ADDRESS" if $MSGID_BUGS_ADDRESS; push @xgettext_argument, "--from-code\=$encoding" if ($gettext_support_nonascii); push @xgettext_argument, $XGETTEXT_ARGS if $XGETTEXT_ARGS; my $xgettext_command = join ' ', @xgettext_argument; # intercept xgettext error message print "Running $xgettext_command\n" if $VERBOSE; my $xgettext_error_msg = `$xgettext_command 2>\&1`; my $command_failed = $?; unlink "POTFILES.in.temp"; print "Removing generated header (.h) files..." if $VERBOSE; unlink foreach (@temp_headers); print "done.\n" if $VERBOSE; if (! $command_failed) { if (! -e "$MODULE.pot") { print "None of the files in POTFILES.in contain strings marked for translation.\n" if $VERBOSE; } else { print "Wrote $MODULE.pot\n" if $VERBOSE; } } else { if ($xgettext_error_msg =~ /--from-code/) { # replace non-ASCII error message with a more useful one. print STDERR "ERROR: xgettext failed to generate PO template file because there is non-ASCII\n". " string marked for translation. Please make sure that all strings marked\n". " for translation are in uniform encoding (say UTF-8), then \e[1m*prepend*\e[0m the\n". " following line to POTFILES.in and rerun $PROGRAM:\n\n". " [encoding: UTF-8]\n\n"; } else { print STDERR "$xgettext_error_msg"; if (-e "$MODULE.pot") { # is this possible? print STDERR "ERROR: xgettext failed but still managed to generate PO template file.\n". " Please consult error message above if there is any.\n"; } else { print STDERR "ERROR: xgettext failed to generate PO template file. Please consult\n". " error message above if there is any.\n"; } } exit (1); } } sub POFile_Update { -f "$MODULE.pot" or die "$PROGRAM: $MODULE.pot does not exist.\n"; my $MSGMERGE = $ENV{"MSGMERGE"} || "@INTLTOOL_MSGMERGE@"; my ($lang, $outfile) = @_; print "Merging $SRCDIR/$lang.po with $MODULE.pot..." if $VERBOSE; my $infile = "$SRCDIR/$lang.po"; $outfile = "$SRCDIR/$lang.po" if ($outfile eq ""); # I think msgmerge won't overwrite old file if merge is not successful system ("$MSGMERGE", "-o", $outfile, $infile, "$MODULE.pot"); } sub Console_WriteError_NotExisting { my ($file) = @_; ## Report error if supplied language file is non-existing print STDERR "$PROGRAM: $file does not exist!\n"; print STDERR "Try '$PROGRAM --help' for more information.\n"; exit; } sub GatherPOFiles { my @po_files = glob ("./*.po"); @languages = map (&POFile_GetLanguage, @po_files); foreach my $lang (@languages) { $po_files_by_lang{$lang} = shift (@po_files); } } sub POFile_GetLanguage ($) { s/^(.*\/)?(.+)\.po$/$2/; return $_; } sub Console_Write_TranslationStatus { my ($lang, $output_file) = @_; my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@"; $output_file = "$SRCDIR/$lang.po" if ($output_file eq ""); system ("$MSGFMT", "-o", "$devnull", "--verbose", $output_file); } sub Console_Write_CoverageReport { my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@"; &GatherPOFiles; foreach my $lang (@languages) { print "$lang: "; &POFile_Update ($lang, ""); } print "\n\n * Current translation support in $MODULE \n\n"; foreach my $lang (@languages) { print "$lang: "; system ("$MSGFMT", "-o", "$devnull", "--verbose", "$SRCDIR/$lang.po"); } } sub SubstituteVariable { my ($str) = @_; # always need to rewind file whenever it has been accessed seek (CONF, 0, 0); # cache each variable. varhash is global to we can add # variables elsewhere. while (<CONF>) { if (/^(\w+)=(.*)$/) { ($varhash{$1} = $2) =~ s/^["'](.*)["']$/$1/; } } if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/) { my $rest = $3; my $untouched = $1; my $sub = ""; # Ignore recursive definitions of variables $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/; return SubstituteVariable ("$untouched$sub$rest"); } # We're using Perl backticks ` and "echo -n" here in order to # expand any shell escapes (such as backticks themselves) in every variable return echo_n ($str); } sub CONF_Handle_Open { my $base_dirname = getcwd(); $base_dirname =~ s@.*/@@; my ($conf_in, $src_dir); if ($base_dirname =~ /^po(-.+)?$/) { if (-f "Makevars") { my $makefile_source; local (*IN); open (IN, "<Makevars") || die "can't open Makevars: $!"; while (<IN>) { if (/^top_builddir[ \t]*=/) { $src_dir = $_; $src_dir =~ s/^top_builddir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/; chomp $src_dir; if (-f "$src_dir" . "/configure.ac") { $conf_in = "$src_dir" . "/configure.ac" . "\n"; } else { $conf_in = "$src_dir" . "/configure.in" . "\n"; } last; } } close IN; $conf_in || die "Cannot find top_builddir in Makevars."; } elsif (-f "../configure.ac") { $conf_in = "../configure.ac"; } elsif (-f "../configure.in") { $conf_in = "../configure.in"; } else { my $makefile_source; local (*IN); open (IN, "<Makefile") || return; while (<IN>) { if (/^top_srcdir[ \t]*=/) { $src_dir = $_; $src_dir =~ s/^top_srcdir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/; chomp $src_dir; $conf_in = "$src_dir" . "/configure.in" . "\n"; last; } } close IN; $conf_in || die "Cannot find top_srcdir in Makefile."; } open (CONF, "<$conf_in"); } else { print STDERR "$PROGRAM: Unable to proceed.\n" . "Make sure to run this script inside the po directory.\n"; exit; } } sub FindPackageName { my $version; my $domain = &FindMakevarsDomain; my $name = $domain || "untitled"; &CONF_Handle_Open; my $conf_source; { local (*IN); open (IN, "<&CONF") || return $name; seek (IN, 0, 0); local $/; # slurp mode $conf_source = <IN>; close IN; } # priority for getting package name: # 1. GETTEXT_PACKAGE # 2. first argument of AC_INIT (with >= 2 arguments) # 3. first argument of AM_INIT_AUTOMAKE (with >= 2 argument) # /^AM_INIT_AUTOMAKE\([\s\[]*([^,\)\s\]]+)/m # the \s makes this not work, why? if ($conf_source =~ /^AM_INIT_AUTOMAKE\(([^,\)]+),([^,\)]+)/m) { ($name, $version) = ($1, $2); $name =~ s/[\[\]\s]//g; $version =~ s/[\[\]\s]//g; $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); } if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)/m) { ($name, $version) = ($1, $2); $name =~ s/[\[\]\s]//g; $version =~ s/[\[\]\s]//g; $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); } # \s makes this not work, why? $name = $1 if $conf_source =~ /^GETTEXT_PACKAGE=\[?([^\n\]]+)/m; # m4 macros AC_PACKAGE_NAME, AC_PACKAGE_VERSION etc. have same value # as corresponding $PACKAGE_NAME, $PACKAGE_VERSION etc. shell variables. $name =~ s/\bAC_PACKAGE_/\$PACKAGE_/g; $name = $domain if $domain; $name = SubstituteVariable ($name); $name =~ s/^["'](.*)["']$/$1/; return $name if $name; } sub FindPOTKeywords { my $keywords = "--keyword\=\_ --keyword\=N\_ --keyword\=U\_ --keyword\=Q\_"; my $varname = "XGETTEXT_OPTIONS"; my $make_source; { local (*IN); open (IN, "<Makevars") || (open(IN, "<Makefile.in.in") && ($varname = "XGETTEXT_KEYWORDS")) || return $keywords; seek (IN, 0, 0); local $/; # slurp mode $make_source = <IN>; close IN; } $keywords = $1 if $make_source =~ /^$varname[ ]*=\[?([^\n\]]+)/m; return $keywords; } sub FindMakevarsDomain { my $domain = ""; my $makevars_source; { local (*IN); open (IN, "<Makevars") || return $domain; seek (IN, 0, 0); local $/; # slurp mode $makevars_source = <IN>; close IN; } $domain = $1 if $makevars_source =~ /^DOMAIN[ ]*=\[?([^\n\]\$]+)/m; $domain =~ s/^\s+//; $domain =~ s/\s+$//; return $domain; } sub FindMakevarsBugAddress { my $address = ""; my $makevars_source; { local (*IN); open (IN, "<Makevars") || return undef; seek (IN, 0, 0); local $/; # slurp mode $makevars_source = <IN>; close IN; } $address = $1 if $makevars_source =~ /^MSGID_BUGS_ADDRESS[ ]*=\[?([^\n\]\$]+)/m; $address =~ s/^\s+//; $address =~ s/\s+$//; return $address; } ���������������������������������������������������������������������������������������������������tagtool-0.12.3/intltool-extract.in������������������������������������������������������������������0000644�0001750�0001750�00000053735�10453343464�016471� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!@INTLTOOL_PERL@ -w # -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- # # The Intltool Message Extractor # # Copyright (C) 2000-2001, 2003 Free Software Foundation. # # Intltool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # Intltool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # # Authors: Kenneth Christiansen <kenneth@gnu.org> # Darin Adler <darin@bentspoon.com> # ## Release information my $PROGRAM = "intltool-extract"; my $PACKAGE = "intltool"; my $VERSION = "0.35.0"; ## Loaded modules use strict; use File::Basename; use Getopt::Long; ## Scalars used by the option stuff my $TYPE_ARG = "0"; my $LOCAL_ARG = "0"; my $HELP_ARG = "0"; my $VERSION_ARG = "0"; my $UPDATE_ARG = "0"; my $QUIET_ARG = "0"; my $SRCDIR_ARG = "."; my $FILE; my $OUTFILE; my $gettext_type = ""; my $input; my %messages = (); my %loc = (); my %count = (); my %comments = (); my $strcount = 0; my $XMLCOMMENT = ""; ## Use this instead of \w for XML files to handle more possible characters. my $w = "[-A-Za-z0-9._:]"; ## Always print first $| = 1; ## Handle options GetOptions ( "type=s" => \$TYPE_ARG, "local|l" => \$LOCAL_ARG, "help|h" => \$HELP_ARG, "version|v" => \$VERSION_ARG, "update" => \$UPDATE_ARG, "quiet|q" => \$QUIET_ARG, "srcdir=s" => \$SRCDIR_ARG, ) or &error; &split_on_argument; ## Check for options. ## This section will check for the different options. sub split_on_argument { if ($VERSION_ARG) { &version; } elsif ($HELP_ARG) { &help; } elsif ($LOCAL_ARG) { &place_local; &extract; } elsif ($UPDATE_ARG) { &place_normal; &extract; } elsif (@ARGV > 0) { &place_normal; &message; &extract; } else { &help; } } sub place_normal { $FILE = $ARGV[0]; $OUTFILE = "$FILE.h"; } sub place_local { $FILE = $ARGV[0]; $OUTFILE = fileparse($FILE, ()); if (!-e "tmp/") { system("mkdir tmp/"); } $OUTFILE = "./tmp/$OUTFILE.h" } sub determine_type { if ($TYPE_ARG =~ /^gettext\/(.*)/) { $gettext_type=$1 } } ## Sub for printing release information sub version{ print <<_EOF_; ${PROGRAM} (${PACKAGE}) $VERSION Copyright (C) 2000, 2003 Free Software Foundation, Inc. Written by Kenneth Christiansen, 2000. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. _EOF_ exit; } ## Sub for printing usage information sub help { print <<_EOF_; Usage: ${PROGRAM} [OPTION]... [FILENAME] Generates a header file from an XML source file. It grabs all strings between <_translatable_node> and its end tag in XML files. Read manpage (man ${PROGRAM}) for more info. --type=TYPE Specify the file type of FILENAME. Currently supports: "gettext/glade", "gettext/ini", "gettext/keys" "gettext/rfc822deb", "gettext/schemas", "gettext/scheme", "gettext/xml" -l, --local Writes output into current working directory (conflicts with --update) --update Writes output into the same directory the source file reside (conflicts with --local) --srcdir Root of the source tree -v, --version Output version information and exit -h, --help Display this help and exit -q, --quiet Quiet mode Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") or send email to <xml-i18n-tools\@gnome.org>. _EOF_ exit; } ## Sub for printing error messages sub error{ print STDERR "Try `${PROGRAM} --help' for more information.\n"; exit; } sub message { print "Generating C format header file for translation.\n" unless $QUIET_ARG; } sub extract { &determine_type; &convert; open OUT, ">$OUTFILE"; binmode (OUT) if $^O eq 'MSWin32'; &msg_write; close OUT; print "Wrote $OUTFILE\n" unless $QUIET_ARG; } sub convert { ## Reading the file { local (*IN); local $/; #slurp mode open (IN, "<$SRCDIR_ARG/$FILE") || die "can't open $SRCDIR_ARG/$FILE: $!"; $input = <IN>; } &type_ini if $gettext_type eq "ini"; &type_keys if $gettext_type eq "keys"; &type_xml if $gettext_type eq "xml"; &type_glade if $gettext_type eq "glade"; &type_scheme if $gettext_type eq "scheme"; &type_schemas if $gettext_type eq "schemas"; &type_rfc822deb if $gettext_type eq "rfc822deb"; } sub entity_decode_minimal { local ($_) = @_; s/'/'/g; # ' s/"/"/g; # " s/&/&/g; return $_; } sub entity_decode { local ($_) = @_; s/'/'/g; # ' s/"/"/g; # " s/&/&/g; s/</</g; s/>/>/g; return $_; } sub escape_char { return '\"' if $_ eq '"'; return '\n' if $_ eq "\n"; return '\\' if $_ eq '\\'; return $_; } sub escape { my ($string) = @_; return join "", map &escape_char, split //, $string; } sub type_ini { ### For generic translatable desktop files ### while ($input =~ /^_.*=(.*)$/mg) { $messages{$1} = []; } } sub type_keys { ### For generic translatable mime/keys files ### while ($input =~ /^\s*_\w+=(.*)$/mg) { $messages{$1} = []; } } sub type_xml { ### For generic translatable XML files ### my $tree = readXml($input); parseTree(0, $tree); } sub print_var { my $var = shift; my $vartype = ref $var; if ($vartype =~ /ARRAY/) { my @arr = @{$var}; print "[ "; foreach my $el (@arr) { print_var($el); print ", "; } print "] "; } elsif ($vartype =~ /HASH/) { my %hash = %{$var}; print "{ "; foreach my $key (keys %hash) { print "$key => "; print_var($hash{$key}); print ", "; } print "} "; } else { print $var; } } # Same syntax as getAttributeString in intltool-merge.in.in, similar logic (look for ## differences comment) sub getAttributeString { my $sub = shift; my $do_translate = shift || 1; my $language = shift || ""; my $translate = shift; my $result = ""; foreach my $e (reverse(sort(keys %{ $sub }))) { my $key = $e; my $string = $sub->{$e}; my $quote = '"'; $string =~ s/^[\s]+//; $string =~ s/[\s]+$//; if ($string =~ /^'.*'$/) { $quote = "'"; } $string =~ s/^['"]//g; $string =~ s/['"]$//g; ## differences from intltool-merge.in.in if ($key =~ /^_/) { $comments{entity_decode($string)} = $XMLCOMMENT if $XMLCOMMENT; $messages{entity_decode($string)} = []; $$translate = 2; } ## differences end here from intltool-merge.in.in $result .= " $key=$quote$string$quote"; } return $result; } # Verbatim copy from intltool-merge.in.in sub getXMLstring { my $ref = shift; my $spacepreserve = shift || 0; my @list = @{ $ref }; my $result = ""; my $count = scalar(@list); my $attrs = $list[0]; my $index = 1; $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); while ($index < $count) { my $type = $list[$index]; my $content = $list[$index+1]; if (! $type ) { # We've got CDATA if ($content) { # lets strip the whitespace here, and *ONLY* here $content =~ s/\s+/ /gs if (!$spacepreserve); $result .= $content; } } elsif ( "$type" ne "1" ) { # We've got another element $result .= "<$type"; $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements if ($content) { my $subresult = getXMLstring($content, $spacepreserve); if ($subresult) { $result .= ">".$subresult . "</$type>"; } else { $result .= "/>"; } } else { $result .= "/>"; } } $index += 2; } return $result; } # Verbatim copy from intltool-merge.in.in, except for MULTIPLE_OUTPUT handling removed # Translate list of nodes if necessary sub translate_subnodes { my $fh = shift; my $content = shift; my $language = shift || ""; my $singlelang = shift || 0; my $spacepreserve = shift || 0; my @nodes = @{ $content }; my $count = scalar(@nodes); my $index = 0; while ($index < $count) { my $type = $nodes[$index]; my $rest = $nodes[$index+1]; traverse($fh, $type, $rest, $language, $spacepreserve); $index += 2; } } # Based on traverse() in intltool-merge.in.in sub traverse { my $fh = shift; # unused, to allow us to sync code between -merge and -extract my $nodename = shift; my $content = shift; my $language = shift || ""; my $spacepreserve = shift || 0; if ($nodename && "$nodename" eq "1") { $XMLCOMMENT = $content; } elsif ($nodename) { # element my @all = @{ $content }; my $attrs = shift @all; my $translate = 0; my $outattr = getAttributeString($attrs, 1, $language, \$translate); if ($nodename =~ /^_/) { $translate = 1; $nodename =~ s/^_//; } my $lookup = ''; $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); if ($translate) { $lookup = getXMLstring($content, $spacepreserve); if (!$spacepreserve) { $lookup =~ s/^\s+//s; $lookup =~ s/\s+$//s; } if ($lookup && $translate != 2) { $comments{$lookup} = $XMLCOMMENT if $XMLCOMMENT; $messages{$lookup} = []; } elsif ($translate == 2) { translate_subnodes($fh, \@all, $language, 1, $spacepreserve); } } else { $XMLCOMMENT = ""; my $count = scalar(@all); if ($count > 0) { my $index = 0; while ($index < $count) { my $type = $all[$index]; my $rest = $all[$index+1]; traverse($fh, $type, $rest, $language, $spacepreserve); $index += 2; } } } $XMLCOMMENT = ""; } } # Verbatim copy from intltool-merge.in.in, $fh for compatibility sub parseTree { my $fh = shift; my $ref = shift; my $language = shift || ""; my $name = shift @{ $ref }; my $cont = shift @{ $ref }; while (!$name || "$name" eq "1") { $name = shift @{ $ref }; $cont = shift @{ $ref }; } my $spacepreserve = 0; my $attrs = @{$cont}[0]; $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); traverse($fh, $name, $cont, $language, $spacepreserve); } # Verbatim copy from intltool-merge.in.in sub intltool_tree_comment { my $expat = shift; my $data = $expat->original_string(); my $clist = $expat->{Curlist}; my $pos = $#$clist; $data =~ s/^<!--//s; $data =~ s/-->$//s; push @$clist, 1 => $data; } # Verbatim copy from intltool-merge.in.in sub intltool_tree_cdatastart { my $expat = shift; my $clist = $expat->{Curlist}; my $pos = $#$clist; push @$clist, 0 => $expat->original_string(); } # Verbatim copy from intltool-merge.in.in sub intltool_tree_cdataend { my $expat = shift; my $clist = $expat->{Curlist}; my $pos = $#$clist; $clist->[$pos] .= $expat->original_string(); } # Verbatim copy from intltool-merge.in.in sub intltool_tree_char { my $expat = shift; my $text = shift; my $clist = $expat->{Curlist}; my $pos = $#$clist; # Use original_string so that we retain escaped entities # in CDATA sections. # if ($pos > 0 and $clist->[$pos - 1] eq '0') { $clist->[$pos] .= $expat->original_string(); } else { push @$clist, 0 => $expat->original_string(); } } # Verbatim copy from intltool-merge.in.in sub intltool_tree_start { my $expat = shift; my $tag = shift; my @origlist = (); # Use original_string so that we retain escaped entities # in attribute values. We must convert the string to an # @origlist array to conform to the structure of the Tree # Style. # my @original_array = split /\x/, $expat->original_string(); my $source = $expat->original_string(); # Remove leading tag. # $source =~ s|^\s*<\s*(\S+)||s; # Grab attribute key/value pairs and push onto @origlist array. # while ($source) { if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/) { $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s; push @origlist, $1; push @origlist, '"' . $2 . '"'; } elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/) { $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s; push @origlist, $1; push @origlist, "'" . $2 . "'"; } else { last; } } my $ol = [ { @origlist } ]; push @{ $expat->{Lists} }, $expat->{Curlist}; push @{ $expat->{Curlist} }, $tag => $ol; $expat->{Curlist} = $ol; } # Copied from intltool-merge.in.in and added comment handler. sub readXml { my $xmldoc = shift || return; my $ret = eval 'require XML::Parser'; if(!$ret) { die "You must have XML::Parser installed to run $0\n\n"; } my $xp = new XML::Parser(Style => 'Tree'); $xp->setHandlers(Char => \&intltool_tree_char); $xp->setHandlers(Start => \&intltool_tree_start); $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart); $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend); ## differences from intltool-merge.in.in $xp->setHandlers(Comment => \&intltool_tree_comment); ## differences end here from intltool-merge.in.in my $tree = $xp->parse($xmldoc); #print_var($tree); # <foo><!-- comment --><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo> # would be: # [foo, [{}, 1, "comment", head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]], bar, # [{}, 0, "Howdy", ref, [{}]], 0, "do" ] ] return $tree; } sub type_schemas { ### For schemas XML files ### # FIXME: We should handle escaped < (less than) while ($input =~ / <locale\ name="C">\s* (<default>\s*(?:<!--([^>]*?)-->\s*)?(.*?)\s*<\/default>\s*)? (<short>\s*(?:<!--([^>]*?)-->\s*)?(.*?)\s*<\/short>\s*)? (<long>\s*(?:<!--([^>]*?)-->\s*)?(.*?)\s*<\/long>\s*)? <\/locale> /sgx) { my @totranslate = ($3,$6,$9); my @eachcomment = ($2,$5,$8); foreach (@totranslate) { my $currentcomment = shift @eachcomment; next if !$_; s/\s+/ /g; $messages{entity_decode_minimal($_)} = []; $comments{entity_decode_minimal($_)} = $currentcomment if (defined($currentcomment)); } } } sub type_rfc822deb { ### For rfc822-style Debian configuration files ### my $lineno = 1; my $type = ''; while ($input =~ /\G(.*?)(^|\n)(_+)([^:]+):[ \t]*(.*?)(?=\n\S|$)/sg) { my ($pre, $newline, $underscore, $tag, $text) = ($1, $2, $3, $4, $5); while ($pre =~ m/\n/g) { $lineno ++; } $lineno += length($newline); my @str_list = rfc822deb_split(length($underscore), $text); for my $str (@str_list) { $strcount++; $messages{$str} = []; $loc{$str} = $lineno; $count{$str} = $strcount; my $usercomment = ''; while($pre =~ s/(^|\n)#([^\n]*)$//s) { $usercomment = "\n" . $2 . $usercomment; } $comments{$str} = $tag . $usercomment; } $lineno += ($text =~ s/\n//g); } } sub rfc822deb_split { # Debian defines a special way to deal with rfc822-style files: # when a value contain newlines, it consists of # 1. a short form (first line) # 2. a long description, all lines begin with a space, # and paragraphs are separated by a single dot on a line # This routine returns an array of all paragraphs, and reformat # them. # When first argument is 2, the string is a comma separated list of # values. my $type = shift; my $text = shift; $text =~ s/^[ \t]//mg; return (split(/, */, $text, 0)) if $type ne 1; return ($text) if $text !~ /\n/; $text =~ s/([^\n]*)\n//; my @list = ($1); my $str = ''; for my $line (split (/\n/, $text)) { chomp $line; if ($line =~ /^\.\s*$/) { # New paragraph $str =~ s/\s*$//; push(@list, $str); $str = ''; } elsif ($line =~ /^\s/) { # Line which must not be reformatted $str .= "\n" if length ($str) && $str !~ /\n$/; $line =~ s/\s+$//; $str .= $line."\n"; } else { # Continuation line, remove newline $str .= " " if length ($str) && $str !~ /\n$/; $str .= $line; } } $str =~ s/\s*$//; push(@list, $str) if length ($str); return @list; } sub type_glade { ### For translatable Glade XML files ### my $tags = "label|title|text|format|copyright|comments|preview_text|tooltip|message"; while ($input =~ /<($tags)>([^<]+)<\/($tags)>/sg) { # Glade sometimes uses tags that normally mark translatable things for # little bits of non-translatable content. We work around this by not # translating strings that only includes something like label4 or window1. $messages{entity_decode($2)} = [] unless $2 =~ /^(window|label|dialog)[0-9]+$/; } while ($input =~ /<items>(..[^<]*)<\/items>/sg) { for my $item (split (/\n/, $1)) { $messages{entity_decode($item)} = []; } } ## handle new glade files while ($input =~ /<(property|atkproperty)\s+[^>]*translatable\s*=\s*"yes"(?:\s+[^>]*comments\s*=\s*"([^"]*)")?[^>]*>([^<]+)<\/\1>/sg) { $messages{entity_decode($3)} = [] unless $3 =~ /^(window|label)[0-9]+$/; if (defined($2) and !($3 =~ /^(window|label)[0-9]+$/)) { $comments{entity_decode($3)} = entity_decode($2) ; } } while ($input =~ /<atkaction\s+action_name="([^>]*)"\s+description="([^>]+)"\/>/sg) { $messages{entity_decode_minimal($2)} = []; } } sub type_scheme { my ($line, $i, $state, $str, $trcomment, $char); for $line (split(/\n/, $input)) { $i = 0; $state = 0; # 0 - nothing, 1 - string, 2 - translatable string while ($i < length($line)) { if (substr($line,$i,1) eq "\"") { if ($state == 2) { $comments{$str} = $trcomment if ($trcomment); $messages{$str} = []; $str = ''; $state = 0; $trcomment = ""; } elsif ($state == 1) { $str = ''; $state = 0; $trcomment = ""; } else { $state = 1; $str = ''; if ($i>0 && substr($line,$i-1,1) eq '_') { $state = 2; } } } elsif (!$state) { if (substr($line,$i,1) eq ";") { $trcomment = substr($line,$i+1); $trcomment =~ s/^;*\s*//; $i = length($line); } elsif ($trcomment && substr($line,$i,1) !~ /\s|\(|\)|_/) { $trcomment = ""; } } else { if (substr($line,$i,1) eq "\\") { $char = substr($line,$i+1,1); if ($char ne "\"" && $char ne "\\") { $str = $str . "\\"; } $i++; } $str = $str . substr($line,$i,1); } $i++; } } } sub msg_write { my @msgids; if (%count) { @msgids = sort { $count{$a} <=> $count{$b} } keys %count; } else { @msgids = sort keys %messages; } for my $message (@msgids) { my $offsetlines = 1; $offsetlines++ if $message =~ /%/; if (defined ($comments{$message})) { while ($comments{$message} =~ m/\n/g) { $offsetlines++; } } print OUT "# ".($loc{$message} - $offsetlines). " \"$FILE\"\n" if defined $loc{$message}; print OUT "/* ".$comments{$message}." */\n" if defined $comments{$message}; print OUT "/* xgettext:no-c-format */\n" if $message =~ /%/; my @lines = split (/\n/, $message, -1); for (my $n = 0; $n < @lines; $n++) { if ($n == 0) { print OUT "char *s = N_(\""; } else { print OUT " \""; } print OUT escape($lines[$n]); if ($n < @lines - 1) { print OUT "\\n\"\n"; } else { print OUT "\");\n"; } } } } �����������������������������������tagtool-0.12.3/intltool-merge.in��������������������������������������������������������������������0000644�0001750�0001750�00000104623�10453343464�016107� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!@INTLTOOL_PERL@ -w # -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- # # The Intltool Message Merger # # Copyright (C) 2000, 2003 Free Software Foundation. # Copyright (C) 2000, 2001 Eazel, Inc # # Intltool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # version 2 published by the Free Software Foundation. # # Intltool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # # Authors: Maciej Stachowiak <mjs@noisehavoc.org> # Kenneth Christiansen <kenneth@gnu.org> # Darin Adler <darin@bentspoon.com> # # Proper XML UTF-8'ification written by Cyrille Chepelov <chepelov@calixo.net> # ## Release information my $PROGRAM = "intltool-merge"; my $PACKAGE = "intltool"; my $VERSION = "0.35.0"; ## Loaded modules use strict; use Getopt::Long; use Text::Wrap; use File::Basename; my $must_end_tag = -1; my $last_depth = -1; my $translation_depth = -1; my @tag_stack = (); my @entered_tag = (); my @translation_strings = (); my $leading_space = ""; ## Scalars used by the option stuff my $HELP_ARG = 0; my $VERSION_ARG = 0; my $BA_STYLE_ARG = 0; my $XML_STYLE_ARG = 0; my $KEYS_STYLE_ARG = 0; my $DESKTOP_STYLE_ARG = 0; my $SCHEMAS_STYLE_ARG = 0; my $RFC822DEB_STYLE_ARG = 0; my $QUIET_ARG = 0; my $PASS_THROUGH_ARG = 0; my $UTF8_ARG = 0; my $MULTIPLE_OUTPUT = 0; my $cache_file; ## Handle options GetOptions ( "help" => \$HELP_ARG, "version" => \$VERSION_ARG, "quiet|q" => \$QUIET_ARG, "oaf-style|o" => \$BA_STYLE_ARG, ## for compatibility "ba-style|b" => \$BA_STYLE_ARG, "xml-style|x" => \$XML_STYLE_ARG, "keys-style|k" => \$KEYS_STYLE_ARG, "desktop-style|d" => \$DESKTOP_STYLE_ARG, "schemas-style|s" => \$SCHEMAS_STYLE_ARG, "rfc822deb-style|r" => \$RFC822DEB_STYLE_ARG, "pass-through|p" => \$PASS_THROUGH_ARG, "utf8|u" => \$UTF8_ARG, "multiple-output|m" => \$MULTIPLE_OUTPUT, "cache|c=s" => \$cache_file ) or &error; my $PO_DIR; my $FILE; my $OUTFILE; my %po_files_by_lang = (); my %translations = (); my $iconv = $ENV{"ICONV"} || $ENV{"INTLTOOL_ICONV"} || "@INTLTOOL_ICONV@"; my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null'); # Use this instead of \w for XML files to handle more possible characters. my $w = "[-A-Za-z0-9._:]"; # XML quoted string contents my $q = "[^\\\"]*"; ## Check for options. if ($VERSION_ARG) { &print_version; } elsif ($HELP_ARG) { &print_help; } elsif ($BA_STYLE_ARG && @ARGV > 2) { &utf8_sanity_check; &preparation; &print_message; &ba_merge_translations; &finalize; } elsif ($XML_STYLE_ARG && @ARGV > 2) { &utf8_sanity_check; &preparation; &print_message; &xml_merge_output; &finalize; } elsif ($KEYS_STYLE_ARG && @ARGV > 2) { &utf8_sanity_check; &preparation; &print_message; &keys_merge_translations; &finalize; } elsif ($DESKTOP_STYLE_ARG && @ARGV > 2) { &utf8_sanity_check; &preparation; &print_message; &desktop_merge_translations; &finalize; } elsif ($SCHEMAS_STYLE_ARG && @ARGV > 2) { &utf8_sanity_check; &preparation; &print_message; &schemas_merge_translations; &finalize; } elsif ($RFC822DEB_STYLE_ARG && @ARGV > 2) { &preparation; &print_message; &rfc822deb_merge_translations; &finalize; } else { &print_help; } exit; ## Sub for printing release information sub print_version { print <<_EOF_; ${PROGRAM} (${PACKAGE}) ${VERSION} Written by Maciej Stachowiak, Darin Adler and Kenneth Christiansen. Copyright (C) 2000-2003 Free Software Foundation, Inc. Copyright (C) 2000-2001 Eazel, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. _EOF_ exit; } ## Sub for printing usage information sub print_help { print <<_EOF_; Usage: ${PROGRAM} [OPTION]... PO_DIRECTORY FILENAME OUTPUT_FILE Generates an output file that includes some localized attributes from an untranslated source file. Mandatory options: (exactly one must be specified) -b, --ba-style includes translations in the bonobo-activation style -d, --desktop-style includes translations in the desktop style -k, --keys-style includes translations in the keys style -s, --schemas-style includes translations in the schemas style -r, --rfc822deb-style includes translations in the RFC822 style -x, --xml-style includes translations in the standard xml style Other options: -u, --utf8 convert all strings to UTF-8 before merging (default for everything except RFC822 style) -p, --pass-through deprecated, does nothing and issues a warning -m, --multiple-output output one localized file per locale, instead of a single file containing all localized elements -c, --cache=FILE specify cache file name (usually \$top_builddir/po/.intltool-merge-cache) -q, --quiet suppress most messages --help display this help and exit --version output version information and exit Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") or send email to <xml-i18n-tools\@gnome.org>. _EOF_ exit; } ## Sub for printing error messages sub print_error { print STDERR "Try `${PROGRAM} --help' for more information.\n"; exit; } sub print_message { print "Merging translations into $OUTFILE.\n" unless $QUIET_ARG; } sub preparation { $PO_DIR = $ARGV[0]; $FILE = $ARGV[1]; $OUTFILE = $ARGV[2]; &gather_po_files; &get_translation_database; } # General-purpose code for looking up translations in .po files sub po_file2lang { my ($tmp) = @_; $tmp =~ s/^.*\/(.*)\.po$/$1/; return $tmp; } sub gather_po_files { for my $po_file (glob "$PO_DIR/*.po") { $po_files_by_lang{po_file2lang($po_file)} = $po_file; } } sub get_local_charset { my ($encoding) = @_; my $alias_file = $ENV{"G_CHARSET_ALIAS"} || "@INTLTOOL_LIBDIR@/charset.alias"; # seek character encoding aliases in charset.alias (glib) if (open CHARSET_ALIAS, $alias_file) { while (<CHARSET_ALIAS>) { next if /^\#/; return $1 if (/^\s*([-._a-zA-Z0-9]+)\s+$encoding\b/i) } close CHARSET_ALIAS; } # if not found, return input string return $encoding; } sub get_po_encoding { my ($in_po_file) = @_; my $encoding = ""; open IN_PO_FILE, $in_po_file or die; while (<IN_PO_FILE>) { ## example: "Content-Type: text/plain; charset=ISO-8859-1\n" if (/Content-Type\:.*charset=([-a-zA-Z0-9]+)\\n/) { $encoding = $1; last; } } close IN_PO_FILE; if (!$encoding) { print STDERR "Warning: no encoding found in $in_po_file. Assuming ISO-8859-1\n" unless $QUIET_ARG; $encoding = "ISO-8859-1"; } system ("$iconv -f $encoding -t UTF-8 <$devnull 2>$devnull"); if ($?) { $encoding = get_local_charset($encoding); } return $encoding } sub utf8_sanity_check { print STDERR "Warning: option --pass-through has been removed.\n" if $PASS_THROUGH_ARG; $UTF8_ARG = 1; } sub get_translation_database { if ($cache_file) { &get_cached_translation_database; } else { &create_translation_database; } } sub get_newest_po_age { my $newest_age; foreach my $file (values %po_files_by_lang) { my $file_age = -M $file; $newest_age = $file_age if !$newest_age || $file_age < $newest_age; } $newest_age = 0 if !$newest_age; return $newest_age; } sub create_cache { print "Generating and caching the translation database\n" unless $QUIET_ARG; &create_translation_database; open CACHE, ">$cache_file" || die; print CACHE join "\x01", %translations; close CACHE; } sub load_cache { print "Found cached translation database\n" unless $QUIET_ARG; my $contents; open CACHE, "<$cache_file" || die; { local $/; $contents = <CACHE>; } close CACHE; %translations = split "\x01", $contents; } sub get_cached_translation_database { my $cache_file_age = -M $cache_file; if (defined $cache_file_age) { if ($cache_file_age <= &get_newest_po_age) { &load_cache; return; } print "Found too-old cached translation database\n" unless $QUIET_ARG; } &create_cache; } sub create_translation_database { for my $lang (keys %po_files_by_lang) { my $po_file = $po_files_by_lang{$lang}; if ($UTF8_ARG) { my $encoding = get_po_encoding ($po_file); if (lc $encoding eq "utf-8") { open PO_FILE, "<$po_file"; } else { print "NOTICE: $po_file is not in UTF-8 but $encoding, converting...\n" unless $QUIET_ARG;; open PO_FILE, "$iconv -f $encoding -t UTF-8 $po_file|"; } } else { open PO_FILE, "<$po_file"; } my $nextfuzzy = 0; my $inmsgid = 0; my $inmsgstr = 0; my $msgid = ""; my $msgstr = ""; while (<PO_FILE>) { $nextfuzzy = 1 if /^#, fuzzy/; if (/^msgid "((\\.|[^\\])*)"/ ) { $translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr; $msgid = ""; $msgstr = ""; if ($nextfuzzy) { $inmsgid = 0; } else { $msgid = unescape_po_string($1); $inmsgid = 1; } $inmsgstr = 0; $nextfuzzy = 0; } if (/^msgstr "((\\.|[^\\])*)"/) { $msgstr = unescape_po_string($1); $inmsgstr = 1; $inmsgid = 0; } if (/^"((\\.|[^\\])*)"/) { $msgid .= unescape_po_string($1) if $inmsgid; $msgstr .= unescape_po_string($1) if $inmsgstr; } } $translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr; } } sub finalize { } sub unescape_one_sequence { my ($sequence) = @_; return "\\" if $sequence eq "\\\\"; return "\"" if $sequence eq "\\\""; return "\n" if $sequence eq "\\n"; return "\r" if $sequence eq "\\r"; return "\t" if $sequence eq "\\t"; return "\b" if $sequence eq "\\b"; return "\f" if $sequence eq "\\f"; return "\a" if $sequence eq "\\a"; return chr(11) if $sequence eq "\\v"; # vertical tab, see ascii(7) return chr(hex($1)) if ($sequence =~ /\\x([0-9a-fA-F]{2})/); return chr(oct($1)) if ($sequence =~ /\\([0-7]{3})/); # FIXME: Is \0 supported as well? Kenneth and Rodney don't want it, see bug #48489 return $sequence; } sub unescape_po_string { my ($string) = @_; $string =~ s/(\\x[0-9a-fA-F]{2}|\\[0-7]{3}|\\.)/unescape_one_sequence($1)/eg; return $string; } ## NOTE: deal with < - < but not > - > because it seems its ok to have ## > in the entity. For further info please look at #84738. sub entity_decode { local ($_) = @_; s/'/'/g; # ' s/"/"/g; # " s/&/&/g; s/</</g; return $_; } # entity_encode: (string) # # Encode the given string to XML format (encode '<' etc). sub entity_encode { my ($pre_encoded) = @_; my @list_of_chars = unpack ('C*', $pre_encoded); # with UTF-8 we only encode minimalistic return join ('', map (&entity_encode_int_minimalist, @list_of_chars)); } sub entity_encode_int_minimalist { return """ if $_ == 34; return "&" if $_ == 38; return "'" if $_ == 39; return "<" if $_ == 60; return chr $_; } sub entity_encoded_translation { my ($lang, $string) = @_; my $translation = $translations{$lang, $string}; return $string if !$translation; return entity_encode ($translation); } ## XML (bonobo-activation specific) merge code sub ba_merge_translations { my $source; { local $/; # slurp mode open INPUT, "<$FILE" or die "can't open $FILE: $!"; $source = <INPUT>; close INPUT; } open OUTPUT, ">$OUTFILE" or die "can't open $OUTFILE: $!"; # Binmode so that selftest works ok if using a native Win32 Perl... binmode (OUTPUT) if $^O eq 'MSWin32'; while ($source =~ s|^(.*?)([ \t]*<\s*$w+\s+($w+\s*=\s*"$q"\s*)+/?>)([ \t]*\n)?||s) { print OUTPUT $1; my $node = $2 . "\n"; my @strings = (); $_ = $node; while (s/(\s)_($w+\s*=\s*"($q)")/$1$2/s) { push @strings, entity_decode($3); } print OUTPUT; my %langs; for my $string (@strings) { for my $lang (keys %po_files_by_lang) { $langs{$lang} = 1 if $translations{$lang, $string}; } } for my $lang (sort keys %langs) { $_ = $node; s/(\sname\s*=\s*)"($q)"/$1"$2-$lang"/s; s/(\s)_($w+\s*=\s*")($q)"/$1 . $2 . entity_encoded_translation($lang, $3) . '"'/seg; print OUTPUT; } } print OUTPUT $source; close OUTPUT; } ## XML (non-bonobo-activation) merge code # Process tag attributes # Only parameter is a HASH containing attributes -> values mapping sub getAttributeString { my $sub = shift; my $do_translate = shift || 0; my $language = shift || ""; my $result = ""; my $translate = shift; foreach my $e (reverse(sort(keys %{ $sub }))) { my $key = $e; my $string = $sub->{$e}; my $quote = '"'; $string =~ s/^[\s]+//; $string =~ s/[\s]+$//; if ($string =~ /^'.*'$/) { $quote = "'"; } $string =~ s/^['"]//g; $string =~ s/['"]$//g; if ($do_translate && $key =~ /^_/) { $key =~ s|^_||g; if ($language) { # Handle translation my $decode_string = entity_decode($string); my $translation = $translations{$language, $decode_string}; if ($translation) { $translation = entity_encode($translation); $string = $translation; } $$translate = 2; } else { $$translate = 2 if ($translate && (!$$translate)); # watch not to "overwrite" $translate } } $result .= " $key=$quote$string$quote"; } return $result; } # Returns a translatable string from XML node, it works on contents of every node in XML::Parser tree sub getXMLstring { my $ref = shift; my $spacepreserve = shift || 0; my @list = @{ $ref }; my $result = ""; my $count = scalar(@list); my $attrs = $list[0]; my $index = 1; $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); while ($index < $count) { my $type = $list[$index]; my $content = $list[$index+1]; if (! $type ) { # We've got CDATA if ($content) { # lets strip the whitespace here, and *ONLY* here $content =~ s/\s+/ /gs if (!$spacepreserve); $result .= $content; } } elsif ( "$type" ne "1" ) { # We've got another element $result .= "<$type"; $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements if ($content) { my $subresult = getXMLstring($content, $spacepreserve); if ($subresult) { $result .= ">".$subresult . "</$type>"; } else { $result .= "/>"; } } else { $result .= "/>"; } } $index += 2; } return $result; } # Translate list of nodes if necessary sub translate_subnodes { my $fh = shift; my $content = shift; my $language = shift || ""; my $singlelang = shift || 0; my $spacepreserve = shift || 0; my @nodes = @{ $content }; my $count = scalar(@nodes); my $index = 0; while ($index < $count) { my $type = $nodes[$index]; my $rest = $nodes[$index+1]; if ($singlelang) { my $oldMO = $MULTIPLE_OUTPUT; $MULTIPLE_OUTPUT = 1; traverse($fh, $type, $rest, $language, $spacepreserve); $MULTIPLE_OUTPUT = $oldMO; } else { traverse($fh, $type, $rest, $language, $spacepreserve); } $index += 2; } } sub isWellFormedXmlFragment { my $ret = eval 'require XML::Parser'; if(!$ret) { die "You must have XML::Parser installed to run $0\n\n"; } my $fragment = shift; return 0 if (!$fragment); $fragment = "<root>$fragment</root>"; my $xp = new XML::Parser(Style => 'Tree'); my $tree = 0; eval { $tree = $xp->parse($fragment); }; return $tree; } sub traverse { my $fh = shift; my $nodename = shift; my $content = shift; my $language = shift || ""; my $spacepreserve = shift || 0; if (!$nodename) { if ($content =~ /^[\s]*$/) { $leading_space .= $content; } print $fh $content; } else { # element my @all = @{ $content }; my $attrs = shift @all; my $translate = 0; my $outattr = getAttributeString($attrs, 1, $language, \$translate); if ($nodename =~ /^_/) { $translate = 1; $nodename =~ s/^_//; } my $lookup = ''; $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); print $fh "<$nodename", $outattr; if ($translate) { $lookup = getXMLstring($content, $spacepreserve); if (!$spacepreserve) { $lookup =~ s/^\s+//s; $lookup =~ s/\s+$//s; } if ($lookup || $translate == 2) { my $translation = $translations{$language, $lookup} if isWellFormedXmlFragment($translations{$language, $lookup}); if ($MULTIPLE_OUTPUT && ($translation || $translate == 2)) { $translation = $lookup if (!$translation); print $fh " xml:lang=\"", $language, "\"" if $language; print $fh ">"; if ($translate == 2) { translate_subnodes($fh, \@all, $language, 1, $spacepreserve); } else { print $fh $translation; } print $fh "</$nodename>"; return; # this means there will be no same translation with xml:lang="$language"... # if we want them both, just remove this "return" } else { print $fh ">"; if ($translate == 2) { translate_subnodes($fh, \@all, $language, 1, $spacepreserve); } else { print $fh $lookup; } print $fh "</$nodename>"; } } else { print $fh "/>"; } for my $lang (sort keys %po_files_by_lang) { if ($MULTIPLE_OUTPUT && $lang ne "$language") { next; } if ($lang) { # Handle translation # my $translate = 0; my $localattrs = getAttributeString($attrs, 1, $lang, \$translate); my $translation = $translations{$lang, $lookup} if isWellFormedXmlFragment($translations{$lang, $lookup}); if ($translate && !$translation) { $translation = $lookup; } if ($translation || $translate) { print $fh "\n"; $leading_space =~ s/.*\n//g; print $fh $leading_space; print $fh "<", $nodename, " xml:lang=\"", $lang, "\"", $localattrs, ">"; if ($translate == 2) { translate_subnodes($fh, \@all, $lang, 1, $spacepreserve); } else { print $fh $translation; } print $fh "</$nodename>"; } } } } else { my $count = scalar(@all); if ($count > 0) { print $fh ">"; my $index = 0; while ($index < $count) { my $type = $all[$index]; my $rest = $all[$index+1]; traverse($fh, $type, $rest, $language, $spacepreserve); $index += 2; } print $fh "</$nodename>"; } else { print $fh "/>"; } } } } sub intltool_tree_comment { my $expat = shift; my $data = shift; my $clist = $expat->{Curlist}; my $pos = $#$clist; push @$clist, 1 => $data; } sub intltool_tree_cdatastart { my $expat = shift; my $clist = $expat->{Curlist}; my $pos = $#$clist; push @$clist, 0 => $expat->original_string(); } sub intltool_tree_cdataend { my $expat = shift; my $clist = $expat->{Curlist}; my $pos = $#$clist; $clist->[$pos] .= $expat->original_string(); } sub intltool_tree_char { my $expat = shift; my $text = shift; my $clist = $expat->{Curlist}; my $pos = $#$clist; # Use original_string so that we retain escaped entities # in CDATA sections. # if ($pos > 0 and $clist->[$pos - 1] eq '0') { $clist->[$pos] .= $expat->original_string(); } else { push @$clist, 0 => $expat->original_string(); } } sub intltool_tree_start { my $expat = shift; my $tag = shift; my @origlist = (); # Use original_string so that we retain escaped entities # in attribute values. We must convert the string to an # @origlist array to conform to the structure of the Tree # Style. # my @original_array = split /\x/, $expat->original_string(); my $source = $expat->original_string(); # Remove leading tag. # $source =~ s|^\s*<\s*(\S+)||s; # Grab attribute key/value pairs and push onto @origlist array. # while ($source) { if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/) { $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s; push @origlist, $1; push @origlist, '"' . $2 . '"'; } elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/) { $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s; push @origlist, $1; push @origlist, "'" . $2 . "'"; } else { last; } } my $ol = [ { @origlist } ]; push @{ $expat->{Lists} }, $expat->{Curlist}; push @{ $expat->{Curlist} }, $tag => $ol; $expat->{Curlist} = $ol; } sub readXml { my $filename = shift || return; if(!-f $filename) { die "ERROR Cannot find filename: $filename\n"; } my $ret = eval 'require XML::Parser'; if(!$ret) { die "You must have XML::Parser installed to run $0\n\n"; } my $xp = new XML::Parser(Style => 'Tree'); $xp->setHandlers(Char => \&intltool_tree_char); $xp->setHandlers(Start => \&intltool_tree_start); $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart); $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend); my $tree = $xp->parsefile($filename); # <foo><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo> # would be: # [foo, [{}, head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]], bar, [{}, # 0, "Howdy", ref, [{}]], 0, "do" ] ] return $tree; } sub print_header { my $infile = shift; my $fh = shift; my $source; if(!-f $infile) { die "ERROR Cannot find filename: $infile\n"; } print $fh qq{<?xml version="1.0" encoding="UTF-8"?>\n}; { local $/; open DOCINPUT, "<${FILE}" or die; $source = <DOCINPUT>; close DOCINPUT; } if ($source =~ /(<!DOCTYPE.*\[.*\]\s*>)/s) { print $fh "$1\n"; } elsif ($source =~ /(<!DOCTYPE[^>]*>)/s) { print $fh "$1\n"; } } sub parseTree { my $fh = shift; my $ref = shift; my $language = shift || ""; my $name = shift @{ $ref }; my $cont = shift @{ $ref }; while (!$name || "$name" eq "1") { $name = shift @{ $ref }; $cont = shift @{ $ref }; } my $spacepreserve = 0; my $attrs = @{$cont}[0]; $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); traverse($fh, $name, $cont, $language, $spacepreserve); } sub xml_merge_output { my $source; if ($MULTIPLE_OUTPUT) { for my $lang (sort keys %po_files_by_lang) { if ( ! -e $lang ) { mkdir $lang or die "Cannot create subdirectory $lang: $!\n"; } open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n"; binmode (OUTPUT) if $^O eq 'MSWin32'; my $tree = readXml($FILE); print_header($FILE, \*OUTPUT); parseTree(\*OUTPUT, $tree, $lang); close OUTPUT; print "CREATED $lang/$OUTFILE\n" unless $QUIET_ARG; } } open OUTPUT, ">$OUTFILE" or die "Cannot open $OUTFILE: $!\n"; binmode (OUTPUT) if $^O eq 'MSWin32'; my $tree = readXml($FILE); print_header($FILE, \*OUTPUT); parseTree(\*OUTPUT, $tree); close OUTPUT; print "CREATED $OUTFILE\n" unless $QUIET_ARG; } sub keys_merge_translations { open INPUT, "<${FILE}" or die; open OUTPUT, ">${OUTFILE}" or die; binmode (OUTPUT) if $^O eq 'MSWin32'; while (<INPUT>) { if (s/^(\s*)_(\w+=(.*))/$1$2/) { my $string = $3; print OUTPUT; my $non_translated_line = $_; for my $lang (sort keys %po_files_by_lang) { my $translation = $translations{$lang, $string}; next if !$translation; $_ = $non_translated_line; s/(\w+)=.*/[$lang]$1=$translation/; print OUTPUT; } } else { print OUTPUT; } } close OUTPUT; close INPUT; } sub desktop_merge_translations { open INPUT, "<${FILE}" or die; open OUTPUT, ">${OUTFILE}" or die; binmode (OUTPUT) if $^O eq 'MSWin32'; while (<INPUT>) { if (s/^(\s*)_(\w+=(.*))/$1$2/) { my $string = $3; print OUTPUT; my $non_translated_line = $_; for my $lang (sort keys %po_files_by_lang) { my $translation = $translations{$lang, $string}; next if !$translation; $_ = $non_translated_line; s/(\w+)=.*/${1}[$lang]=$translation/; print OUTPUT; } } else { print OUTPUT; } } close OUTPUT; close INPUT; } sub schemas_merge_translations { my $source; { local $/; # slurp mode open INPUT, "<$FILE" or die "can't open $FILE: $!"; $source = <INPUT>; close INPUT; } open OUTPUT, ">$OUTFILE" or die; binmode (OUTPUT) if $^O eq 'MSWin32'; # FIXME: support attribute translations # Empty nodes never need translation, so unmark all of them. # For example, <_foo/> is just replaced by <foo/>. $source =~ s|<\s*_($w+)\s*/>|<$1/>|g; while ($source =~ s/ (.*?) (\s+)(<locale\ name="C">(\s*) (<default>\s*(?:<!--[^>]*?-->\s*)?(.*?)\s*<\/default>)?(\s*) (<short>\s*(?:<!--[^>]*?-->\s*)?(.*?)\s*<\/short>)?(\s*) (<long>\s*(?:<!--[^>]*?-->\s*)?(.*?)\s*<\/long>)?(\s*) <\/locale>) //sx) { print OUTPUT $1; my $locale_start_spaces = $2 ? $2 : ''; my $default_spaces = $4 ? $4 : ''; my $short_spaces = $7 ? $7 : ''; my $long_spaces = $10 ? $10 : ''; my $locale_end_spaces = $13 ? $13 : ''; my $c_default_block = $3 ? $3 : ''; my $default_string = $6 ? $6 : ''; my $short_string = $9 ? $9 : ''; my $long_string = $12 ? $12 : ''; print OUTPUT "$locale_start_spaces$c_default_block"; $default_string =~ s/\s+/ /g; $default_string = entity_decode($default_string); $short_string =~ s/\s+/ /g; $short_string = entity_decode($short_string); $long_string =~ s/\s+/ /g; $long_string = entity_decode($long_string); for my $lang (sort keys %po_files_by_lang) { my $default_translation = $translations{$lang, $default_string}; my $short_translation = $translations{$lang, $short_string}; my $long_translation = $translations{$lang, $long_string}; next if (!$default_translation && !$short_translation && !$long_translation); print OUTPUT "\n$locale_start_spaces<locale name=\"$lang\">"; print OUTPUT "$default_spaces"; if ($default_translation) { $default_translation = entity_encode($default_translation); print OUTPUT "<default>$default_translation</default>"; } print OUTPUT "$short_spaces"; if ($short_translation) { $short_translation = entity_encode($short_translation); print OUTPUT "<short>$short_translation</short>"; } print OUTPUT "$long_spaces"; if ($long_translation) { $long_translation = entity_encode($long_translation); print OUTPUT "<long>$long_translation</long>"; } print OUTPUT "$locale_end_spaces</locale>"; } } print OUTPUT $source; close OUTPUT; } sub rfc822deb_merge_translations { my %encodings = (); for my $lang (keys %po_files_by_lang) { $encodings{$lang} = ($UTF8_ARG ? 'UTF-8' : get_po_encoding($po_files_by_lang{$lang})); } my $source; $Text::Wrap::huge = 'overflow'; $Text::Wrap::break = qr/\n|\s(?=\S)/; { local $/; # slurp mode open INPUT, "<$FILE" or die "can't open $FILE: $!"; $source = <INPUT>; close INPUT; } open OUTPUT, ">${OUTFILE}" or die; binmode (OUTPUT) if $^O eq 'MSWin32'; while ($source =~ /(^|\n+)(_*)([^:\s]+)(:[ \t]*)(.*?)(?=\n[\S\n]|$)/sg) { my $sep = $1; my $non_translated_line = $3.$4; my $string = $5; my $underscore = length($2); next if $underscore eq 0 && $non_translated_line =~ /^#/; # Remove [] dummy strings my $stripped = $string; $stripped =~ s/\[\s[^\[\]]*\],/,/g if $underscore eq 2; $stripped =~ s/\[\s[^\[\]]*\]$//; $non_translated_line .= $stripped; print OUTPUT $sep.$non_translated_line; if ($underscore) { my @str_list = rfc822deb_split($underscore, $string); for my $lang (sort keys %po_files_by_lang) { my $is_translated = 1; my $str_translated = ''; my $first = 1; for my $str (@str_list) { my $translation = $translations{$lang, $str}; if (!$translation) { $is_translated = 0; last; } # $translation may also contain [] dummy # strings, mostly to indicate an empty string $translation =~ s/\[\s[^\[\]]*\]$//; if ($first) { if ($underscore eq 2) { $str_translated .= $translation; } else { $str_translated .= Text::Tabs::expand($translation) . "\n"; } } else { if ($underscore eq 2) { $str_translated .= ', ' . $translation; } else { $str_translated .= Text::Tabs::expand( Text::Wrap::wrap(' ', ' ', $translation)) . "\n .\n"; } } $first = 0; # To fix some problems with Text::Wrap::wrap $str_translated =~ s/(\n )+\n/\n .\n/g; } next unless $is_translated; $str_translated =~ s/\n \.\n$//; $str_translated =~ s/\s+$//; $_ = $non_translated_line; s/^(\w+):\s*.*/$sep${1}-$lang.$encodings{$lang}: $str_translated/s; print OUTPUT; } } } print OUTPUT "\n"; close OUTPUT; close INPUT; } sub rfc822deb_split { # Debian defines a special way to deal with rfc822-style files: # when a value contain newlines, it consists of # 1. a short form (first line) # 2. a long description, all lines begin with a space, # and paragraphs are separated by a single dot on a line # This routine returns an array of all paragraphs, and reformat # them. # When first argument is 2, the string is a comma separated list of # values. my $type = shift; my $text = shift; $text =~ s/^[ \t]//mg; return (split(/, */, $text, 0)) if $type ne 1; return ($text) if $text !~ /\n/; $text =~ s/([^\n]*)\n//; my @list = ($1); my $str = ''; for my $line (split (/\n/, $text)) { chomp $line; if ($line =~ /^\.\s*$/) { # New paragraph $str =~ s/\s*$//; push(@list, $str); $str = ''; } elsif ($line =~ /^\s/) { # Line which must not be reformatted $str .= "\n" if length ($str) && $str !~ /\n$/; $line =~ s/\s+$//; $str .= $line."\n"; } else { # Continuation line, remove newline $str .= " " if length ($str) && $str !~ /\n$/; $str .= $line; } } $str =~ s/\s*$//; push(@list, $str) if length ($str); return @list; } �������������������������������������������������������������������������������������������������������������tagtool-0.12.3/tagtool.spec�������������������������������������������������������������������������0000644�0001750�0001750�00000003030�10571114071�015120� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Summary: Audio Tag Tool is an MP3 and Vorbis tag manager. Name: tagtool Version: 0.12.3 Release: 1 License: GPL Group: Sound Source: http://pwp.netcabo.pt/paol/tagtool/%{name}-%{version}.tar.gz URL: http://pwp.netcabo.pt/paol/tagtool/ Buildroot: %{_tmppath}/%{name}-root Packager: Pedro Lopes <paol1976@yahoo.com> Requires: gtk2 >= 2.4.0, libglade2 >= 2.3.6, libxml2 >= 2.6.0, libvorbis >= 1.0, id3lib >= 3.8.0 BuildRequires: gtk2-devel, libglade2-devel, libxml2-devel, libvorbis-devel, id3lib-devel %description Audio Tag Tool is a program to manage the information fields in MP3 and Ogg Vorbis files (commonly called 'tags'). It can be used to edit tags one by one, but the most useful features are mass tag and mass rename. These are designed to tag or rename hundreds of files at once, in any desired format. %prep %setup -q %build CFLAGS="-g -O2" %configure make %install rm -rf $RPM_BUILD_ROOT %makeinstall #rm -r $RPM_BUILD_ROOT/var/scrollkeeper %post scrollkeeper-update %postun scrollkeeper-update %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-, root, root) %doc AUTHORS BUGS COPYING ChangeLog NEWS README THANKS TODO %{_bindir}/%{name} %{_datadir}/applications/tagtool.desktop %{_datadir}/tagtool/* %{_datadir}/pixmaps/TagTool.png %{_datadir}/locale/* %changelog * Fri Jul 7 2006 Michael Kuerschner <m-i.kuerschner@gmx.de> - Rebuild on FC4 * Wed Nov 3 2004 Nickolay V. Shmyrev <nshmyrev@yandex.ru> - Update to recent version * Sun Nov 4 2001 Chris Weyl <cweyl@mindspring.com> - Autoconfiscated package. - First spec file. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/���������������������������������������������������������������������������������0000755�0001750�0001750�00000000000�10571121451�013366� 5����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/Makefile.in����������������������������������������������������������������������0000644�0001750�0001750�00000332441�10571112705�015444� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.7.9 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_MP3_FALSE = @ENABLE_MP3_FALSE@ ENABLE_MP3_TRUE = @ENABLE_MP3_TRUE@ ENABLE_VORBIS_FALSE = @ENABLE_VORBIS_FALSE@ ENABLE_VORBIS_TRUE = @ENABLE_VORBIS_TRUE@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_ICONV = @INTLTOOL_ICONV@ INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@ INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@ INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@ INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPEC_RELEASE = @SPEC_RELEASE@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ EXTRA_DIST = tagtool.glade preferences.dtd bin_PROGRAMS = tagtool resourcedir = $(pkgdatadir) resource_DATA = tagtool.glade preferences.dtd @ENABLE_MP3_TRUE@mp3_sources = mpeg_file.c mpeg_file.h mpeg_edit.c mpeg_edit.h \ @ENABLE_MP3_TRUE@ mpeg_edit_field.c mpeg_edit_field.h aux_id3lib.c @ENABLE_MP3_FALSE@mp3_sources = @ENABLE_MP3_TRUE@mp3_cflags = -DENABLE_MP3 @ENABLE_MP3_FALSE@mp3_cflags = @ENABLE_VORBIS_FALSE@vorbis_sources = @ENABLE_VORBIS_TRUE@vorbis_sources = vorbis_file.c vorbis_file.h vorbis_edit.c \ @ENABLE_VORBIS_TRUE@ vorbis_edit.h vorbis_edit_field.c vorbis_edit_field.h vcedit.c \ @ENABLE_VORBIS_TRUE@ vcedit.h @ENABLE_VORBIS_FALSE@vorbis_cflags = @ENABLE_VORBIS_TRUE@vorbis_cflags = -DENABLE_VORBIS tagtool_CFLAGS = -Wall -Wno-pointer-sign $(GTK_CFLAGS) ${mp3_cflags} \ ${vorbis_cflags} -DDATADIR='"$(datadir)/${PACKAGE_NAME}"' tagtool_LDFLAGS = -export-dynamic tagtool_LDADD = $(GTK_LIBS) tagtool_SOURCES = file_list.c file_list.h file_util.c file_util.h \ edit_tab.c edit_tab.h elist.c elist.h main.c math_util.c \ math_util.h genre.c genre.h mru.c mru.h prefs.c prefs.h \ prefs_versions.c prefs_versions.h rename_tab.c rename_tab.h \ playlist_tab.c playlist_tab.h tag_tab.c tag_tab.h main_win.c \ main_win.h progress_dlg.c progress_dlg.h help.c help.h \ audio_file.c audio_file.h char_conv_dlg.c char_conv_dlg.h \ message_box.c message_box.h cursor.c cursor.h gtk_util.c \ gtk_util.h glib_util.c glib_util.h str_util.c str_util.h \ str_convert.c str_convert.h about.c about.h prefs_dlg.c \ prefs_dlg.h rename_dlg.c rename_dlg.h status_bar.c status_bar.h \ clear_tab.c clear_tab.h scan_progress_dlg.c scan_progress_dlg.h \ chrono.c chrono.h tagtool.glade \ ${mp3_sources} ${vorbis_sources} EXTRA_tagtool_SOURCES = mpeg_file.c mpeg_file.h mpeg_edit.c mpeg_edit.h \ mpeg_edit_field.c mpeg_edit_field.h aux_id3lib.c vorbis_file.c \ vorbis_file.h vorbis_edit.c vorbis_edit.h vorbis_edit_field.c \ vorbis_edit_field.h vcedit.c vcedit.h subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = tagtool$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am__tagtool_SOURCES_DIST = file_list.c file_list.h file_util.c \ file_util.h edit_tab.c edit_tab.h elist.c elist.h main.c \ math_util.c math_util.h genre.c genre.h mru.c mru.h prefs.c \ prefs.h prefs_versions.c prefs_versions.h rename_tab.c \ rename_tab.h playlist_tab.c playlist_tab.h tag_tab.c tag_tab.h \ main_win.c main_win.h progress_dlg.c progress_dlg.h help.c \ help.h audio_file.c audio_file.h char_conv_dlg.c \ char_conv_dlg.h message_box.c message_box.h cursor.c cursor.h \ gtk_util.c gtk_util.h glib_util.c glib_util.h str_util.c \ str_util.h str_convert.c str_convert.h about.c about.h \ prefs_dlg.c prefs_dlg.h rename_dlg.c rename_dlg.h status_bar.c \ status_bar.h clear_tab.c clear_tab.h scan_progress_dlg.c \ scan_progress_dlg.h chrono.c chrono.h tagtool.glade mpeg_file.c \ mpeg_file.h mpeg_edit.c mpeg_edit.h mpeg_edit_field.c \ mpeg_edit_field.h aux_id3lib.c vorbis_file.c vorbis_file.h \ vorbis_edit.c vorbis_edit.h vorbis_edit_field.c \ vorbis_edit_field.h vcedit.c vcedit.h @ENABLE_MP3_TRUE@am__objects_1 = tagtool-mpeg_file.$(OBJEXT) \ @ENABLE_MP3_TRUE@ tagtool-mpeg_edit.$(OBJEXT) \ @ENABLE_MP3_TRUE@ tagtool-mpeg_edit_field.$(OBJEXT) \ @ENABLE_MP3_TRUE@ tagtool-aux_id3lib.$(OBJEXT) @ENABLE_MP3_FALSE@am__objects_1 = @ENABLE_VORBIS_TRUE@am__objects_2 = tagtool-vorbis_file.$(OBJEXT) \ @ENABLE_VORBIS_TRUE@ tagtool-vorbis_edit.$(OBJEXT) \ @ENABLE_VORBIS_TRUE@ tagtool-vorbis_edit_field.$(OBJEXT) \ @ENABLE_VORBIS_TRUE@ tagtool-vcedit.$(OBJEXT) @ENABLE_VORBIS_FALSE@am__objects_2 = am_tagtool_OBJECTS = tagtool-file_list.$(OBJEXT) \ tagtool-file_util.$(OBJEXT) tagtool-edit_tab.$(OBJEXT) \ tagtool-elist.$(OBJEXT) tagtool-main.$(OBJEXT) \ tagtool-math_util.$(OBJEXT) tagtool-genre.$(OBJEXT) \ tagtool-mru.$(OBJEXT) tagtool-prefs.$(OBJEXT) \ tagtool-prefs_versions.$(OBJEXT) tagtool-rename_tab.$(OBJEXT) \ tagtool-playlist_tab.$(OBJEXT) tagtool-tag_tab.$(OBJEXT) \ tagtool-main_win.$(OBJEXT) tagtool-progress_dlg.$(OBJEXT) \ tagtool-help.$(OBJEXT) tagtool-audio_file.$(OBJEXT) \ tagtool-char_conv_dlg.$(OBJEXT) tagtool-message_box.$(OBJEXT) \ tagtool-cursor.$(OBJEXT) tagtool-gtk_util.$(OBJEXT) \ tagtool-glib_util.$(OBJEXT) tagtool-str_util.$(OBJEXT) \ tagtool-str_convert.$(OBJEXT) tagtool-about.$(OBJEXT) \ tagtool-prefs_dlg.$(OBJEXT) tagtool-rename_dlg.$(OBJEXT) \ tagtool-status_bar.$(OBJEXT) tagtool-clear_tab.$(OBJEXT) \ tagtool-scan_progress_dlg.$(OBJEXT) tagtool-chrono.$(OBJEXT) \ $(am__objects_1) $(am__objects_2) tagtool_OBJECTS = $(am_tagtool_OBJECTS) tagtool_DEPENDENCIES = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/tagtool-about.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-audio_file.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-aux_id3lib.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-char_conv_dlg.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-chrono.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-clear_tab.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-cursor.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-edit_tab.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-elist.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-file_list.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-file_util.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-genre.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-glib_util.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-gtk_util.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-help.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-main.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-main_win.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-math_util.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-message_box.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-mpeg_edit.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-mpeg_edit_field.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-mpeg_file.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-mru.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-playlist_tab.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-prefs.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-prefs_dlg.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-prefs_versions.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-progress_dlg.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-rename_dlg.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-rename_tab.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-scan_progress_dlg.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-status_bar.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-str_convert.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-str_util.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-tag_tab.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-vcedit.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-vorbis_edit.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-vorbis_edit_field.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/tagtool-vorbis_file.Po COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(am__tagtool_SOURCES_DIST) $(EXTRA_tagtool_SOURCES) DATA = $(resource_DATA) DIST_COMMON = $(srcdir)/Makefile.in Makefile.am SOURCES = $(tagtool_SOURCES) $(EXTRA_tagtool_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) tagtool$(EXEEXT): $(tagtool_OBJECTS) $(tagtool_DEPENDENCIES) @rm -f tagtool$(EXEEXT) $(LINK) $(tagtool_LDFLAGS) $(tagtool_OBJECTS) $(tagtool_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-about.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-audio_file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-aux_id3lib.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-char_conv_dlg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-chrono.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-clear_tab.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-cursor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-edit_tab.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-elist.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-file_list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-file_util.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-genre.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-glib_util.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-gtk_util.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-help.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-main_win.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-math_util.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-message_box.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-mpeg_edit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-mpeg_edit_field.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-mpeg_file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-mru.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-playlist_tab.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-prefs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-prefs_dlg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-prefs_versions.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-progress_dlg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-rename_dlg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-rename_tab.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-scan_progress_dlg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-status_bar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-str_convert.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-str_util.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-tag_tab.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-vcedit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-vorbis_edit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-vorbis_edit_field.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tagtool-vorbis_file.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` tagtool-file_list.o: file_list.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-file_list.o -MD -MP -MF "$(DEPDIR)/tagtool-file_list.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-file_list.o `test -f 'file_list.c' || echo '$(srcdir)/'`file_list.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-file_list.Tpo" "$(DEPDIR)/tagtool-file_list.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-file_list.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_list.c' object='tagtool-file_list.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-file_list.Po' tmpdepfile='$(DEPDIR)/tagtool-file_list.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-file_list.o `test -f 'file_list.c' || echo '$(srcdir)/'`file_list.c tagtool-file_list.obj: file_list.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-file_list.obj -MD -MP -MF "$(DEPDIR)/tagtool-file_list.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-file_list.obj `if test -f 'file_list.c'; then $(CYGPATH_W) 'file_list.c'; else $(CYGPATH_W) '$(srcdir)/file_list.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-file_list.Tpo" "$(DEPDIR)/tagtool-file_list.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-file_list.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_list.c' object='tagtool-file_list.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-file_list.Po' tmpdepfile='$(DEPDIR)/tagtool-file_list.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-file_list.obj `if test -f 'file_list.c'; then $(CYGPATH_W) 'file_list.c'; else $(CYGPATH_W) '$(srcdir)/file_list.c'; fi` tagtool-file_util.o: file_util.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-file_util.o -MD -MP -MF "$(DEPDIR)/tagtool-file_util.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-file_util.o `test -f 'file_util.c' || echo '$(srcdir)/'`file_util.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-file_util.Tpo" "$(DEPDIR)/tagtool-file_util.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-file_util.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_util.c' object='tagtool-file_util.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-file_util.Po' tmpdepfile='$(DEPDIR)/tagtool-file_util.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-file_util.o `test -f 'file_util.c' || echo '$(srcdir)/'`file_util.c tagtool-file_util.obj: file_util.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-file_util.obj -MD -MP -MF "$(DEPDIR)/tagtool-file_util.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-file_util.obj `if test -f 'file_util.c'; then $(CYGPATH_W) 'file_util.c'; else $(CYGPATH_W) '$(srcdir)/file_util.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-file_util.Tpo" "$(DEPDIR)/tagtool-file_util.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-file_util.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file_util.c' object='tagtool-file_util.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-file_util.Po' tmpdepfile='$(DEPDIR)/tagtool-file_util.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-file_util.obj `if test -f 'file_util.c'; then $(CYGPATH_W) 'file_util.c'; else $(CYGPATH_W) '$(srcdir)/file_util.c'; fi` tagtool-edit_tab.o: edit_tab.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-edit_tab.o -MD -MP -MF "$(DEPDIR)/tagtool-edit_tab.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-edit_tab.o `test -f 'edit_tab.c' || echo '$(srcdir)/'`edit_tab.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-edit_tab.Tpo" "$(DEPDIR)/tagtool-edit_tab.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-edit_tab.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='edit_tab.c' object='tagtool-edit_tab.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-edit_tab.Po' tmpdepfile='$(DEPDIR)/tagtool-edit_tab.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-edit_tab.o `test -f 'edit_tab.c' || echo '$(srcdir)/'`edit_tab.c tagtool-edit_tab.obj: edit_tab.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-edit_tab.obj -MD -MP -MF "$(DEPDIR)/tagtool-edit_tab.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-edit_tab.obj `if test -f 'edit_tab.c'; then $(CYGPATH_W) 'edit_tab.c'; else $(CYGPATH_W) '$(srcdir)/edit_tab.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-edit_tab.Tpo" "$(DEPDIR)/tagtool-edit_tab.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-edit_tab.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='edit_tab.c' object='tagtool-edit_tab.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-edit_tab.Po' tmpdepfile='$(DEPDIR)/tagtool-edit_tab.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-edit_tab.obj `if test -f 'edit_tab.c'; then $(CYGPATH_W) 'edit_tab.c'; else $(CYGPATH_W) '$(srcdir)/edit_tab.c'; fi` tagtool-elist.o: elist.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-elist.o -MD -MP -MF "$(DEPDIR)/tagtool-elist.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-elist.o `test -f 'elist.c' || echo '$(srcdir)/'`elist.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-elist.Tpo" "$(DEPDIR)/tagtool-elist.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-elist.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elist.c' object='tagtool-elist.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-elist.Po' tmpdepfile='$(DEPDIR)/tagtool-elist.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-elist.o `test -f 'elist.c' || echo '$(srcdir)/'`elist.c tagtool-elist.obj: elist.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-elist.obj -MD -MP -MF "$(DEPDIR)/tagtool-elist.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-elist.obj `if test -f 'elist.c'; then $(CYGPATH_W) 'elist.c'; else $(CYGPATH_W) '$(srcdir)/elist.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-elist.Tpo" "$(DEPDIR)/tagtool-elist.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-elist.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elist.c' object='tagtool-elist.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-elist.Po' tmpdepfile='$(DEPDIR)/tagtool-elist.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-elist.obj `if test -f 'elist.c'; then $(CYGPATH_W) 'elist.c'; else $(CYGPATH_W) '$(srcdir)/elist.c'; fi` tagtool-main.o: main.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-main.o -MD -MP -MF "$(DEPDIR)/tagtool-main.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-main.Tpo" "$(DEPDIR)/tagtool-main.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-main.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='tagtool-main.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-main.Po' tmpdepfile='$(DEPDIR)/tagtool-main.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c tagtool-main.obj: main.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-main.obj -MD -MP -MF "$(DEPDIR)/tagtool-main.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-main.Tpo" "$(DEPDIR)/tagtool-main.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-main.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='tagtool-main.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-main.Po' tmpdepfile='$(DEPDIR)/tagtool-main.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` tagtool-math_util.o: math_util.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-math_util.o -MD -MP -MF "$(DEPDIR)/tagtool-math_util.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-math_util.o `test -f 'math_util.c' || echo '$(srcdir)/'`math_util.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-math_util.Tpo" "$(DEPDIR)/tagtool-math_util.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-math_util.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='math_util.c' object='tagtool-math_util.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-math_util.Po' tmpdepfile='$(DEPDIR)/tagtool-math_util.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-math_util.o `test -f 'math_util.c' || echo '$(srcdir)/'`math_util.c tagtool-math_util.obj: math_util.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-math_util.obj -MD -MP -MF "$(DEPDIR)/tagtool-math_util.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-math_util.obj `if test -f 'math_util.c'; then $(CYGPATH_W) 'math_util.c'; else $(CYGPATH_W) '$(srcdir)/math_util.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-math_util.Tpo" "$(DEPDIR)/tagtool-math_util.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-math_util.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='math_util.c' object='tagtool-math_util.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-math_util.Po' tmpdepfile='$(DEPDIR)/tagtool-math_util.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-math_util.obj `if test -f 'math_util.c'; then $(CYGPATH_W) 'math_util.c'; else $(CYGPATH_W) '$(srcdir)/math_util.c'; fi` tagtool-genre.o: genre.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-genre.o -MD -MP -MF "$(DEPDIR)/tagtool-genre.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-genre.o `test -f 'genre.c' || echo '$(srcdir)/'`genre.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-genre.Tpo" "$(DEPDIR)/tagtool-genre.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-genre.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='genre.c' object='tagtool-genre.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-genre.Po' tmpdepfile='$(DEPDIR)/tagtool-genre.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-genre.o `test -f 'genre.c' || echo '$(srcdir)/'`genre.c tagtool-genre.obj: genre.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-genre.obj -MD -MP -MF "$(DEPDIR)/tagtool-genre.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-genre.obj `if test -f 'genre.c'; then $(CYGPATH_W) 'genre.c'; else $(CYGPATH_W) '$(srcdir)/genre.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-genre.Tpo" "$(DEPDIR)/tagtool-genre.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-genre.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='genre.c' object='tagtool-genre.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-genre.Po' tmpdepfile='$(DEPDIR)/tagtool-genre.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-genre.obj `if test -f 'genre.c'; then $(CYGPATH_W) 'genre.c'; else $(CYGPATH_W) '$(srcdir)/genre.c'; fi` tagtool-mru.o: mru.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-mru.o -MD -MP -MF "$(DEPDIR)/tagtool-mru.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-mru.o `test -f 'mru.c' || echo '$(srcdir)/'`mru.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-mru.Tpo" "$(DEPDIR)/tagtool-mru.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-mru.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mru.c' object='tagtool-mru.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-mru.Po' tmpdepfile='$(DEPDIR)/tagtool-mru.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-mru.o `test -f 'mru.c' || echo '$(srcdir)/'`mru.c tagtool-mru.obj: mru.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-mru.obj -MD -MP -MF "$(DEPDIR)/tagtool-mru.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-mru.obj `if test -f 'mru.c'; then $(CYGPATH_W) 'mru.c'; else $(CYGPATH_W) '$(srcdir)/mru.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-mru.Tpo" "$(DEPDIR)/tagtool-mru.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-mru.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mru.c' object='tagtool-mru.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-mru.Po' tmpdepfile='$(DEPDIR)/tagtool-mru.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-mru.obj `if test -f 'mru.c'; then $(CYGPATH_W) 'mru.c'; else $(CYGPATH_W) '$(srcdir)/mru.c'; fi` tagtool-prefs.o: prefs.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-prefs.o -MD -MP -MF "$(DEPDIR)/tagtool-prefs.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-prefs.o `test -f 'prefs.c' || echo '$(srcdir)/'`prefs.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-prefs.Tpo" "$(DEPDIR)/tagtool-prefs.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-prefs.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='prefs.c' object='tagtool-prefs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-prefs.Po' tmpdepfile='$(DEPDIR)/tagtool-prefs.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-prefs.o `test -f 'prefs.c' || echo '$(srcdir)/'`prefs.c tagtool-prefs.obj: prefs.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-prefs.obj -MD -MP -MF "$(DEPDIR)/tagtool-prefs.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-prefs.obj `if test -f 'prefs.c'; then $(CYGPATH_W) 'prefs.c'; else $(CYGPATH_W) '$(srcdir)/prefs.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-prefs.Tpo" "$(DEPDIR)/tagtool-prefs.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-prefs.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='prefs.c' object='tagtool-prefs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-prefs.Po' tmpdepfile='$(DEPDIR)/tagtool-prefs.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-prefs.obj `if test -f 'prefs.c'; then $(CYGPATH_W) 'prefs.c'; else $(CYGPATH_W) '$(srcdir)/prefs.c'; fi` tagtool-prefs_versions.o: prefs_versions.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-prefs_versions.o -MD -MP -MF "$(DEPDIR)/tagtool-prefs_versions.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-prefs_versions.o `test -f 'prefs_versions.c' || echo '$(srcdir)/'`prefs_versions.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-prefs_versions.Tpo" "$(DEPDIR)/tagtool-prefs_versions.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-prefs_versions.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='prefs_versions.c' object='tagtool-prefs_versions.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-prefs_versions.Po' tmpdepfile='$(DEPDIR)/tagtool-prefs_versions.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-prefs_versions.o `test -f 'prefs_versions.c' || echo '$(srcdir)/'`prefs_versions.c tagtool-prefs_versions.obj: prefs_versions.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-prefs_versions.obj -MD -MP -MF "$(DEPDIR)/tagtool-prefs_versions.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-prefs_versions.obj `if test -f 'prefs_versions.c'; then $(CYGPATH_W) 'prefs_versions.c'; else $(CYGPATH_W) '$(srcdir)/prefs_versions.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-prefs_versions.Tpo" "$(DEPDIR)/tagtool-prefs_versions.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-prefs_versions.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='prefs_versions.c' object='tagtool-prefs_versions.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-prefs_versions.Po' tmpdepfile='$(DEPDIR)/tagtool-prefs_versions.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-prefs_versions.obj `if test -f 'prefs_versions.c'; then $(CYGPATH_W) 'prefs_versions.c'; else $(CYGPATH_W) '$(srcdir)/prefs_versions.c'; fi` tagtool-rename_tab.o: rename_tab.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-rename_tab.o -MD -MP -MF "$(DEPDIR)/tagtool-rename_tab.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-rename_tab.o `test -f 'rename_tab.c' || echo '$(srcdir)/'`rename_tab.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-rename_tab.Tpo" "$(DEPDIR)/tagtool-rename_tab.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-rename_tab.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rename_tab.c' object='tagtool-rename_tab.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-rename_tab.Po' tmpdepfile='$(DEPDIR)/tagtool-rename_tab.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-rename_tab.o `test -f 'rename_tab.c' || echo '$(srcdir)/'`rename_tab.c tagtool-rename_tab.obj: rename_tab.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-rename_tab.obj -MD -MP -MF "$(DEPDIR)/tagtool-rename_tab.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-rename_tab.obj `if test -f 'rename_tab.c'; then $(CYGPATH_W) 'rename_tab.c'; else $(CYGPATH_W) '$(srcdir)/rename_tab.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-rename_tab.Tpo" "$(DEPDIR)/tagtool-rename_tab.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-rename_tab.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rename_tab.c' object='tagtool-rename_tab.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-rename_tab.Po' tmpdepfile='$(DEPDIR)/tagtool-rename_tab.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-rename_tab.obj `if test -f 'rename_tab.c'; then $(CYGPATH_W) 'rename_tab.c'; else $(CYGPATH_W) '$(srcdir)/rename_tab.c'; fi` tagtool-playlist_tab.o: playlist_tab.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-playlist_tab.o -MD -MP -MF "$(DEPDIR)/tagtool-playlist_tab.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-playlist_tab.o `test -f 'playlist_tab.c' || echo '$(srcdir)/'`playlist_tab.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-playlist_tab.Tpo" "$(DEPDIR)/tagtool-playlist_tab.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-playlist_tab.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='playlist_tab.c' object='tagtool-playlist_tab.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-playlist_tab.Po' tmpdepfile='$(DEPDIR)/tagtool-playlist_tab.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-playlist_tab.o `test -f 'playlist_tab.c' || echo '$(srcdir)/'`playlist_tab.c tagtool-playlist_tab.obj: playlist_tab.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-playlist_tab.obj -MD -MP -MF "$(DEPDIR)/tagtool-playlist_tab.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-playlist_tab.obj `if test -f 'playlist_tab.c'; then $(CYGPATH_W) 'playlist_tab.c'; else $(CYGPATH_W) '$(srcdir)/playlist_tab.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-playlist_tab.Tpo" "$(DEPDIR)/tagtool-playlist_tab.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-playlist_tab.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='playlist_tab.c' object='tagtool-playlist_tab.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-playlist_tab.Po' tmpdepfile='$(DEPDIR)/tagtool-playlist_tab.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-playlist_tab.obj `if test -f 'playlist_tab.c'; then $(CYGPATH_W) 'playlist_tab.c'; else $(CYGPATH_W) '$(srcdir)/playlist_tab.c'; fi` tagtool-tag_tab.o: tag_tab.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-tag_tab.o -MD -MP -MF "$(DEPDIR)/tagtool-tag_tab.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-tag_tab.o `test -f 'tag_tab.c' || echo '$(srcdir)/'`tag_tab.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-tag_tab.Tpo" "$(DEPDIR)/tagtool-tag_tab.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-tag_tab.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tag_tab.c' object='tagtool-tag_tab.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-tag_tab.Po' tmpdepfile='$(DEPDIR)/tagtool-tag_tab.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-tag_tab.o `test -f 'tag_tab.c' || echo '$(srcdir)/'`tag_tab.c tagtool-tag_tab.obj: tag_tab.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-tag_tab.obj -MD -MP -MF "$(DEPDIR)/tagtool-tag_tab.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-tag_tab.obj `if test -f 'tag_tab.c'; then $(CYGPATH_W) 'tag_tab.c'; else $(CYGPATH_W) '$(srcdir)/tag_tab.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-tag_tab.Tpo" "$(DEPDIR)/tagtool-tag_tab.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-tag_tab.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tag_tab.c' object='tagtool-tag_tab.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-tag_tab.Po' tmpdepfile='$(DEPDIR)/tagtool-tag_tab.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-tag_tab.obj `if test -f 'tag_tab.c'; then $(CYGPATH_W) 'tag_tab.c'; else $(CYGPATH_W) '$(srcdir)/tag_tab.c'; fi` tagtool-main_win.o: main_win.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-main_win.o -MD -MP -MF "$(DEPDIR)/tagtool-main_win.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-main_win.o `test -f 'main_win.c' || echo '$(srcdir)/'`main_win.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-main_win.Tpo" "$(DEPDIR)/tagtool-main_win.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-main_win.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main_win.c' object='tagtool-main_win.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-main_win.Po' tmpdepfile='$(DEPDIR)/tagtool-main_win.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-main_win.o `test -f 'main_win.c' || echo '$(srcdir)/'`main_win.c tagtool-main_win.obj: main_win.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-main_win.obj -MD -MP -MF "$(DEPDIR)/tagtool-main_win.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-main_win.obj `if test -f 'main_win.c'; then $(CYGPATH_W) 'main_win.c'; else $(CYGPATH_W) '$(srcdir)/main_win.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-main_win.Tpo" "$(DEPDIR)/tagtool-main_win.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-main_win.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main_win.c' object='tagtool-main_win.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-main_win.Po' tmpdepfile='$(DEPDIR)/tagtool-main_win.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-main_win.obj `if test -f 'main_win.c'; then $(CYGPATH_W) 'main_win.c'; else $(CYGPATH_W) '$(srcdir)/main_win.c'; fi` tagtool-progress_dlg.o: progress_dlg.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-progress_dlg.o -MD -MP -MF "$(DEPDIR)/tagtool-progress_dlg.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-progress_dlg.o `test -f 'progress_dlg.c' || echo '$(srcdir)/'`progress_dlg.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-progress_dlg.Tpo" "$(DEPDIR)/tagtool-progress_dlg.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-progress_dlg.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='progress_dlg.c' object='tagtool-progress_dlg.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-progress_dlg.Po' tmpdepfile='$(DEPDIR)/tagtool-progress_dlg.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-progress_dlg.o `test -f 'progress_dlg.c' || echo '$(srcdir)/'`progress_dlg.c tagtool-progress_dlg.obj: progress_dlg.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-progress_dlg.obj -MD -MP -MF "$(DEPDIR)/tagtool-progress_dlg.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-progress_dlg.obj `if test -f 'progress_dlg.c'; then $(CYGPATH_W) 'progress_dlg.c'; else $(CYGPATH_W) '$(srcdir)/progress_dlg.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-progress_dlg.Tpo" "$(DEPDIR)/tagtool-progress_dlg.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-progress_dlg.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='progress_dlg.c' object='tagtool-progress_dlg.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-progress_dlg.Po' tmpdepfile='$(DEPDIR)/tagtool-progress_dlg.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-progress_dlg.obj `if test -f 'progress_dlg.c'; then $(CYGPATH_W) 'progress_dlg.c'; else $(CYGPATH_W) '$(srcdir)/progress_dlg.c'; fi` tagtool-help.o: help.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-help.o -MD -MP -MF "$(DEPDIR)/tagtool-help.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-help.o `test -f 'help.c' || echo '$(srcdir)/'`help.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-help.Tpo" "$(DEPDIR)/tagtool-help.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-help.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='help.c' object='tagtool-help.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-help.Po' tmpdepfile='$(DEPDIR)/tagtool-help.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-help.o `test -f 'help.c' || echo '$(srcdir)/'`help.c tagtool-help.obj: help.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-help.obj -MD -MP -MF "$(DEPDIR)/tagtool-help.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-help.obj `if test -f 'help.c'; then $(CYGPATH_W) 'help.c'; else $(CYGPATH_W) '$(srcdir)/help.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-help.Tpo" "$(DEPDIR)/tagtool-help.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-help.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='help.c' object='tagtool-help.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-help.Po' tmpdepfile='$(DEPDIR)/tagtool-help.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-help.obj `if test -f 'help.c'; then $(CYGPATH_W) 'help.c'; else $(CYGPATH_W) '$(srcdir)/help.c'; fi` tagtool-audio_file.o: audio_file.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-audio_file.o -MD -MP -MF "$(DEPDIR)/tagtool-audio_file.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-audio_file.o `test -f 'audio_file.c' || echo '$(srcdir)/'`audio_file.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-audio_file.Tpo" "$(DEPDIR)/tagtool-audio_file.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-audio_file.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audio_file.c' object='tagtool-audio_file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-audio_file.Po' tmpdepfile='$(DEPDIR)/tagtool-audio_file.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-audio_file.o `test -f 'audio_file.c' || echo '$(srcdir)/'`audio_file.c tagtool-audio_file.obj: audio_file.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-audio_file.obj -MD -MP -MF "$(DEPDIR)/tagtool-audio_file.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-audio_file.obj `if test -f 'audio_file.c'; then $(CYGPATH_W) 'audio_file.c'; else $(CYGPATH_W) '$(srcdir)/audio_file.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-audio_file.Tpo" "$(DEPDIR)/tagtool-audio_file.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-audio_file.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audio_file.c' object='tagtool-audio_file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-audio_file.Po' tmpdepfile='$(DEPDIR)/tagtool-audio_file.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-audio_file.obj `if test -f 'audio_file.c'; then $(CYGPATH_W) 'audio_file.c'; else $(CYGPATH_W) '$(srcdir)/audio_file.c'; fi` tagtool-char_conv_dlg.o: char_conv_dlg.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-char_conv_dlg.o -MD -MP -MF "$(DEPDIR)/tagtool-char_conv_dlg.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-char_conv_dlg.o `test -f 'char_conv_dlg.c' || echo '$(srcdir)/'`char_conv_dlg.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-char_conv_dlg.Tpo" "$(DEPDIR)/tagtool-char_conv_dlg.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-char_conv_dlg.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_conv_dlg.c' object='tagtool-char_conv_dlg.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-char_conv_dlg.Po' tmpdepfile='$(DEPDIR)/tagtool-char_conv_dlg.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-char_conv_dlg.o `test -f 'char_conv_dlg.c' || echo '$(srcdir)/'`char_conv_dlg.c tagtool-char_conv_dlg.obj: char_conv_dlg.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-char_conv_dlg.obj -MD -MP -MF "$(DEPDIR)/tagtool-char_conv_dlg.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-char_conv_dlg.obj `if test -f 'char_conv_dlg.c'; then $(CYGPATH_W) 'char_conv_dlg.c'; else $(CYGPATH_W) '$(srcdir)/char_conv_dlg.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-char_conv_dlg.Tpo" "$(DEPDIR)/tagtool-char_conv_dlg.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-char_conv_dlg.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_conv_dlg.c' object='tagtool-char_conv_dlg.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-char_conv_dlg.Po' tmpdepfile='$(DEPDIR)/tagtool-char_conv_dlg.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-char_conv_dlg.obj `if test -f 'char_conv_dlg.c'; then $(CYGPATH_W) 'char_conv_dlg.c'; else $(CYGPATH_W) '$(srcdir)/char_conv_dlg.c'; fi` tagtool-message_box.o: message_box.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-message_box.o -MD -MP -MF "$(DEPDIR)/tagtool-message_box.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-message_box.o `test -f 'message_box.c' || echo '$(srcdir)/'`message_box.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-message_box.Tpo" "$(DEPDIR)/tagtool-message_box.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-message_box.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='message_box.c' object='tagtool-message_box.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-message_box.Po' tmpdepfile='$(DEPDIR)/tagtool-message_box.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-message_box.o `test -f 'message_box.c' || echo '$(srcdir)/'`message_box.c tagtool-message_box.obj: message_box.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-message_box.obj -MD -MP -MF "$(DEPDIR)/tagtool-message_box.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-message_box.obj `if test -f 'message_box.c'; then $(CYGPATH_W) 'message_box.c'; else $(CYGPATH_W) '$(srcdir)/message_box.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-message_box.Tpo" "$(DEPDIR)/tagtool-message_box.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-message_box.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='message_box.c' object='tagtool-message_box.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-message_box.Po' tmpdepfile='$(DEPDIR)/tagtool-message_box.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-message_box.obj `if test -f 'message_box.c'; then $(CYGPATH_W) 'message_box.c'; else $(CYGPATH_W) '$(srcdir)/message_box.c'; fi` tagtool-cursor.o: cursor.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-cursor.o -MD -MP -MF "$(DEPDIR)/tagtool-cursor.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-cursor.o `test -f 'cursor.c' || echo '$(srcdir)/'`cursor.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-cursor.Tpo" "$(DEPDIR)/tagtool-cursor.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-cursor.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cursor.c' object='tagtool-cursor.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-cursor.Po' tmpdepfile='$(DEPDIR)/tagtool-cursor.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-cursor.o `test -f 'cursor.c' || echo '$(srcdir)/'`cursor.c tagtool-cursor.obj: cursor.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-cursor.obj -MD -MP -MF "$(DEPDIR)/tagtool-cursor.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-cursor.obj `if test -f 'cursor.c'; then $(CYGPATH_W) 'cursor.c'; else $(CYGPATH_W) '$(srcdir)/cursor.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-cursor.Tpo" "$(DEPDIR)/tagtool-cursor.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-cursor.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cursor.c' object='tagtool-cursor.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-cursor.Po' tmpdepfile='$(DEPDIR)/tagtool-cursor.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-cursor.obj `if test -f 'cursor.c'; then $(CYGPATH_W) 'cursor.c'; else $(CYGPATH_W) '$(srcdir)/cursor.c'; fi` tagtool-gtk_util.o: gtk_util.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-gtk_util.o -MD -MP -MF "$(DEPDIR)/tagtool-gtk_util.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-gtk_util.o `test -f 'gtk_util.c' || echo '$(srcdir)/'`gtk_util.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-gtk_util.Tpo" "$(DEPDIR)/tagtool-gtk_util.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-gtk_util.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gtk_util.c' object='tagtool-gtk_util.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-gtk_util.Po' tmpdepfile='$(DEPDIR)/tagtool-gtk_util.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-gtk_util.o `test -f 'gtk_util.c' || echo '$(srcdir)/'`gtk_util.c tagtool-gtk_util.obj: gtk_util.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-gtk_util.obj -MD -MP -MF "$(DEPDIR)/tagtool-gtk_util.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-gtk_util.obj `if test -f 'gtk_util.c'; then $(CYGPATH_W) 'gtk_util.c'; else $(CYGPATH_W) '$(srcdir)/gtk_util.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-gtk_util.Tpo" "$(DEPDIR)/tagtool-gtk_util.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-gtk_util.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gtk_util.c' object='tagtool-gtk_util.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-gtk_util.Po' tmpdepfile='$(DEPDIR)/tagtool-gtk_util.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-gtk_util.obj `if test -f 'gtk_util.c'; then $(CYGPATH_W) 'gtk_util.c'; else $(CYGPATH_W) '$(srcdir)/gtk_util.c'; fi` tagtool-glib_util.o: glib_util.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-glib_util.o -MD -MP -MF "$(DEPDIR)/tagtool-glib_util.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-glib_util.o `test -f 'glib_util.c' || echo '$(srcdir)/'`glib_util.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-glib_util.Tpo" "$(DEPDIR)/tagtool-glib_util.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-glib_util.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glib_util.c' object='tagtool-glib_util.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-glib_util.Po' tmpdepfile='$(DEPDIR)/tagtool-glib_util.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-glib_util.o `test -f 'glib_util.c' || echo '$(srcdir)/'`glib_util.c tagtool-glib_util.obj: glib_util.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-glib_util.obj -MD -MP -MF "$(DEPDIR)/tagtool-glib_util.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-glib_util.obj `if test -f 'glib_util.c'; then $(CYGPATH_W) 'glib_util.c'; else $(CYGPATH_W) '$(srcdir)/glib_util.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-glib_util.Tpo" "$(DEPDIR)/tagtool-glib_util.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-glib_util.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='glib_util.c' object='tagtool-glib_util.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-glib_util.Po' tmpdepfile='$(DEPDIR)/tagtool-glib_util.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-glib_util.obj `if test -f 'glib_util.c'; then $(CYGPATH_W) 'glib_util.c'; else $(CYGPATH_W) '$(srcdir)/glib_util.c'; fi` tagtool-str_util.o: str_util.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-str_util.o -MD -MP -MF "$(DEPDIR)/tagtool-str_util.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-str_util.o `test -f 'str_util.c' || echo '$(srcdir)/'`str_util.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-str_util.Tpo" "$(DEPDIR)/tagtool-str_util.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-str_util.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='str_util.c' object='tagtool-str_util.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-str_util.Po' tmpdepfile='$(DEPDIR)/tagtool-str_util.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-str_util.o `test -f 'str_util.c' || echo '$(srcdir)/'`str_util.c tagtool-str_util.obj: str_util.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-str_util.obj -MD -MP -MF "$(DEPDIR)/tagtool-str_util.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-str_util.obj `if test -f 'str_util.c'; then $(CYGPATH_W) 'str_util.c'; else $(CYGPATH_W) '$(srcdir)/str_util.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-str_util.Tpo" "$(DEPDIR)/tagtool-str_util.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-str_util.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='str_util.c' object='tagtool-str_util.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-str_util.Po' tmpdepfile='$(DEPDIR)/tagtool-str_util.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-str_util.obj `if test -f 'str_util.c'; then $(CYGPATH_W) 'str_util.c'; else $(CYGPATH_W) '$(srcdir)/str_util.c'; fi` tagtool-str_convert.o: str_convert.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-str_convert.o -MD -MP -MF "$(DEPDIR)/tagtool-str_convert.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-str_convert.o `test -f 'str_convert.c' || echo '$(srcdir)/'`str_convert.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-str_convert.Tpo" "$(DEPDIR)/tagtool-str_convert.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-str_convert.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='str_convert.c' object='tagtool-str_convert.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-str_convert.Po' tmpdepfile='$(DEPDIR)/tagtool-str_convert.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-str_convert.o `test -f 'str_convert.c' || echo '$(srcdir)/'`str_convert.c tagtool-str_convert.obj: str_convert.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-str_convert.obj -MD -MP -MF "$(DEPDIR)/tagtool-str_convert.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-str_convert.obj `if test -f 'str_convert.c'; then $(CYGPATH_W) 'str_convert.c'; else $(CYGPATH_W) '$(srcdir)/str_convert.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-str_convert.Tpo" "$(DEPDIR)/tagtool-str_convert.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-str_convert.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='str_convert.c' object='tagtool-str_convert.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-str_convert.Po' tmpdepfile='$(DEPDIR)/tagtool-str_convert.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-str_convert.obj `if test -f 'str_convert.c'; then $(CYGPATH_W) 'str_convert.c'; else $(CYGPATH_W) '$(srcdir)/str_convert.c'; fi` tagtool-about.o: about.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-about.o -MD -MP -MF "$(DEPDIR)/tagtool-about.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-about.o `test -f 'about.c' || echo '$(srcdir)/'`about.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-about.Tpo" "$(DEPDIR)/tagtool-about.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-about.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='about.c' object='tagtool-about.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-about.Po' tmpdepfile='$(DEPDIR)/tagtool-about.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-about.o `test -f 'about.c' || echo '$(srcdir)/'`about.c tagtool-about.obj: about.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-about.obj -MD -MP -MF "$(DEPDIR)/tagtool-about.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-about.obj `if test -f 'about.c'; then $(CYGPATH_W) 'about.c'; else $(CYGPATH_W) '$(srcdir)/about.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-about.Tpo" "$(DEPDIR)/tagtool-about.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-about.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='about.c' object='tagtool-about.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-about.Po' tmpdepfile='$(DEPDIR)/tagtool-about.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-about.obj `if test -f 'about.c'; then $(CYGPATH_W) 'about.c'; else $(CYGPATH_W) '$(srcdir)/about.c'; fi` tagtool-prefs_dlg.o: prefs_dlg.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-prefs_dlg.o -MD -MP -MF "$(DEPDIR)/tagtool-prefs_dlg.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-prefs_dlg.o `test -f 'prefs_dlg.c' || echo '$(srcdir)/'`prefs_dlg.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-prefs_dlg.Tpo" "$(DEPDIR)/tagtool-prefs_dlg.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-prefs_dlg.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='prefs_dlg.c' object='tagtool-prefs_dlg.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-prefs_dlg.Po' tmpdepfile='$(DEPDIR)/tagtool-prefs_dlg.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-prefs_dlg.o `test -f 'prefs_dlg.c' || echo '$(srcdir)/'`prefs_dlg.c tagtool-prefs_dlg.obj: prefs_dlg.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-prefs_dlg.obj -MD -MP -MF "$(DEPDIR)/tagtool-prefs_dlg.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-prefs_dlg.obj `if test -f 'prefs_dlg.c'; then $(CYGPATH_W) 'prefs_dlg.c'; else $(CYGPATH_W) '$(srcdir)/prefs_dlg.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-prefs_dlg.Tpo" "$(DEPDIR)/tagtool-prefs_dlg.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-prefs_dlg.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='prefs_dlg.c' object='tagtool-prefs_dlg.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-prefs_dlg.Po' tmpdepfile='$(DEPDIR)/tagtool-prefs_dlg.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-prefs_dlg.obj `if test -f 'prefs_dlg.c'; then $(CYGPATH_W) 'prefs_dlg.c'; else $(CYGPATH_W) '$(srcdir)/prefs_dlg.c'; fi` tagtool-rename_dlg.o: rename_dlg.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-rename_dlg.o -MD -MP -MF "$(DEPDIR)/tagtool-rename_dlg.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-rename_dlg.o `test -f 'rename_dlg.c' || echo '$(srcdir)/'`rename_dlg.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-rename_dlg.Tpo" "$(DEPDIR)/tagtool-rename_dlg.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-rename_dlg.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rename_dlg.c' object='tagtool-rename_dlg.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-rename_dlg.Po' tmpdepfile='$(DEPDIR)/tagtool-rename_dlg.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-rename_dlg.o `test -f 'rename_dlg.c' || echo '$(srcdir)/'`rename_dlg.c tagtool-rename_dlg.obj: rename_dlg.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-rename_dlg.obj -MD -MP -MF "$(DEPDIR)/tagtool-rename_dlg.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-rename_dlg.obj `if test -f 'rename_dlg.c'; then $(CYGPATH_W) 'rename_dlg.c'; else $(CYGPATH_W) '$(srcdir)/rename_dlg.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-rename_dlg.Tpo" "$(DEPDIR)/tagtool-rename_dlg.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-rename_dlg.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rename_dlg.c' object='tagtool-rename_dlg.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-rename_dlg.Po' tmpdepfile='$(DEPDIR)/tagtool-rename_dlg.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-rename_dlg.obj `if test -f 'rename_dlg.c'; then $(CYGPATH_W) 'rename_dlg.c'; else $(CYGPATH_W) '$(srcdir)/rename_dlg.c'; fi` tagtool-status_bar.o: status_bar.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-status_bar.o -MD -MP -MF "$(DEPDIR)/tagtool-status_bar.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-status_bar.o `test -f 'status_bar.c' || echo '$(srcdir)/'`status_bar.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-status_bar.Tpo" "$(DEPDIR)/tagtool-status_bar.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-status_bar.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='status_bar.c' object='tagtool-status_bar.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-status_bar.Po' tmpdepfile='$(DEPDIR)/tagtool-status_bar.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-status_bar.o `test -f 'status_bar.c' || echo '$(srcdir)/'`status_bar.c tagtool-status_bar.obj: status_bar.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-status_bar.obj -MD -MP -MF "$(DEPDIR)/tagtool-status_bar.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-status_bar.obj `if test -f 'status_bar.c'; then $(CYGPATH_W) 'status_bar.c'; else $(CYGPATH_W) '$(srcdir)/status_bar.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-status_bar.Tpo" "$(DEPDIR)/tagtool-status_bar.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-status_bar.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='status_bar.c' object='tagtool-status_bar.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-status_bar.Po' tmpdepfile='$(DEPDIR)/tagtool-status_bar.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-status_bar.obj `if test -f 'status_bar.c'; then $(CYGPATH_W) 'status_bar.c'; else $(CYGPATH_W) '$(srcdir)/status_bar.c'; fi` tagtool-clear_tab.o: clear_tab.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-clear_tab.o -MD -MP -MF "$(DEPDIR)/tagtool-clear_tab.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-clear_tab.o `test -f 'clear_tab.c' || echo '$(srcdir)/'`clear_tab.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-clear_tab.Tpo" "$(DEPDIR)/tagtool-clear_tab.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-clear_tab.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='clear_tab.c' object='tagtool-clear_tab.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-clear_tab.Po' tmpdepfile='$(DEPDIR)/tagtool-clear_tab.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-clear_tab.o `test -f 'clear_tab.c' || echo '$(srcdir)/'`clear_tab.c tagtool-clear_tab.obj: clear_tab.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-clear_tab.obj -MD -MP -MF "$(DEPDIR)/tagtool-clear_tab.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-clear_tab.obj `if test -f 'clear_tab.c'; then $(CYGPATH_W) 'clear_tab.c'; else $(CYGPATH_W) '$(srcdir)/clear_tab.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-clear_tab.Tpo" "$(DEPDIR)/tagtool-clear_tab.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-clear_tab.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='clear_tab.c' object='tagtool-clear_tab.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-clear_tab.Po' tmpdepfile='$(DEPDIR)/tagtool-clear_tab.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-clear_tab.obj `if test -f 'clear_tab.c'; then $(CYGPATH_W) 'clear_tab.c'; else $(CYGPATH_W) '$(srcdir)/clear_tab.c'; fi` tagtool-scan_progress_dlg.o: scan_progress_dlg.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-scan_progress_dlg.o -MD -MP -MF "$(DEPDIR)/tagtool-scan_progress_dlg.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-scan_progress_dlg.o `test -f 'scan_progress_dlg.c' || echo '$(srcdir)/'`scan_progress_dlg.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-scan_progress_dlg.Tpo" "$(DEPDIR)/tagtool-scan_progress_dlg.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-scan_progress_dlg.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='scan_progress_dlg.c' object='tagtool-scan_progress_dlg.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-scan_progress_dlg.Po' tmpdepfile='$(DEPDIR)/tagtool-scan_progress_dlg.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-scan_progress_dlg.o `test -f 'scan_progress_dlg.c' || echo '$(srcdir)/'`scan_progress_dlg.c tagtool-scan_progress_dlg.obj: scan_progress_dlg.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-scan_progress_dlg.obj -MD -MP -MF "$(DEPDIR)/tagtool-scan_progress_dlg.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-scan_progress_dlg.obj `if test -f 'scan_progress_dlg.c'; then $(CYGPATH_W) 'scan_progress_dlg.c'; else $(CYGPATH_W) '$(srcdir)/scan_progress_dlg.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-scan_progress_dlg.Tpo" "$(DEPDIR)/tagtool-scan_progress_dlg.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-scan_progress_dlg.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='scan_progress_dlg.c' object='tagtool-scan_progress_dlg.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-scan_progress_dlg.Po' tmpdepfile='$(DEPDIR)/tagtool-scan_progress_dlg.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-scan_progress_dlg.obj `if test -f 'scan_progress_dlg.c'; then $(CYGPATH_W) 'scan_progress_dlg.c'; else $(CYGPATH_W) '$(srcdir)/scan_progress_dlg.c'; fi` tagtool-chrono.o: chrono.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-chrono.o -MD -MP -MF "$(DEPDIR)/tagtool-chrono.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-chrono.o `test -f 'chrono.c' || echo '$(srcdir)/'`chrono.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-chrono.Tpo" "$(DEPDIR)/tagtool-chrono.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-chrono.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='chrono.c' object='tagtool-chrono.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-chrono.Po' tmpdepfile='$(DEPDIR)/tagtool-chrono.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-chrono.o `test -f 'chrono.c' || echo '$(srcdir)/'`chrono.c tagtool-chrono.obj: chrono.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-chrono.obj -MD -MP -MF "$(DEPDIR)/tagtool-chrono.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-chrono.obj `if test -f 'chrono.c'; then $(CYGPATH_W) 'chrono.c'; else $(CYGPATH_W) '$(srcdir)/chrono.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-chrono.Tpo" "$(DEPDIR)/tagtool-chrono.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-chrono.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='chrono.c' object='tagtool-chrono.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-chrono.Po' tmpdepfile='$(DEPDIR)/tagtool-chrono.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-chrono.obj `if test -f 'chrono.c'; then $(CYGPATH_W) 'chrono.c'; else $(CYGPATH_W) '$(srcdir)/chrono.c'; fi` tagtool-mpeg_file.o: mpeg_file.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-mpeg_file.o -MD -MP -MF "$(DEPDIR)/tagtool-mpeg_file.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-mpeg_file.o `test -f 'mpeg_file.c' || echo '$(srcdir)/'`mpeg_file.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-mpeg_file.Tpo" "$(DEPDIR)/tagtool-mpeg_file.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-mpeg_file.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpeg_file.c' object='tagtool-mpeg_file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-mpeg_file.Po' tmpdepfile='$(DEPDIR)/tagtool-mpeg_file.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-mpeg_file.o `test -f 'mpeg_file.c' || echo '$(srcdir)/'`mpeg_file.c tagtool-mpeg_file.obj: mpeg_file.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-mpeg_file.obj -MD -MP -MF "$(DEPDIR)/tagtool-mpeg_file.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-mpeg_file.obj `if test -f 'mpeg_file.c'; then $(CYGPATH_W) 'mpeg_file.c'; else $(CYGPATH_W) '$(srcdir)/mpeg_file.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-mpeg_file.Tpo" "$(DEPDIR)/tagtool-mpeg_file.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-mpeg_file.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpeg_file.c' object='tagtool-mpeg_file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-mpeg_file.Po' tmpdepfile='$(DEPDIR)/tagtool-mpeg_file.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-mpeg_file.obj `if test -f 'mpeg_file.c'; then $(CYGPATH_W) 'mpeg_file.c'; else $(CYGPATH_W) '$(srcdir)/mpeg_file.c'; fi` tagtool-mpeg_edit.o: mpeg_edit.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-mpeg_edit.o -MD -MP -MF "$(DEPDIR)/tagtool-mpeg_edit.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-mpeg_edit.o `test -f 'mpeg_edit.c' || echo '$(srcdir)/'`mpeg_edit.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-mpeg_edit.Tpo" "$(DEPDIR)/tagtool-mpeg_edit.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-mpeg_edit.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpeg_edit.c' object='tagtool-mpeg_edit.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-mpeg_edit.Po' tmpdepfile='$(DEPDIR)/tagtool-mpeg_edit.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-mpeg_edit.o `test -f 'mpeg_edit.c' || echo '$(srcdir)/'`mpeg_edit.c tagtool-mpeg_edit.obj: mpeg_edit.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-mpeg_edit.obj -MD -MP -MF "$(DEPDIR)/tagtool-mpeg_edit.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-mpeg_edit.obj `if test -f 'mpeg_edit.c'; then $(CYGPATH_W) 'mpeg_edit.c'; else $(CYGPATH_W) '$(srcdir)/mpeg_edit.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-mpeg_edit.Tpo" "$(DEPDIR)/tagtool-mpeg_edit.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-mpeg_edit.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpeg_edit.c' object='tagtool-mpeg_edit.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-mpeg_edit.Po' tmpdepfile='$(DEPDIR)/tagtool-mpeg_edit.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-mpeg_edit.obj `if test -f 'mpeg_edit.c'; then $(CYGPATH_W) 'mpeg_edit.c'; else $(CYGPATH_W) '$(srcdir)/mpeg_edit.c'; fi` tagtool-mpeg_edit_field.o: mpeg_edit_field.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-mpeg_edit_field.o -MD -MP -MF "$(DEPDIR)/tagtool-mpeg_edit_field.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-mpeg_edit_field.o `test -f 'mpeg_edit_field.c' || echo '$(srcdir)/'`mpeg_edit_field.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-mpeg_edit_field.Tpo" "$(DEPDIR)/tagtool-mpeg_edit_field.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-mpeg_edit_field.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpeg_edit_field.c' object='tagtool-mpeg_edit_field.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-mpeg_edit_field.Po' tmpdepfile='$(DEPDIR)/tagtool-mpeg_edit_field.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-mpeg_edit_field.o `test -f 'mpeg_edit_field.c' || echo '$(srcdir)/'`mpeg_edit_field.c tagtool-mpeg_edit_field.obj: mpeg_edit_field.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-mpeg_edit_field.obj -MD -MP -MF "$(DEPDIR)/tagtool-mpeg_edit_field.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-mpeg_edit_field.obj `if test -f 'mpeg_edit_field.c'; then $(CYGPATH_W) 'mpeg_edit_field.c'; else $(CYGPATH_W) '$(srcdir)/mpeg_edit_field.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-mpeg_edit_field.Tpo" "$(DEPDIR)/tagtool-mpeg_edit_field.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-mpeg_edit_field.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpeg_edit_field.c' object='tagtool-mpeg_edit_field.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-mpeg_edit_field.Po' tmpdepfile='$(DEPDIR)/tagtool-mpeg_edit_field.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-mpeg_edit_field.obj `if test -f 'mpeg_edit_field.c'; then $(CYGPATH_W) 'mpeg_edit_field.c'; else $(CYGPATH_W) '$(srcdir)/mpeg_edit_field.c'; fi` tagtool-aux_id3lib.o: aux_id3lib.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-aux_id3lib.o -MD -MP -MF "$(DEPDIR)/tagtool-aux_id3lib.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-aux_id3lib.o `test -f 'aux_id3lib.c' || echo '$(srcdir)/'`aux_id3lib.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-aux_id3lib.Tpo" "$(DEPDIR)/tagtool-aux_id3lib.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-aux_id3lib.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='aux_id3lib.c' object='tagtool-aux_id3lib.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-aux_id3lib.Po' tmpdepfile='$(DEPDIR)/tagtool-aux_id3lib.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-aux_id3lib.o `test -f 'aux_id3lib.c' || echo '$(srcdir)/'`aux_id3lib.c tagtool-aux_id3lib.obj: aux_id3lib.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-aux_id3lib.obj -MD -MP -MF "$(DEPDIR)/tagtool-aux_id3lib.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-aux_id3lib.obj `if test -f 'aux_id3lib.c'; then $(CYGPATH_W) 'aux_id3lib.c'; else $(CYGPATH_W) '$(srcdir)/aux_id3lib.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-aux_id3lib.Tpo" "$(DEPDIR)/tagtool-aux_id3lib.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-aux_id3lib.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='aux_id3lib.c' object='tagtool-aux_id3lib.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-aux_id3lib.Po' tmpdepfile='$(DEPDIR)/tagtool-aux_id3lib.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-aux_id3lib.obj `if test -f 'aux_id3lib.c'; then $(CYGPATH_W) 'aux_id3lib.c'; else $(CYGPATH_W) '$(srcdir)/aux_id3lib.c'; fi` tagtool-vorbis_file.o: vorbis_file.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-vorbis_file.o -MD -MP -MF "$(DEPDIR)/tagtool-vorbis_file.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-vorbis_file.o `test -f 'vorbis_file.c' || echo '$(srcdir)/'`vorbis_file.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-vorbis_file.Tpo" "$(DEPDIR)/tagtool-vorbis_file.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-vorbis_file.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vorbis_file.c' object='tagtool-vorbis_file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-vorbis_file.Po' tmpdepfile='$(DEPDIR)/tagtool-vorbis_file.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-vorbis_file.o `test -f 'vorbis_file.c' || echo '$(srcdir)/'`vorbis_file.c tagtool-vorbis_file.obj: vorbis_file.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-vorbis_file.obj -MD -MP -MF "$(DEPDIR)/tagtool-vorbis_file.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-vorbis_file.obj `if test -f 'vorbis_file.c'; then $(CYGPATH_W) 'vorbis_file.c'; else $(CYGPATH_W) '$(srcdir)/vorbis_file.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-vorbis_file.Tpo" "$(DEPDIR)/tagtool-vorbis_file.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-vorbis_file.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vorbis_file.c' object='tagtool-vorbis_file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-vorbis_file.Po' tmpdepfile='$(DEPDIR)/tagtool-vorbis_file.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-vorbis_file.obj `if test -f 'vorbis_file.c'; then $(CYGPATH_W) 'vorbis_file.c'; else $(CYGPATH_W) '$(srcdir)/vorbis_file.c'; fi` tagtool-vorbis_edit.o: vorbis_edit.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-vorbis_edit.o -MD -MP -MF "$(DEPDIR)/tagtool-vorbis_edit.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-vorbis_edit.o `test -f 'vorbis_edit.c' || echo '$(srcdir)/'`vorbis_edit.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-vorbis_edit.Tpo" "$(DEPDIR)/tagtool-vorbis_edit.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-vorbis_edit.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vorbis_edit.c' object='tagtool-vorbis_edit.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-vorbis_edit.Po' tmpdepfile='$(DEPDIR)/tagtool-vorbis_edit.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-vorbis_edit.o `test -f 'vorbis_edit.c' || echo '$(srcdir)/'`vorbis_edit.c tagtool-vorbis_edit.obj: vorbis_edit.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-vorbis_edit.obj -MD -MP -MF "$(DEPDIR)/tagtool-vorbis_edit.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-vorbis_edit.obj `if test -f 'vorbis_edit.c'; then $(CYGPATH_W) 'vorbis_edit.c'; else $(CYGPATH_W) '$(srcdir)/vorbis_edit.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-vorbis_edit.Tpo" "$(DEPDIR)/tagtool-vorbis_edit.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-vorbis_edit.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vorbis_edit.c' object='tagtool-vorbis_edit.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-vorbis_edit.Po' tmpdepfile='$(DEPDIR)/tagtool-vorbis_edit.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-vorbis_edit.obj `if test -f 'vorbis_edit.c'; then $(CYGPATH_W) 'vorbis_edit.c'; else $(CYGPATH_W) '$(srcdir)/vorbis_edit.c'; fi` tagtool-vorbis_edit_field.o: vorbis_edit_field.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-vorbis_edit_field.o -MD -MP -MF "$(DEPDIR)/tagtool-vorbis_edit_field.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-vorbis_edit_field.o `test -f 'vorbis_edit_field.c' || echo '$(srcdir)/'`vorbis_edit_field.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-vorbis_edit_field.Tpo" "$(DEPDIR)/tagtool-vorbis_edit_field.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-vorbis_edit_field.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vorbis_edit_field.c' object='tagtool-vorbis_edit_field.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-vorbis_edit_field.Po' tmpdepfile='$(DEPDIR)/tagtool-vorbis_edit_field.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-vorbis_edit_field.o `test -f 'vorbis_edit_field.c' || echo '$(srcdir)/'`vorbis_edit_field.c tagtool-vorbis_edit_field.obj: vorbis_edit_field.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-vorbis_edit_field.obj -MD -MP -MF "$(DEPDIR)/tagtool-vorbis_edit_field.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-vorbis_edit_field.obj `if test -f 'vorbis_edit_field.c'; then $(CYGPATH_W) 'vorbis_edit_field.c'; else $(CYGPATH_W) '$(srcdir)/vorbis_edit_field.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-vorbis_edit_field.Tpo" "$(DEPDIR)/tagtool-vorbis_edit_field.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-vorbis_edit_field.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vorbis_edit_field.c' object='tagtool-vorbis_edit_field.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-vorbis_edit_field.Po' tmpdepfile='$(DEPDIR)/tagtool-vorbis_edit_field.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-vorbis_edit_field.obj `if test -f 'vorbis_edit_field.c'; then $(CYGPATH_W) 'vorbis_edit_field.c'; else $(CYGPATH_W) '$(srcdir)/vorbis_edit_field.c'; fi` tagtool-vcedit.o: vcedit.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-vcedit.o -MD -MP -MF "$(DEPDIR)/tagtool-vcedit.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-vcedit.o `test -f 'vcedit.c' || echo '$(srcdir)/'`vcedit.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-vcedit.Tpo" "$(DEPDIR)/tagtool-vcedit.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-vcedit.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vcedit.c' object='tagtool-vcedit.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-vcedit.Po' tmpdepfile='$(DEPDIR)/tagtool-vcedit.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-vcedit.o `test -f 'vcedit.c' || echo '$(srcdir)/'`vcedit.c tagtool-vcedit.obj: vcedit.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -MT tagtool-vcedit.obj -MD -MP -MF "$(DEPDIR)/tagtool-vcedit.Tpo" \ @am__fastdepCC_TRUE@ -c -o tagtool-vcedit.obj `if test -f 'vcedit.c'; then $(CYGPATH_W) 'vcedit.c'; else $(CYGPATH_W) '$(srcdir)/vcedit.c'; fi`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/tagtool-vcedit.Tpo" "$(DEPDIR)/tagtool-vcedit.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/tagtool-vcedit.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vcedit.c' object='tagtool-vcedit.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/tagtool-vcedit.Po' tmpdepfile='$(DEPDIR)/tagtool-vcedit.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tagtool_CFLAGS) $(CFLAGS) -c -o tagtool-vcedit.obj `if test -f 'vcedit.c'; then $(CYGPATH_W) 'vcedit.c'; else $(CYGPATH_W) '$(srcdir)/vcedit.c'; fi` uninstall-info-am: resourceDATA_INSTALL = $(INSTALL_DATA) install-resourceDATA: $(resource_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(resourcedir) @list='$(resource_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(resourceDATA_INSTALL) $$d$$p $(DESTDIR)$(resourcedir)/$$f"; \ $(resourceDATA_INSTALL) $$d$$p $(DESTDIR)$(resourcedir)/$$f; \ done uninstall-resourceDATA: @$(NORMAL_UNINSTALL) @list='$(resource_DATA)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f $(DESTDIR)$(resourcedir)/$$f"; \ rm -f $(DESTDIR)$(resourcedir)/$$f; \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(DATA) installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(resourcedir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-resourceDATA install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am \ uninstall-resourceDATA .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am info \ info-am install install-am install-binPROGRAMS install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-resourceDATA install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-binPROGRAMS uninstall-info-am \ uninstall-resourceDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/Makefile.am����������������������������������������������������������������������0000644�0001750�0001750�00000003626�10541302762�015434� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in EXTRA_DIST = tagtool.glade preferences.dtd bin_PROGRAMS = tagtool ## resource files resourcedir = $(pkgdatadir) resource_DATA = tagtool.glade preferences.dtd ## tagtool binary if ENABLE_MP3 mp3_sources = mpeg_file.c mpeg_file.h mpeg_edit.c mpeg_edit.h \ mpeg_edit_field.c mpeg_edit_field.h aux_id3lib.c mp3_cflags = -DENABLE_MP3 else mp3_sources = mp3_cflags = endif if ENABLE_VORBIS vorbis_sources = vorbis_file.c vorbis_file.h vorbis_edit.c \ vorbis_edit.h vorbis_edit_field.c vorbis_edit_field.h vcedit.c \ vcedit.h vorbis_cflags = -DENABLE_VORBIS else vorbis_sources = vorbis_cflags = endif tagtool_CFLAGS = -Wall -Wno-pointer-sign $(GTK_CFLAGS) ${mp3_cflags} \ ${vorbis_cflags} -DDATADIR='"$(datadir)/${PACKAGE_NAME}"' tagtool_LDFLAGS = -export-dynamic tagtool_LDADD = $(GTK_LIBS) tagtool_SOURCES = file_list.c file_list.h file_util.c file_util.h \ edit_tab.c edit_tab.h elist.c elist.h main.c math_util.c \ math_util.h genre.c genre.h mru.c mru.h prefs.c prefs.h \ prefs_versions.c prefs_versions.h rename_tab.c rename_tab.h \ playlist_tab.c playlist_tab.h tag_tab.c tag_tab.h main_win.c \ main_win.h progress_dlg.c progress_dlg.h help.c help.h \ audio_file.c audio_file.h char_conv_dlg.c char_conv_dlg.h \ message_box.c message_box.h cursor.c cursor.h gtk_util.c \ gtk_util.h glib_util.c glib_util.h str_util.c str_util.h \ str_convert.c str_convert.h about.c about.h prefs_dlg.c \ prefs_dlg.h rename_dlg.c rename_dlg.h status_bar.c status_bar.h \ clear_tab.c clear_tab.h scan_progress_dlg.c scan_progress_dlg.h \ chrono.c chrono.h tagtool.glade \ ${mp3_sources} ${vorbis_sources} EXTRA_tagtool_SOURCES = mpeg_file.c mpeg_file.h mpeg_edit.c mpeg_edit.h \ mpeg_edit_field.c mpeg_edit_field.h aux_id3lib.c vorbis_file.c \ vorbis_file.h vorbis_edit.c vorbis_edit.h vorbis_edit_field.c \ vorbis_edit_field.h vcedit.c vcedit.h ����������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/file_list.c����������������������������������������������������������������������0000644�0001750�0001750�00000050744�10541302762�015521� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <glib.h> #include <glib/gi18n.h> #include <gtk/gtk.h> #include <gdk/gdkkeysyms.h> #include <glade/glade.h> #include "str_util.h" #include "str_convert.h" #include "file_util.h" #include "elist.h" #include "chrono.h" #include "gtk_util.h" #include "mru.h" #include "prefs.h" #include "cursor.h" #include "message_box.h" #include "main_win.h" #include "status_bar.h" #include "rename_dlg.h" #include "progress_dlg.h" #include "scan_progress_dlg.h" #include "edit_tab.h" #include "file_list.h" /* directory scans that take longer than this (ms) pop up a progress dialog */ #define PROGRESS_DLG_DELAY 1000 /* widgets */ static GtkWindow *w_main = NULL; static GtkCombo *combo_wd = NULL; static GtkEntry *ent_wd = NULL; static GtkToggleButton *cb_recurse = NULL; static GtkDialog *dlg_wd_select = NULL; static GtkTreeView *tv_files = NULL; static GtkListStore *store_files = NULL; static GtkLabel *lab_file_count = NULL; static GtkMenu *menu_file_list = NULL; static GtkMenuItem *m_ctx_manual_rename = NULL; static GtkMenuItem *m_ctx_delete = NULL; static GtkMenuItem *m_ctx_unselect_all = NULL; /* icons */ static GdkPixbuf *pix_file; static GdkPixbuf *pix_folder; /* private data */ static GString *working_dir = NULL; static GString *working_dir_utf8 = NULL; static GEList *file_list = NULL; static gchar *editing_file = NULL; static gboolean progress_dlg_visible; static chrono_t progress_dlg_time; /* preferences */ static gboolean *recurse; static MRUList *dir_mru; /*** private functions ******************************************************/ static void setup_tree_view() { GtkTreeViewColumn *col; GtkCellRenderer *renderer; /* model */ store_files = gtk_list_store_new(5, GDK_TYPE_PIXBUF, G_TYPE_STRING, GDK_TYPE_COLOR, G_TYPE_BOOLEAN, G_TYPE_POINTER); /* columns and renderers */ col = gtk_tree_view_column_new(); gtk_tree_view_append_column(tv_files, col); renderer = gtk_cell_renderer_pixbuf_new(); g_object_set(renderer, "ypad", 0, NULL); g_object_set(renderer, "xpad", 4, NULL); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "pixbuf", 0); gtk_tree_view_column_add_attribute(col, renderer, "cell-background-gdk", 2); gtk_tree_view_column_add_attribute(col, renderer, "cell-background-set", 3); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "ypad", 0, NULL); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "text", 1); gtk_tree_view_column_add_attribute(col, renderer, "cell-background-gdk", 2); gtk_tree_view_column_add_attribute(col, renderer, "cell-background-set", 3); /* selection mode */ gtk_tree_selection_set_mode(gtk_tree_view_get_selection(tv_files), GTK_SELECTION_MULTIPLE); } static void update_file_count() { int total; int selected; GString *str; total = file_list->length; selected = gtk_tree_selection_count_selected_rows(gtk_tree_view_get_selection(tv_files)); str = g_string_sized_new(60); if (total == 0) g_string_assign(str, _("No files found")); else if (total == 1) g_string_assign(str, _("1 file found")); else g_string_printf(str, _("%i files found"), total); if (selected == 1) g_string_append(str, _(" (1 selected)")); else if (selected > 1) g_string_append_printf(str, _(" (%i selected)"), selected); gtk_label_set_text(lab_file_count, str->str); g_string_free(str, TRUE); } static void update_tree_view(const GEList *file_list) { gchar *last_file = ""; gchar *aux; GtkStyle *style; GtkTreeIter tree_iter; GList *i; style = gtk_widget_get_style(GTK_WIDGET(tv_files)); if (style == NULL) g_error("Couldn't get style for widget tv_files"); gtk_tree_view_set_model(tv_files, NULL); gtk_list_store_clear(store_files); i = g_elist_first(file_list); while (i) { if (!fu_compare_file_paths(last_file, i->data)) { char *dirname = g_dirname(i->data); aux = str_filename_to_utf8(dirname, _("(dir name could not be converted to UTF8)")); gtk_list_store_append(store_files, &tree_iter); gtk_list_store_set(store_files, &tree_iter, 0, pix_folder, 1, aux, 2, &style->bg[GTK_STATE_NORMAL], 3, TRUE, 4, NULL, -1); g_free(dirname); g_free(aux); } aux = str_filename_to_utf8(fu_last_n_path_components(i->data, 1), _("(file name could not be converted to UTF8)")); gtk_list_store_append(store_files, &tree_iter); gtk_list_store_set(store_files, &tree_iter, 0, pix_file, 1, aux, 2, NULL, 3, FALSE, 4, i->data, -1); g_free(aux); last_file = i->data; i = g_list_next(i); } gtk_tree_view_set_model(tv_files, GTK_TREE_MODEL(store_files)); update_file_count(); } static void clear_tree_view() { gtk_list_store_clear(store_files); update_file_count(); } static void popup_tree_view_menu() { int sel_count = gtk_tree_selection_count_selected_rows(gtk_tree_view_get_selection(tv_files)); gtk_widget_set_sensitive(GTK_WIDGET(m_ctx_manual_rename), sel_count == 1); gtk_widget_set_sensitive(GTK_WIDGET(m_ctx_delete), sel_count > 0); gtk_widget_set_sensitive(GTK_WIDGET(m_ctx_unselect_all), sel_count > 0); gtk_menu_popup(menu_file_list, NULL, NULL, NULL, NULL, 3, gtk_get_current_event_time()); } static void delete_files(const GEList *file_list) { GList *iter; char *temp_utf8; int count_deleted = 0; pd_start(_("Deleting Files")); for (iter = g_elist_first(file_list); iter; iter = g_list_next(iter)) { /* flush pending gtk operations so the UI doesn't freeze */ pd_scroll_to_bottom(); while (gtk_events_pending()) gtk_main_iteration(); if (pd_stop_requested()) { pd_printf(PD_ICON_WARN, _("Operation stopped at user's request")); break; } temp_utf8 = str_filename_to_utf8(iter->data, _("(UTF8 conversion error)")); if (unlink(iter->data) == 0) { count_deleted++; pd_printf(PD_ICON_OK, _("Deleted file \"%s\""), temp_utf8); } else { int save_errno = errno; pd_printf(PD_ICON_FAIL, _("Error deleting file \"%s\""), temp_utf8); pd_printf(PD_ICON_NONE, "%s (%d)", strerror(save_errno), save_errno); } free(temp_utf8); } pd_printf(PD_ICON_INFO, _("Done (deleted %d of %d files)"), count_deleted, file_list->length); pd_end(); if (count_deleted > 0) fl_refresh(TRUE); } static void rename_file(const char *old_path, const char *new_name) { char *new_path; char *dir; int res; dir = g_dirname(old_path); new_path = fu_join_path(dir, new_name); free(dir); if (fu_exists(new_path)) { int button; button = message_box(w_main, _("File Exists"), _("A file with this name already exists.\nDo you want to overwrite it?"), 0, GTK_STOCK_CANCEL, GTK_STOCK_YES, NULL); if (button == 0) { free(new_path); return; } } res = rename(old_path, new_path); if (res != 0) { int save_errno = errno; GString *msg = g_string_sized_new(256); g_string_printf(msg, _("Error renaming file:\n%s (%d)"), strerror(save_errno), save_errno); message_box(w_main, _("Error Renaming File"), msg->str, 0, GTK_STOCK_OK, NULL); g_string_free(msg, TRUE); } else { fl_refresh(TRUE); } free(new_path); } static gboolean expand_dir(GString *dir) { gboolean changed = FALSE; if (strlen(dir->str) == 0) { g_string_assign(dir, g_get_home_dir()); changed = TRUE; } if (dir->str[strlen(dir->str)-1] != '/') { g_string_append_c(dir, '/'); changed = TRUE; } return changed; } static gboolean check_working_dir() { gint res; struct stat stat_data; res = stat(working_dir->str, &stat_data); if (res < 0) { sb_printf(_("Error: Can't open directory \"%s\"."), working_dir_utf8->str); return FALSE; } if (!S_ISDIR(stat_data.st_mode)) { sb_printf(_("Error: \"%s\" is not a directory."), working_dir_utf8->str); return FALSE; } if (!fu_check_permission(&stat_data, "rx")) { sb_printf(_("Error: Permission denied for \"%s\"."), working_dir_utf8->str); return FALSE; } return TRUE; } static void scan_progress_start() { progress_dlg_visible = FALSE; chrono_reset(&progress_dlg_time); } static gboolean scan_progress_callback(int dirs, int files) { if (!progress_dlg_visible) { if (chrono_get_msec(&progress_dlg_time) > PROGRESS_DLG_DELAY) { progress_dlg_visible = TRUE; spd_display(); } else { return FALSE; } } spd_update(dirs, files); /* flush pending gtk operations so the UI doesn't freeze */ while (gtk_events_pending()) gtk_main_iteration(); return spd_stop_requested(); } static void scan_progress_stop() { if (progress_dlg_visible) spd_hide(); } void load_file_list() { static const char *patterns[] = { #ifdef ENABLE_MP3 "*.[mM][pP][aA23]", #endif #ifdef ENABLE_VORBIS "*.[oO][gG][gG]", #endif NULL }; gint count; /* clear the form in the edit tab */ et_unload_file(); sb_printf(_("Scanning...")); cursor_set_wait(); /* flush pending operations before we start */ while (gtk_events_pending()) gtk_main_iteration(); /* rebuild the file list */ if (file_list) { g_elist_free_data(file_list); file_list = NULL; } scan_progress_start(); file_list = fu_get_file_list(working_dir->str, patterns, scan_progress_callback, gtk_toggle_button_get_active(cb_recurse), TRUE); scan_progress_stop(); /* update the interface */ update_tree_view(file_list); count = g_elist_length(file_list); switch (count) { case 0: sb_printf(_("No files found.")); break; case 1: sb_printf(_("1 file found.")); break; default: sb_printf(_("%d files found."), count); break; } cursor_set_normal(); } void clear_file_list() { if (file_list) g_elist_free_data(file_list); file_list = g_elist_new(); clear_tree_view(); } /*** UI callbacks ***********************************************************/ /* menu callbacks */ void cb_ctx_manual_rename(GtkWidget *widget, GdkEvent *event) { GtkTreeModel *model; GtkTreeIter iter; char *old_path; char *new_name; gtk_tree_view_get_first_selected(tv_files, &model, &iter); gtk_tree_model_get(model, &iter, 4, &old_path, -1); new_name = rename_prompt_new_name(g_basename(old_path)); if (new_name == NULL) return; rename_file(old_path, new_name); free(new_name); } void cb_ctx_delete(GtkWidget *widget, GdkEvent *event) { int count; int button; GEList *files; count = gtk_tree_selection_count_selected_rows(gtk_tree_view_get_selection(tv_files)); if (count == 0) return; button = message_box(w_main, _("Delete selected files"), _("This will delete the selected files from disk. Proceed?"), 0, GTK_STOCK_CANCEL, GTK_STOCK_YES, NULL); if (button == 0) return; files = fl_get_selected_files(); delete_files(files); g_elist_free(files); } void cb_ctx_unselect_all(GtkWidget *widget, GdkEvent *event) { GtkTreeSelection *selection = gtk_tree_view_get_selection(tv_files); gtk_tree_selection_unselect_all(selection); } /* file list UI callbacks */ static gboolean cb_file_selection_changing(GtkTreeSelection *selection, GtkTreeModel *model, GtkTreePath *path, gboolean path_currently_selected, gpointer data) { GtkTreeIter iter; gpointer p; /* always allow deselection */ if (path_currently_selected) return TRUE; /* only allow selection of files (not folders) */ if (gtk_tree_model_get_iter(model, &iter, path)) { gtk_tree_model_get(model, &iter, 4, &p, -1); if (p == NULL) return FALSE; } return TRUE; } static void cb_file_selection_changed(GtkTreeSelection *selection, gpointer data) { GtkTreeModel *model; GtkTreeIter iter; gchar *new_name; update_file_count(); if (gtk_tree_selection_count_selected_rows(selection) != 1) { if (editing_file != NULL) { et_unload_file(); editing_file = NULL; } return; } if (gtk_tree_view_get_first_selected(tv_files, &model, &iter)) { gtk_tree_model_get(model, &iter, 4, &new_name, -1); if (new_name != NULL && (editing_file == NULL || strcmp(new_name, editing_file) != 0)) { et_unload_file(); editing_file = new_name; et_load_file(editing_file); } } } gboolean cb_files_button_press(GtkWidget *widget, GdkEventButton *event, gpointer data) { /* catch right-clicks to popup the context menu */ if (event->type == GDK_BUTTON_PRESS && event->button == 3) { GtkTreePath *path; GtkTreeSelection *selection = gtk_tree_view_get_selection(tv_files); gtk_tree_view_get_path_at_pos(tv_files, event->x, event->y, &path, NULL, NULL, NULL); if (!gtk_tree_selection_path_is_selected(selection, path)) { gtk_tree_selection_unselect_all(selection); gtk_tree_selection_select_path(selection, path); } gtk_tree_path_free(path); popup_tree_view_menu(); return TRUE; } return FALSE; } gboolean cb_files_popup_menu(GtkWidget *widget, gpointer data) { popup_tree_view_menu(); return TRUE; } /* dir selection UI callbacks */ void cb_select_dir(GtkButton *button, gpointer data) { gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dlg_wd_select), working_dir->str); gtk_widget_show(GTK_WIDGET(dlg_wd_select)); if (gtk_dialog_run(dlg_wd_select) == GTK_RESPONSE_ACCEPT) { char *dir = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dlg_wd_select)); fl_set_working_dir(dir); g_free(dir); } gtk_widget_hide(GTK_WIDGET(dlg_wd_select)); } void cb_wd_changed(GObject *obj, gpointer user_data) { GList *iter; const char *new_text = gtk_entry_get_text(ent_wd); /* Problem: GtkCombo doesn't have a signal to indicate the user has selected something, and the underlying GtkList's "selection-changed" signal is useless as usual (it fires way too many times for no apparent reason) Solution: Compare the entry text with our MRU list. If there is a match, that's /probably/ because the user selected something from the dropdown. */ for (iter = GLIST(dir_mru->list); iter; iter = g_list_next(iter)) { if (strcmp(iter->data, new_text) == 0) { fl_set_working_dir_utf8(new_text); break; } } } gboolean cb_wd_keypress(GtkWidget *widget, GdkEventKey *event, gpointer user_data) { if (event->keyval == GDK_Return) { fl_refresh(FALSE); return TRUE; } return FALSE; } void cb_toggle_recurse(GtkToggleButton *widget, gpointer data) { *recurse = gtk_toggle_button_get_active(cb_recurse); load_file_list(); } /*** public functions *******************************************************/ void fl_init(GladeXML *xml) { GEList *dir_list; /* * get the widgets from glade */ w_main = GTK_WINDOW(glade_xml_get_widget(xml, "w_main")); combo_wd = GTK_COMBO(glade_xml_get_widget(xml, "combo_wd")); ent_wd = GTK_ENTRY(glade_xml_get_widget(xml, "ent_wd")); cb_recurse = GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "cb_recurse")); tv_files = GTK_TREE_VIEW(glade_xml_get_widget(xml, "tv_files")); lab_file_count = GTK_LABEL(glade_xml_get_widget(xml, "lab_file_count")); menu_file_list = GTK_MENU(glade_xml_get_widget(xml, "menu_file_list")); m_ctx_manual_rename = GTK_MENU_ITEM(glade_xml_get_widget(xml, "m_ctx_manual_rename")); m_ctx_delete = GTK_MENU_ITEM(glade_xml_get_widget(xml, "m_ctx_delete")); m_ctx_unselect_all = GTK_MENU_ITEM(glade_xml_get_widget(xml, "m_ctx_unselect_all")); /* * create the file chooser */ dlg_wd_select = GTK_DIALOG(gtk_file_chooser_dialog_new( _("Select Directory"), w_main, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL)); /* * load file list icons */ pix_file = gdk_pixbuf_new_from_file(DATADIR"/file.png", NULL); pix_folder = gdk_pixbuf_new_from_file(DATADIR"/folder.png", NULL); /* * setup the file list treeview */ setup_tree_view(); g_signal_connect(gtk_tree_view_get_selection(tv_files), "changed", G_CALLBACK(cb_file_selection_changed), NULL); gtk_tree_selection_set_select_function(gtk_tree_view_get_selection(tv_files), cb_file_selection_changing, NULL, NULL); /* * get the preference values, or set them to defaults */ /* recurse */ recurse = pref_get_ref("ds:recurse"); if (!recurse) { gboolean temp = FALSE; recurse = pref_set("ds:recurse", PREF_BOOLEAN, &temp); } gtk_toggle_button_set_active(cb_recurse, *recurse); /* dir_mru */ dir_list = pref_get_ref("ds:dir_mru"); if (!dir_list) { GEList *temp_list = g_elist_new(); g_elist_append(temp_list, (void*)g_get_home_dir()); dir_list = pref_set("ds:dir_mru", PREF_STRING | PREF_LIST, temp_list); g_elist_free_data(temp_list); } dir_mru = mru_new_from_list(10, dir_list); } void fl_set_initial_dir(const gchar *dir) { working_dir = g_string_sized_new(200); working_dir_utf8 = g_string_sized_new(200); if (dir == NULL) fl_set_working_dir_utf8(g_elist_first(dir_mru->list)->data); else { if (g_path_is_absolute(dir)) fl_set_working_dir(dir); else { /* make the path absolute */ char *cur = g_get_current_dir(); char *abs = fu_join_path(cur, dir); fl_set_working_dir(abs); free(cur); free(abs); } } } void fl_set_working_dir(const gchar *dir) { gchar *aux; if (dir == NULL || strcmp(working_dir->str, dir) == 0) return; /* set the new working_dir */ g_string_assign(working_dir, dir); expand_dir(working_dir); aux = str_filename_to_utf8(working_dir->str, NULL); if (aux == NULL) { /* if we can't convert to UTF-8, leave it as is (let Gtk do the complaining...) */ g_string_assign(working_dir_utf8, dir); } else { g_string_assign(working_dir_utf8, aux); free(aux); } gtk_entry_set_text(ent_wd, working_dir_utf8->str); /* update the directory mru list */ mru_add(dir_mru, working_dir_utf8->str); gtk_combo_set_popdown_strings(combo_wd, GLIST(dir_mru->list)); if (check_working_dir()) load_file_list(); else clear_file_list(); } void fl_set_working_dir_utf8(const gchar *dir) { gchar *aux; if (dir == NULL || strcmp(working_dir_utf8->str, dir) == 0) return; /* set the new working_dir */ g_string_assign(working_dir_utf8, dir); aux = str_filename_from_utf8(working_dir_utf8->str, NULL); if (aux == NULL) { /* if we can't convert from UTF-8, leave it as is (loading from the filesystem will just fail) */ g_string_assign(working_dir, dir); } else { g_string_assign(working_dir, aux); free(aux); } if (expand_dir(working_dir)) { // need to reflect back to utf aux = str_filename_to_utf8(working_dir->str, NULL); if (aux != NULL) g_string_assign(working_dir_utf8, aux); free(aux); } gtk_entry_set_text(ent_wd, working_dir_utf8->str); /* update the directory mru list */ mru_add(dir_mru, working_dir_utf8->str); gtk_combo_set_popdown_strings(combo_wd, GLIST(dir_mru->list)); if (check_working_dir()) load_file_list(); else clear_file_list(); } const gchar *fl_get_working_dir() { return working_dir->str; } const gchar *fl_get_working_dir_utf8() { return working_dir_utf8->str; } void fl_refresh(gboolean keep_scroll_pos) { const char *ent_wd_text; GtkAdjustment *adj; double saved_value; adj = gtk_tree_view_get_vadjustment(tv_files); saved_value = gtk_adjustment_get_value(adj); ent_wd_text = gtk_entry_get_text(ent_wd); if (strcmp(working_dir_utf8->str, ent_wd_text) != 0) fl_set_working_dir_utf8(ent_wd_text); else load_file_list(); if (keep_scroll_pos) { if (saved_value <= adj->upper) gtk_adjustment_set_value(adj, saved_value); } } void fl_select_next_file() { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; selection = gtk_tree_view_get_selection(tv_files); if (gtk_tree_selection_count_selected_rows(selection) != 1) return; if (gtk_tree_view_get_first_selected(tv_files, &model, &iter)) { gtk_tree_selection_unselect_iter(selection, &iter); if (gtk_tree_model_iter_next(model, &iter)) gtk_tree_selection_select_iter(selection, &iter); } } int fl_count_selected() { return gtk_tree_selection_count_selected_rows(gtk_tree_view_get_selection(tv_files)); } const gchar *fl_get_selected_file() { GtkTreeModel *model; GtkTreeIter iter; char *file; gtk_tree_view_get_first_selected(tv_files, &model, &iter); gtk_tree_model_get(model, &iter, 4, &file, -1); return file; } GEList *fl_get_selected_files() { GEList *result = g_elist_new(); GtkTreeSelection *sel; GtkTreeModel *model; GList *selected_rows; GList *node; sel = gtk_tree_view_get_selection(tv_files); selected_rows = gtk_tree_selection_get_selected_rows(sel, &model); for (node = selected_rows; node; node = node->next) { GtkTreeIter iter; char *path; gtk_tree_model_get_iter(model, &iter, node->data); gtk_tree_model_get(model, &iter, 4, &path, -1); g_elist_append(result, path); } g_list_foreach(selected_rows, (GFunc)gtk_tree_path_free, NULL); g_list_free(selected_rows); return result; } GEList *fl_get_all_files() { return g_elist_copy(file_list); } ����������������������������tagtool-0.12.3/src/file_list.h����������������������������������������������������������������������0000644�0001750�0001750�00000003067�10541302762�015522� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef FILE_LIST_H #define FILE_LIST_H #include "elist.h" void fl_init(GladeXML *xml); /* * Initializes the working dir. Must be called once at the start * of the program. <dir> is in the filesystem encoding. * If <dir> is NULL, loads the most recently used dir. */ void fl_set_initial_dir(const gchar *dir); /* * Sets the working dir. <dir> is in the filesystem encoding. */ void fl_set_working_dir(const gchar *dir); /* * Sets the working dir. <dir> is in UTF-8 encoding. */ void fl_set_working_dir_utf8(const gchar *dir); /* * Gets the working dir. Result is in the filesystem encoding. */ const gchar *fl_get_working_dir(); /* * Gets the working dir. Result is in UTF-8 encoding. */ const gchar *fl_get_working_dir_utf8(); /* * Refreshes the file list. * If <keep_pos> is TRUE, attempts to keep the scroll position. */ void fl_refresh(gboolean keep_pos); /* * Advances the cursor in the file list treeview. */ void fl_select_next_file(); /* * Returns the number of selected files in the file list treeview. */ int fl_count_selected(); /* * Returns the the first selected file, or NULL if none is selected. * File name is in the filesystem encoding. */ const gchar *fl_get_selected_file(); /* * Returns the list of selected files. * File names are in the filesystem encoding. * The caller must free the result with g_elist_free() */ GEList *fl_get_selected_files(); /* * Returns the list of all files. * File names are in the filesystem encoding. * The caller must free the result with g_elist_free() */ GEList *fl_get_all_files(); #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/file_util.c����������������������������������������������������������������������0000644�0001750�0001750�00000022755�10541302762�015524� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <stdio.h> #include <stdlib.h> #include <dirent.h> #include <fnmatch.h> #include <string.h> #include <glib.h> #include "str_util.h" #include "glib_util.h" #include "elist.h" #include "file_util.h" /*** private functions ******************************************************/ /* * Unique file identifier (device # + inode #) */ typedef struct file_uid_tag { dev_t device; ino_t inode; } file_uid; static gint file_uid_equal(gconstpointer v1, gconstpointer v2) { return ((file_uid*)v1)->device == ((file_uid*)v2)->device && ((file_uid*)v1)->inode == ((file_uid*)v2)->inode; } static guint file_uid_hash(gconstpointer v) { return (guint)(((file_uid*)v)->inode); } /* * Reverse string compare */ gint rev_strcoll(gconstpointer s1, gconstpointer s2) { return -strcoll(s1, s2); } /* * Remembers a directory by storing its inode number. Once a directory is * "remembered" subsequent calls to remember_dir with that directory will * return TRUE. * * <dir_table> Table to store visited directories * <dir_stat> Structure obtained from stat(2) * * return FALSE if the directory was not encountered before, TRUE * otherwise. */ static gboolean remember_dir( GHashTable *dir_table, struct stat *dir_stat ) { file_uid *f = malloc(sizeof(file_uid)); f->device = dir_stat->st_dev; f->inode = dir_stat->st_ino; if (g_hash_table_lookup(dir_table, f) != NULL) { free(f); return TRUE; } else { /* Q: Why not just store NULL as the value? * A: Because g_hash_table_lookup() returns NULL to indicate * the key was not found. Stupid, eh? */ g_hash_table_insert(dir_table, f, (gpointer)1); return FALSE; } } /* * Scans a directory for files matching a pattern and returns them in an GEList * * <dir_stack> If not NULL, will be used to store the names of subdirectories * found (not subject to matching) * <dir_memory> If not NULL, will be used to remember visited dirs. This * guarantees that each dir is only visited once. * ALWAYS USE THIS PARAMETER WHEN DOING RECURSIVE SCANS! * <base_dir> Directory to scan * <patterns> NULL terminated array of glob pattern strings * <sort> If TRUE the result will be sorted * * return GEList with matching files. File names will be prefixed with * the <base_dir>, unless it is "." * This list should be freed with g_elist_free_data(). */ static GEList *aux_file_list( GEList *dir_stack, GHashTable *dir_memory, const gchar *base_dir, const gchar **patterns, gboolean sort ) { GEList *result; GEList *aux_stack = NULL; DIR* dir; int dir_fd; struct stat dir_stat; struct dirent *dir_entry; struct stat stat_data; gint res; gchar *buffer; gchar *buffer_fname; gint buffer_size; gboolean matched; gint i; result = g_elist_new(); if (dir_stack != NULL) aux_stack = g_elist_new(); dir = opendir(base_dir); if (dir == NULL) { g_warning("couldn't open dir: %s", base_dir); return result; } /* guard against loops in the directory structure */ if (dir_memory != NULL) { dir_fd = dirfd(dir); if (dir_fd >= 0) fstat(dir_fd, &dir_stat); else stat(base_dir, &dir_stat); if (remember_dir(dir_memory, &dir_stat)) { //printf("skipping directory, already been here: %s", base_dir); closedir(dir); return result; } } // XXX - fixed size buffer buffer = g_malloc(buffer_size = 1024); if (strcmp(base_dir, ".") == 0) { buffer_fname = buffer; } else { buffer_fname = memccpy(buffer, base_dir, 0, buffer_size); if (buffer_fname == NULL) { g_warning("FIXME - buffer too small for file name!!!"); closedir(dir); g_free(buffer); return result; } else { *(buffer_fname-1) = '/'; buffer_size -= (gint)(buffer_fname - buffer); } } while ( (dir_entry = readdir(dir)) ) { if (memccpy(buffer_fname, dir_entry->d_name, 0, buffer_size) == NULL) { g_warning("FIXME - buffer too small for file name!!!"); continue; } res = stat(buffer, &stat_data); if (res < 0) { //printf("couldn't stat file: %s", buffer); continue; } if (S_ISDIR(stat_data.st_mode)) { if ((aux_stack != NULL) && (strcmp(dir_entry->d_name, ".") != 0) && (strcmp(dir_entry->d_name, "..") != 0)) { g_elist_push(aux_stack, g_strdup(buffer)); } continue; } if (patterns == NULL) { matched = TRUE; } else { matched = FALSE; for (i = 0; patterns[i]; i++) { if (fnmatch(patterns[i], dir_entry->d_name, FNM_NOESCAPE) == 0) { matched = TRUE; break; } } } if (matched) g_elist_append(result, g_strdup(buffer)); } if (sort) { g_elist_sort(result, (GCompareFunc)strcoll); if (aux_stack != NULL) g_elist_sort(aux_stack, rev_strcoll); } if (aux_stack != NULL) g_elist_concat(dir_stack, aux_stack); closedir(dir); g_free(buffer); return result; } /*** public functions *******************************************************/ GEList *fu_get_file_list( const gchar *dir_path, const gchar **patterns, fu_progress_callback callback, gboolean recurse, gboolean sort ) { GEList *result; chdir(dir_path); if (!recurse) { result = aux_file_list(NULL, NULL, ".", patterns, sort); if (callback != NULL) callback(1, (int)result->length); } else { GEList *dir_stack; GHashTable *dir_memory; gchar *cur_dir; int dircount = 0; result = g_elist_new(); dir_stack = g_elist_new(); dir_memory = g_hash_table_new(file_uid_hash, file_uid_equal); g_elist_push(dir_stack, g_strdup(".")); while (g_elist_length(dir_stack) > 0) { cur_dir = g_elist_pop(dir_stack); g_elist_concat(result, aux_file_list(dir_stack, dir_memory, cur_dir, patterns, sort)); g_free(cur_dir); dircount++; if (callback != NULL) if (callback(dircount, (int)result->length)) break; } g_elist_free_data(dir_stack); g_hash_table_free(dir_memory, TRUE, FALSE); } return result; } gboolean fu_check_permission( struct stat* stat_data, const gchar *perm ) { mode_t rmask, wmask, xmask; // XXX - should use getgroups instead of getgid if (stat_data->st_uid == getuid()) { rmask = S_IRUSR; wmask = S_IWUSR; xmask = S_IXUSR; } else if (stat_data->st_gid == getgid()) { rmask = S_IRGRP; wmask = S_IWGRP; xmask = S_IXGRP; } else { rmask = S_IROTH; wmask = S_IWOTH; xmask = S_IXOTH; } if (strchr(perm, 'r') && !(stat_data->st_mode & rmask)) return FALSE; if (strchr(perm, 'w') && !(stat_data->st_mode & wmask)) return FALSE; if (strchr(perm, 'x') && !(stat_data->st_mode & xmask)) return FALSE; return TRUE; } gboolean fu_compare_file_paths( const gchar *f1, const gchar *f2 ) { char *aux; gint i1, i2; aux = strrchr(f1, '/'); i1 = (aux == NULL ? -1 : (gint)(aux - f1)); aux = strrchr(f2, '/'); i2 = (aux == NULL ? -1 : (gint)(aux - f2)); if (i1 != i2) return FALSE; else if (i1 == -1) return TRUE; if (strncmp(f1, f2, i1) != 0) return FALSE; else return TRUE; } gint fu_count_path_components( const gchar *path ) { /* * count = (number of path separators) + 1, with two exceptions: * - path separators at the beggining and end don't count * - if path is empty count is 0 */ gint count = 0; gint len = strlen(path); gint pos; for (pos = 0; pos < len; pos++) { if (path[pos] == '/' && pos != 0 && pos != len-1) count++; } if (len > 0) count++; return count; } gchar *fu_last_n_path_components( const gchar *path, gint n ) { gint count; gint len; gchar *start, *end, *p; len = strlen(path); if (len == 0) return (gchar*)path; start = (gchar*)path; end = (gchar*)path + len - 1; count = 0; for (p = end; p >= start && count < n; p--) { if (*p == '/' && p != end) count++; } p++; if (*p == '/' && count == n) return p+1; else return p; } gchar *fu_last_path_component( const gchar *path ) { gchar *result; gchar *start, *end; end = (gchar*)path + strlen(path); if (*(end-1) == '/') { end--; start = str_strnrchr(path, '/', 2); start = (start == NULL ? (gchar*)path : start+1); } else { start = str_strnrchr(path, '/', 1); start = (start == NULL ? (gchar*)path : start+1); } result = calloc(end-start+1, 1); memcpy(result, start, end-start); return result; } gchar *fu_join_path( const gchar *path1, const gchar *path2 ) { gchar *ret; int len1, len2; len1 = strlen(path1); len2 = strlen(path2); ret = malloc(len1 + len2 + 2); if (path1[len1-1] == '/') sprintf(ret, "%s%s", path1, path2); else sprintf(ret, "%s/%s", path1, path2); return ret; } gboolean fu_exists( const gchar *path ) { struct stat stat_data; int res; res = stat(path, &stat_data); if (res == 0) return TRUE; else return FALSE; } gboolean fu_file_exists( const gchar *path ) { struct stat stat_data; int res; res = stat(path, &stat_data); if (res == 0) return S_ISREG(stat_data.st_mode); else return FALSE; } gboolean fu_dir_exists( const gchar *path ) { struct stat stat_data; int res; res = stat(path, &stat_data); if (res == 0) return S_ISDIR(stat_data.st_mode); else return FALSE; } gboolean fu_make_dir_tree( const gchar *path, gint *new ) { gchar *partial_path, *p; gint i, res; gboolean ret = TRUE; if (new) *new = 0; if (fu_dir_exists(path)) return ret; partial_path = calloc(strlen(path)+1, 1); i = 1; do { p = str_strnchr(path, '/', i++); if (p == path) continue; strncpy(partial_path, path, (p ? p-path : strlen(path))); if (!fu_dir_exists(partial_path)) { res = mkdir(partial_path, 0777); if (res < 0) { ret = FALSE; break; } if (new) (*new)++; } } while (p); free(partial_path); return ret; } �������������������tagtool-0.12.3/src/file_util.h����������������������������������������������������������������������0000644�0001750�0001750�00000007757�10541302762�015536� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef FILE_UTIL_H #define FILE_UTIL_H /**************************************************************************** * Utility functions dealing with files and directories ****************************************************************************/ #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include "elist.h" /* * Callback function type for fu_get_file_list() * * <dirs> Number of directories visited so far. * <files> Number of matching files found so far. * * return TRUE to stop the scan. */ typedef gboolean fu_progress_callback(int dirs, int files); /* * Scans a directory tree for files matching a pattern and returns them in an * GEList. The current directory is changed to 'dir_path' as side-effect. * * <dir_path> Directory to scan * <patterns> NULL terminated array of glob pattern strings * <callback> If not NULL, this callback will be called after visiting each * directory. If the callback returns TRUE the scan will be * aborted and the (incomplete) result returned. * <recurse> If TRUE subdirectories will be included in the scan * <sort> If TRUE the result will be sorted * * return GEList with matching files. File names will include the path * relative to <dir_path>. * This list should be freed with g_elist_free_data(). */ GEList *fu_get_file_list( const gchar *dir_path, const gchar **patterns, fu_progress_callback callback, gboolean recurse, gboolean sort ); /* * Checks if the current process has the requested permissions on a filesystem * object (represented by it's 'stat' data). The real (as opposed to effective) * uid and gid of the process are used. * * <stat_data> Structure obtained from stat(2) * <perm> String with one or more desired permissions (r, w, x) * * return TRUE if the process has all the requested permissions */ gboolean fu_check_permission( struct stat* stat_data, const gchar *perm ); /* * Compares two file names and returns TRUE if they have the same path. */ gboolean fu_compare_file_paths( const gchar *f1, const gchar *f2 ); /* * Returns the number of path components * Examples: * "foo" -> 1 * "/foo" -> 1 * "/foo/bar" -> 2 * "/foo/bar/" -> 2 * "foo/bar/baz" -> 3 * "/" -> 1 * "" -> 0 */ gint fu_count_path_components( const gchar *path ); /* * Returns the last <n> components of <path>. If the path has less components * all of it is returned. * The return value is a pointer into <path>. * Examples: * "foo", 1 -> "foo" * "foo/", 1 -> "foo/" * "foo/", 2 -> "foo/" * "/foo/", 1 -> "foo/" * "/foo/", 2 -> "/foo/" * "/foo/bar", 2 -> "foo/bar" * "/foo/bar/baz", 2 -> "bar/baz/" * "/", 1 -> "/" * "", 1 -> "" */ gchar *fu_last_n_path_components( const gchar *path, gint n ); /* * Returns the last component of the given path, without leading or trailing * path separator characters. * The returned string must be freed by the caller. * Examples: * "foo" -> "foo" * "/foo" -> "foo" * "/foo/bar" -> "bar" * "/foo/bar/" -> "bar" * "/" -> "" * "" -> "" */ gchar *fu_last_path_component( const gchar *path ); /* * Joins two paths. <path2> should be a relative path. * The returned string must be freed by the caller. */ gchar *fu_join_path( const gchar *path1, const gchar *path2 ); /* * Returns TRUE if the given path exists. */ gboolean fu_exists( const gchar *path ); /* * Returns TRUE if the given path exists and is a regular file. */ gboolean fu_file_exists( const gchar *path ); /* * Returns TRUE if the given path exists and is a directory. */ gboolean fu_dir_exists( const gchar *path ); /* * Create the given directory tree if it does not already exist. * In case of failure errno will have the value set by mkdir(2). * * <path> Directory tree * <new> If not NULL, the number of directories actually created will * be stored here * * return TRUE if the operation was successfull (i.e., <path> is now * guarenteed to exist) */ gboolean fu_make_dir_tree( const gchar *path, gint *new ); #endif �����������������tagtool-0.12.3/src/edit_tab.c�����������������������������������������������������������������������0000644�0001750�0001750�00000007576�10541302762�015327� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <stdlib.h> #include <string.h> #include <glib.h> #include <glib/gi18n.h> #include <gtk/gtk.h> #include <glade/glade.h> #include "elist.h" #include "str_convert.h" #include "main_win.h" #include "file_list.h" #include "status_bar.h" #include "audio_file.h" #include "edit_tab.h" /* widgets */ static GtkNotebook *nb_file = NULL; static GtkNotebook *nb_edit = NULL; static GtkLabel *lab_info_names = NULL; static GtkLabel *lab_info_values = NULL; static GtkWidget *align_create_tag = NULL; static GtkWidget *align_remove_tag = NULL; /* private data */ static audio_file *af = NULL; /*** UI callbacks ***********************************************************/ void cb_notebook_switch(GtkNotebook *nb, GtkNotebookPage *page, gint page_num, gpointer user_data) { static gint last = 0; if (last == 0 && page_num != 0) { /* when leaving edit tab */ et_unload_file(); } else if (last != 0 && page_num == 0) { /* when entering edit tab */ if (fl_count_selected() == 1) et_load_file(fl_get_selected_file()); } last = page_num; } /*** public functions *******************************************************/ void et_init(GladeXML *xml) { GtkStyle *style; GtkWidget *w; /* widgets and icons */ nb_file = GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_file")); nb_edit = GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_edit")); align_create_tag = glade_xml_get_widget(xml, "align_create_tag"); align_remove_tag = glade_xml_get_widget(xml, "align_remove_tag"); lab_info_names = GTK_LABEL(glade_xml_get_widget(xml, "lab_info_names")); lab_info_values = GTK_LABEL(glade_xml_get_widget(xml, "lab_info_values")); /* set the title colors */ w = glade_xml_get_widget(xml, "lab_edit_title"); gtk_widget_ensure_style(w); style = gtk_widget_get_style(w); gtk_widget_modify_fg(w, GTK_STATE_NORMAL, &style->text[GTK_STATE_SELECTED]); w = glade_xml_get_widget(xml, "box_edit_title"); gtk_widget_modify_bg(w, GTK_STATE_NORMAL, &style->base[GTK_STATE_SELECTED]); } void et_load_file(const gchar *name) { GString *info_names; GString *info_values; gchar *name_utf8; gchar *buf, *aux, *tok; int res; /* in some cases the previous file may still be loaded */ if (af) { audio_file_delete(af); af = NULL; } /* create the audio_file object */ res = audio_file_new(&af, name, TRUE); if (res == AF_ERR_FILE) res = audio_file_new(&af, name, FALSE); if (res != AF_OK) { name_utf8 = str_filename_to_utf8(name, _("(UTF8 conversion error)")); if (res == AF_ERR_FILE) sb_printf(_("Couldn't open file %s"), name_utf8); else if (res == AF_ERR_FORMAT) sb_printf(_("Audio file format not recognized: %s"), name_utf8); else sb_printf(_("Unknow error when opening file %s"), name_utf8); free(name_utf8); return; } if (audio_file_is_editable(af)) sb_clear(); else { name_utf8 = str_filename_to_utf8(name, _("(UTF8 conversion error)")); sb_printf(_("File is read-only: %s"), name); free(name_utf8); } /* fill in the File Info box */ info_names = g_string_sized_new(128); info_values = g_string_sized_new(128); g_string_append(info_names, _("File Type:")); g_string_append(info_values, audio_file_get_desc(af)); buf = strdup(audio_file_get_info(af)); aux = buf; while(1) { tok = strtok(aux, "\n"); if (!tok) break; g_string_sprintfa(info_names, "\n%s:", tok); if (aux) aux = NULL; tok = strtok(aux, "\n"); if (!tok) break; g_string_sprintfa(info_values, "\n%s", tok); } gtk_label_set_text(lab_info_names, info_names->str); gtk_label_set_text(lab_info_values, info_values->str); free(buf); g_string_free(info_names, TRUE); g_string_free(info_values, TRUE); /* display the appropriate edit interface */ audio_file_edit_load(af); gtk_notebook_set_page(nb_file, 1); } void et_unload_file() { if (af) { audio_file *temp = af; af = NULL; audio_file_edit_unload(temp); audio_file_delete(temp); gtk_notebook_set_page(nb_file, 0); } } ����������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/edit_tab.h�����������������������������������������������������������������������0000644�0001750�0001750�00000000241�10541302762�015312� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef EDIT_TAB_H #define EDIT_TAB_H #include "elist.h" void et_init(GladeXML *xml); void et_load_file(const gchar *name); void et_unload_file(); #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/elist.c��������������������������������������������������������������������������0000644�0001750�0001750�00000007474�10541302762�014671� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <stdio.h> #include <glib.h> #include "elist.h" GEList* g_elist_new() { GEList *list = g_malloc(sizeof(GEList)); list->last = NULL; list->first = NULL; list->length = 0; return list; } void g_elist_free (GEList *list) { g_list_free(list->first); g_free(list); } void g_elist_free_data (GEList *list) { GList *next; GList *p = list->first; while (p) { next = p->next; g_free(p->data); g_list_free_1(p); p = next; } g_free(list); } void g_elist_append (GEList *list, gpointer data) { GList *new_node = g_list_alloc(); new_node->data = data; new_node->next = NULL; new_node->prev = list->last; if (list->last != NULL) list->last->next = new_node; list->last = new_node; if (list->first == NULL) list->first = new_node; list->length++; } void g_elist_prepend (GEList *list, gpointer data) { list->first = g_list_prepend(list->first, data); if (list->last == NULL) list->last = list->first; list->length++; } void g_elist_insert (GEList *list, gpointer data, gint position) { if ((position < 0) || (position >= list->length)) g_elist_append(list, data); else { list->first = g_list_insert(list->first, data, position); if (list->last == NULL) list->last = list->first; list->length++; } } void g_elist_insert_sorted (GEList *list, gpointer data, GCompareFunc func) { list->first = g_list_insert_sorted(list->first, data, func); if (list->last == NULL) list->last = list->first; else if (list->last->next != NULL) list->last = list->last->next; list->length++; } void g_elist_clear (GEList *list) { g_list_free(list->first); list->first = NULL; list->last = NULL; list->length = 0; } void g_elist_remove (GEList *list, gpointer data) { GList *llink = g_list_find(list->first, data); if (llink != NULL) { g_elist_remove_link(list, llink); g_list_free_1(llink); } } void g_elist_remove_link (GEList *list, GList *llink) { GList *aux = list->first; if (llink == list->first) list->first = list->first->next; if (llink == list->last) list->last = list->last->prev; g_list_remove_link(aux, llink); list->length--; } gpointer g_elist_extract (GEList *list, GList *llink) { gpointer result = llink->data; g_elist_remove_link(list, llink); g_list_free_1(llink); return result; } GEList* g_elist_concat (GEList *list1, GEList *list2) { if (list2->length > 0) { if (list1->length == 0) { list1->first = list2->first; } else { list1->last->next = list2->first; list2->first->prev = list1->last; } list1->last = list2->last; list1->length += list2->length; } g_free(list2); return list1; } GEList* g_elist_copy (GEList *list) { GEList *new_list = g_elist_new(); GList *new_node, *last_node, *src_node; src_node = list->first; last_node = NULL; new_node = NULL; while (src_node) { new_node = g_list_alloc(); new_node->data = src_node->data; new_node->next = NULL; new_node->prev = last_node; if (last_node != NULL) last_node->next = new_node; else new_list->first = new_node; last_node = new_node; src_node = src_node->next; } new_list->last = new_node; new_list->length = list->length; return new_list; } void g_elist_reverse (GEList *list) { GList *aux; aux = list->first; list->first = g_list_reverse(list->first); list->last = aux; } void g_elist_sort (GEList *list, GCompareFunc compare_func) { GList *aux = list->last; list->first = g_list_sort(list->first, compare_func); list->last = g_list_last(aux); /* wish we could avoid this... */ } /* * the following exist mostly for debugging purposes */ void g_elist_print(GEList *list) { GList *iter; for (iter = g_elist_first(list); iter; iter = iter->next) printf("0x%08X\n", (unsigned int)iter->data); } void g_elist_print_str(GEList *list) { GList *iter; for (iter = g_elist_first(list); iter; iter = iter->next) printf("%s\n", (char *)iter->data); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/elist.h��������������������������������������������������������������������������0000644�0001750�0001750�00000003536�10541302762�014671� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef ELIST_H #define ELIST_H /**************************************************************************** * Crude wrapper for glib lists (GList). * Keeps track of the list length and last element so that common * operations like append and concat don't take O(n). This is how the * glib lists should have worked in the first place... sheesh! * Also adds macros that let you treat the list as a stack or a queue. ****************************************************************************/ typedef struct { GList *first; GList *last; gulong length; } GEList; #define GLIST(list) ((list)->first) GEList* g_elist_new (); /* new */ void g_elist_free (GEList *list); void g_elist_free_data (GEList *list); /* new */ void g_elist_append (GEList *list, gpointer data); void g_elist_prepend (GEList *list, gpointer data); void g_elist_insert (GEList *list, gpointer data, gint position); void g_elist_insert_sorted (GEList *list, gpointer data, GCompareFunc func); void g_elist_clear (GEList *list); /* new */ void g_elist_remove (GEList *list, gpointer data); void g_elist_remove_link (GEList *list, GList *llink); gpointer g_elist_extract (GEList *list, /* new */ GList *llink); GEList* g_elist_concat (GEList *list1, GEList *list2); GEList* g_elist_copy (GEList *list); void g_elist_reverse (GEList *list); void g_elist_sort (GEList *list, GCompareFunc compare_func); #define g_elist_push(l,d) (g_elist_append(l,d)) /* new */ #define g_elist_pop(l) (g_elist_extract(l,(l)->last)) /* new */ #define g_elist_enqueue(l,d) (g_elist_append(l,d)) /* new */ #define g_elist_dequeue(l) (g_elist_extract(l,(l)->first)) /* new */ #define g_elist_last(l) ((l)->last) #define g_elist_first(l) ((l)->first) #define g_elist_length(l) ((l)->length) #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/main.c���������������������������������������������������������������������������0000644�0001750�0001750�00000007065�10541302762�014471� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <gtk/gtk.h> #include <glib/gi18n.h> #include <glade/glade.h> #include "elist.h" #include "mru.h" #include "prefs.h" #include "main_win.h" #include "file_list.h" #include "status_bar.h" #include "edit_tab.h" #include "tag_tab.h" #include "clear_tab.h" #include "rename_tab.h" #include "playlist_tab.h" #include "rename_dlg.h" #include "prefs_dlg.h" #include "char_conv_dlg.h" #include "progress_dlg.h" #include "scan_progress_dlg.h" #include "cursor.h" #include "help.h" #include "about.h" #include "audio_file.h" #ifdef ENABLE_MP3 # include "mpeg_edit.h" # include "mpeg_edit_field.h" #endif #ifdef ENABLE_VORBIS # include "vorbis_edit.h" # include "vorbis_edit_field.h" #endif int print_version() { printf("Audio Tag Tool %s\n", PACKAGE_VERSION); printf(_("Supported audio formats: ")); #ifdef ENABLE_MP3 printf("MPEG "); #endif #ifdef ENABLE_VORBIS printf("Ogg Vorbis "); #endif printf("\n\n"); printf("Copyright (c) 2004 Pedro Lopes\n" "http://pwp.netcabo.pt/paol/tagtool/\n\n"); return 0; } int print_help() { printf( _("Usage:\n" " tagtool [DIR]\t\tStart in directory DIR\n" " tagtool --dump FILE\tDump all known information about FILE and exit\n" " tagtool --help\tPrint this help message\n" " tagtool --version\tPrint program version\n\n") ); return 0; } int print_dump(char *filename) { audio_file *af; int res; res = audio_file_new(&af, filename, FALSE); if (res != AF_OK) { if (res == AF_ERR_FILE) printf(_("Couldn't open file: %s\n\n"), filename); else if (res == AF_ERR_FORMAT) printf(_("File audio format not recognized: %s\n\n"), filename); return 1; } audio_file_dump(af); audio_file_delete(af); return 0; } void write_preferences() { pref_write_file(); } int main(int argc, char *argv[]) { char *start_dir = NULL; GladeXML *xml; gboolean res; int i; /* gettext initialization */ bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); /* options that can be processed before gtk_init() */ for (i = 1; i < argc; i++) { if (strcmp(argv[i], "--dump") == 0) { if (argc < i+2) return print_help(); else return print_dump(argv[i+1]); } else if (strcmp(argv[i], "--help") == 0) { return print_help(); } else if (strcmp(argv[i], "--version") == 0) { return print_version(); } } gtk_init(&argc, &argv); if (argc > 1) start_dir = argv[1]; /* load the interface */ xml = glade_xml_new(DATADIR"/tagtool.glade", NULL, NULL); if (xml == NULL) g_error("Could not load the interface!"); /* loading and saving preferences */ res = pref_read_file(); if (!res) g_warning("Failed to read preferences file"); atexit(write_preferences); /* Set default icon & application name */ g_set_application_name("Audio Tag Tool"); gtk_window_set_default_icon_name("TagTool"); /* let other modules get what they need from the GladeXML object */ mw_init(xml); fl_init(xml); sb_init(xml); et_init(xml); tt_init(xml); ct_init(xml); rt_init(xml); pt_init(xml); pd_init(xml); spd_init(xml); rename_init(xml); prefs_init(xml); chconv_init(xml); cursor_init(xml); help_init(xml); about_init(xml); #ifdef ENABLE_MP3 mpeg_edit_init(xml); mpeg_editfld_init(xml); #endif #ifdef ENABLE_VORBIS vorbis_edit_init(xml); vorbis_editfld_init(xml); #endif /* load the initial directory */ fl_set_initial_dir(start_dir); /* connect the signals */ glade_xml_signal_autoconnect(xml); /* start the GTK event loop */ gtk_main(); return 0; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/math_util.c����������������������������������������������������������������������0000644�0001750�0001750�00000000326�10541302763�015525� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "math_util.h" int compare(int a, int b) { if (a == b) return 0; else return (a < b ? -1 : 1); } int min(int a, int b) { return (a < b ? a : b); } int max(int a, int b) { return (a > b ? a : b); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/math_util.h����������������������������������������������������������������������0000644�0001750�0001750�00000000507�10541302763�015533� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef MATH_UTIL_H #define MATH_UTIL_H /* * Compares two integers in 'strcmp' style: * if a<b, returns -1 * if a=b, returns 0 * if a>b, returns 1 */ int compare(int a, int b); /* * Minimum of two signed integers */ int min(int a, int b); /* * Maximum of two signed integers */ int max(int a, int b); #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/genre.c��������������������������������������������������������������������������0000644�0001750�0001750�00000005060�10541302762�014636� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <string.h> #include <glib.h> #include "genre.h" /* ID3 genres (taken from winamp's in_mp3.dll :) */ #define MAX_GENRE 147 static gchar *id3_genres[] = { "Blues", "Classic Rock", "Country", "Dance", "Disco", "Funk", "Grunge", "Hip-Hop", "Jazz", "Metal", "New Age", "Oldies", "Other", "Pop", "R&B", "Rap", "Reggae", "Rock", "Techno", "Industrial", "Alternative", "Ska", "Death Metal", "Pranks", "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", "Vocal", "Jazz+Funk", "Fusion", "Trance", "Classical", "Instrumental", "Acid", "House", "Game", "Sound Clip", "Gospel", "Noise", "Alt. Rock", "Bass", "Soul", "Punk", "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", "Electronic", "Pop-Folk", "Eurodance", "Dream", "Southern Rock", "Comedy", "Cult", "Gangsta Rap", "Top 40", "Christian Rap", "Pop/Funk", "Jungle", "Native American", "Cabaret", "New Wave", "Psychedelic", "Rave", "Showtunes", "Trailer", "Lo-Fi", "Tribal", "Acid Punk", "Acid Jazz", "Polka", "Retro", "Musical", "Rock & Roll", "Hard Rock", "Folk", "Folk/Rock", "National Folk", "Swing", "Fast-Fusion", "Bebob", "Latin", "Revival", "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", "Big Band", "Chorus", "Easy Listening", "Acoustic", "Humour", "Speech", "Chanson", "Opera", "Chamber Music", "Sonata", "Symphony", "Booty Bass", "Primus", "Porn Groove", "Satire", "Slow Jam", "Club", "Tango", "Samba", "Folklore", "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", "Duet", "Punk Rock", "Drum Solo", "A Cappella", "Euro-House", "Dance Hall", "Goa", "Drum & Bass", "Club-House", "Hardcore", "Terror", "Indie", "BritPop", "Negerpunk", "Polsk Punk", "Beat", "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", "Thrash Metal", "Anime", "JPop", "Synthpop", NULL }; GEList *genre_create_list(gboolean sort) { int i; GEList* list = g_elist_new(); for (i = 0; id3_genres[i]; i++) g_elist_append(list, id3_genres[i]); if (sort) g_elist_sort(list, (GCompareFunc)strcoll); return list; } gint genre_get_id(const gchar *name) { int i; for (i = 0; id3_genres[i]; i++) if (strcasecmp(name, id3_genres[i]) == 0) return i; return -1; } const gchar *genre_get_name(gint id) { if (id < 0 || id > MAX_GENRE) return NULL; else return id3_genres[id]; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/genre.h��������������������������������������������������������������������������0000644�0001750�0001750�00000000677�10541302762�014654� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef GENRE_H #define GENRE_H #include "elist.h" /* * Create a list with the genre names, optionally sorted. */ GEList *genre_create_list(gboolean sort); /* * Gets the id of the genre with the given name. Case insensive. * Returns -1 if the name is not recognized. */ gint genre_get_id(const gchar *name); /* * Gets the genre name given the id. * Returns NULL if the id is invalid. */ const gchar *genre_get_name(gint id); #endif �����������������������������������������������������������������tagtool-0.12.3/src/mru.c����������������������������������������������������������������������������0000644�0001750�0001750�00000001670�10541302762�014344� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <stdlib.h> #include <string.h> #include <glib.h> #include "elist.h" #include "mru.h" MRUList* mru_new (guint max) { MRUList *mru = malloc(sizeof(MRUList)); mru->max = max; mru->list = g_elist_new(); return mru; } MRUList* mru_new_from_list (guint max, GEList *list) { MRUList *mru = malloc(sizeof(MRUList)); mru->max = max; mru->list = list; return mru; } void mru_free (MRUList *mru) { g_elist_free_data(mru->list); free(mru); } void mru_add (MRUList *mru, const gchar *entry) { GList *found = g_list_find_custom(GLIST(mru->list), entry, (GCompareFunc)strcmp); if (found) { g_elist_remove_link(mru->list, found); g_elist_prepend(mru->list, found->data); g_list_free_1(found); } else { g_elist_prepend(mru->list, strdup(entry)); if (g_elist_length(mru->list) > mru->max) { GList *last = g_elist_last(mru->list); g_elist_remove_link(mru->list, last); free(last->data); g_list_free_1(last); } } } ������������������������������������������������������������������������tagtool-0.12.3/src/mru.h����������������������������������������������������������������������������0000644�0001750�0001750�00000000410�10541302762�014340� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef MRU_H #define MRU_H typedef struct { GEList *list; guint max; } MRUList; MRUList* mru_new (guint max); MRUList* mru_new_from_list (guint max, GEList *list); void mru_free (MRUList *mru); void mru_add (MRUList *mru, const gchar *entry); #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/prefs.c��������������������������������������������������������������������������0000644�0001750�0001750�00000030240�10541302763�014654� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <glib.h> #include <libxml/parser.h> #include <libxml/tree.h> #include "elist.h" #include "file_util.h" #include "prefs_versions.h" #include "prefs.h" #define PREFS_FILE ".tagtoolrc" #define DTD_FILE "preferences.dtd" #define IS_LIST(t) (t & PREF_LIST) typedef struct { int type; void *data; } pref_entry; static GHashTable *prefs = NULL; /*** private functions ******************************************************/ /* * Returns the full path name of the preferences file. */ static const char *prefs_file_name() { static char *name = NULL; if (name == NULL) name = fu_join_path(g_get_home_dir(), PREFS_FILE); return name; } /* * Returns the full path name of the preferences DTD file. */ static const char *dtd_file_name() { return DATADIR "/" DTD_FILE; } /* * Returns a type given its string representation. */ static int type_from_str(char *name) { int type; if (strstr(name, "int") == name) type = PREF_INT; else if (strstr(name, "uint") == name) type = PREF_UINT; else if (strstr(name, "real") == name) type = PREF_REAL; else if (strstr(name, "string") == name) type = PREF_STRING; else if (strstr(name, "boolean") == name) type = PREF_BOOLEAN; else return PREF_INVALID; if (strstr(name, "list") != NULL) type |= PREF_LIST; return type; } /* * Returns the string representation of a type. The returned pointer will * remain valid until the next call to type_to_str(). */ static const char *type_to_str(int type) { static char name[16]; switch (PREF_TYPE_MASK & type) { case PREF_INT: strcpy(name, "int"); break; case PREF_UINT: strcpy(name, "uint"); break; case PREF_REAL: strcpy(name, "real"); break; case PREF_STRING: strcpy(name, "string"); break; case PREF_BOOLEAN: strcpy(name, "boolean"); break; default: return NULL; } if (IS_LIST(type)) strcpy(&name[strlen(name)], " list"); return name; } /* * Returns TRUE if the given type is valid. */ static gboolean type_is_valid(int type) { switch (PREF_TYPE_MASK & type) { case PREF_INT: case PREF_UINT: case PREF_REAL: case PREF_STRING: case PREF_BOOLEAN: break; default: return FALSE; } switch (~PREF_TYPE_MASK & type) { case 0: case PREF_LIST: break; default: return FALSE; } return TRUE; } /* * Used by copy_value() */ static void *copy_single_value(int type, void *data) { void *copy; size_t size; switch (PREF_TYPE_MASK & type) { case PREF_INT: case PREF_UINT: size = sizeof(long); break; case PREF_REAL: size = sizeof(double); break; case PREF_STRING: size = strlen(data)+1; break; case PREF_BOOLEAN: size = sizeof(int); break; default: return NULL; } copy = malloc(size); memcpy(copy, data, size); return copy; } /* * Used by copy_value() */ static void *copy_list_value(int type, void *data) { GEList *list; GList *iter; list = g_elist_new(); for (iter = g_elist_first((GEList*)data) ; iter ; iter = iter->next) g_elist_append(list, copy_single_value(type, iter->data)); return list; } /* * Allocates a new copy of the given value. */ static void *copy_value(int type, void *data) { if (IS_LIST(type)) return copy_list_value(type, data); else return copy_single_value(type, data); } /* * Frees the given value. */ static void free_value(int type, void *data) { if (IS_LIST(type)) g_elist_free_data((GEList*)data); else free(data); } /* * Used by read_value() */ static void *read_single_value(xmlDocPtr doc, xmlNodePtr node, int type) { char *str; void *ret; str = xmlNodeListGetString(doc, node->xmlChildrenNode, 1); switch (PREF_TYPE_MASK & type) { case PREF_INT: ret = malloc(sizeof(long)); *(long *)ret = strtol(str, NULL, 10); free(str); break; case PREF_UINT: ret = malloc(sizeof(long)); *(unsigned long *)ret = strtoul(str, NULL, 10); free(str); break; case PREF_REAL: ret = malloc(sizeof(double)); *(double *)ret = strtod(str, NULL); free(str); break; case PREF_STRING: ret = (str ? str : strdup("")); break; case PREF_BOOLEAN: ret = malloc(sizeof(int)); if (strcasecmp(str,"false")==0) *(int *)ret = 0; else if (strcasecmp(str,"true")==0) *(int *)ret = 1; else *(int *)ret = (atoi(str) ? 1 : 0); free(str); break; default: ret = NULL; free(str); break; } return ret; } /* * Used by read_value() */ static void *read_list_value(xmlDocPtr doc, xmlNodePtr node, int type) { GEList *list; xmlNodePtr curr_node; list = g_elist_new(); for (curr_node = node ; curr_node ; curr_node = curr_node->next) { if (strcmp(curr_node->name, "value") != 0) { g_warning("unexpected element: %s", curr_node->name); continue; } g_elist_append(list, read_single_value(doc, curr_node, type)); } return list; } /* * Returns a newly allocated value, read from the xml document. * <type> is required to determine the expected format of the document, and * to allocate the correct amount of memory for the value. */ static void *read_value(xmlDocPtr doc, xmlNodePtr node, int type) { if (IS_LIST(type)) return read_list_value(doc, node, type); else return read_single_value(doc, node, type); } /* * Used by write_value() */ static void write_single_value(xmlNodePtr node, int type, void *data) { char buf[32]; char *str; gboolean free_str; switch (PREF_TYPE_MASK & type) { case PREF_INT: snprintf(buf, 32, "%li", *(long *)data); str = buf; free_str = FALSE; break; case PREF_UINT: snprintf(buf, 32, "%lu", *(unsigned long *)data); str = buf; free_str = FALSE; break; case PREF_REAL: snprintf(buf, 32, "%.10g", *(double *)data); str = buf; free_str = FALSE; break; case PREF_STRING: str = xmlEncodeEntitiesReentrant(node->doc, data); free_str = TRUE; break; case PREF_BOOLEAN: strcpy(buf, (*(int*)data ? "true" : "false")); str = buf; free_str = FALSE; break; default: return; } xmlNewChild(node, NULL, "value", str); if (free_str) free(str); } /* * Used by write_value() */ static void write_list_value(xmlNodePtr node, int type, void *data) { GList *iter; for (iter = g_elist_first((GEList*)data) ; iter ; iter = iter->next) write_single_value(node, type, iter->data); } /* * Writes a value to the xml document. * <type> is required to write the correct format to the document. */ static void write_value(xmlNodePtr node, int type, void *data) { if (IS_LIST(type)) write_list_value(node, type, data); else write_single_value(node, type, data); } /* * Passed to g_hash_table_foreach(), writes all the entries to file. * The parent node is passed in user_data. */ static void write_entry(gpointer key, gpointer value, gpointer user_data) { xmlNodePtr node; pref_entry *entry; entry = (pref_entry *)g_hash_table_lookup(prefs, key); node = xmlNewChild((xmlNodePtr)user_data, NULL, "attr", NULL); xmlSetProp(node, "name", key); xmlSetProp(node, "type", type_to_str(entry->type)); write_value(node, entry->type, entry->data); } /* * Passed to g_hash_table_foreach_remove(), frees all the entries. */ static gboolean table_free_entry(gpointer key, gpointer value, gpointer user_data) { pref_entry *entry = (pref_entry *)value; free_value(entry->type, entry->data); free(key); free(value); return TRUE; } /* * Frees the prefs table and all the entries it contains. */ static void table_free() { g_hash_table_foreach_remove(prefs, table_free_entry, NULL); g_hash_table_destroy(prefs); prefs = NULL; } /* * Allocates a new prefs table. */ static void table_new() { if (prefs != NULL) table_free(); prefs = g_hash_table_new(g_str_hash, g_str_equal); } /* * Inserts a value into the prefs table. * If <copy> is TRUE a new copy of the value is allocated and stored, * otherwise the pointer is stored directly. * Returns a pointer to the stored value (if <copy> is FALSE this will * be the same as <data>) */ static void *table_insert(const char *name, int type, void *data, gboolean copy) { pref_entry *entry; entry = (pref_entry *)g_hash_table_lookup(prefs, name); if (!entry) { entry = malloc(sizeof(pref_entry)); g_hash_table_insert(prefs, strdup(name), entry); } else { free_value(entry->type, entry->data); } entry->type = type; if (copy) entry->data = copy_value(type, data); else entry->data = data; return entry->data; } /* * Retrieves a value from the prefs table. * If <copy> is TRUE a new copy of the value is allocated and returned, * otherwise a direct pointer to the stored data is returned. * If the lookup is successful the function will return TRUE and the * output parameters <type> and <data> will be set. */ static gboolean table_lookup(const char *name, int *type, void **data, gboolean copy) { pref_entry *entry; entry = (pref_entry *)g_hash_table_lookup(prefs, name); if (!entry) return FALSE; *type = entry->type; if (copy) *data = copy_value(entry->type, entry->data); else *data = entry->data; return TRUE; } /* * Validates the preferences file against the DTD. */ static gboolean validate_dtd(xmlDocPtr doc) { xmlDtdPtr dtd; xmlValidCtxtPtr cvp; gboolean valid; dtd = xmlParseDTD(NULL, dtd_file_name()); if (dtd == NULL) { g_warning("Could not parse DTD file \"%s\".\n", dtd_file_name()); return FALSE; } cvp = xmlNewValidCtxt(); if (cvp == NULL) { g_warning("Could not allocate validation context.\n"); xmlFreeDtd(dtd); return FALSE; } cvp->userData = (void *) stderr; cvp->error = (xmlValidityErrorFunc) fprintf; cvp->warning = (xmlValidityWarningFunc) fprintf; valid = xmlValidateDtd(cvp, doc, dtd); xmlFreeValidCtxt(cvp); xmlFreeDtd(dtd); return valid; } /*** public functions *******************************************************/ gboolean pref_read_file() { xmlDocPtr doc; xmlNodePtr root, node; xmlChar *ver, *name, *type, *str; int t; void *value; /* allocate the prefs hash table */ table_new(); xmlKeepBlanksDefault(0); doc = xmlParseFile(prefs_file_name()); if (!doc) return FALSE; if (!validate_dtd(doc)) return FALSE; root = xmlDocGetRootElement(doc); str = xmlGetProp(root, "app"); if (strcmp(str, PACKAGE_NAME) != 0) { free(str); return FALSE; } free(str); ver = xmlGetProp(root, "ver"); if (!prefs_versions_allow(ver)) { free(ver); return FALSE; } for (node = root->xmlChildrenNode ; node ; node = node->next) { name = xmlGetProp(node, "name"); type = xmlGetProp(node, "type"); t = type_from_str(type); if (t == PREF_INVALID) { g_warning("invalid attr type: %s", type); goto _continue; } value = read_value(doc, node->xmlChildrenNode, t); if (!value) { g_warning("failed to read attr \"%s\"\n", name); goto _continue; } table_insert(name, t, value, FALSE); _continue: free(name); free(type); } xmlFreeDoc(doc); prefs_versions_convert(ver); free(ver); return TRUE; } gboolean pref_write_file() { xmlDocPtr doc; int res; doc = xmlNewDoc("1.0"); doc->xmlRootNode = xmlNewDocNode(doc, NULL, "preferences", NULL); xmlSetProp(doc->xmlRootNode, "app", PACKAGE_NAME); xmlSetProp(doc->xmlRootNode, "ver", PACKAGE_VERSION); g_hash_table_foreach(prefs, write_entry, doc->xmlRootNode); res = xmlSaveFormatFileEnc(prefs_file_name(), doc, "UTF-8", 1); if (res <= 0) g_warning("Couldn't save prefs to file: %s", prefs_file_name()); xmlFreeDoc(doc); return (res > 0); } void *pref_set(const char *name, int type, void *value) { if (type_is_valid(type)) return table_insert(name, type, value, TRUE); else return NULL; } void *pref_get_or_set(const char *name, int type, void *value) { int temptype; void *data; if (table_lookup(name, &temptype, &data, FALSE)) { if (type == temptype) return data; else return NULL; } else { if (type_is_valid(type)) return table_insert(name, type, value, TRUE); else return NULL; } } void *pref_get_ref(const char *name) { int type; void *data; if (table_lookup(name, &type, &data, FALSE)) return data; else return NULL; } void pref_unset(const char *name) { char *key; pref_entry *entry; gboolean found; found = g_hash_table_lookup_extended(prefs, name, (gpointer*)&key, (gpointer*)&entry); if (found) { g_hash_table_remove(prefs, name); free_value(entry->type, entry->data); free(entry); free(key); } } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/prefs.h��������������������������������������������������������������������������0000644�0001750�0001750�00000004360�10541302763�014665� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef PREFS_H #define PREFS_H /**************************************************************************** * API for setting and getting preference values, and saving them * to file. ****************************************************************************/ #define PREF_INVALID 0x0000 #define PREF_INT 0x0001 #define PREF_UINT 0x0002 #define PREF_REAL 0x0003 #define PREF_STRING 0x0004 #define PREF_BOOLEAN 0x0005 #define PREF_TYPE_MASK 0x00FF #define PREF_LIST 0x0100 /* * Reads preferences from file. * Returns TRUE if the operation was successful. */ gboolean pref_read_file(); /* * Writes preferences to file. * Returns TRUE if the operation was successful. */ gboolean pref_write_file(); /* * Sets a preference value. The 'value' will be interpreted according to the * 'type' passed to the function: * PREF_INT long* * PREF_UINT unsigned long* * PREF_REAL double* * PREF_STRING char* (NULL terminated) * PREF_BOOLEAN int* * PREF_LIST GEList* * PREF_LIST is meant to be combined with one of the other types, to indicate * a list of that type. * The value will be copied and stored. * * <name> Name of the preference variable. * <type> Type of the preference variable. * <value> New value. * * return A pointer to the stored value, or NULL if the type is not * valid. */ void *pref_set(const char *name, int type, void *value); /* * Gets a pointer to a preference value. The pointer will be valid until * the next time this preference is changed (with pref_set or pref_unset). * * <name> Name of the preference variable * * return A pointer to the stored value, or NULL if no preference was * found with that name. */ void *pref_get_ref(const char *name); /* * If the requested preference exists, does a pref_get(), otherwise does * a pref_set() with the given default value. * * <name> Name of the preference variable. * <type> Type of the preference variable. * <value> The default value. * * return A pointer to the stored value, or NULL if the type is not * valid or is inconsitent with stored type. */ void *pref_get_or_set(const char *name, int type, void *value); /* * Unsets (removes) a preference value. * * <name> Name of the preference variable. */ void pref_unset(const char *name); #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/prefs_versions.c�����������������������������������������������������������������0000644�0001750�0001750�00000003241�10541302762�016604� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <string.h> #include <stdlib.h> #include <glib.h> #include "elist.h" #include "prefs.h" #include "prefs_versions.h" /*** private functions ******************************************************/ static int compare_version(char *v1, char *v2) { char *p1, *p2; int n1, n2; p1 = v1; p2 = v2; while (*p1 && *p2) { n1 = atoi(p1); n2 = atoi(p2); if (n1 < n2) return -1; if (n1 > n2) return 1; p1 = strchr(p1, '.'); p2 = strchr(p2, '.'); if (!p1 && p2) return -1; if (p1 && !p2) return 1; if (!p1 && !p2) return 0; p1++; p2++; } return 0; } /*** public functions *******************************************************/ gboolean prefs_versions_allow(char *file_ver) { /* allow interval from 0.5 to current version */ if (compare_version(file_ver, "0.5") >= 0 && compare_version(file_ver, PACKAGE_VERSION) <= 0) return TRUE; g_warning("Preferences file version is incompatible (%s)", file_ver); return FALSE; } void prefs_versions_convert(char *file_ver) { gboolean conv = FALSE; /* changes in 0.6 */ if (compare_version(file_ver, "0.6") < 0) { /* file name templates changed, delete old ones */ pref_unset("tt:format_mru"); pref_unset("rt:format_mru"); conv = TRUE; } /* changes in 0.9 */ if (compare_version(file_ver, "0.9") < 0) { /* "vorbis_edit:genre_mru" was renamed to "common_edit:genre_mru" */ GEList *genre_list = pref_get_ref("vorbis_edit:genre_mru"); if (genre_list) { pref_set("common_edit:genre_mru", PREF_STRING | PREF_LIST, genre_list); pref_unset("vorbis_edit:genre_mru"); } conv = TRUE; } if (conv) g_warning("Converted old preferences file (%s)", file_ver); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/prefs_versions.h�����������������������������������������������������������������0000644�0001750�0001750�00000000606�10541302762�016613� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef PREFS_VERSIONS_H #define PREFS_VERSIONS_H /* * Returns TRUE if the preferences file version is compatible with the * current program version */ gboolean prefs_versions_allow(char *file_ver); /* * Tries to convert prefererences from a different version. * Don't call this unless prefs_versions_allow returns TRUE. */ void prefs_versions_convert(char *file_ver); #endif ��������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/rename_tab.c���������������������������������������������������������������������0000644�0001750�0001750�00000030013�10541302761�015626� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <glib.h> #include <glib/gi18n.h> #include <gtk/gtk.h> #include <glade/glade.h> #include "elist.h" #include "str_util.h" #include "str_convert.h" #include "file_util.h" #include "mru.h" #include "prefs.h" #include "audio_file.h" #include "file_list.h" #include "char_conv_dlg.h" #include "progress_dlg.h" #include "cursor.h" #include "help.h" #include "rename_tab.h" enum { APPLY_TO_ALL = 0, APPLY_TO_SELECTED = 1 }; /* widgets */ static GtkCombo *combo_rename_format = NULL; static GtkEntry *ent_rename_format = NULL; static GtkButton *b_rename_edit_format = NULL; static GtkButton *b_rename_go = NULL; static GtkComboBox *combo_rename_apply = NULL; /* preferences */ static MRUList *format_mru; /*** private functions ******************************************************/ static gboolean append_field(GString *gstr, audio_file *af, int field) { char *temp; char *value; chconv_rename_options options; audio_file_get_field(af, field, (const char **)&temp); if (temp == NULL || *temp == 0) return FALSE; /* apply character conversions */ options = chconv_get_rename_options(); if (options.invalid_conv != NULL && options.invalid_conv[0] != 0) value = str_replace_char(temp, '/', options.invalid_conv[0]); else value = str_remove_char(temp, '/'); if (options.space_conv != NULL && options.space_conv[0] != 0) { temp = value; value = str_replace_char(value, ' ', options.space_conv[0]); free(temp); } if (options.case_conv != CASE_CONV_NONE) { temp = value; value = str_convert_case(value, options.case_conv); free(temp); } str_trim(value); /* convert to filesystem encoding */ temp = value; value = str_filename_from_utf8(value, "utf8_conversion_error"); free(temp); /* append to name */ if (field == AF_TRACK) { long track; char *endptr; track = strtol(value, &endptr, 10); if (*endptr == 0) g_string_sprintfa(gstr, "%02li", track); else g_string_append(gstr, value); } else { g_string_append(gstr, value); } free(value); return TRUE; } static gboolean build_file_name(const gchar *format, audio_file *af, GString *new_name) { gchar *p; gint i, span; /* fill in the filename from the tag according to the given format */ i = 0; while (TRUE) { p = index(&format[i], '<'); if (p != NULL) { span = (gint)(p - &format[i]); if (span > 0) { g_string_sprintfa(new_name, "%.*s", span, &format[i]); i += span; } else if (strncmp(&format[i], "<title>", 7) == 0) { if (!append_field(new_name, af, AF_TITLE)) return FALSE; i += 7; } else if (strncmp(&format[i], "<artist>", 8) == 0) { if (!append_field(new_name, af, AF_ARTIST)) return FALSE; i += 8; } else if (strncmp(&format[i], "<album>", 7) == 0) { if (!append_field(new_name, af, AF_ALBUM)) return FALSE; i += 7; } else if (strncmp(&format[i], "<year>", 6) == 0) { if (!append_field(new_name, af, AF_YEAR)) return FALSE; i += 6; } else if (strncmp(&format[i], "<comment>", 9) == 0) { if (!append_field(new_name, af, AF_COMMENT)) return FALSE; i += 9; } else if (strncmp(&format[i], "<track>", 7) == 0) { if (!append_field(new_name, af, AF_TRACK)) return FALSE; i += 7; } else if (strncmp(&format[i], "<genre>", 7) == 0) { if (!append_field(new_name, af, AF_GENRE)) return FALSE; i += 7; } else { g_string_append_c(new_name, format[i++]); } } else { g_string_append(new_name, &format[i]); break; } } /* add back the extension */ g_string_append(new_name, audio_file_get_extension(af)); return TRUE; } static void rename_files(GEList *file_list) { GList *iter; audio_file *af = NULL; const gchar *format; gchar *last_full_name = ""; gchar *orig_full_name, *orig_name, *orig_name_utf8; GString *new_full_name, *new_path; gchar *p; gchar *temp_utf8; gint new_dirs; gint count_total, count_renamed; gboolean moving; int res, save_errno; new_path = g_string_sized_new(256); new_full_name = g_string_sized_new(256); format = gtk_entry_get_text(ent_rename_format); moving = (strchr(format, '/') ? TRUE : FALSE); if (moving) pd_start(_("Moving Files")); else pd_start(_("Renaming Files")); pd_printf(PD_ICON_INFO, _("Starting in directory \"%s\""), fl_get_working_dir_utf8()); count_total = 0; count_renamed = 0; for (iter = g_elist_first(file_list); iter; iter = g_list_next(iter)) { /* flush pending gtk operations so the UI doesn't freeze */ pd_scroll_to_bottom(); while (gtk_events_pending()) gtk_main_iteration(); if (pd_stop_requested()) { pd_printf(PD_ICON_WARN, _("Operation stopped at user's request")); break; } count_total++; orig_full_name = (gchar *)iter->data; if (!fu_compare_file_paths(last_full_name, orig_full_name)) { temp_utf8 = str_filename_to_utf8(orig_full_name, _("(UTF8 conversion error)")); p = g_utf8_strrchr(temp_utf8, -1, '/'); pd_printf(PD_ICON_INFO, _("Entering directory \"%.*s\""), (gint)(p-temp_utf8), temp_utf8); free(temp_utf8); } last_full_name = orig_full_name; /* read the file information */ orig_name = fu_last_n_path_components(orig_full_name, 1); orig_name_utf8 = str_filename_to_utf8(orig_name, _("(UTF8 conversion error)")); res = audio_file_new(&af, orig_full_name, FALSE); if (res != AF_OK) { pd_printf(PD_ICON_FAIL, _("Error renaming \"%s\""), orig_name_utf8); if (res == AF_ERR_FILE) pd_printf(PD_ICON_NONE, _("Couldn't open file for reading")); else if (res == AF_ERR_FORMAT) pd_printf(PD_ICON_NONE, _("Audio format not recognized")); else pd_printf(PD_ICON_NONE, _("Unknown error")); goto _continue; } if (!audio_file_has_tag(af)) { pd_printf(PD_ICON_FAIL, _("Error renaming \"%s\""), orig_name_utf8); pd_printf(PD_ICON_NONE, _("File has no tag")); goto _continue; } /* build the new file name (with path) */ g_string_truncate(new_full_name, 0); if (format[0] != '/' && (p = strrchr(orig_full_name, '/'))) g_string_sprintfa(new_full_name, "%.*s/", (gint)(p-orig_full_name), orig_full_name); if (!build_file_name(format, af, new_full_name)) { pd_printf(PD_ICON_FAIL, _("Error renaming \"%s\""), orig_name_utf8); pd_printf(PD_ICON_NONE, _("One of the tag fields is empty")); goto _continue; } if (strcmp(orig_full_name, new_full_name->str) == 0) { pd_printf(PD_ICON_OK, _("File name \"%s\" already in desired format"), orig_name_utf8); goto _continue; } if (fu_exists(new_full_name->str)) { if (moving) pd_printf(PD_ICON_FAIL, _("Error moving \"%s\""), orig_name_utf8); else pd_printf(PD_ICON_FAIL, _("Error renaming \"%s\""), orig_name_utf8); temp_utf8 = str_filename_to_utf8(new_full_name->str, _("(UTF8 conversion error)")); pd_printf(PD_ICON_NONE, _("File \"%s\" already exists"), temp_utf8); free(temp_utf8); goto _continue; } /* create the destination dir if necessary */ p = strrchr(new_full_name->str, '/'); if (moving && p) { new_dirs = 0; g_string_sprintf(new_path, "%.*s/", (gint)(p-new_full_name->str), new_full_name->str); res = fu_make_dir_tree(new_path->str, &new_dirs); if (!res) { save_errno = errno; temp_utf8 = str_filename_to_utf8(new_path->str, _("(UTF8 conversion error)")); pd_printf(PD_ICON_FAIL, _("Error creating directory \"%s\""), temp_utf8); pd_printf(PD_ICON_NONE, "%s (%d)", strerror(save_errno), save_errno); free(temp_utf8); goto _continue; } if (new_dirs) { pd_printf(PD_ICON_OK, _("Created directory \"%s\""), new_path->str); } } /* rename the file */ res = rename(orig_full_name, new_full_name->str); if (res != 0) { save_errno = errno; if (moving) pd_printf(PD_ICON_FAIL, _("Error moving \"%s\""), orig_name_utf8); else pd_printf(PD_ICON_FAIL, _("Error renaming \"%s\""), orig_name_utf8); pd_printf(PD_ICON_NONE, "%s (%d)", strerror(save_errno), save_errno); } else { if (moving) { temp_utf8 = str_filename_to_utf8(new_full_name->str, _("(UTF8 conversion error)")); pd_printf(PD_ICON_OK, _("Moved \"%s\" to \"%s\""), orig_name_utf8, temp_utf8); } else { temp_utf8 = str_filename_to_utf8(g_basename(new_full_name->str), _("(UTF8 conversion error)")); pd_printf(PD_ICON_OK, _("Renamed \"%s\" to \"%s\""), orig_name_utf8, temp_utf8); } free(temp_utf8); count_renamed++; } _continue: if (af) { audio_file_delete(af); af = NULL; } free(orig_name_utf8); orig_name_utf8 = NULL; } g_string_free(new_full_name, TRUE); g_string_free(new_path, TRUE); if (moving) pd_printf(PD_ICON_INFO, _("Done (moved %d of %d files)"), count_renamed, count_total); else pd_printf(PD_ICON_INFO, _("Done (renamed %d of %d files)"), count_renamed, count_total); pd_end(); if (count_renamed > 0) fl_refresh(TRUE); } static void start_operation() { GEList *file_list; if (gtk_combo_box_get_active(combo_rename_apply) == APPLY_TO_ALL) file_list = fl_get_all_files(); else file_list = fl_get_selected_files(); if (g_elist_length(file_list) == 0) { pd_start(NULL); pd_printf(PD_ICON_FAIL, _("No files selected")); pd_end(); g_elist_free(file_list); return; } mru_add(format_mru, gtk_entry_get_text(ent_rename_format)); gtk_combo_set_popdown_strings(combo_rename_format, GLIST(format_mru->list)); cursor_set_wait(); gtk_widget_set_sensitive(GTK_WIDGET(b_rename_go), FALSE); rename_files(file_list); gtk_widget_set_sensitive(GTK_WIDGET(b_rename_go), TRUE); cursor_set_normal(); g_elist_free(file_list); } /*** UI callbacks ***********************************************************/ void cb_rename_go(GtkButton *button, gpointer user_data) { start_operation(); } void cb_show_rename_chconv(GtkButton *button, gpointer user_data) { chconv_display(CHCONV_RENAME); } void cb_rename_help(GtkButton *button, gpointer user_data) { help_display(HELP_RENAME_FORMAT); } static void cb_file_selection_changed(GtkTreeSelection *selection, gpointer data) { if (fl_count_selected() > 0) gtk_combo_box_set_active(combo_rename_apply, APPLY_TO_SELECTED); else gtk_combo_box_set_active(combo_rename_apply, APPLY_TO_ALL); } /*** public functions *******************************************************/ void rt_init(GladeXML *xml) { GtkStyle *style; GtkWidget *w; GEList *format_list; /* * get the widgets from glade */ combo_rename_format = GTK_COMBO(glade_xml_get_widget(xml, "combo_rename_format")); ent_rename_format = GTK_ENTRY(glade_xml_get_widget(xml, "ent_rename_format")); b_rename_edit_format = GTK_BUTTON(glade_xml_get_widget(xml, "b_rename_edit_format")); b_rename_go = GTK_BUTTON(glade_xml_get_widget(xml, "b_rename_go")); combo_rename_apply = GTK_COMBO_BOX(glade_xml_get_widget(xml, "combo_rename_apply")); /* initialize some widgets' state */ gtk_combo_box_set_active(combo_rename_apply, APPLY_TO_ALL); /* connect signals */ g_signal_connect(gtk_tree_view_get_selection(GTK_TREE_VIEW(glade_xml_get_widget(xml, "tv_files"))), "changed", G_CALLBACK(cb_file_selection_changed), NULL); /* * set the title colors */ w = glade_xml_get_widget(xml, "lab_rename_title"); gtk_widget_ensure_style(w); style = gtk_widget_get_style(w); gtk_widget_modify_fg(w, GTK_STATE_NORMAL, &style->text[GTK_STATE_SELECTED]); w = glade_xml_get_widget(xml, "box_rename_title"); gtk_widget_modify_bg(w, GTK_STATE_NORMAL, &style->base[GTK_STATE_SELECTED]); /* * get the preference values, or set them to defaults */ /* format_mru */ format_list = pref_get_ref("rt:format_mru"); if (!format_list) { GEList *temp_list = g_elist_new(); g_elist_append(temp_list, "<track>. <title>"); g_elist_append(temp_list, "<artist> - <title>"); g_elist_append(temp_list, "<artist> - <album>/<track>. <title>"); g_elist_append(temp_list, "<artist>/<album>/<track>. <title>"); g_elist_append(temp_list, "<artist>/<album> (<year>)/<track>. <title>"); format_list = pref_set("rt:format_mru", PREF_STRING | PREF_LIST, temp_list); g_elist_free(temp_list); } format_mru = mru_new_from_list(10, format_list); gtk_combo_set_popdown_strings(combo_rename_format, GLIST(format_mru->list)); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/rename_tab.h���������������������������������������������������������������������0000644�0001750�0001750�00000000122�10541302761�015631� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef RENAME_TAB_H #define RENAME_TAB_H void rt_init(GladeXML *xml); #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/playlist_tab.c�������������������������������������������������������������������0000644�0001750�0001750�00000037122�10541302762�016231� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <stdlib.h> #include <stdio.h> #include <errno.h> #include <string.h> #include <glib.h> #include <glib/gi18n.h> #include <gtk/gtk.h> #include <glade/glade.h> #include "elist.h" #include "math_util.h" #include "str_util.h" #include "str_convert.h" #include "file_util.h" #include "gtk_util.h" #include "file_list.h" #include "progress_dlg.h" #include "cursor.h" #include "mru.h" #include "prefs.h" #include "audio_file.h" #include "genre.h" #include "playlist_tab.h" enum { APPLY_TO_ALL = 0, APPLY_TO_SELECTED = 1 }; /* data needed to sort files by their tag fields */ typedef struct { gchar *name; audio_file *af; } file_info; /* widgets */ static GtkButton *b_playlist_go = NULL; static GtkComboBox *combo_playlist_apply = NULL; static GtkToggleButton *rb_create_dir = NULL; static GtkToggleButton *rb_create_toplevel = NULL; static GtkToggleButton *rb_create_both = NULL; static GtkToggleButton *rb_name_dir = NULL; static GtkToggleButton *rb_name_set = NULL; static GtkToggleButton *rb_sort_name = NULL; static GtkToggleButton *rb_sort_field = NULL; static GtkCheckButton *cb_sort_across_dirs = NULL; static GtkEntry *ent_pl_name = NULL; static GtkEntry *ent_pl_extension = NULL; static GtkComboBox *combo_field = NULL; /* preferences */ static long* create_in; static gboolean* name_dir; static char* name; static char* extension; static gboolean* sort_by_name; static long* sort_field; static gboolean* sort_across_dirs; /*** private functions ******************************************************/ static gint compare_audio_file(file_info *a, file_info *b) { const char *field_a, *field_b; gboolean have_a, have_b; int result = 0; if (!*sort_across_dirs) { /* if sort_across_dirs is FALSE the file's directory takes precedence over the tag contents */ if (!fu_compare_file_paths(a->name, b->name)) { char *dir_a = g_dirname(a->name); char *dir_b = g_dirname(b->name); result = strcoll(dir_a, dir_b); free(dir_a); free(dir_b); return result; } } have_a = (audio_file_get_field(a->af, *sort_field, &field_a) == AF_OK); if (have_a) field_a = strdup(field_a); have_b = (audio_file_get_field(b->af, *sort_field, &field_b) == AF_OK); if (have_a ^ have_b) { /* files with tags will come before files w/o */ if (have_a) result = -1; else result = 1; } else if (have_a & have_b) { /* if both have tags, sort by the selected field */ switch (*sort_field) { case AF_TITLE: case AF_ARTIST: case AF_ALBUM: case AF_COMMENT: case AF_GENRE: result = strcoll(field_a, field_b); break; case AF_YEAR: case AF_TRACK: result = compare(atoi(field_a), atoi(field_b)); break; default: /* should never get here */ g_warning("compare_file_info: unexpected value for *sort_field"); result = 0; break; } } /* if all else is equal, still sort by file name */ if (result == 0) result = strcoll(a->name, b->name); if (have_a) free((char*)field_a); return result; } static void sort_by_field(GEList *file_list) { file_info *info; GEList *file_info_list; audio_file *af; GList *i, *j; int res; file_info_list = g_elist_new(); /* make a list with the file names and tags */ for (i = g_elist_first(file_list); i; i = g_list_next(i)) { res = audio_file_new(&af, i->data, FALSE); if (res == AF_OK) { info = malloc(sizeof(file_info)); info->name = i->data; info->af = af; g_elist_append(file_info_list, info); } else { char *temp_utf8 = str_filename_to_utf8(i->data, _("(UTF8 conversion error)")); pd_printf(PD_ICON_WARN, _("Skipping file \"%s\""), temp_utf8); free(temp_utf8); if (res == AF_ERR_FILE) pd_printf(PD_ICON_NONE, _("Couldn't open file for reading")); else if (res == AF_ERR_FORMAT) pd_printf(PD_ICON_NONE, _("Audio format not recognized")); else pd_printf(PD_ICON_NONE, _("Unknown error (%d)"), res); } } /* sort the list */ g_elist_sort(file_info_list, (GCompareFunc)compare_audio_file); /* copy the new sort order to the original list */ while (g_elist_length(file_list) > g_elist_length(file_info_list)) g_elist_extract(file_list, g_elist_last(file_list)); i = g_elist_first(file_list); j = g_elist_first(file_info_list); while (i) { i->data = ((file_info *)j->data)->name; audio_file_delete(((file_info *)j->data)->af); free(j->data); i = g_list_next(i); j = g_list_next(j); } g_elist_free(file_info_list); } static gchar *playlist_name(gchar *base_dir) { static GString *full_name = NULL; gchar *temp_name; gchar *temp_ext; if (full_name == NULL) full_name = g_string_sized_new(100); if (gtk_toggle_button_get_active(rb_name_set)) temp_name = str_filename_from_utf8(name, "utf8_conversion_error"); else if (*base_dir == 0 || strcmp(base_dir, ".") == 0) temp_name = fu_last_path_component(fl_get_working_dir()); else temp_name = fu_last_path_component(base_dir); temp_ext = str_filename_from_utf8(extension, "utf8_conversion_error"); if (*base_dir) g_string_sprintf(full_name, "%s/%s.%s", base_dir, temp_name, temp_ext); else g_string_sprintf(full_name, "%s.%s", temp_name, temp_ext); free(temp_name); free(temp_ext); return full_name->str; } static gint write_playlist(gchar *base_dir, gchar *file_name, GEList *file_list) { FILE *f; GList *iter; gchar *entry; gchar *aux; gint len = strlen(base_dir); gint count = 0; f = fopen(file_name, "w"); if (f == NULL) return count; /* the list comes sorted by file name... */ if (gtk_toggle_button_get_active(rb_sort_field)) { /* ...sort it by tag field if requested */ sort_by_field(file_list); } for (iter = g_elist_first(file_list); iter; iter = g_list_next(iter)) { aux = iter->data; if (*base_dir && strstr(aux, base_dir) == aux) { aux += len; while (*aux == '/') aux++; } entry = strdup(aux); str_ascii_replace_char(entry, '/', '\\'); fprintf(f, "%s\n", entry); free(entry); count++; } fclose(f); return count; } static gboolean create_playlist_in_dir(gchar *base_dir, GEList *file_list) { gchar *pl_name; gchar *pl_name_display; gint ret, save_errno; pl_name = playlist_name(base_dir); pl_name_display = str_filename_to_utf8(g_basename(pl_name), _("(UTF8 conversion error)")); ret = write_playlist(base_dir, pl_name, file_list); if (ret == 0) { save_errno = errno; pd_printf(PD_ICON_FAIL, _("Error creating playlist \"%s\""), pl_name_display); pd_printf(PD_ICON_NONE, "%s (%d)", strerror(save_errno), save_errno); free(pl_name_display); return FALSE; } else { pd_printf(PD_ICON_OK, _("Wrote \"%s\" (%d entries)"), pl_name_display, ret); free(pl_name_display); return TRUE; } } static void create_playlists(GEList *file_list) { GEList *aux_list; GList *iter; GString *path; gchar *full_name; gchar *last_full_name = ""; gchar *p; gchar *temp_utf8; gboolean create_dir; gboolean create_toplevel; gint count_total, count_written; gboolean ret; create_dir = gtk_toggle_button_get_active(rb_create_dir) || gtk_toggle_button_get_active(rb_create_both); create_toplevel = gtk_toggle_button_get_active(rb_create_toplevel) || gtk_toggle_button_get_active(rb_create_both); pd_start(_("Writing Playlists")); pd_printf(PD_ICON_INFO, _("Starting in directory \"%s\""), fl_get_working_dir_utf8()); count_total = 0; count_written = 0; if (create_toplevel) { /* make a copy of the list because it may need to be sorted, and we don't want to change the original */ aux_list = g_elist_copy(file_list); count_total++; ret = create_playlist_in_dir("", aux_list); if (ret) count_written++; g_elist_free(aux_list); } if (create_dir) { aux_list = g_elist_new(); path = g_string_sized_new(200); g_string_assign(path, ""); iter = g_elist_first(file_list); while (iter) { /* flush pending gtk operations so the UI doesn't freeze */ pd_scroll_to_bottom(); while (gtk_events_pending()) gtk_main_iteration(); if (pd_stop_requested()) { pd_printf(PD_ICON_WARN, _("Operation stopped at user's request")); break; } full_name = (gchar*)iter->data; if (!fu_compare_file_paths(last_full_name, full_name)) { if (!create_toplevel || *(path->str)) { count_total++; ret = create_playlist_in_dir(path->str, aux_list); if (ret) count_written++; } p = strrchr(full_name, '/'); g_string_sprintf(path, "%.*s", (gint)(p-full_name), full_name); g_elist_clear(aux_list); temp_utf8 = str_filename_to_utf8(path->str, _("(UTF8 conversion error)")); pd_printf(PD_ICON_INFO, _("Entering directory \"%s\""), temp_utf8); free(temp_utf8); } g_elist_append(aux_list, full_name); last_full_name = full_name; iter = g_list_next(iter); } if (g_elist_length(aux_list) > 0) { /* write the last one */ count_total++; ret = create_playlist_in_dir(path->str, aux_list); if (ret) count_written++; } g_elist_free(aux_list); g_string_free(path, TRUE); } pd_printf(PD_ICON_INFO, _("Done (wrote %d of %d playlists)"), count_written, count_total); pd_end(); } /* sets the interface state according to the preferences */ static void from_prefs() { switch (*create_in) { case 0: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_create_dir), TRUE); break; case 1: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_create_toplevel), TRUE); break; case 2: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_create_both), TRUE); break; } if (*name_dir) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_name_dir), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(ent_pl_name), FALSE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_name_set), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(ent_pl_name), TRUE); } gtk_entry_set_text(ent_pl_name, name); gtk_entry_set_text(ent_pl_extension, extension); if (*sort_by_name) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_sort_name), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(combo_field), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(cb_sort_across_dirs), FALSE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_sort_field), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(combo_field), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(cb_sort_across_dirs), TRUE); } gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_sort_across_dirs), *sort_across_dirs); gtk_combo_box_set_active(combo_field, *sort_field); } /* sets the preferences according to the curent interface state */ static void to_prefs() { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_create_dir))) *create_in = 0; else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_create_toplevel))) *create_in = 1; else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_create_both))) *create_in = 2; *name_dir = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_name_dir)); name = pref_set("pt:name", PREF_STRING, (void*)gtk_entry_get_text(ent_pl_name)); extension = pref_set("pt:extension", PREF_STRING, (void*)gtk_entry_get_text(ent_pl_extension)); *sort_by_name = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_sort_name)); *sort_across_dirs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_sort_across_dirs)); *sort_field = gtk_combo_box_get_active(combo_field); } /* orchestrates the call to create_playlists() */ static void start_operation() { GEList *file_list; if (gtk_combo_box_get_active(combo_playlist_apply) == APPLY_TO_ALL) file_list = fl_get_all_files(); else file_list = fl_get_selected_files(); if (g_elist_length(file_list) == 0) { pd_start(_("Writing Playlists")); pd_printf(PD_ICON_FAIL, _("No files selected")); pd_end(); g_elist_free(file_list); return; } to_prefs(); cursor_set_wait(); gtk_widget_set_sensitive(GTK_WIDGET(b_playlist_go), FALSE); create_playlists(file_list); gtk_widget_set_sensitive(GTK_WIDGET(b_playlist_go), TRUE); cursor_set_normal(); g_elist_free(file_list); } /*** UI callbacks ***********************************************************/ void cb_playlist_go(GtkButton *button, gpointer user_data) { start_operation(); } void cb_name_set(GtkToggleButton *button, gpointer user_data) { gtk_widget_set_sensitive(GTK_WIDGET(ent_pl_name), gtk_toggle_button_get_active(button)); } void cb_sort_field(GtkToggleButton *button, gpointer user_data) { gboolean active = gtk_toggle_button_get_active(button); gtk_widget_set_sensitive(GTK_WIDGET(combo_field), active); gtk_widget_set_sensitive(GTK_WIDGET(cb_sort_across_dirs), active); } static void cb_file_selection_changed(GtkTreeSelection *selection, gpointer data) { if (fl_count_selected() > 0) gtk_combo_box_set_active(combo_playlist_apply, APPLY_TO_SELECTED); else gtk_combo_box_set_active(combo_playlist_apply, APPLY_TO_ALL); } /*** public functions *******************************************************/ void pt_init(GladeXML *xml) { GtkStyle *style; GtkWidget *w; /* * get the widgets from glade */ b_playlist_go = GTK_BUTTON(glade_xml_get_widget(xml, "b_playlist_go")); combo_playlist_apply = GTK_COMBO_BOX(glade_xml_get_widget(xml, "combo_playlist_apply")); rb_create_dir = GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "rb_create_dir")); rb_create_toplevel = GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "rb_create_toplevel")); rb_create_both = GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "rb_create_both")); rb_name_dir = GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "rb_name_dir")); rb_name_set = GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "rb_name_set")); ent_pl_name = GTK_ENTRY(glade_xml_get_widget(xml, "ent_pl_name")); ent_pl_extension = GTK_ENTRY(glade_xml_get_widget(xml, "ent_pl_extension")); rb_sort_name = GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "rb_sort_name")); rb_sort_field = GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "rb_sort_field")); cb_sort_across_dirs = GTK_CHECK_BUTTON(glade_xml_get_widget(xml, "cb_sort_across_dirs")); combo_field = GTK_COMBO_BOX(glade_xml_get_widget(xml, "combo_field")); /* initialize some widgets' state */ gtk_combo_box_set_active(combo_playlist_apply, APPLY_TO_ALL); /* connect signals */ g_signal_connect(gtk_tree_view_get_selection(GTK_TREE_VIEW(glade_xml_get_widget(xml, "tv_files"))), "changed", G_CALLBACK(cb_file_selection_changed), NULL); /* * set the title colors */ w = glade_xml_get_widget(xml, "lab_playlist_title"); gtk_widget_ensure_style(w); style = gtk_widget_get_style(w); gtk_widget_modify_fg(w, GTK_STATE_NORMAL, &style->text[GTK_STATE_SELECTED]); w = glade_xml_get_widget(xml, "box_playlist_title"); gtk_widget_modify_bg(w, GTK_STATE_NORMAL, &style->base[GTK_STATE_SELECTED]); /* * get the preference values, or set them to defaults */ /* create_in */ create_in = pref_get_ref("pt:create_in"); if (!create_in) { long def = 0; create_in = pref_set("pt:create_in", PREF_INT, &def); } /* name_dir */ name_dir = pref_get_ref("pt:name_dir"); if (!name_dir) { gboolean def = TRUE; name_dir = pref_set("pt:name_dir", PREF_BOOLEAN, &def); } /* name */ name = pref_get_ref("pt:name"); if (!name) { char *def = "playlist"; name = pref_set("pt:name", PREF_STRING, def); } /* extension */ extension = pref_get_ref("pt:extension"); if (!extension) { char *def = "m3u"; extension = pref_set("pt:extension", PREF_STRING, def); } /* sort_by_name */ sort_by_name = pref_get_ref("pt:sort_by_name"); if (!sort_by_name) { gboolean def = TRUE; sort_by_name = pref_set("pt:sort_by_name", PREF_BOOLEAN, &def); } /* sort_field */ sort_field = pref_get_ref("pt:sort_field"); if (!sort_field) { long def = 0; sort_field = pref_set("pt:sort_field", PREF_INT, &def); } /* sort_across_dirs */ sort_across_dirs = pref_get_ref("pt:sort_across_dirs"); if (!sort_across_dirs) { gboolean def = FALSE; sort_across_dirs = pref_set("pt:sort_across_dirs", PREF_BOOLEAN, &def); } from_prefs(); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/playlist_tab.h�������������������������������������������������������������������0000644�0001750�0001750�00000000126�10541302762�016230� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef PLAYLIST_TAB_H #define PLAYLIST_TAB_H void pt_init(GladeXML *xml); #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/tag_tab.c������������������������������������������������������������������������0000644�0001750�0001750�00000055677�10541302762�015162� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <glib.h> #include <glib/gi18n.h> #include <gtk/gtk.h> #include <glade/glade.h> #ifdef HAVE_GNU_REGEX_H # include <gnu/regex.h> /* for recent FreeBSD */ #elif HAVE_GNUREGEX_H # include <gnuregex.h> /* for older FreeBSD */ #else # include <regex.h> /* for everyone else */ #endif #include "elist.h" #include "file_util.h" #include "str_util.h" #include "str_convert.h" #include "mru.h" #include "prefs.h" #include "audio_file.h" #include "genre.h" #include "file_list.h" #include "char_conv_dlg.h" #include "message_box.h" #include "progress_dlg.h" #include "cursor.h" #include "help.h" #include "tag_tab.h" enum { APPLY_TO_ALL = 0, APPLY_TO_SELECTED = 1 }; /* for parsing file names */ typedef struct { /* regexp to match against the file name */ regex_t re; /* indexes of substring matches */ gint title; gint artist; gint album; gint year; gint comment; gint track; gint genre; } parse_info; /* widgets */ static GtkCombo *combo_tag_format = NULL; static GtkEntry *ent_tag_format = NULL; static GtkButton *b_tag_edit_format = NULL; static GtkCheckButton *cb_use_filename = NULL; static GtkButton *b_tag_go = NULL; static GtkComboBox *combo_tag_apply = NULL; static GtkCheckButton *cb_title = NULL; static GtkCheckButton *cb_artist = NULL; static GtkCheckButton *cb_album = NULL; static GtkCheckButton *cb_year = NULL; static GtkCheckButton *cb_comment = NULL; static GtkCheckButton *cb_track = NULL; static GtkCheckButton *cb_genre = NULL; static GtkEntry *ent_title = NULL; static GtkEntry *ent_artist = NULL; static GtkEntry *ent_album = NULL; static GtkEntry *ent_year = NULL; static GtkEntry *ent_comment = NULL; static GtkEntry *ent_track = NULL; static GtkCheckButton *cb_track_auto = NULL; static GtkCombo *combo_genre = NULL; static GtkEntry *ent_genre = NULL; static GtkWindow *w_main = NULL; /* private data */ static gboolean ignore_field_changed = FALSE; static gboolean from_fn_title = FALSE; static gboolean from_fn_artist = FALSE; static gboolean from_fn_album = FALSE; static gboolean from_fn_year = FALSE; static gboolean from_fn_comment = FALSE; static gboolean from_fn_track = FALSE; static gboolean from_fn_genre = FALSE; /* preferences */ static gboolean *use_filename; static MRUList *format_mru; /*** private functions ******************************************************/ static parse_info *build_parse_info(const gchar *format) { parse_info *info = calloc(1, sizeof(parse_info)); gchar *aux_str = calloc(1, 2 + 2*strlen(format)); gchar *expr_str = calloc(1, 2 + 2*strlen(format)); gint i, j, span, pos; gchar *p; gint res; /* printf("format: %s\n", format); */ /* constrain the expression to match the whole string and escape characters that have special meaning in regexps */ i = 0; j = 0; aux_str[j++] = '^'; while (format[i]) { if (strchr(".*+?[]{}()|^$\\", format[i])) aux_str[j++] = '\\'; aux_str[j++] = format[i++]; } aux_str[j++] = '$'; aux_str[j++] = 0; /* find the markers, record their relative positions and replace them in the final expression */ i = 0; j = 0; pos = 1; while (TRUE) { p = index(&aux_str[i], '<'); if (p != NULL) { span = (gint)(p - &aux_str[i]); if (span > 0) { strncpy(&expr_str[j], &aux_str[i], span); i += span; j += span; } else if (strncmp(&aux_str[i], "<title>", 7) == 0) { strncpy(&expr_str[j], "(.*)", 4); info->title = pos++; i += 7; j += 4; } else if (strncmp(&aux_str[i], "<artist>", 8) == 0) { strncpy(&expr_str[j], "(.*)", 4); info->artist = pos++; i += 8; j += 4; } else if (strncmp(&aux_str[i], "<album>", 7) == 0) { strncpy(&expr_str[j], "(.*)", 4); info->album = pos++; i += 7; j += 4; } else if (strncmp(&aux_str[i], "<year>", 6) == 0) { strncpy(&expr_str[j], "(.*)", 4); info->year = pos++; i += 6; j += 4; } else if (strncmp(&aux_str[i], "<comment>", 9) == 0) { strncpy(&expr_str[j], "(.*)", 4); info->comment = pos++; i += 9; j += 4; } else if (strncmp(&aux_str[i], "<track>", 7) == 0) { strncpy(&expr_str[j], "([^ ]*)", 7); info->track = pos++; i += 7; j += 7; } else if (strncmp(&aux_str[i], "<genre>", 7) == 0) { strncpy(&expr_str[j], "(.*)", 4); info->genre = pos++; i += 7; j += 4; } else if (strncmp(&aux_str[i], "<\\*>", 4) == 0) { strncpy(&expr_str[j], ".*", 2); i += 4; j += 2; } else { expr_str[j++] = aux_str[i++]; } } else { strcpy(&expr_str[j], &aux_str[i]); break; } } /* printf("regexp: %s\n", expr_str); */ /* compile the regexp from the expression string */ res = regcomp(&info->re, expr_str, REG_EXTENDED | REG_ICASE); if (res != 0) { g_warning("error in regcomp (\"%s\"): %d", expr_str, res); free(aux_str); free(expr_str); free(info); return NULL; } free(aux_str); free(expr_str); return info; } static void free_parse_info(parse_info *info) { regfree(&info->re); free(info); } static void set_field(audio_file *af, int field, gchar *src, int len) { chconv_tag_options options; char *temp; char *buf = malloc(len+1); str_safe_strncpy(buf, src, len+1); /* apply character conversions */ options = chconv_get_tag_options(); if (options.space_conv != NULL && options.space_conv[0] != 0) { str_rtrim(buf); temp = buf; buf = str_replace_char(buf, options.space_conv[0], ' '); free(temp); } if (options.case_conv != CASE_CONV_NONE) { temp = buf; buf = str_convert_case(buf, options.case_conv); free(temp); } audio_file_set_field(af, field, buf); free(buf); } static gboolean tag_from_filename(parse_info *pi, gchar *filename, audio_file *af) { regmatch_t matches[8]; char *filename_utf8; char *p; int res; /* convert to UTF-8 */ filename_utf8 = str_filename_to_utf8(filename, NULL); if (filename_utf8 == NULL) return FALSE; /* truncate the file extension */ p = g_utf8_strrchr(filename_utf8, -1, '.'); if (p && strlen(p) <= 5) *p = 0; /* printf("string: %s\n", filename_utf8); */ /* match the regexp against the file name (minus extension) and extract the tag fields */ res = regexec(&pi->re, filename_utf8, 8, matches, 0); if (res != 0) { free(filename_utf8); return FALSE; } if (pi->title > 0) { set_field(af, AF_TITLE, &filename_utf8[matches[pi->title].rm_so], matches[pi->title].rm_eo - matches[pi->title].rm_so); } if (pi->artist > 0) { set_field(af, AF_ARTIST, &filename_utf8[matches[pi->artist].rm_so], matches[pi->artist].rm_eo - matches[pi->artist].rm_so); } if (pi->album > 0) { set_field(af, AF_ALBUM, &filename_utf8[matches[pi->album].rm_so], matches[pi->album].rm_eo - matches[pi->album].rm_so); } if (pi->year > 0) { set_field(af, AF_YEAR, &filename_utf8[matches[pi->year].rm_so], matches[pi->year].rm_eo - matches[pi->year].rm_so); } if (pi->comment > 0) { set_field(af, AF_COMMENT, &filename_utf8[matches[pi->comment].rm_so], matches[pi->comment].rm_eo - matches[pi->comment].rm_so); } if (pi->track > 0) { set_field(af, AF_TRACK, &filename_utf8[matches[pi->track].rm_so], matches[pi->track].rm_eo - matches[pi->track].rm_so); } if (pi->genre > 0) { set_field(af, AF_GENRE, &filename_utf8[matches[pi->genre].rm_so], matches[pi->genre].rm_eo - matches[pi->genre].rm_so); } free(filename_utf8); return TRUE; } static void tag_files(GEList *file_list) { GList *iter; audio_file *af; parse_info *pi; gint path_components; gchar *last_path; gchar *curr_path; gchar *file_name = NULL; gchar *file_name_utf8 = NULL; gchar *temp_utf8; gint track_auto_index; gint count_total, count_tagged; int save_errno, res; gboolean write_title = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_title)); gboolean write_artist = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_artist)); gboolean write_album = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_album)); gboolean write_year = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_year)); gboolean write_comment = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_comment)); gboolean write_track = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_track)); gboolean write_genre = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_genre)); gboolean track_auto = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_track_auto)); pd_start(_("Tagging Files")); if (!(write_title || write_artist || write_album || write_year || write_comment || write_track || write_genre)) { pd_printf(PD_ICON_INFO, _("No tag fields to set!")); pd_end(); return; } pd_printf(PD_ICON_INFO, _("Starting in directory \"%s\""), fl_get_working_dir_utf8()); if (*use_filename) { const gchar *format = gtk_entry_get_text(ent_tag_format); pi = build_parse_info(format); path_components = fu_count_path_components(format); } else { pi = NULL; path_components = 0; } count_total = 0; count_tagged = 0; track_auto_index = 1; last_path = ""; for (iter = g_elist_first(file_list); iter; iter = g_list_next(iter)) { /* flush pending gtk operations so the UI doesn't freeze */ pd_scroll_to_bottom(); while (gtk_events_pending()) gtk_main_iteration(); if (pd_stop_requested()) { pd_printf(PD_ICON_WARN, _("Operation stopped at user's request")); break; } count_total++; curr_path = (gchar *)iter->data; if (!fu_compare_file_paths(last_path, curr_path)) { gchar *p; temp_utf8 = str_filename_to_utf8(curr_path, _("(UTF8 conversion error)")); p = g_utf8_strrchr(temp_utf8, -1, '/'); pd_printf(PD_ICON_INFO, _("Entering directory \"%.*s\""), (gint)(p-temp_utf8), temp_utf8); free(temp_utf8); track_auto_index = 1; /* new dir, reset track auto-increment */ } last_path = curr_path; file_name = fu_last_n_path_components(curr_path, 1); file_name_utf8 = str_filename_to_utf8(file_name, _("(UTF8 conversion error)")); res = audio_file_new(&af, curr_path, TRUE); if (res != AF_OK) { pd_printf(PD_ICON_FAIL, _("Error tagging \"%s\""), file_name_utf8); if (res == AF_ERR_FILE) pd_printf(PD_ICON_NONE, _("Couldn't open file for writing")); else if (res == AF_ERR_FORMAT) pd_printf(PD_ICON_NONE, _("Audio format not recognized")); else pd_printf(PD_ICON_NONE, _("Unknown error (%d)"), res); goto _continue; } /* create the tag if not already present */ audio_file_create_tag(af); /* fill in the values from the form */ if (write_title && !(from_fn_title && *use_filename)) audio_file_set_field(af, AF_TITLE, gtk_entry_get_text(ent_title)); if (write_artist && !(from_fn_artist && *use_filename)) audio_file_set_field(af, AF_ARTIST, gtk_entry_get_text(ent_artist)); if (write_album && !(from_fn_album && *use_filename)) audio_file_set_field(af, AF_ALBUM, gtk_entry_get_text(ent_album)); if (write_year && !(from_fn_year && *use_filename)) audio_file_set_field(af, AF_YEAR, gtk_entry_get_text(ent_year)); if (write_comment && !(from_fn_comment && *use_filename)) audio_file_set_field(af, AF_COMMENT, gtk_entry_get_text(ent_comment)); if (write_track && !(from_fn_track && *use_filename)) { if (track_auto) { char buf[10]; snprintf(buf, 10, "%02u", track_auto_index++); audio_file_set_field(af, AF_TRACK, buf); } else audio_file_set_field(af, AF_TRACK, gtk_entry_get_text(ent_track)); } if (write_genre && !(from_fn_genre && *use_filename)) audio_file_set_field(af, AF_GENRE, gtk_entry_get_text(GTK_ENTRY(combo_genre->entry))); /* fill in the values from the file name */ if (pi != NULL) { gchar *full_path = fu_join_path(fl_get_working_dir(), curr_path); gchar *relevant_path = fu_last_n_path_components(full_path, path_components); res = tag_from_filename(pi, relevant_path, af); free(full_path); if (!res) { pd_printf(PD_ICON_FAIL, _("Error tagging \"%s\""), file_name_utf8); pd_printf(PD_ICON_NONE, _("File name does not match expected format")); goto _continue; } } /* write new tag to file */ res = audio_file_write_changes(af); if (res != AF_OK) { save_errno = errno; pd_printf(PD_ICON_FAIL, _("Error tagging \"%s\""), file_name_utf8); if (res == AF_ERR_FILE) pd_printf(PD_ICON_NONE, "%s (%d)", strerror(save_errno), save_errno); else pd_printf(PD_ICON_NONE, _("Unknown error (%d)"), res); goto _continue; } pd_printf(PD_ICON_OK, _("Tagged \"%s\""), file_name_utf8); count_tagged++; _continue: free(file_name_utf8); if (af) { audio_file_delete(af); af = NULL; } } pd_printf(PD_ICON_INFO, _("Done (tagged %d of %d files)"), count_tagged, count_total); pd_end(); if (pi != NULL) free_parse_info(pi); } static void start_operation() { GEList *file_list; if (gtk_combo_box_get_active(combo_tag_apply) == APPLY_TO_ALL) file_list = fl_get_all_files(); else file_list = fl_get_selected_files(); if (g_elist_length(file_list) == 0) { pd_start(NULL); pd_printf(PD_ICON_FAIL, _("No files selected")); pd_end(); g_elist_free(file_list); return; } cursor_set_wait(); gtk_widget_set_sensitive(GTK_WIDGET(b_tag_go), FALSE); mru_add(format_mru, gtk_entry_get_text(ent_tag_format)); gtk_combo_set_popdown_strings(combo_tag_format, GLIST(format_mru->list)); tag_files(file_list); gtk_widget_set_sensitive(GTK_WIDGET(b_tag_go), TRUE); cursor_set_normal(); g_elist_free(file_list); } static void update_interface_fname() { static gboolean last_title = FALSE; static gboolean last_artist = FALSE; static gboolean last_album = FALSE; static gboolean last_year = FALSE; static gboolean last_comment = FALSE; static gboolean last_track = FALSE; static gboolean last_genre = FALSE; const gchar *format = gtk_entry_get_text(ent_tag_format); gboolean value; gboolean save; /* inhibit proccessing signals in 'cb_filed_changed' */ save = ignore_field_changed; ignore_field_changed = TRUE; if (strstr(format, "<title>")) from_fn_title = TRUE; else from_fn_title = FALSE; if (strstr(format, "<artist>")) from_fn_artist = TRUE; else from_fn_artist = FALSE; if (strstr(format, "<album>")) from_fn_album = TRUE; else from_fn_album = FALSE; if (strstr(format, "<year>")) from_fn_year = TRUE; else from_fn_year = FALSE; if (strstr(format, "<comment>")) from_fn_comment = TRUE; else from_fn_comment = FALSE; if (strstr(format, "<track>")) from_fn_track = TRUE; else from_fn_track = FALSE; if (strstr(format, "<genre>")) from_fn_genre = TRUE; else from_fn_genre = FALSE; value = *use_filename && from_fn_title; if (last_title != value) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_title), value); gtk_entry_set_text(ent_title, (value ? "<from filename>" : "")); gtk_widget_set_sensitive(GTK_WIDGET(cb_title), !value); gtk_widget_set_sensitive(GTK_WIDGET(ent_title), !value); last_title = value; } value = *use_filename && from_fn_artist; if (last_artist != value) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_artist), value); gtk_entry_set_text(ent_artist, (value ? "<from filename>" : "")); gtk_widget_set_sensitive(GTK_WIDGET(cb_artist), !value); gtk_widget_set_sensitive(GTK_WIDGET(ent_artist), !value); last_artist = value; } value = *use_filename && from_fn_album; if (last_album != value) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_album), value); gtk_entry_set_text(ent_album, (value ? "<from filename>" : "")); gtk_widget_set_sensitive(GTK_WIDGET(cb_album), !value); gtk_widget_set_sensitive(GTK_WIDGET(ent_album), !value); last_album = value; } value = *use_filename && from_fn_year; if (last_year != value) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_year), value); gtk_entry_set_text(ent_year, (value ? "<fn>" : "")); gtk_widget_set_sensitive(GTK_WIDGET(cb_year), !value); gtk_widget_set_sensitive(GTK_WIDGET(ent_year), !value); last_year = value; } value = *use_filename && from_fn_comment; if (last_comment != value) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_comment), value); gtk_entry_set_text(ent_comment, (value ? "<from filename>" : "")); gtk_widget_set_sensitive(GTK_WIDGET(cb_comment), !value); gtk_widget_set_sensitive(GTK_WIDGET(ent_comment), !value); last_comment = value; } value = *use_filename && from_fn_track; if (last_track != value) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_track), value); gtk_entry_set_text(ent_track, (value ? "<fn>" : "")); gtk_widget_set_sensitive(GTK_WIDGET(cb_track), !value); gtk_widget_set_sensitive(GTK_WIDGET(ent_track), !value); if (value) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_track_auto), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(cb_track_auto), !value); last_track = value; } value = *use_filename && from_fn_genre; if (last_genre != value) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_genre), value); gtk_entry_set_text(ent_genre, (value ? "<from filename>" : "")); gtk_widget_set_sensitive(GTK_WIDGET(cb_genre), !value); gtk_widget_set_sensitive(GTK_WIDGET(combo_genre), !value); last_genre = value; } ignore_field_changed = save; } /*** UI callbacks ***********************************************************/ void cb_tag_go(GtkButton *button, gpointer user_data) { start_operation(); } void cb_update_filename(GObject *obj, gpointer data) { *use_filename = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_use_filename)); update_interface_fname(); } void cb_field_changed(GObject *obj, gpointer data) { if (ignore_field_changed) return; if ((void*)obj == (void*)ent_title) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_title), TRUE); else if ((void*)obj == (void*)ent_artist) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_artist), TRUE); else if ((void*)obj == (void*)ent_album) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_album), TRUE); else if ((void*)obj == (void*)ent_year) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_year), TRUE); else if ((void*)obj == (void*)ent_genre) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_genre), TRUE); else if ((void*)obj == (void*)ent_comment) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_comment), TRUE); else if ((void*)obj == (void*)ent_track || (void*)obj == (void*)cb_track_auto) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_track), TRUE); } void cb_check_changed(GtkToggleButton *widget, gpointer data) { gboolean save; if (gtk_toggle_button_get_active(widget)) return; /* inhibit proccessing signals in 'cb_field_changed' */ save = ignore_field_changed; ignore_field_changed = TRUE; if ((void*)widget == (void*)cb_title) gtk_entry_set_text(ent_title, ""); else if ((void*)widget == (void*)cb_artist) gtk_entry_set_text(ent_artist, ""); else if ((void*)widget == (void*)cb_album) gtk_entry_set_text(ent_album, ""); else if ((void*)widget == (void*)cb_year) gtk_entry_set_text(ent_year, ""); else if ((void*)widget == (void*)cb_genre) gtk_entry_set_text(ent_genre, ""); else if ((void*)widget == (void*)cb_comment) gtk_entry_set_text(ent_comment, ""); else if ((void*)widget == (void*)cb_track) { gtk_entry_set_text(ent_track, ""); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_track_auto), FALSE); } ignore_field_changed = save; } void cb_show_tag_chconv(GtkButton *button, gpointer user_data) { chconv_display(CHCONV_TAG); } void cb_tag_help(GtkButton *button, gpointer user_data) { help_display(HELP_TAG_FORMAT); } static void cb_file_selection_changed(GtkTreeSelection *selection, gpointer data) { if (fl_count_selected() > 0) gtk_combo_box_set_active(combo_tag_apply, APPLY_TO_SELECTED); else gtk_combo_box_set_active(combo_tag_apply, APPLY_TO_ALL); } /*** public functions *******************************************************/ void tt_init(GladeXML *xml) { GtkStyle *style; GtkWidget *w; GEList *genre_list; GEList *format_list; /* * get the widgets from glade */ combo_tag_format = GTK_COMBO(glade_xml_get_widget(xml, "combo_tag_format")); ent_tag_format = GTK_ENTRY(glade_xml_get_widget(xml, "ent_tag_format")); b_tag_edit_format = GTK_BUTTON(glade_xml_get_widget(xml, "b_tag_edit_format")); cb_use_filename = GTK_CHECK_BUTTON(glade_xml_get_widget(xml, "cb_use_filename")); b_tag_go = GTK_BUTTON(glade_xml_get_widget(xml, "b_tag_go")); combo_tag_apply = GTK_COMBO_BOX(glade_xml_get_widget(xml, "combo_tag_apply")); cb_title = GTK_CHECK_BUTTON(glade_xml_get_widget(xml, "cb_title")); cb_artist = GTK_CHECK_BUTTON(glade_xml_get_widget(xml, "cb_artist")); cb_album = GTK_CHECK_BUTTON(glade_xml_get_widget(xml, "cb_album")); cb_year = GTK_CHECK_BUTTON(glade_xml_get_widget(xml, "cb_year")); cb_comment = GTK_CHECK_BUTTON(glade_xml_get_widget(xml, "cb_comment")); cb_track = GTK_CHECK_BUTTON(glade_xml_get_widget(xml, "cb_track")); cb_genre = GTK_CHECK_BUTTON(glade_xml_get_widget(xml, "cb_genre")); ent_title = GTK_ENTRY(glade_xml_get_widget(xml, "ent_title2")); ent_artist = GTK_ENTRY(glade_xml_get_widget(xml, "ent_artist2")); ent_album = GTK_ENTRY(glade_xml_get_widget(xml, "ent_album2")); ent_year = GTK_ENTRY(glade_xml_get_widget(xml, "ent_year2")); ent_comment = GTK_ENTRY(glade_xml_get_widget(xml, "ent_comment2")); ent_track = GTK_ENTRY(glade_xml_get_widget(xml, "ent_track2")); cb_track_auto = GTK_CHECK_BUTTON(glade_xml_get_widget(xml, "cb_track_auto")); combo_genre = GTK_COMBO(glade_xml_get_widget(xml, "combo_genre2")); ent_genre = GTK_ENTRY(glade_xml_get_widget(xml, "ent_genre2")); w_main = GTK_WINDOW(glade_xml_get_widget(xml, "w_main")); /* initialize some widgets' state */ gtk_combo_box_set_active(combo_tag_apply, APPLY_TO_ALL); genre_list = genre_create_list(TRUE); g_elist_prepend(genre_list, ""); gtk_combo_set_popdown_strings(combo_genre, GLIST(genre_list)); g_elist_free(genre_list); /* connect signals */ g_signal_connect(gtk_tree_view_get_selection(GTK_TREE_VIEW(glade_xml_get_widget(xml, "tv_files"))), "changed", G_CALLBACK(cb_file_selection_changed), NULL); /* * set the title colors */ w = glade_xml_get_widget(xml, "lab_tag_title"); gtk_widget_ensure_style(w); style = gtk_widget_get_style(w); gtk_widget_modify_fg(w, GTK_STATE_NORMAL, &style->text[GTK_STATE_SELECTED]); w = glade_xml_get_widget(xml, "box_tag_title"); gtk_widget_modify_bg(w, GTK_STATE_NORMAL, &style->base[GTK_STATE_SELECTED]); /* * get the preference values, or set them to defaults */ /* use_filename */ use_filename = pref_get_ref("tt:use_filename"); if (!use_filename) { gboolean temp = TRUE; use_filename = pref_set("tt:use_filename", PREF_BOOLEAN, &temp); } /* format_mru */ format_list = pref_get_ref("tt:format_mru"); if (!format_list) { GEList *temp_list = g_elist_new(); g_elist_append(temp_list, "<track>. <title>"); g_elist_append(temp_list, "<artist> - <title>"); g_elist_append(temp_list, "<artist> - <album>/<track>. <title>"); g_elist_append(temp_list, "<artist>/<album>/<track>. <title>"); g_elist_append(temp_list, "<artist>/<album> (<year>)/<track>. <title>"); format_list = pref_set("tt:format_mru", PREF_STRING | PREF_LIST, temp_list); g_elist_free(temp_list); } format_mru = mru_new_from_list(10, format_list); /* * synchronize the interface state */ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_use_filename), *use_filename); gtk_combo_set_popdown_strings(combo_tag_format, GLIST(format_mru->list)); update_interface_fname(); } �����������������������������������������������������������������tagtool-0.12.3/src/tag_tab.h������������������������������������������������������������������������0000644�0001750�0001750�00000000114�10541302762�015137� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef TAG_TAB_H #define TAG_TAB_H void tt_init(GladeXML *xml); #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/main_win.c�����������������������������������������������������������������������0000644�0001750�0001750�00000006515�10541302761�015344� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <string.h> #include <gtk/gtk.h> #include <glade/glade.h> #include "str_util.h" #include "str_convert.h" #include "file_util.h" #include "gtk_util.h" #include "prefs.h" #include "about.h" #include "prefs_dlg.h" #include "char_conv_dlg.h" #include "file_list.h" #include "edit_tab.h" #include "main_win.h" enum { TAB_EDIT = 0, TAB_TAG, TAB_CLEAR, TAB_RENAME, TAB_PLAYLIST }; /* widgets */ static GtkWindow *w_main = NULL; static GtkNotebook *nb_main = NULL; /* prefs variables */ static int *width; static int *height; /*** private functions ******************************************************/ /*** UI callbacks ***********************************************************/ /* menu callbacks */ void cb_file_refresh(GtkWidget *widget, GdkEvent *event) { fl_refresh(TRUE); } void cb_file_quit(GtkWidget *widget, GdkEvent *event) { gtk_main_quit(); } void cb_settings_charconv(GtkWidget *widget, GdkEvent *event) { chconv_display(CHCONV_TAG); } void cb_settings_id3prefs(GtkWidget *widget, GdkEvent *event) { prefs_display(); } void cb_help_contents(GtkWidget *widget, GdkEvent *event) { /* GError *err = NULL; // XXX - should check with g_find_program_in_path() g_spawn_command_line_async ("yelp "HELPDIR"tagtool.xml", &err); */ } void cb_help_about(GtkWidget *widget, GdkEvent *event) { about_display(); } /* other UI callbacks */ gboolean cb_main_win_delete(GtkWidget *widget, GdkEvent *event, gpointer data) { /* this will prompt to save changes, if necessary */ et_unload_file(); return FALSE; } void cb_main_win_size_changed(GtkWidget *widget, GtkAllocation *alloc, gpointer data) { *width = alloc->width; *height = alloc->height; } /*** public functions *******************************************************/ void mw_init(GladeXML *xml) { /* * Tabs are visible by default to make editing in glade easier. * They must be hidden before showing the window, otherwise they * would affect the window size. */ gtk_notebook_set_show_tabs(GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_file")), FALSE); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_edit")), FALSE); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_id3v1")), FALSE); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_id3v2")), FALSE); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_vorbis")), FALSE); /* * Hide the MP3 and Vorbis menus. This has to be done here because * the MP3/Vorbis specific code may not be compiled. */ gtk_widget_hide(GTK_WIDGET(glade_xml_get_widget(xml, "m_id3"))); gtk_widget_hide(GTK_WIDGET(glade_xml_get_widget(xml, "m_vorbis"))); /* * Get the widgets from glade and setup the interface */ w_main = GTK_WINDOW(glade_xml_get_widget(xml, "w_main")); nb_main = GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_main")); /* * get the preference values, or set them to defaults */ /* width */ width = pref_get_ref("mw:width"); if (!width) { gint temp = 0; width = pref_set("mw:width", PREF_INT, &temp); } /* height */ height = pref_get_ref("mw:height"); if (!height) { gint temp = 0; height = pref_set("mw:height", PREF_INT, &temp); } /* * initialize the main window */ if (*width && *height) gtk_window_set_default_size(w_main, *width, *height); gtk_widget_show(GTK_WIDGET(w_main)); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/main_win.h�����������������������������������������������������������������������0000644�0001750�0001750�00000000116�10541302761�015340� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef MAIN_WIN_H #define MAIN_WIN_H void mw_init(GladeXML *xml); #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/progress_dlg.c�������������������������������������������������������������������0000644�0001750�0001750�00000007426�10541302762�016240� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <stdio.h> #include <stdarg.h> #include <glib.h> #include <glib/gi18n.h> #include <gtk/gtk.h> #include <glade/glade.h> #include "prefs.h" #include "progress_dlg.h" #define MAX_MSG_SIZE 512 /* widgets */ static GtkWidget *w_main = NULL; static GtkWindow *dlg_progress = NULL; static GtkWidget *b_stop = NULL; static GtkWidget *b_close = NULL; static GtkTreeView *tv_progress = NULL; static GtkListStore *store_progress = NULL; /* icons */ static GdkPixbuf *pix_table[4]; /* prefs */ static int *width; static int *height; /* private data */ static gboolean stop_requested = FALSE; /* private functions */ static void tree_view_setup() { GtkTreeViewColumn *col; GtkCellRenderer *renderer; /* model */ store_progress = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING); gtk_tree_view_set_model(tv_progress, GTK_TREE_MODEL(store_progress)); /* columns and renderers */ col = gtk_tree_view_column_new(); gtk_tree_view_append_column(tv_progress, col); renderer = gtk_cell_renderer_pixbuf_new(); g_object_set(renderer, "xpad", 4, NULL); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "pixbuf", 0); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "ypad", 0, NULL); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "text", 1); /* disable selection */ gtk_tree_selection_set_mode(gtk_tree_view_get_selection(tv_progress), GTK_SELECTION_NONE); } /* UI callbacks */ void cb_dlg_progress_stop(GtkButton *button, gpointer user_data) { stop_requested = TRUE; } void cb_dlg_progress_size_changed(GtkWidget *widget, GtkAllocation *alloc, gpointer data) { *width = alloc->width; *height = alloc->height; } /* public functions */ void pd_init(GladeXML *xml) { gint temp = 0; /* widgets and icons */ w_main = glade_xml_get_widget(xml, "w_main"); b_stop = glade_xml_get_widget(xml, "b_stop"); b_close = glade_xml_get_widget(xml, "b_close"); dlg_progress = GTK_WINDOW(glade_xml_get_widget(xml, "dlg_progress")); tv_progress = GTK_TREE_VIEW(glade_xml_get_widget(xml, "tv_progress")); pix_table[PD_ICON_INFO] = gdk_pixbuf_new_from_file(DATADIR"/info.png", NULL); pix_table[PD_ICON_OK] = gdk_pixbuf_new_from_file(DATADIR"/ok.png", NULL); pix_table[PD_ICON_FAIL] = gdk_pixbuf_new_from_file(DATADIR"/fail.png", NULL); pix_table[PD_ICON_WARN] = gdk_pixbuf_new_from_file(DATADIR"/warn.png", NULL); /* preferences */ width = pref_get_ref("prog:width"); height = pref_get_ref("prog:height"); if (width == NULL) width = pref_set("prog:width", PREF_INT, &temp); if (height == NULL) height = pref_set("prog:height", PREF_INT, &temp); if (*width && *height) gtk_window_set_default_size(dlg_progress, *width, *height); /* set up the tree view */ tree_view_setup(); } void pd_start(const char *title) { stop_requested = FALSE; gtk_window_set_title(dlg_progress, title ? title : _("Progress")); gtk_widget_show(b_stop); gtk_widget_hide(b_close); gtk_list_store_clear(store_progress); gtk_window_present(dlg_progress); } void pd_end() { stop_requested = FALSE; pd_scroll_to_bottom(); gtk_widget_hide(b_stop); gtk_widget_show(b_close); } gboolean pd_stop_requested() { return stop_requested; } void pd_printf(int icon, const char *format, ...) { va_list ap; char text[MAX_MSG_SIZE]; GtkTreeIter iter; va_start(ap, format); vsnprintf(text, MAX_MSG_SIZE, format, ap); va_end(ap); text[MAX_MSG_SIZE-1] = 0; gtk_list_store_append(store_progress, &iter); gtk_list_store_set(store_progress, &iter, 0, (icon == PD_ICON_NONE ? NULL : pix_table[icon]), 1, text, -1); } void pd_scroll_to_bottom() { GtkAdjustment *adj; adj = gtk_tree_view_get_vadjustment(tv_progress); gtk_adjustment_set_value(adj, adj->upper); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/progress_dlg.h�������������������������������������������������������������������0000644�0001750�0001750�00000000563�10541302762�016240� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef PROGRESS_DLG_H #define PROGRESS_DLG_H #define PD_ICON_INFO 0 #define PD_ICON_OK 1 #define PD_ICON_FAIL 2 #define PD_ICON_WARN 3 #define PD_ICON_NONE 4 void pd_init(GladeXML *xml); void pd_start(const char *title); void pd_end(); gboolean pd_stop_requested(); void pd_printf(int icon, const char *format, ...); void pd_scroll_to_bottom(); #endif ���������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/help.c���������������������������������������������������������������������������0000644�0001750�0001750�00000005063�10541302762�014471� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <glib.h> #include <glib/gi18n.h> #include <gtk/gtk.h> #include <glade/glade.h> #include "help.h" /* help strings */ char *help_titles[] = { /* HELP_TAG_FORMAT */ N_("Help - File Name Format"), /* HELP_RENAME_FORMAT */ N_("Help - File Name Format") }; char *help_strings[] = { /* HELP_TAG_FORMAT */ N_("This field describes the expected format of the file name \n" "(not including the extension). Audio Tag Tool uses this \n" "information to automatically fill in the tags based on the \n" "file's name. \n" "\n" "Each tag field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Examples: \n" "\n" "The format \"<artist> - <album> - <title>\" will match a \n" "file named \"Pink Floyd - The Wall - Hey You.mp3\". In this \n" "example the Artist, Album and Title fields of the tag will \n" "be set to \"Pink Floyd\", \"The Wall\" and \"Hey You\", \n" "respectively.\n" "\n" "The format \"<artist> - <*> - <title>\" could also be used \n" "in the previous example if we did not want to fill in the \n" "album name (the special symbol <*> causes a part of the \n" "file name to be ignored.) \n"), /* HELP_RENAME_FORMAT */ N_("This field describes the desired format of the file name. \n" "Audio Tag Tool can use this information to rename files or \n" "organize them into subdirectories, based on the content of \n" "their tags. \n" "\n" "Each ID3 field has a corresponding symbol, as listed below: \n" "\n" " <title>\n" " <artist>\n" " <album>\n" " <year>\n" " <comment>\n" " <track>\n" " <genre>\n" "\n" "Renaming example: \n" "\n" "To have all file names consist of the track number followed \n" "by the track title, a format such as \"<track> - <title>\" can \n" "be used. \n" "\n" "Moving example: \n" "\n" "The file name format can include sub-directories. If in the \n" "previous example we had wanted the files to be placed in \n" "a directory with the album name, we would have used the \n" "format \"<album>/<track> - <title>\". \n") }; /* widgets */ static GtkWindow *dlg_help = NULL; static GtkLabel *lab_help = NULL; /*** public functions *******************************************************/ void help_init(GladeXML *xml) { dlg_help = GTK_WINDOW(glade_xml_get_widget(xml, "dlg_help")); lab_help = GTK_LABEL(glade_xml_get_widget(xml, "lab_help")); } void help_display(int topic) { gtk_window_set_title(dlg_help, _(help_titles[topic])); gtk_label_set_text(lab_help, _(help_strings[topic])); gtk_widget_show(GTK_WIDGET(dlg_help)); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/help.h���������������������������������������������������������������������������0000644�0001750�0001750�00000000240�10541302762�014466� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef HELP_H #define HELP_H enum { HELP_TAG_FORMAT = 0, HELP_RENAME_FORMAT = 1 }; void help_init(GladeXML *xml); void help_display(int topic); #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/audio_file.c���������������������������������������������������������������������0000644�0001750�0001750�00000004017�10541302762�015637� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <string.h> #include <fnmatch.h> #include <glib.h> #include "audio_file.h" #ifdef ENABLE_MP3 extern int mpeg_file_new(audio_file **, const char *, gboolean); #endif #ifdef ENABLE_VORBIS extern int vorbis_file_new(audio_file **, const char *, gboolean); #endif int audio_file_new(audio_file **f, const char *filename, gboolean editable) { #ifdef ENABLE_MP3 if (fnmatch("*.[mM][pP][aA23]", filename, FNM_NOESCAPE) == 0) return mpeg_file_new(f, filename, editable); #endif #ifdef ENABLE_VORBIS if (fnmatch("*.[oO][gG][gG]", filename, FNM_NOESCAPE) == 0) return vorbis_file_new(f, filename, editable); #endif return AF_ERR_FORMAT; } const gchar *audio_file_get_name(audio_file *f) { return f->name; } const gchar *audio_file_get_extension(audio_file *f) { char *p; p = strrchr(f->name, '.'); if (p == NULL || strlen(p) > 5) return ""; else return p; } gboolean audio_file_is_editable(audio_file *f) { return f->editable; } gboolean audio_file_has_changes(audio_file *f) { return f->changed; } /* * The remaining functions just delegate to the implementation functions * registered in the audio_file struct. */ void audio_file_delete(audio_file *f) { f->delete(f); } const gchar *audio_file_get_desc(audio_file *f) { return f->get_desc(f); } const gchar *audio_file_get_info(audio_file *f) { return f->get_info(f); } gboolean audio_file_has_tag(audio_file *f) { return f->has_tag(f); } void audio_file_create_tag(audio_file *f) { f->create_tag(f); } void audio_file_remove_tag(audio_file *f) { f->remove_tag(f); } int audio_file_write_changes(audio_file *f) { return f->write_changes(f); } int audio_file_set_field(audio_file *f, int field, const char *value) { return f->set_field(f, field, value); } int audio_file_get_field(audio_file *f, int field, const char **value) { return f->get_field(f, field, value); } void audio_file_dump(audio_file *f) { f->dump(f); } void audio_file_edit_load(audio_file *f) { f->edit_load(f); } void audio_file_edit_unload(audio_file *f) { f->edit_unload(f); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/audio_file.h���������������������������������������������������������������������0000644�0001750�0001750�00000012025�10541302762�015642� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef AUDIO_FILE_H #define AUDIO_FILE_H #include <stdio.h> /*** private stuff ******************************************************/ /* file types */ #define AF_MPEG 0 #define AF_VORBIS 1 typedef void (*af_delete_func) (void*); typedef const gchar * (*af_get_desc_func) (void*); typedef const gchar * (*af_get_info_func) (void*); typedef gboolean (*af_has_tag_func) (void*); typedef void (*af_create_tag_func) (void*); typedef void (*af_remove_tag_func) (void*); typedef int (*af_write_changes_func) (void*); typedef int (*af_set_field_func) (void*, int, const char*); typedef int (*af_get_field_func) (void*, int, const char**); typedef void (*af_dump_func) (void*); typedef void (*af_edit_load_func) (void*); typedef void (*af_edit_unload_func) (); typedef struct { guint8 type; FILE *file; char *name; gboolean editable; gboolean changed; af_delete_func delete; af_get_desc_func get_desc; af_get_info_func get_info; af_has_tag_func has_tag; af_create_tag_func create_tag; af_remove_tag_func remove_tag; af_write_changes_func write_changes; af_set_field_func set_field; af_get_field_func get_field; af_dump_func dump; af_edit_load_func edit_load; af_edit_unload_func edit_unload; } audio_file; /*** public stuff ******************************************************/ /* tag fields */ #define AF_TITLE 0 #define AF_ARTIST 1 #define AF_ALBUM 2 #define AF_YEAR 3 #define AF_GENRE 4 #define AF_COMMENT 5 #define AF_TRACK 6 /* return codes */ #define AF_OK 0 #define AF_ERR_FILE 1 #define AF_ERR_FORMAT 2 #define AF_ERR_READONLY 3 #define AF_ERR_NO_TAG 4 #define AF_ERR_NO_FIELD 5 /* * Creates an audio_file. * * <f> Adress of the pointer that will hold the new audio_file * <filename> Name of the file to open * <writable> TRUE to open the file for writing, FALSE to open read-only. * * return AF_OK on success * AF_ERR_FORMAT if file is not a recognized audio format * AF_ERR_FILE if there was a filesystem error (errno will be set) */ int audio_file_new(audio_file **f, const char *filename, gboolean editable); /* * Frees an audio_file and associated data. */ void audio_file_delete(audio_file *f); /* * Returns the file name. * Return value points to an internal string and must not be modified. */ const gchar *audio_file_get_name(audio_file *f); /* * Returns the file name extension of this file (incl. dot), e.g. ".mp3" * Return value points to an internal string and must not be modified. */ const gchar *audio_file_get_extension(audio_file *f); /* * Returns TRUE if the file was opened for editing, FALSE if it is read-only. */ gboolean audio_file_is_editable(audio_file *f); /* * Gets a string description of the file type, e.g. "MPEG Version 1, Layer 3" * * return String description. Points to an internal buffer valid * until the next call. */ const gchar *audio_file_get_desc(audio_file *f); /* * Gets a strings with a list of properties. The property names and values * alternate, each on its own line, e.g. "NAME1\nVALUE1\nNAME2\nNAME2" * * return String. Points to an internal buffer valid until the * next call. */ const gchar *audio_file_get_info(audio_file *f); /* * Returns TRUE if file has a tag. */ gboolean audio_file_has_tag(audio_file *f); /* * Returns TRUE if tag has changes that need to be saved. */ gboolean audio_file_has_changes(audio_file *f); /* * Creates the tag if it did not already exist. Nothing is written to file * until audio_file_write_changes() is called. */ void audio_file_create_tag(audio_file *f); /* * Removes the tag. Nothing is written to file until audio_file_write_changes() * is called. */ void audio_file_remove_tag(audio_file *f); /* * Writes tag changes to file. * * return AF_OK on success * AF_ERR_READONLY if file was opened for reading * AF_ERR_FILE if there was a filesystem error (errno will be set) */ int audio_file_write_changes(audio_file *f); /* * Sets the value of a tag field. Nothing is written to file until * audio_file_write_changes() is called. * * <field> Tag field to set * <value> New value (will be copied) * * return AF_OK on success * AF_ERR_NO_TAG if file has no tag * AF_ERR_NO_FIELD if <field> is invalid */ int audio_file_set_field(audio_file *f, int field, const char *value); /* * Gets the value of a tag field. The pointer stored in <value> will point * to internal data and must not be modified. * * <field> Tag field to get * <value> Adress of a pointer that will hold the adress of the data. * Valid only until the field is modified or audio_file_get_field() * is called again. * * return AF_OK on success * AF_ERR_NO_TAG if file has no tag * AF_ERR_NO_FIELD if <field> is invalid */ int audio_file_get_field(audio_file *f, int field, const char **value); /* * Dumps all available information on an audio_file to stdout */ void audio_file_dump(audio_file *f); /* * Loads a file to be edited in the "Edit Tag" tab. */ void audio_file_edit_load(audio_file *f); /* * Unloads the file being edited in the "Edit Tag" tab. */ void audio_file_edit_unload(audio_file *f); #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/char_conv_dlg.c������������������������������������������������������������������0000644�0001750�0001750�00000015544�10541302762�016336� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <gtk/gtk.h> #include <glade/glade.h> #include "gtk_util.h" #include "prefs.h" #include "char_conv_dlg.h" /* options */ static gboolean* tag_space_conv; static char* tag_space_conv_chars; static int* tag_case_conv; static gboolean* rename_space_conv; static char* rename_space_conv_chars; static gboolean* rename_invalid_conv; static char* rename_invalid_conv_chars; static int* rename_case_conv; /* widgets */ static GtkWindow *dlg_char_conv = NULL; static GtkNotebook *nb_char_conv = NULL; static GtkRadioButton *rb_t_conv_space_none = NULL; static GtkRadioButton *rb_t_conv_space_from = NULL; static GtkEntry *ent_t_conv_chars = NULL; static GtkComboBox *combo_t_case = NULL; static GtkRadioButton *rb_r_conv_space_none = NULL; static GtkRadioButton *rb_r_conv_space_to = NULL; static GtkRadioButton *rb_r_invalid_omit = NULL; static GtkRadioButton *rb_r_invalid_convert = NULL; static GtkEntry *ent_r_conv_chars = NULL; static GtkEntry *ent_r_invalid_chars = NULL; static GtkComboBox *combo_r_case = NULL; /*** private functions ******************************************************/ /* sets the interface state according to the preferences */ static void from_prefs() { /* tag tab */ if (*tag_space_conv) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_t_conv_space_from), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(ent_t_conv_chars), TRUE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_t_conv_space_none), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(ent_t_conv_chars), FALSE); } gtk_entry_set_text(ent_t_conv_chars, tag_space_conv_chars); gtk_combo_box_set_active(combo_t_case, *tag_case_conv); /* rename tab */ if (*rename_space_conv) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_r_conv_space_to), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(ent_r_conv_chars), TRUE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_r_conv_space_none), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(ent_r_conv_chars), FALSE); } gtk_entry_set_text(ent_r_conv_chars, rename_space_conv_chars); if (*rename_invalid_conv) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_r_invalid_convert), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(ent_r_invalid_chars), TRUE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_r_invalid_omit), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(ent_r_invalid_chars), FALSE); } gtk_entry_set_text(ent_r_invalid_chars, rename_invalid_conv_chars); gtk_combo_box_set_active(combo_r_case, *rename_case_conv); } /* sets the preferences according to the curent interface state */ static void to_prefs() { /* tag tab */ *tag_space_conv = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_t_conv_space_from)); tag_space_conv_chars = pref_set("chconv:tag_space_conv_chars", PREF_STRING, (void*)gtk_entry_get_text(ent_t_conv_chars)); *tag_case_conv = gtk_combo_box_get_active(combo_t_case); /* rename tab */ *rename_space_conv = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_r_conv_space_to)); rename_space_conv_chars = pref_set("chconv:rename_space_conv_chars", PREF_STRING, (void*)gtk_entry_get_text(ent_r_conv_chars)); *rename_invalid_conv = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_r_invalid_convert)); rename_invalid_conv_chars = pref_set("chconv:rename_invalid_conv_chars", PREF_STRING, (void*)gtk_entry_get_text(ent_r_invalid_chars)); *rename_case_conv = gtk_combo_box_get_active(combo_r_case); } /* UI callbacks */ void cb_t_conv_space_none_toggled(GtkToggleButton *button, gpointer user_data) { gtk_widget_set_sensitive(GTK_WIDGET(ent_t_conv_chars), !gtk_toggle_button_get_active(button)); } void cb_r_conv_space_none_toggled(GtkToggleButton *button, gpointer user_data) { gtk_widget_set_sensitive(GTK_WIDGET(ent_r_conv_chars), !gtk_toggle_button_get_active(button)); } void cb_r_invalid_omit_toggled(GtkToggleButton *button, gpointer user_data) { gtk_widget_set_sensitive(GTK_WIDGET(ent_r_invalid_chars), !gtk_toggle_button_get_active(button)); } void cb_chconv_save(GtkButton *button, gpointer user_data) { to_prefs(); } /*** public functions *******************************************************/ chconv_tag_options chconv_get_tag_options() { chconv_tag_options opt; opt.space_conv = (*tag_space_conv ? tag_space_conv_chars : NULL); opt.case_conv = *tag_case_conv; return opt; } chconv_rename_options chconv_get_rename_options() { chconv_rename_options opt; opt.space_conv = (*rename_space_conv ? rename_space_conv_chars : NULL); opt.invalid_conv = (*rename_invalid_conv ? rename_invalid_conv_chars : NULL); opt.case_conv = *rename_case_conv; return opt; } void chconv_display(int tab) { from_prefs(); gtk_window_present(dlg_char_conv); gtk_notebook_set_page(nb_char_conv, tab); } void chconv_init(GladeXML *xml) { int nocaseconv = 0; gboolean true = TRUE; gboolean false = FALSE; /* * get the widgets from glade */ dlg_char_conv = GTK_WINDOW(glade_xml_get_widget(xml, "dlg_char_conv")); nb_char_conv = GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_char_conv")); rb_t_conv_space_none = GTK_RADIO_BUTTON(glade_xml_get_widget(xml, "rb_t_conv_space_none")); rb_t_conv_space_from = GTK_RADIO_BUTTON(glade_xml_get_widget(xml, "rb_t_conv_space_from")); ent_t_conv_chars = GTK_ENTRY(glade_xml_get_widget(xml, "ent_t_conv_chars")); combo_t_case = GTK_COMBO_BOX(glade_xml_get_widget(xml, "combo_t_case")); rb_r_conv_space_none = GTK_RADIO_BUTTON(glade_xml_get_widget(xml, "rb_r_conv_space_none")); rb_r_conv_space_to = GTK_RADIO_BUTTON(glade_xml_get_widget(xml, "rb_r_conv_space_to")); rb_r_invalid_omit = GTK_RADIO_BUTTON(glade_xml_get_widget(xml, "rb_r_invalid_omit")); rb_r_invalid_convert = GTK_RADIO_BUTTON(glade_xml_get_widget(xml, "rb_r_invalid_convert")); ent_r_conv_chars = GTK_ENTRY(glade_xml_get_widget(xml, "ent_r_conv_chars")); ent_r_invalid_chars = GTK_ENTRY(glade_xml_get_widget(xml, "ent_r_invalid_chars")); combo_r_case = GTK_COMBO_BOX(glade_xml_get_widget(xml, "combo_r_case")); gtk_window_set_transient_for(dlg_char_conv, GTK_WINDOW(glade_xml_get_widget(xml, "w_main"))); /* * get the preference values, or set them to defaults */ tag_space_conv = pref_get_or_set("chconv:tag_space_conv", PREF_BOOLEAN, &false); tag_space_conv_chars = pref_get_or_set("chconv:tag_space_conv_chars", PREF_STRING, "_"); tag_case_conv = pref_get_or_set("chconv:tag_case_conv", PREF_INT, &nocaseconv); rename_space_conv = pref_get_or_set("chconv:rename_space_conv", PREF_BOOLEAN, &false); rename_space_conv_chars = pref_get_or_set("chconv:rename_space_conv_chars", PREF_STRING, "_"); rename_invalid_conv = pref_get_or_set("chconv:rename_invalid_conv", PREF_BOOLEAN, &true); rename_invalid_conv_chars = pref_get_or_set("chconv:rename_invalid_conv_chars", PREF_STRING, "-"); rename_case_conv = pref_get_or_set("chconv:rename_case_conv", PREF_INT, &nocaseconv); /* * synchronize the interface state */ from_prefs(); } ������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/char_conv_dlg.h������������������������������������������������������������������0000644�0001750�0001750�00000001002�10541302762�016323� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef CHAR_CONV_DLG_H #define CHAR_CONV_DLG_H enum { CHCONV_TAG = 0, CHCONV_RENAME = 1 }; typedef struct { char* space_conv; // NULL == no conversion int case_conv; } chconv_tag_options; typedef struct { char* space_conv; // NULL == no conversion char* invalid_conv; // NULL == omit int case_conv; } chconv_rename_options; chconv_tag_options chconv_get_tag_options(); chconv_rename_options chconv_get_rename_options(); void chconv_display(int tab); void chconv_init(GladeXML *xml); #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/message_box.c��������������������������������������������������������������������0000644�0001750�0001750�00000002126�10541302762�016032� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <stdarg.h> #include <gtk/gtk.h> int message_box(GtkWindow *transientfor, char *title, char* text, int defbutton, ...) { va_list ap; GtkDialog *dlg; GtkWidget *label; char *button_label; int i; int result; /* create the dialog */ dlg = GTK_DIALOG(gtk_dialog_new()); gtk_window_set_title(GTK_WINDOW(dlg), title); gtk_window_set_modal(GTK_WINDOW(dlg), TRUE); if (transientfor != NULL) gtk_window_set_transient_for(GTK_WINDOW(dlg), transientfor); label = gtk_label_new(text); gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT); gtk_misc_set_padding(GTK_MISC(label), 25, 25); gtk_container_add(GTK_CONTAINER(dlg->vbox), label); /* add the buttons */ va_start(ap, defbutton); i = 0; while ( (button_label = va_arg(ap, char *)) ) { gtk_dialog_add_button(dlg, button_label, i); i++; } va_end(ap); gtk_dialog_set_default_response(dlg, defbutton); /* show the dialog and wait for it to finish */ gtk_widget_show_all(GTK_WIDGET(dlg)); result = gtk_dialog_run(dlg); /* cleanup and return the button pressed */ gtk_widget_destroy(GTK_WIDGET(dlg)); return result; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/message_box.h��������������������������������������������������������������������0000644�0001750�0001750�00000001412�10541302762�016034� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef MESSAGE_BOX_H #define MESSAGE_BOX_H /* * Creates a modal message box and waits for the user to close it. * Returns an integer indicating which button was clicked. * NOTE: Only one message_box can be visible at any given time. * * <transient> If not NULL, the dialog is made transient for this window. * <title> Dialog title. * <text> Dialog message text. * <defbutton> Default button (or < 0 for none). * <...> Variable number of arguments of type char* with the button labels * or stock button IDs. Last argument must be NULL. * * return The index of the button that was clicked, or < 0 if the dialog * was closed by other means. */ int message_box( GtkWindow *transientfor, char *title, char* text, int defbutton, ... ); #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/cursor.c�������������������������������������������������������������������������0000644�0001750�0001750�00000001256�10541302762�015056� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <gtk/gtk.h> #include <glade/glade.h> #include "cursor.h" static GtkWidget *w_main = NULL; static void set_cursor(GtkWidget *widget, GdkCursor *cursor) { gdk_window_set_cursor(widget->window, cursor); /* process events or we won't see the change */ while (gtk_events_pending()) gtk_main_iteration(); } void cursor_init(GladeXML *xml) { w_main = GTK_WIDGET(glade_xml_get_widget(xml, "w_main")); } void cursor_set_wait() { static GdkCursor *cur = NULL; if (!cur) cur = gdk_cursor_new(GDK_WATCH); set_cursor(w_main, cur); } void cursor_set_normal() { static GdkCursor *cur = NULL; if (!cur) cur = gdk_cursor_new(GDK_LEFT_PTR); set_cursor(w_main, cur); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/cursor.h�������������������������������������������������������������������������0000644�0001750�0001750�00000000203�10541302762�015052� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef CURSOR_H #define CURSOR_H void cursor_init(GladeXML *xml); void cursor_set_wait(); void cursor_set_normal(); #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/gtk_util.c�����������������������������������������������������������������������0000644�0001750�0001750�00000003470�10541302762�015363� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <gtk/gtk.h> #include "gtk_util.h" static void cb_enforce_max_chars(GtkEditable *editable, gchar *insert_text, gint insert_text_len, gint *insert_pos, gpointer data) { /* The maximum number of charaters is passed in the signal's user data */ guint max_len = (guint)data; gchar *text = gtk_editable_get_chars(editable, 0, -1); if (g_utf8_strlen(text, -1) > max_len) gtk_editable_delete_text(editable, max_len, -1); g_free(text); } /*** public finctions *******************************************************/ gboolean gtk_tree_view_get_first_selected(GtkTreeView *tree, GtkTreeModel **model, GtkTreeIter *iter) { GtkTreeSelection *loc_selection; GtkTreeModel *loc_model; loc_selection = gtk_tree_view_get_selection(tree); loc_model = gtk_tree_view_get_model(tree); if (model) *model = loc_model; if (!iter) return gtk_tree_selection_count_selected_rows(loc_selection) > 0; if (gtk_tree_selection_get_mode(loc_selection) == GTK_SELECTION_MULTIPLE) { GList *selected_rows; gboolean result; selected_rows = gtk_tree_selection_get_selected_rows(loc_selection, NULL); result = gtk_tree_model_get_iter(loc_model, iter, selected_rows->data); g_list_foreach(selected_rows, (GFunc)gtk_tree_path_free, NULL); g_list_free(selected_rows); return result; } else { return gtk_tree_selection_get_selected(loc_selection, NULL, iter); } } void gtk_editable_set_max_chars(GtkEditable *editable, guint max_chars) { if (max_chars > 0) { gtk_signal_connect_after(GTK_OBJECT(editable), "insert_text", GTK_SIGNAL_FUNC(cb_enforce_max_chars), (gpointer)max_chars); } else { gulong id = g_signal_handler_find(GTK_OBJECT(editable), G_SIGNAL_MATCH_FUNC, 0, 0, 0, GTK_SIGNAL_FUNC(cb_enforce_max_chars), 0); if (id > 0) g_signal_handler_disconnect(GTK_OBJECT(editable), id); } } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/gtk_util.h�����������������������������������������������������������������������0000644�0001750�0001750�00000001411�10541302762�015361� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef GTK_UTIL_H #define GTK_UTIL_H /* * Sets <iter> to the currently selected row. If there is more than one * row selected returns the first one. * * <tree> The tree view * <model> (output) If not NULL, is set to the tree view's model. * <iter> (output) If not NULL, is set to the first selected row. * * return TRUE if there is a selected row, FALSE otherwise. */ gboolean gtk_tree_view_get_first_selected( GtkTreeView *tree, GtkTreeModel **model, GtkTreeIter *iter ); /* * Sets the maximum number of characters the GtkEditable will accept. * * <editable> A GtkEditable widget. * <max_chars> Maximum number of characters. 0 means no limit. */ void gtk_editable_set_max_chars( GtkEditable *editable, guint max_chars ); #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/glib_util.c����������������������������������������������������������������������0000644�0001750�0001750�00000000660�10541302762�015511� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <stdlib.h> #include "glib_util.h" static void table_free_entry(gpointer key, gpointer value, gpointer data) { int flags = (int)data; if (flags & 1) free(key); if (flags & 2) free(value); } void g_hash_table_free(GHashTable *hash_table, gboolean free_keys, gboolean free_values) { g_hash_table_foreach(hash_table, table_free_entry, (gpointer)(free_keys | free_values<<1)); g_hash_table_destroy(hash_table); } ��������������������������������������������������������������������������������tagtool-0.12.3/src/glib_util.h����������������������������������������������������������������������0000644�0001750�0001750�00000000415�10541302762�015514� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef GLIB_UTIL_H #define GLIB_UTIL_H #include <glib.h> /* * Same as g_hash_table_destroy, but offers the option to automatically * free the keys and values. */ void g_hash_table_free(GHashTable *hash_table, gboolean free_keys, gboolean free_values); #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/str_util.c�����������������������������������������������������������������������0000644�0001750�0001750�00000011444�10541302761�015405� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <stdio.h> #include <stdlib.h> #include <string.h> #include <glib.h> #include "str_util.h" #include "math_util.h" /*** private functions ******************************************************/ static char *convert_sentence_case(const char *str) { int result_size = strlen(str) + 12; char *result = malloc(result_size); const char *r = str; char *w = result; while (*r) { int len; gunichar c = g_utf8_get_char(r); /* ensure there is room for at least 1 more character */ if (w - result + 7 > result_size) { int offset = w - result; result_size += max(6, 0.5 * result_size); result = realloc(result, result_size); w = result + offset; } if (r == str) len = g_unichar_to_utf8(g_unichar_toupper(c), w); else len = g_unichar_to_utf8(g_unichar_tolower(c), w); w += len; r = g_utf8_next_char(r); } *w = 0; return result; } static char *convert_title_case(const char *str) { int result_size = strlen(str) + 12; char *result = malloc(result_size); const char *r = str; char *w = result; gboolean upcase_next = TRUE; while (*r) { int len; gunichar c = g_utf8_get_char(r); /* ensure there is room for at least 1 more character */ if (w - result + 7 > result_size) { int offset = w - result; result_size += max(6, 0.5 * result_size); result = realloc(result, result_size); w = result + offset; } if (upcase_next) len = g_unichar_to_utf8(g_unichar_toupper(c), w); else len = g_unichar_to_utf8(g_unichar_tolower(c), w); w += len; upcase_next = !g_unichar_isalnum(c) && c != '\''; r = g_utf8_next_char(r); } *w = 0; return result; } /*** public functions *******************************************************/ char *str_convert_case(const char *str, int conv) { switch (conv) { case CASE_CONV_NONE: { return strdup(str); } case CASE_CONV_LOWER: { return g_utf8_strdown(str, -1); } case CASE_CONV_UPPER: { return g_utf8_strup(str, -1); } case CASE_CONV_SENTENCE: { return convert_sentence_case(str); } case CASE_CONV_TITLE: { return convert_title_case(str); } default: { fprintf(stderr, "str_convert_case: unrecognized convertion type (%i)\n", conv); return NULL; } } } char *str_replace_char(const char *str, gunichar orig, gunichar repl) { int result_size = strlen(str) + 6; char *result = malloc(result_size); const char *r = str; char *w = result; while (*r) { int len; gunichar c = g_utf8_get_char(r); /* ensure there is room for at least 1 more character */ if (w - result + 7 > result_size) { int offset = w - result; result_size += max(6, 0.5 * result_size); result = realloc(result, result_size); w = result + offset; } if (c == orig) len = g_unichar_to_utf8(repl, w); else len = g_unichar_to_utf8(c, w); w += len; r = g_utf8_next_char(r); } *w = 0; return result; } char *str_remove_char(const char *str, gunichar rem) { char *result = malloc(strlen(str) + 1); const char *r = str; char *w = result; while (*r) { gunichar c = g_utf8_get_char(r); if (c != rem) { int len = g_unichar_to_utf8(c, w); w += len; } r = g_utf8_next_char(r); } *w = 0; return result; } void str_rtrim(char *str) { int len = strlen(str); char *last = str + len; char *curr = last - 1; if (len == 0) return; while (*curr == ' ' || *curr == '\t' || *curr == '\r' || *curr == '\n') { last = curr; curr = g_utf8_find_prev_char(str, curr); if (curr == NULL) break; } *last = 0; } void str_ltrim(char *str) { char *pos = str; while (*pos && (*pos == ' ' || *pos == '\t' || *pos == '\r' || *pos == '\n')) { pos = g_utf8_find_next_char(pos, NULL); } if (pos != str) { size_t size = strlen(str) - (pos-str) + 1; memmove(str, pos, size); } } void str_trim(char *str) { str_rtrim(str); str_ltrim(str); } char *str_strnchr(const char *s, char c, int n) { int p = (int)s; int count = 0; while (*(char *)p) { if (*(char *)p == c) if (++count == n) return (char *)p; p++; } return NULL; } char *str_strnrchr(const char *s, char c, int n) { int p = (int)s + strlen(s); int count = 0; while (p >= (int)s) { if (*(char *)p == c) if (++count == n) return (char *)p; p--; } return NULL; } char *str_safe_strncpy(char *dest, const char *src, size_t n) { char *end; if (n <= 0) return NULL; strncpy(dest, src, n); dest[n-1] = 0; /* may have left an incomplete multibyte character at the end */ if (!g_utf8_validate(dest, -1, (const char **)&end)) *end = 0; return dest; } void str_ascii_tolower(char *str) { char *p; for (p = str; *p ; p++) *p = g_ascii_tolower(*p); } void str_ascii_toupper(char *str) { char *p; for (p = str; *p ; p++) *p = g_ascii_toupper(*p); } void str_ascii_replace_char(char *str, char orig, char repl) { char *p; for (p = str; *p; p++) if (*p == orig) *p = repl; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/str_util.h�����������������������������������������������������������������������0000644�0001750�0001750�00000004404�10541302761�015410� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef STR_UTIL_H #define STR_UTIL_H /* * IMPORTANT NOTES: * * All functions manipulate UTF-8 strings, unless otherwise noted. * * All input and output strings are 0 terminated. * * All input strings are assumed to be valid. If the source of the string * is suspect it should be validated first with g_utf8_validate(). */ /* types of case conversion for str_convert_case() */ enum { CASE_CONV_NONE = 0, CASE_CONV_LOWER = 1, CASE_CONV_UPPER = 2, CASE_CONV_SENTENCE = 3, CASE_CONV_TITLE = 4 }; /* * Converts a string to the requested case. * The result is returned in a newly allocated string. */ char *str_convert_case(const char *str, int conv); /* * Replaces all occurrences of the character <orig> with <repl> * The result is returned in a newly allocated string. */ char *str_replace_char(const char *str, gunichar orig, gunichar repl); /* * Removes all occurrences of character <rem> from <str>. * The result is returned in a newly allocated string. */ char *str_remove_char(const char *str, gunichar rem); /* * Trims trailing whitespace characters from string <str> */ void str_rtrim(char *str); /* * Trims leading whitespace characters from string <str> */ void str_ltrim(char *str); /* * Trims leading and trailing whitespace characters from string <str> */ void str_trim(char *str); /* * Returns a pointer to the <n>th occurrence of <c> in <s>, counting from * the beginning. * Similar to strchr(3) */ char *str_strnchr(const char *s, char c, int n); /* * Returns a pointer to the <n>th occurrence of <c> in <s>, counting from * the end. * Similar to strrchr(3) */ char *str_strnrchr(const char *s, char c, int n); /* * Safe version of strncpy, string is always NULL terminated. */ char *str_safe_strncpy(char *dest, const char *src, size_t n); /* * Converts a pure ASCII string (characters 0x00 to 0x7f) to lower case. * Conversion is done in-place. */ void str_ascii_tolower(char *str); /* * Converts a pure ASCII string (characters 0x00 to 0x7f) to upper case. * Conversion is done in-place. */ void str_ascii_toupper(char *str); /* * Replaces all occurrences of the ASCII character <orig> with <repl>. * Replacement is done in-place. */ void str_ascii_replace_char(char *str, char orig, char repl); #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/str_convert.c��������������������������������������������������������������������0000644�0001750�0001750�00000012430�10541302762�016105� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <stdio.h> #include <stdlib.h> #include <string.h> #include <langinfo.h> #include <errno.h> #include <math.h> #include <glib.h> #include "str_convert.h" #include "math_util.h" /*** private functions ******************************************************/ static const char *encoding_name(int enc) { static char *names[] = { "UTF-8", "UTF-16", "UTF-16BE", "UTF-16LE", "ISO-8859-1" }; if (enc == LOCALE) return nl_langinfo(CODESET); else return names[enc]; } /* * Returns the (minimum) number of bytes per character in this encoding. * This is necessary to find the end of zero-terminated strings (e.g. an * UTF-8 string ends on a single zero byte, an UTF-16 string ends on 2 zero * bytes, etc.) * * XXX - Don't know a generic way to determine bytes per character for all * encodings. For now multibyte encodings other than UTF will be wrong. */ static int bytes_per_char(int enc) { if (strncasecmp(encoding_name(enc), "UTF-16", 6) == 0) return 2; else if (strncasecmp(encoding_name(enc), "UTF-32", 6) == 0) return 4; else return 1; } /* * Determines the size in bytes of a zero-terminated string, given the encoding. * Size includes any markers (Unicode BOM, terminating zero byte(s), etc.) * * XXX - Result will be wrong in those cases where bytes_per_char() is wrong. */ static size_t strsize(int enc, const void *str) { const void *p = str; int bpc = bytes_per_char(enc); if (bpc != 1 && bpc != 2 && bpc != 4) { fprintf(stderr, "strsize: can't handle %i bytes per char\n", bpc); return 0; } while(1) { if ( (bpc == 1 && *(guint8 *)p == 0) || (bpc == 2 && *(guint16*)p == 0) || (bpc == 4 && *(guint32*)p == 0) ) break; p += bpc; } return p - str + bpc; } /*** public functions *******************************************************/ char *str_convert_encoding(int from, int to, const char *str) { /* * And here it should just be a matter of calling glib's g_convert(). * Or so I thought. Alas, they chickened out of the hard part: how to * figure out the size of a zero-terminaded string in any arbitrary * encoding. * Since there is no advantage in using g_convert(), might as well * keep my old implementation. It's worth using their iconv wrapppers * though, because they provide libiconv in systems that don't have it * natively. */ GIConv conv; char *result; char *inbuf, *outbuf; size_t inbpc, outbpc; size_t inbytes, outbytes; size_t inbytesleft, outbytesleft; size_t res; inbytes = strsize(from, str); if (strcasecmp(encoding_name(to), encoding_name(from)) == 0) { result = malloc(inbytes); memcpy(result, str, inbytes); return result; } conv = g_iconv_open(encoding_name(to), encoding_name(from)); if (conv == (GIConv)-1) { fprintf(stderr, "convert_encoding: cannot convert from %s to %s\n", encoding_name(from), encoding_name(to)); return NULL; } inbpc = bytes_per_char(from); outbpc = bytes_per_char(to); /* estimate the converted size */ outbytes = ((double)outbpc / (double)inbpc) * inbytes; /* optimize common cases (tuned for western european languages) */ if (to == UTF_8 && inbpc == 1) outbytes = ceil(1.25 * inbytes); else if (to == UTF_16) outbytes += 2; /* for the BOM */ //printf("inbytes : %i\noutbytes: %i\n", inbytes, outbytes); result = malloc(outbytes); inbuf = (char*)str; inbytesleft = inbytes; outbuf = result; outbytesleft = outbytes; while(1) { res = g_iconv(conv, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (res == (size_t)-1) { if (errno == E2BIG) { /* Ran out of space, alloc more This code tries hard to avoid the need for a second realloc, while still keeping over-allocation to a minimum */ double done = 1.0 - (double)inbytesleft / (double)inbytes; size_t bytes_written = outbuf - result; size_t newsize = ceil((bytes_written / done) * 1.1); //printf("growing: done=%g%%, old size=%i, new size=%i\n", // 100.0*done, outbytes, newsize); outbytesleft += newsize - outbytes; outbytes = newsize; result = realloc(result, outbytes); outbuf = result + bytes_written; continue; } else { /* Invalid or inconvertible char, skip it Seems better than aborting the conversion... */ fprintf(stderr, "convert_encoding: conversion error at offset %i\n", inbytes-inbytesleft); inbuf += inbpc; inbytesleft = max(inbytesleft - inbpc, 0); outbuf += outbpc; outbytesleft = max(outbytesleft - outbpc, 0); continue; } } break; } //printf("%i of %i bytes unused (wasted %g%%)\n", // outbytesleft, outbytes, 100.0*(double)outbytesleft/(double)outbytes); g_iconv_close(conv); return result; } char *str_filename_to_utf8(const char *str, const char *onerror) { char *result; result = g_filename_to_utf8(str, -1, NULL, NULL, NULL); if (result == NULL) { g_warning("File name could not be converted to UTF8: %s", str); if (onerror != NULL) result = strdup(onerror); else result = NULL; } return result; } char *str_filename_from_utf8(const char *str, const char *onerror) { char *result; result = g_filename_from_utf8(str, -1, NULL, NULL, NULL); if (result == NULL) { g_warning("File name could not be converted from UTF8: %s", str); if (onerror != NULL) result = strdup(onerror); else result = NULL; } return result; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/str_convert.h��������������������������������������������������������������������0000644�0001750�0001750�00000002054�10541302762�016113� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef STR_CONVERT_H #define STR_CONVERT_H /* text encodings */ enum { LOCALE = -1, // whatever the locale default is UTF_8 = 0, // UTF-8 UTF_16 = 1, // UTF-16 with BOM UTF_16BE = 2, // UTF-16 big-endian, without BOM UTF_16LE = 3, // UTF-16 little-endian, without BOM ISO_8859_1 = 4 // ISO-8859-1, aka LATIN1 }; /* * Convert a string from one encoding to another * Returns a newly allocated string or NULL on failure */ char *str_convert_encoding(int from, int to, const char *str); /* * Simplified wrapper to g_filename_to_utf8(). * If there is a conversion error, <onerror> is returned instead of the * converted file name. * The return value must be freed by the caller. */ char *str_filename_to_utf8(const char *str, const char *onerror); /* * Simplified wrapper to g_filename_from_utf8(). * If there is a conversion error, <onerror> is returned instead of the * converted file name. * The return value must be freed by the caller. */ char *str_filename_from_utf8(const char *str, const char *onerror); #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/about.c��������������������������������������������������������������������������0000644�0001750�0001750�00000003432�10541302762�014651� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <stdio.h> #include <string.h> #include <gtk/gtk.h> #include <glade/glade.h> #include "about.h" /* private data */ static GtkWindow *dlg_about = NULL; static GtkWindow *dlg_credits = NULL; /* UI callbacks */ void cb_about_credits(GtkButton *button, gpointer user_data) { gtk_widget_show(GTK_WIDGET(dlg_credits)); } void cb_about_close(GtkButton *button, gpointer user_data) { gtk_widget_hide(GTK_WIDGET(dlg_credits)); gtk_widget_hide(GTK_WIDGET(dlg_about)); } /* public functions */ void about_display() { gtk_widget_show(GTK_WIDGET(dlg_about)); } void about_init(GladeXML *xml) { GtkWindow *w_main = NULL; GtkLabel *lab_about_version = NULL; GtkLabel *lab_about_supported = NULL; GtkImage *img_about = NULL; char buffer[100]; dlg_about = GTK_WINDOW(glade_xml_get_widget(xml, "dlg_about")); dlg_credits = GTK_WINDOW(glade_xml_get_widget(xml, "dlg_credits")); w_main = GTK_WINDOW(glade_xml_get_widget(xml, "w_main")); lab_about_version = GTK_LABEL(glade_xml_get_widget(xml, "lab_about_version")); lab_about_supported = GTK_LABEL(glade_xml_get_widget(xml, "lab_about_supported")); img_about = GTK_IMAGE(glade_xml_get_widget(xml, "img_about")); gtk_window_set_transient_for(dlg_about, w_main); gtk_window_set_transient_for(dlg_credits, dlg_about); /* set the icon */ gtk_image_set_from_file(img_about, DATADIR"/TagTool.png"); /* set the title */ snprintf(buffer, sizeof(buffer), gtk_label_get_label(lab_about_version), PACKAGE_VERSION); gtk_label_set_markup(lab_about_version, buffer); /* set the supported audio formats */ buffer[0] = 0; #ifdef ENABLE_MP3 strcat(buffer, "MPEG"); #endif if (buffer[0] != 0) strcat(buffer, ", "); #ifdef ENABLE_VORBIS strcat(buffer, "Ogg Vorbis"); #endif gtk_label_set_text(lab_about_supported, buffer); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/about.h��������������������������������������������������������������������������0000644�0001750�0001750�00000000142�10541302762�014651� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef ABOUT_H #define ABOUT_H void about_init(GladeXML *xml); void about_display(); #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/prefs_dlg.c����������������������������������������������������������������������0000644�0001750�0001750�00000006140�10541302762�015503� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <gtk/gtk.h> #include <glade/glade.h> #include "gtk_util.h" #include "prefs.h" #include "prefs_dlg.h" /* options */ static int *write_id3_version; static gboolean *preserve_existing; /* widgets */ static GtkWindow *dlg_prefs = NULL; static GtkRadioButton *rb_ver_v1 = NULL; static GtkRadioButton *rb_ver_v2 = NULL; static GtkRadioButton *rb_ver_both = NULL; static GtkRadioButton *rb_ver_auto = NULL; static GtkCheckButton *cb_ver_preserve = NULL; /*** private functions ******************************************************/ /* sets the interface state according to the preferences */ static void from_prefs() { if (*write_id3_version == WRITE_V1) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_ver_v1), TRUE); else if (*write_id3_version == WRITE_V2) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_ver_v2), TRUE); else if (*write_id3_version == (WRITE_V1 | WRITE_V2)) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_ver_both), TRUE); else if (*write_id3_version == WRITE_AUTO) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_ver_auto), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_ver_preserve), *preserve_existing); } /* sets the preferences according to the curent interface state */ static void to_prefs() { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_ver_v1))) *write_id3_version = WRITE_V1; else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_ver_v2))) *write_id3_version = WRITE_V2; else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_ver_both))) *write_id3_version = WRITE_V1 | WRITE_V2; else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_ver_auto))) *write_id3_version = WRITE_AUTO; *preserve_existing = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cb_ver_preserve)); } /* UI callbacks */ void cb_prefs_save(GtkButton *button, gpointer user_data) { to_prefs(); } /*** public functions *******************************************************/ id3_prefs prefs_get_id3_prefs() { id3_prefs prefs; prefs.write_id3_version = *write_id3_version; prefs.preserve_existing = *preserve_existing; return prefs; } void prefs_display() { from_prefs(); gtk_window_present(dlg_prefs); } void prefs_init(GladeXML *xml) { gboolean true = TRUE; int write_auto = WRITE_AUTO; /* * get the widgets from glade */ dlg_prefs = GTK_WINDOW(glade_xml_get_widget(xml, "dlg_prefs")); rb_ver_v1 = GTK_RADIO_BUTTON(glade_xml_get_widget(xml, "rb_ver_v1")); rb_ver_v2 = GTK_RADIO_BUTTON(glade_xml_get_widget(xml, "rb_ver_v2")); rb_ver_both = GTK_RADIO_BUTTON(glade_xml_get_widget(xml, "rb_ver_both")); rb_ver_auto = GTK_RADIO_BUTTON(glade_xml_get_widget(xml, "rb_ver_auto")); cb_ver_preserve = GTK_CHECK_BUTTON(glade_xml_get_widget(xml, "cb_ver_preserve")); gtk_window_set_transient_for(dlg_prefs, GTK_WINDOW(glade_xml_get_widget(xml, "w_main"))); /* * get the preference values, or set them to defaults */ write_id3_version = pref_get_or_set("pref:write_id3_version", PREF_INT, &write_auto); preserve_existing = pref_get_or_set("pref:preserve_existing", PREF_BOOLEAN, &true); /* * synchronize the interface state */ from_prefs(); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/prefs_dlg.h����������������������������������������������������������������������0000644�0001750�0001750�00000000472�10541302762�015512� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef PREFS_DLG_H #define PREFS_DLG_H #include <glade/glade.h> enum { WRITE_AUTO = 0, WRITE_V1 = 0x1, WRITE_V2 = 0x2, }; typedef struct { int write_id3_version; gboolean preserve_existing; } id3_prefs; id3_prefs prefs_get_id3_prefs(); void prefs_display(); void prefs_init(GladeXML *xml); #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/rename_dlg.c���������������������������������������������������������������������0000644�0001750�0001750�00000002002�10541302761�015623� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <string.h> #include <gtk/gtk.h> #include "rename_dlg.h" /* widgets */ static GtkDialog *dlg_rename_file = NULL; static GtkEntry *ent_file_name = NULL; char *rename_prompt_new_name(const char *old_name) { char *new_name = NULL; int dlg_result; gtk_entry_set_text(ent_file_name, old_name); gtk_editable_select_region(GTK_EDITABLE(ent_file_name), 0, -1); gtk_widget_grab_focus(GTK_WIDGET(ent_file_name)); gtk_window_present(GTK_WINDOW(dlg_rename_file)); dlg_result = gtk_dialog_run(dlg_rename_file); if (dlg_result == GTK_RESPONSE_OK) { new_name = (char *)gtk_entry_get_text(ent_file_name); //printf("1: (%p) %s\n", new_name, new_name); if (strcmp(old_name, new_name) == 0) new_name = NULL; else new_name = g_strdup(new_name); } gtk_widget_hide(GTK_WIDGET(dlg_rename_file)); return new_name; } void rename_init(GladeXML *xml) { dlg_rename_file = GTK_DIALOG(glade_xml_get_widget(xml, "dlg_rename_file")); ent_file_name = GTK_ENTRY(glade_xml_get_widget(xml, "ent_file_name")); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/rename_dlg.h���������������������������������������������������������������������0000644�0001750�0001750�00000000245�10541302761�015637� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef RENAME_DLG_H #define RENAME_DLG_H #include <glade/glade.h> void rename_init(GladeXML *xml); char *rename_prompt_new_name(const char *old_name); #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/status_bar.c���������������������������������������������������������������������0000644�0001750�0001750�00000001501�10541302762�015701� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <stdio.h> #include <stdarg.h> #include <gtk/gtk.h> #include <glade/glade.h> #include "status_bar.h" #define MAX_MSG_SIZE 256 /* widgets */ static GtkStatusbar *statusbar = NULL; /* private data */ static gchar statusbar_msg[MAX_MSG_SIZE]; static guint statusbar_ctx = 0; void sb_init(GladeXML *xml) { statusbar = GTK_STATUSBAR(glade_xml_get_widget(xml, "statusbar")); statusbar_ctx = gtk_statusbar_get_context_id(statusbar, "status_msg"); } void sb_printf(const gchar *format, ...) { va_list ap; va_start(ap, format); vsnprintf(statusbar_msg, MAX_MSG_SIZE, format, ap); va_end(ap); statusbar_msg[MAX_MSG_SIZE-1] = 0; gtk_statusbar_pop(statusbar, statusbar_ctx); gtk_statusbar_push(statusbar, statusbar_ctx, statusbar_msg); } void sb_clear() { gtk_statusbar_pop(statusbar, statusbar_ctx); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/status_bar.h���������������������������������������������������������������������0000644�0001750�0001750�00000000217�10541302762�015711� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef STATUS_BAR_H #define STATUS_BAR_H void sb_init(GladeXML *xml); void sb_printf(const gchar *format, ...); void sb_clear(); #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/clear_tab.c����������������������������������������������������������������������0000644�0001750�0001750�00000016033�10541302761�015453� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <glib.h> #include <glib/gi18n.h> #include <gtk/gtk.h> #include <glade/glade.h> #include "str_util.h" #include "str_convert.h" #include "file_util.h" #include "file_list.h" #include "prefs.h" #include "progress_dlg.h" #include "cursor.h" #include "audio_file.h" #ifdef ENABLE_MP3 # include "mpeg_file.h" #endif #include "clear_tab.h" enum { APPLY_TO_ALL = 0, APPLY_TO_SELECTED = 1 }; /* widgets */ static GtkButton *b_clear_go = NULL; static GtkComboBox *combo_clear_apply = NULL; static GtkToggleButton *rb_clear_all = NULL; static GtkToggleButton *rb_clear_id3v1 = NULL; static GtkToggleButton *rb_clear_id3v2 = NULL; /* preferences */ static long* clear_option; /*** private functions ******************************************************/ /* sets the interface state according to the preferences */ static void from_prefs() { switch (*clear_option) { case 0: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_clear_all), TRUE); break; case 1: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_clear_id3v1), TRUE); break; case 2: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb_clear_id3v2), TRUE); break; } } /* sets the preferences according to the curent interface state */ static void to_prefs() { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_clear_all))) *clear_option = 0; else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_clear_id3v1))) *clear_option = 1; else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(rb_clear_id3v2))) *clear_option = 2; } static gboolean clear_tag(audio_file *af) { #ifdef ENABLE_MP3 if (gtk_toggle_button_get_active(rb_clear_all)) { audio_file_remove_tag(af); return TRUE; } else if (af->type == AF_MPEG) { int version; if (gtk_toggle_button_get_active(rb_clear_id3v1)) version = ID3TT_ID3V1; else version = ID3TT_ID3V2; mpeg_file_remove_tag_v((mpeg_file*)af, version); return TRUE; } else { return FALSE; } #else audio_file_remove_tag(af); return TRUE; #endif } static void clear_tags(GEList *file_list) { GList *iter; audio_file *af; gchar *last_path = ""; gchar *curr_path; gchar *name_utf8; int count_total, count_tagged; int save_errno, res; gboolean cleared; pd_start(_("Clearing Tags")); pd_printf(PD_ICON_INFO, _("Starting in directory \"%s\""), fl_get_working_dir_utf8()); count_total = 0; count_tagged = 0; for (iter = g_elist_first(file_list); iter; iter = g_list_next(iter)) { /* flush pending gtk operations so the UI doesn't freeze */ pd_scroll_to_bottom(); while (gtk_events_pending()) gtk_main_iteration(); if (pd_stop_requested()) { pd_printf(PD_ICON_WARN, _("Operation stopped at user's request")); break; } count_total++; curr_path = (gchar *)iter->data; if (!fu_compare_file_paths(last_path, curr_path)) { gchar *p; gchar *utf8 = str_filename_to_utf8(curr_path, _("(UTF8 conversion error)")); p = g_utf8_strrchr(utf8, -1, '/'); pd_printf(PD_ICON_INFO, _("Entering directory \"%.*s\""), (gint)(p-utf8), utf8); free(utf8); } last_path = curr_path; name_utf8 = str_filename_to_utf8(g_basename(curr_path), _("(UTF8 conversion error)")); res = audio_file_new(&af, curr_path, TRUE); if (res != AF_OK) { pd_printf(PD_ICON_FAIL, _("Error in file \"%s\""), name_utf8); if (res == AF_ERR_FILE) pd_printf(PD_ICON_NONE, _("Couldn't open file for writing")); else if (res == AF_ERR_FORMAT) pd_printf(PD_ICON_NONE, _("Audio format not recognized")); else pd_printf(PD_ICON_NONE, _("Unknown error (%d)"), res); goto _continue; } cleared = clear_tag(af); if (!cleared) { pd_printf(PD_ICON_WARN, _("Skipped \"%s\""), name_utf8); goto _continue; } res = audio_file_write_changes(af); if (res != AF_OK) { save_errno = errno; pd_printf(PD_ICON_FAIL, _("Error in file \"%s\""), name_utf8); pd_printf(PD_ICON_NONE, "%s (%d)", strerror(save_errno), save_errno); goto _continue; } pd_printf(PD_ICON_OK, _("Cleared tag from \"%s\""), name_utf8); count_tagged++; _continue: if (af) { audio_file_delete(af); af = NULL; } free(name_utf8); name_utf8 = NULL; } pd_printf(PD_ICON_INFO, _("Done (Cleared %d of %d files)"), count_tagged, count_total); pd_end(); } /* orchestrates the call to clear_tags() */ static void start_operation() { GEList *file_list; /* int button; button = message_box(w_main, "Remove all tags", "This will remove tags from all selected files. Proceed?", 0, GTK_STOCK_CANCEL, GTK_STOCK_YES, NULL); if (button == 0) return; */ if (gtk_combo_box_get_active(combo_clear_apply) == APPLY_TO_ALL) file_list = fl_get_all_files(); else file_list = fl_get_selected_files(); if (g_elist_length(file_list) == 0) { pd_start(_("Clearing Tags")); pd_printf(PD_ICON_FAIL, _("No files selected")); pd_end(); g_elist_free(file_list); return; } to_prefs(); cursor_set_wait(); gtk_widget_set_sensitive(GTK_WIDGET(b_clear_go), FALSE); clear_tags(file_list); gtk_widget_set_sensitive(GTK_WIDGET(b_clear_go), TRUE); cursor_set_normal(); g_elist_free(file_list); } /*** UI callbacks ***********************************************************/ void cb_clear_go(GtkButton *button, gpointer user_data) { start_operation(); } static void cb_file_selection_changed(GtkTreeSelection *selection, gpointer data) { if (fl_count_selected() > 0) gtk_combo_box_set_active(combo_clear_apply, APPLY_TO_SELECTED); else gtk_combo_box_set_active(combo_clear_apply, APPLY_TO_ALL); } /*** public functions *******************************************************/ void ct_init(GladeXML *xml) { GtkStyle *style; GtkWidget *w; /* * get the widgets from glade */ b_clear_go = GTK_BUTTON(glade_xml_get_widget(xml, "b_clear_go")); combo_clear_apply = GTK_COMBO_BOX(glade_xml_get_widget(xml, "combo_clear_apply")); rb_clear_all = GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "rb_clear_all")); rb_clear_id3v1 = GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "rb_clear_id3v1")); rb_clear_id3v2 = GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "rb_clear_id3v2")); /* initialize some widgets' state */ gtk_combo_box_set_active(combo_clear_apply, APPLY_TO_ALL); /* connect signals */ g_signal_connect(gtk_tree_view_get_selection(GTK_TREE_VIEW(glade_xml_get_widget(xml, "tv_files"))), "changed", G_CALLBACK(cb_file_selection_changed), NULL); #ifndef ENABLE_MP3 gtk_widget_hide(glade_xml_get_widget(xml, "tab_clear_options")); #endif /* * set the title colors */ w = glade_xml_get_widget(xml, "lab_clear_title"); gtk_widget_ensure_style(w); style = gtk_widget_get_style(w); gtk_widget_modify_fg(w, GTK_STATE_NORMAL, &style->text[GTK_STATE_SELECTED]); w = glade_xml_get_widget(xml, "box_clear_title"); gtk_widget_modify_bg(w, GTK_STATE_NORMAL, &style->base[GTK_STATE_SELECTED]); /* * get the preference values, or set them to defaults */ /* clear_option */ clear_option = pref_get_ref("ct:clear_option"); if (clear_option == NULL) { long def = 0; clear_option = pref_set("ct:clear_option", PREF_INT, &def); } from_prefs(); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/clear_tab.h����������������������������������������������������������������������0000644�0001750�0001750�00000000120�10541302761�015446� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef CLEAR_TAB_H #define CLEAR_TAB_H void ct_init(GladeXML *xml); #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/scan_progress_dlg.c��������������������������������������������������������������0000644�0001750�0001750�00000002157�10541302762�017240� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <stdio.h> #include <gtk/gtk.h> #include <glade/glade.h> #include "scan_progress_dlg.h" /* widgets */ static GtkWindow *dlg_scan_progress = NULL; static GtkLabel *lab_scan_progress = NULL; /* private data */ static gboolean stop_requested = FALSE; /* UI callbacks */ void cb_dlg_scan_stop(GtkButton *button, gpointer user_data) { stop_requested = TRUE; } /* public functions */ void spd_init(GladeXML *xml) { /* widgets and icons */ dlg_scan_progress = GTK_WINDOW(glade_xml_get_widget(xml, "dlg_scan_progress")); lab_scan_progress = GTK_LABEL(glade_xml_get_widget(xml, "lab_scan_progress")); gtk_window_set_transient_for(dlg_scan_progress, GTK_WINDOW(glade_xml_get_widget(xml, "w_main"))); } void spd_display() { gtk_label_set_text(lab_scan_progress, "0\n0"); gtk_window_present(dlg_scan_progress); } void spd_hide() { stop_requested = FALSE; gtk_widget_hide(GTK_WIDGET(dlg_scan_progress)); } void spd_update(int dirs, int files) { char buf[20]; snprintf(buf, sizeof(buf), "%i\n%i", dirs, files); gtk_label_set_text(lab_scan_progress, buf); } gboolean spd_stop_requested() { return stop_requested; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/scan_progress_dlg.h��������������������������������������������������������������0000644�0001750�0001750�00000000317�10541302762�017241� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef SCAN_PROGRESS_DLG_H #define SCAN_PROGRESS_DLG_H void spd_init(GladeXML *xml); void spd_display(); void spd_hide(); void spd_update(int dirs, int files); gboolean spd_stop_requested(); #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/chrono.c�������������������������������������������������������������������������0000644�0001750�0001750�00000002631�10541302762�015027� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifdef _WIN32 # include <sys/timeb.h> #else # include <time.h> # include <sys/time.h> #endif #include "chrono.h" #ifndef _WIN32 void chrono_reset(chrono_t *c) { struct timeval tv; gettimeofday(&tv, NULL); c->base_sec = tv.tv_sec; c->base_usec = tv.tv_usec; } unsigned long chrono_get_sec(const chrono_t *c) { struct timeval tv; gettimeofday(&tv, NULL); return tv.tv_sec - c->base_sec; } unsigned long chrono_get_msec(const chrono_t *c) { struct timeval tv; gettimeofday(&tv, NULL); return (tv.tv_sec - c->base_sec)*1000 + (tv.tv_usec - c->base_usec)/1000; } unsigned long chrono_get_usec(const chrono_t *c) { struct timeval tv; gettimeofday(&tv, NULL); return (tv.tv_sec - c->base_sec)*1000000 + tv.tv_usec - c->base_usec; } #endif #ifdef _WIN32 void chrono_reset(chrono_t *c) { struct _timeb tv; _ftime(&tv); c->base_sec = tv.time; c->base_usec = tv.millitm * 1000; } unsigned long chrono_get_sec(const chrono_t *c) { struct _timeb tv; _ftime(&tv); return tv.time - c->base_sec; } unsigned long chrono_get_msec(const chrono_t *c) { struct _timeb tv; _ftime(&tv); return (tv.time - c->base_sec)*1000 + tv.millitm - c->base_usec/1000; } unsigned long chrono_get_usec(const chrono_t *c) { struct _timeb tv; _ftime(&tv); return (tv.time - c->base_sec)*1000000 + tv.millitm*1000 - c->base_usec; } #endif �������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/chrono.h�������������������������������������������������������������������������0000644�0001750�0001750�00000001040�10541302762�015025� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef CHRONO_H #define CHRONO_H /* * Chronograph. Calculates elapsed time. */ typedef struct { unsigned long base_sec; int base_usec; } chrono_t; /* * Marks the base time */ void chrono_reset(chrono_t *c); /* * Gets elapsed time in seconds */ unsigned long chrono_get_sec(const chrono_t *c); /* * Gets elapsed time in milliseconds */ unsigned long chrono_get_msec(const chrono_t *c); /* * Gets elapsed time in microseconds */ unsigned long chrono_get_usec(const chrono_t *c); #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/tagtool.glade��������������������������������������������������������������������0000644�0001750�0001750�00001272543�10571120174�016054� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> <!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> <glade-interface> <widget class="GtkWindow" id="w_main"> <property name="title" translatable="yes">Audio Tag Tool</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_NONE</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> <property name="decorated">True</property> <property name="skip_taskbar_hint">False</property> <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> <signal name="size_allocate" handler="cb_main_win_size_changed"/> <signal name="delete_event" handler="cb_main_win_delete" last_modification_time="Tue, 10 Aug 2004 21:18:11 GMT"/> <signal name="destroy" handler="gtk_main_quit" last_modification_time="Tue, 10 Aug 2004 21:23:08 GMT"/> <child> <widget class="GtkVBox" id="vbox1"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">4</property> <child> <widget class="GtkMenuBar" id="menubar1"> <property name="visible">True</property> <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property> <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property> <child> <widget class="GtkMenuItem" id="m_file"> <property name="visible">True</property> <property name="label" translatable="yes">_File</property> <property name="use_underline">True</property> <child> <widget class="GtkMenu" id="m_file_menu"> <child> <widget class="GtkImageMenuItem" id="m_file_opendir"> <property name="visible">True</property> <property name="label" translatable="yes">Open Directory...</property> <property name="use_underline">True</property> <signal name="activate" handler="cb_select_dir"/> <accelerator key="o" modifiers="GDK_CONTROL_MASK" signal="activate"/> <child internal-child="image"> <widget class="GtkImage" id="image123"> <property name="visible">True</property> <property name="stock">gtk-open</property> <property name="icon_size">1</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> </child> <child> <widget class="GtkImageMenuItem" id="m_file_refresh"> <property name="visible">True</property> <property name="label" translatable="yes">Refresh</property> <property name="use_underline">True</property> <signal name="activate" handler="cb_file_refresh"/> <accelerator key="r" modifiers="GDK_CONTROL_MASK" signal="activate"/> <child internal-child="image"> <widget class="GtkImage" id="image124"> <property name="visible">True</property> <property name="stock">gtk-refresh</property> <property name="icon_size">1</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> </child> <child> <widget class="GtkSeparatorMenuItem" id="separator1"> <property name="visible">True</property> </widget> </child> <child> <widget class="GtkImageMenuItem" id="m_file_quit"> <property name="visible">True</property> <property name="label" translatable="yes">Quit</property> <property name="use_underline">True</property> <signal name="activate" handler="cb_file_quit" last_modification_time="Fri, 02 Apr 2004 20:35:37 GMT"/> <child internal-child="image"> <widget class="GtkImage" id="image125"> <property name="visible">True</property> <property name="stock">gtk-quit</property> <property name="icon_size">1</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> </child> </widget> </child> </widget> </child> <child> <widget class="GtkMenuItem" id="m_settings"> <property name="visible">True</property> <property name="label" translatable="yes">_Settings</property> <property name="use_underline">True</property> <child> <widget class="GtkMenu" id="m_settings_menu"> <child> <widget class="GtkMenuItem" id="m_settings_charconv"> <property name="visible">True</property> <property name="label" translatable="yes">Character Conversions...</property> <property name="use_underline">True</property> <signal name="activate" handler="cb_settings_charconv"/> </widget> </child> <child> <widget class="GtkMenuItem" id="m_settings_id3prefs"> <property name="visible">True</property> <property name="label" translatable="yes">ID3 Preferences...</property> <property name="use_underline">True</property> <signal name="activate" handler="cb_settings_id3prefs"/> </widget> </child> </widget> </child> </widget> </child> <child> <widget class="GtkMenuItem" id="m_id3"> <property name="visible">True</property> <property name="label" translatable="yes">ID_3</property> <property name="use_underline">True</property> <child> <widget class="GtkMenu" id="m_id3_menu"> <child> <widget class="GtkMenuItem" id="m_id3v2_view"> <property name="visible">True</property> <property name="label" translatable="yes">View</property> <property name="use_underline">True</property> <child> <widget class="GtkMenu" id="m_id3v2_view_menu"> <child> <widget class="GtkRadioMenuItem" id="m_id3v2_view_simple"> <property name="visible">True</property> <property name="label" translatable="yes">Simple</property> <property name="use_underline">True</property> <property name="active">True</property> <signal name="activate" handler="cb_id3v2_view_simple"/> </widget> </child> <child> <widget class="GtkRadioMenuItem" id="m_id3v2_view_advanced"> <property name="visible">True</property> <property name="label" translatable="yes">Advanced</property> <property name="use_underline">True</property> <property name="active">False</property> <property name="group">m_id3v2_view_simple</property> <signal name="activate" handler="cb_id3v2_view_advanced"/> </widget> </child> </widget> </child> </widget> </child> <child> <widget class="GtkSeparatorMenuItem" id="separator2"> <property name="visible">True</property> </widget> </child> <child> <widget class="GtkMenuItem" id="m_id3_copyv1tov2"> <property name="visible">True</property> <property name="label" translatable="yes">Copy v1 to v2</property> <property name="use_underline">True</property> <signal name="activate" handler="cb_id3_copyv1tov2"/> <accelerator key="2" modifiers="GDK_CONTROL_MASK" signal="activate"/> </widget> </child> <child> <widget class="GtkMenuItem" id="m_id3_copyv2tov1"> <property name="visible">True</property> <property name="label" translatable="yes">Copy v2 to v1</property> <property name="use_underline">True</property> <signal name="activate" handler="cb_id3_copyv2tov1"/> <accelerator key="1" modifiers="GDK_CONTROL_MASK" signal="activate"/> </widget> </child> </widget> </child> </widget> </child> <child> <widget class="GtkMenuItem" id="m_vorbis"> <property name="visible">True</property> <property name="label" translatable="yes">_Vorbis</property> <property name="use_underline">True</property> <child> <widget class="GtkMenu" id="m_vorbis_menu"> <child> <widget class="GtkMenuItem" id="m_vor_view"> <property name="visible">True</property> <property name="label" translatable="yes">View</property> <property name="use_underline">True</property> <child> <widget class="GtkMenu" id="m_vor_view_menu"> <child> <widget class="GtkRadioMenuItem" id="m_vor_view_simple"> <property name="visible">True</property> <property name="label" translatable="yes">Simple</property> <property name="use_underline">True</property> <property name="active">True</property> <signal name="activate" handler="cb_vor_view_simple"/> </widget> </child> <child> <widget class="GtkRadioMenuItem" id="m_vor_view_advanced"> <property name="visible">True</property> <property name="label" translatable="yes">Advanced</property> <property name="use_underline">True</property> <property name="active">False</property> <property name="group">m_vor_view_simple</property> <signal name="activate" handler="cb_vor_view_advanced"/> </widget> </child> </widget> </child> </widget> </child> </widget> </child> </widget> </child> <child> <widget class="GtkMenuItem" id="m_help"> <property name="visible">True</property> <property name="label" translatable="yes">_Help</property> <property name="use_underline">True</property> <child> <widget class="GtkMenu" id="m_help_menu"> <child> <widget class="GtkImageMenuItem" id="m_help_contents"> <property name="visible">True</property> <property name="label" translatable="yes">Contents...</property> <property name="use_underline">True</property> <signal name="activate" handler="cb_help_contents" last_modification_time="Fri, 02 Apr 2004 20:36:08 GMT"/> <child internal-child="image"> <widget class="GtkImage" id="image126"> <property name="visible">True</property> <property name="stock">gtk-help</property> <property name="icon_size">1</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> </child> <child> <widget class="GtkImageMenuItem" id="m_help_about"> <property name="visible">True</property> <property name="label" translatable="yes">About...</property> <property name="use_underline">True</property> <signal name="activate" handler="cb_help_about" last_modification_time="Fri, 02 Apr 2004 20:36:08 GMT"/> <child internal-child="image"> <widget class="GtkImage" id="image127"> <property name="visible">True</property> <property name="stock">gnome-stock-about</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkHPaned" id="hpaned3"> <property name="border_width">4</property> <property name="visible">True</property> <property name="can_focus">True</property> <child> <widget class="GtkVBox" id="vbox2"> <property name="border_width">4</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">16</property> <child> <widget class="GtkTable" id="table18"> <property name="visible">True</property> <property name="n_rows">3</property> <property name="n_columns">3</property> <property name="homogeneous">False</property> <property name="row_spacing">0</property> <property name="column_spacing">0</property> <child> <widget class="GtkCheckButton" id="cb_recurse"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Include subdirectories</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_toggle_recurse"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCombo" id="combo_wd"> <property name="visible">True</property> <property name="value_in_list">False</property> <property name="allow_empty">True</property> <property name="case_sensitive">True</property> <property name="enable_arrow_keys">True</property> <property name="enable_arrows_always">False</property> <child internal-child="entry"> <widget class="GtkEntry" id="ent_wd"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="key_press_event" handler="cb_wd_keypress" last_modification_time="Sun, 31 Oct 2004 14:50:43 GMT"/> <signal name="changed" handler="cb_wd_changed" last_modification_time="Sun, 31 Oct 2004 14:52:50 GMT"/> </widget> </child> <child internal-child="list"> <widget class="GtkList" id="convertwidget1"> <property name="visible">True</property> <property name="selection_mode">GTK_SELECTION_BROWSE</property> <child> <widget class="GtkListItem" id="convertwidget2"> <property name="visible">True</property> <child> <widget class="GtkLabel" id="convertwidget3"> <property name="visible">True</property> <property name="label" translatable="yes"></property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkButton" id="b_wd_select"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Select Working Directory</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NONE</property> <property name="focus_on_click">False</property> <signal name="clicked" handler="cb_select_dir"/> <child> <widget class="GtkImage" id="image40"> <property name="visible">True</property> <property name="stock">gtk-open</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label6"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Working Directory</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0</property> <property name="xpad">0</property> <property name="ypad">4</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">3</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label161"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkTable" id="table20"> <property name="visible">True</property> <property name="n_rows">3</property> <property name="n_columns">3</property> <property name="homogeneous">False</property> <property name="row_spacing">0</property> <property name="column_spacing">0</property> <child> <widget class="GtkLabel" id="label169"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label162"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Files</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">3</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkScrolledWindow" id="scrolledwindow15"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="shadow_type">GTK_SHADOW_IN</property> <property name="window_placement">GTK_CORNER_TOP_LEFT</property> <child> <widget class="GtkTreeView" id="tv_files"> <property name="width_request">320</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="headers_visible">False</property> <property name="rules_hint">False</property> <property name="reorderable">False</property> <property name="enable_search">False</property> <property name="fixed_height_mode">False</property> <property name="hover_selection">False</property> <property name="hover_expand">False</property> <signal name="popup_menu" handler="cb_files_popup_menu" last_modification_time="Sun, 05 Sep 2004 20:07:25 GMT"/> <signal name="button_press_event" handler="cb_files_button_press" last_modification_time="Sun, 05 Sep 2004 20:07:10 GMT"/> </widget> </child> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">3</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> </packing> </child> <child> <widget class="GtkButton" id="b_refresh"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Refresh file list</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NONE</property> <property name="focus_on_click">False</property> <signal name="clicked" handler="cb_file_refresh" last_modification_time="Sun, 29 Aug 2004 17:22:30 GMT"/> <child> <widget class="GtkImage" id="image46"> <property name="visible">True</property> <property name="stock">gtk-refresh</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_file_count"> <property name="visible">True</property> <property name="label">n files found (n selected)</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> <packing> <property name="shrink">False</property> <property name="resize">True</property> </packing> </child> <child> <widget class="GtkNotebook" id="nb_main"> <property name="border_width">4</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="show_tabs">True</property> <property name="show_border">False</property> <property name="tab_pos">GTK_POS_TOP</property> <property name="scrollable">False</property> <property name="enable_popup">False</property> <signal name="switch_page" handler="cb_notebook_switch"/> <child> <widget class="GtkVBox" id="vbox39"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkEventBox" id="box_edit_title"> <property name="border_width">4</property> <property name="visible">True</property> <property name="visible_window">True</property> <property name="above_child">False</property> <child> <widget class="GtkLabel" id="lab_edit_title"> <property name="visible">True</property> <property name="label" translatable="yes"><span size="large" weight="bold">Edit Tag</span></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">8</property> <property name="ypad">4</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkNotebook" id="nb_file"> <property name="border_width">4</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="show_tabs">True</property> <property name="show_border">False</property> <property name="tab_pos">GTK_POS_TOP</property> <property name="scrollable">False</property> <property name="enable_popup">False</property> <child> <widget class="GtkLabel" id="lab_no_file"> <property name="visible">True</property> <property name="label" translatable="yes">Select a file to edit</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label54"> <property name="visible">True</property> <property name="label">empty</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> <child> <widget class="GtkVBox" id="vbox3"> <property name="border_width">4</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">16</property> <child> <widget class="GtkTable" id="table24"> <property name="visible">True</property> <property name="n_rows">2</property> <property name="n_columns">2</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label179"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Tag</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">2</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label180"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkNotebook" id="nb_edit"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="show_tabs">True</property> <property name="show_border">False</property> <property name="tab_pos">GTK_POS_TOP</property> <property name="scrollable">False</property> <property name="enable_popup">False</property> <child> <widget class="GtkVBox" id="cont_id3_edit"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">4</property> <child> <widget class="GtkNotebook" id="nb_id3"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="show_tabs">True</property> <property name="show_border">False</property> <property name="tab_pos">GTK_POS_TOP</property> <property name="scrollable">False</property> <property name="enable_popup">False</property> <child> <widget class="GtkNotebook" id="nb_id3v1"> <property name="border_width">6</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="show_tabs">True</property> <property name="show_border">False</property> <property name="tab_pos">GTK_POS_TOP</property> <property name="scrollable">False</property> <property name="enable_popup">False</property> <child> <widget class="GtkAlignment" id="cont_id3v1_notag"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkVBox" id="vbox17"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">10</property> <child> <widget class="GtkLabel" id="label54"> <property name="visible">True</property> <property name="label" translatable="yes">File has no ID3v1 Tag</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkButton" id="b_id3v1_create_tag"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Create</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_id3v1_create_tag"/> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label83"> <property name="visible">True</property> <property name="label">notag</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> <child> <widget class="GtkTable" id="table2"> <property name="visible">True</property> <property name="n_rows">6</property> <property name="n_columns">4</property> <property name="homogeneous">False</property> <property name="row_spacing">3</property> <property name="column_spacing">5</property> <child> <widget class="GtkLabel" id="lab_id3v1_title"> <property name="visible">True</property> <property name="label" translatable="yes">Title:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_id3v1_comment"> <property name="visible">True</property> <property name="label" translatable="yes">Comnt.:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">4</property> <property name="bottom_attach">5</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_id3v1_year"> <property name="visible">True</property> <property name="label" translatable="yes">Year:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_id3v1_album"> <property name="visible">True</property> <property name="label" translatable="yes">Album:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_id3v1_genre"> <property name="visible">True</property> <property name="label" translatable="yes">Genre:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_id3v1_title"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_id3_tag_changed"/> <signal name="key_press_event" handler="cb_id3_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">4</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_id3v1_artist"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_id3_tag_changed"/> <signal name="key_press_event" handler="cb_id3_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">4</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_id3v1_album"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_id3_tag_changed"/> <signal name="key_press_event" handler="cb_id3_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">4</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_id3v1_comment"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_id3_tag_changed"/> <signal name="key_press_event" handler="cb_id3_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">4</property> <property name="top_attach">4</property> <property name="bottom_attach">5</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_id3v1_year"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <property name="width_chars">4</property> <signal name="changed" handler="cb_id3_tag_changed"/> <signal name="key_press_event" handler="cb_id3_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCombo" id="combo_id3v1_genre"> <property name="visible">True</property> <property name="value_in_list">True</property> <property name="allow_empty">True</property> <property name="case_sensitive">False</property> <property name="enable_arrow_keys">True</property> <property name="enable_arrows_always">False</property> <child internal-child="entry"> <widget class="GtkEntry" id="ent_id3v1_genre"> <property name="width_request">120</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">False</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_id3_tag_changed"/> </widget> </child> <child internal-child="list"> <widget class="GtkList" id="convertwidget6"> <property name="visible">True</property> <property name="selection_mode">GTK_SELECTION_BROWSE</property> <child> <widget class="GtkListItem" id="convertwidget7"> <property name="visible">True</property> <child> <widget class="GtkLabel" id="convertwidget8"> <property name="visible">True</property> <property name="label" translatable="yes"></property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="left_attach">3</property> <property name="right_attach">4</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_id3v1_track"> <property name="visible">True</property> <property name="label" translatable="yes">Track:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">5</property> <property name="bottom_attach">6</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkSpinButton" id="spin_id3v1_track"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="climb_rate">1</property> <property name="digits">0</property> <property name="numeric">False</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> <property name="adjustment">0 0 255 1 10 10</property> <signal name="changed" handler="cb_id3_tag_changed"/> <signal name="key_press_event" handler="cb_id3_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">5</property> <property name="bottom_attach">6</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_id3v1_artist"> <property name="visible">True</property> <property name="label" translatable="yes">Artist:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label84"> <property name="visible">True</property> <property name="label">tag</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkHBox" id="hbox26"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkLabel" id="label80"> <property name="visible">True</property> <property name="label">ID3 v1</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="mnemonic_widget">nb_main</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkImage" id="img_id3v1_tab"> <property name="visible">True</property> <property name="xalign">1</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="type">tab</property> </packing> </child> <child> <widget class="GtkNotebook" id="nb_id3v2"> <property name="border_width">6</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="show_tabs">True</property> <property name="show_border">False</property> <property name="tab_pos">GTK_POS_TOP</property> <property name="scrollable">False</property> <property name="enable_popup">False</property> <child> <widget class="GtkAlignment" id="alignment5"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkVBox" id="vbox23"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">10</property> <child> <widget class="GtkLabel" id="label88"> <property name="visible">True</property> <property name="label" translatable="yes">File has no ID3v2 Tag</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkButton" id="b_id3v2_create_tag"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Create</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_id3v2_create_tag"/> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label85"> <property name="visible">True</property> <property name="label">notag</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> <child> <widget class="GtkTable" id="table7"> <property name="visible">True</property> <property name="n_rows">6</property> <property name="n_columns">4</property> <property name="homogeneous">False</property> <property name="row_spacing">3</property> <property name="column_spacing">5</property> <child> <widget class="GtkLabel" id="lab_id3v2_title"> <property name="visible">True</property> <property name="label" translatable="yes">Title:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_id3v2_album"> <property name="visible">True</property> <property name="label" translatable="yes">Album:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_id3v2_genre"> <property name="visible">True</property> <property name="label" translatable="yes">Genre:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_id3v2_title"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_id3_tag_changed"/> <signal name="key_press_event" handler="cb_id3_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">4</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_id3v2_artist"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_id3_tag_changed"/> <signal name="key_press_event" handler="cb_id3_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">4</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_id3v2_album"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_id3_tag_changed"/> <signal name="key_press_event" handler="cb_id3_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">4</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_id3v2_year"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <property name="width_chars">4</property> <signal name="changed" handler="cb_id3_tag_changed"/> <signal name="key_press_event" handler="cb_id3_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCombo" id="combo_id3v2_genre"> <property name="visible">True</property> <property name="value_in_list">False</property> <property name="allow_empty">True</property> <property name="case_sensitive">False</property> <property name="enable_arrow_keys">True</property> <property name="enable_arrows_always">False</property> <child internal-child="entry"> <widget class="GtkEntry" id="ent_id3v2_genre"> <property name="width_request">120</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_id3_tag_changed"/> </widget> </child> <child internal-child="list"> <widget class="GtkList" id="convertwidget9"> <property name="visible">True</property> <property name="selection_mode">GTK_SELECTION_BROWSE</property> <child> <widget class="GtkListItem" id="convertwidget10"> <property name="visible">True</property> <child> <widget class="GtkLabel" id="convertwidget11"> <property name="visible">True</property> <property name="label" translatable="yes"></property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="left_attach">3</property> <property name="right_attach">4</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_id3v2_track"> <property name="visible">True</property> <property name="label" translatable="yes">Track:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">5</property> <property name="bottom_attach">6</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_id3v2_artist"> <property name="visible">True</property> <property name="label" translatable="yes">Artist:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_id3v2_track"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <property name="width_chars">4</property> <signal name="changed" handler="cb_id3_tag_changed"/> <signal name="key_press_event" handler="cb_id3_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">5</property> <property name="bottom_attach">6</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkScrolledWindow" id="scrolledwindow6"> <property name="visible">True</property> <property name="hscrollbar_policy">GTK_POLICY_NEVER</property> <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="shadow_type">GTK_SHADOW_IN</property> <property name="window_placement">GTK_CORNER_TOP_LEFT</property> <child> <widget class="GtkTextView" id="text_id3v2_comment"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="overwrite">False</property> <property name="accepts_tab">True</property> <property name="justification">GTK_JUSTIFY_LEFT</property> <property name="wrap_mode">GTK_WRAP_WORD</property> <property name="cursor_visible">True</property> <property name="pixels_above_lines">0</property> <property name="pixels_below_lines">0</property> <property name="pixels_inside_wrap">0</property> <property name="left_margin">0</property> <property name="right_margin">0</property> <property name="indent">0</property> <property name="text" translatable="yes"></property> <signal name="key_press_event" handler="cb_id3_keypress" last_modification_time="Mon, 29 Mar 2004 21:40:38 GMT"/> </widget> </child> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">4</property> <property name="top_attach">4</property> <property name="bottom_attach">5</property> <property name="x_options">fill</property> <property name="y_options">fill</property> </packing> </child> <child> <widget class="GtkLabel" id="lab_id3v2_comment"> <property name="visible">True</property> <property name="label" translatable="yes">Comnt.:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.10000000149</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">4</property> <property name="bottom_attach">5</property> <property name="x_options">fill</property> <property name="y_options">fill</property> </packing> </child> <child> <widget class="GtkLabel" id="lab_id3v2_year"> <property name="visible">True</property> <property name="label" translatable="yes">Year:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkButton" id="b_id3v2_advanced"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_id3v2_view_button"/> <child> <widget class="GtkHBox" id="hbox28"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkLabel" id="lab_id3v2_advanced"> <property name="visible">True</property> <property name="label" translatable="yes">Advanced</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkArrow" id="arrow3"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_RIGHT</property> <property name="shadow_type">GTK_SHADOW_OUT</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <packing> <property name="left_attach">3</property> <property name="right_attach">4</property> <property name="top_attach">5</property> <property name="bottom_attach">6</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label86"> <property name="visible">True</property> <property name="label">simple</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> <child> <widget class="GtkVBox" id="vbox29"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">6</property> <child> <widget class="GtkScrolledWindow" id="scrolledwindow12"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="shadow_type">GTK_SHADOW_IN</property> <property name="window_placement">GTK_CORNER_TOP_LEFT</property> <child> <widget class="GtkTreeView" id="tv_id3v2_frames"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="headers_visible">True</property> <property name="rules_hint">True</property> <property name="reorderable">False</property> <property name="enable_search">False</property> <property name="fixed_height_mode">False</property> <property name="hover_selection">False</property> <property name="hover_expand">False</property> <signal name="row_activated" handler="cb_id3v2_frame_row_activated" last_modification_time="Sun, 22 Aug 2004 12:51:51 GMT"/> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkHBox" id="hbox37"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">8</property> <child> <widget class="GtkButton" id="b_id3v2_add"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Add</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_id3v2_add" last_modification_time="Mon, 29 Mar 2004 22:38:50 GMT"/> <child> <widget class="GtkImage" id="image7"> <property name="visible">True</property> <property name="stock">gtk-add</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkButton" id="b_id3v2_remove"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Remove</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_id3v2_remove" last_modification_time="Mon, 29 Mar 2004 22:38:26 GMT"/> <child> <widget class="GtkImage" id="image8"> <property name="visible">True</property> <property name="stock">gtk-remove</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkButton" id="b_id3v2_edit"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Edit (double-click)</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_id3v2_edit" last_modification_time="Mon, 29 Mar 2004 22:39:01 GMT"/> <child> <widget class="GtkImage" id="image23"> <property name="visible">True</property> <property name="pixbuf">edit.png</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label137"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkButton" id="b_id3v2_simple"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_id3v2_view_button" last_modification_time="Fri, 02 Apr 2004 20:21:54 GMT"/> <child> <widget class="GtkHBox" id="hbox38"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkLabel" id="label138"> <property name="visible">True</property> <property name="label" translatable="yes">Simple</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkArrow" id="arrow5"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_LEFT</property> <property name="shadow_type">GTK_SHADOW_OUT</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label87"> <property name="visible">True</property> <property name="label">adv</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkHBox" id="hbox25"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkLabel" id="label81"> <property name="visible">True</property> <property name="label">ID3 v2</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="mnemonic_widget">nb_main</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkImage" id="img_id3v2_tab"> <property name="visible">True</property> <property name="xalign">1</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="type">tab</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkHSeparator" id="hseparator3"> <property name="visible">True</property> </widget> <packing> <property name="padding">5</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkHBox" id="hbox29"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">8</property> <child> <widget class="GtkButton" id="b_id3_remove_tag"> <property name="visible">True</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_id3_remove_tag" last_modification_time="Mon, 29 Mar 2004 22:34:46 GMT"/> <child> <widget class="GtkAlignment" id="alignment10"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox36"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">2</property> <child> <widget class="GtkImage" id="image6"> <property name="visible">True</property> <property name="stock">gtk-clear</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label136"> <property name="visible">True</property> <property name="label" translatable="yes">Remove Tag</property> <property name="use_underline">True</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkButton" id="b_id3_write_tag"> <property name="visible">True</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_id3_write_changes" last_modification_time="Mon, 29 Mar 2004 22:35:24 GMT"/> <child> <widget class="GtkAlignment" id="alignment9"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox35"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">2</property> <child> <widget class="GtkImage" id="image5"> <property name="visible">True</property> <property name="stock">gtk-save</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label135"> <property name="visible">True</property> <property name="label" translatable="yes">Save Changes</property> <property name="use_underline">True</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label79"> <property name="visible">True</property> <property name="label">id3</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> <child> <widget class="GtkVBox" id="cont_vorbis_edit"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">4</property> <child> <widget class="GtkNotebook" id="nb_vorbis"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="show_tabs">True</property> <property name="show_border">False</property> <property name="tab_pos">GTK_POS_TOP</property> <property name="scrollable">False</property> <property name="enable_popup">False</property> <child> <widget class="GtkTable" id="table6"> <property name="visible">True</property> <property name="n_rows">6</property> <property name="n_columns">4</property> <property name="homogeneous">False</property> <property name="row_spacing">3</property> <property name="column_spacing">5</property> <child> <widget class="GtkLabel" id="lab_vor_title"> <property name="visible">True</property> <property name="label" translatable="yes">Title:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_vor_comment"> <property name="visible">True</property> <property name="label" translatable="yes">Comnt.:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">4</property> <property name="bottom_attach">5</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_vor_year"> <property name="visible">True</property> <property name="label" translatable="yes">Year:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_vor_album"> <property name="visible">True</property> <property name="label" translatable="yes">Album:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_vor_artist"> <property name="visible">True</property> <property name="label" translatable="yes">Artist:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_vor_genre"> <property name="visible">True</property> <property name="label" translatable="yes">Genre:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_vor_title"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_vor_tag_changed"/> <signal name="key_press_event" handler="cb_vor_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">4</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_vor_artist"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_vor_tag_changed"/> <signal name="key_press_event" handler="cb_vor_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">4</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_vor_album"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_vor_tag_changed"/> <signal name="key_press_event" handler="cb_vor_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">4</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_vor_comment"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_vor_tag_changed"/> <signal name="key_press_event" handler="cb_vor_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">4</property> <property name="top_attach">4</property> <property name="bottom_attach">5</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_vor_year"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <property name="width_chars">4</property> <signal name="changed" handler="cb_vor_tag_changed"/> <signal name="key_press_event" handler="cb_vor_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCombo" id="combo_vor_genre"> <property name="visible">True</property> <property name="value_in_list">False</property> <property name="allow_empty">True</property> <property name="case_sensitive">False</property> <property name="enable_arrow_keys">True</property> <property name="enable_arrows_always">False</property> <child internal-child="entry"> <widget class="GtkEntry" id="ent_vor_genre"> <property name="width_request">120</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_vor_tag_changed"/> </widget> </child> <child internal-child="list"> <widget class="GtkList" id="convertwidget16"> <property name="visible">True</property> <property name="selection_mode">GTK_SELECTION_BROWSE</property> <child> <widget class="GtkListItem" id="convertwidget17"> <property name="visible">True</property> <child> <widget class="GtkLabel" id="convertwidget18"> <property name="visible">True</property> <property name="label" translatable="yes"></property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="left_attach">3</property> <property name="right_attach">4</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="lab_vor_track"> <property name="visible">True</property> <property name="label" translatable="yes">Track:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">5</property> <property name="bottom_attach">6</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_vor_track"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <property name="width_chars">4</property> <signal name="changed" handler="cb_vor_tag_changed"/> <signal name="key_press_event" handler="cb_vor_keypress"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">5</property> <property name="bottom_attach">6</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkButton" id="b_vor_advanced"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_vor_view_button"/> <child> <widget class="GtkHBox" id="hbox11"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkLabel" id="lab_vor_advanced"> <property name="visible">True</property> <property name="label" translatable="yes">Advanced</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkArrow" id="arrow2"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_RIGHT</property> <property name="shadow_type">GTK_SHADOW_OUT</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <packing> <property name="left_attach">3</property> <property name="right_attach">4</property> <property name="top_attach">5</property> <property name="bottom_attach">6</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label107"> <property name="visible">True</property> <property name="label">simple</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> <child> <widget class="GtkVBox" id="vbox30"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">6</property> <child> <widget class="GtkScrolledWindow" id="scrolledwindow13"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="shadow_type">GTK_SHADOW_IN</property> <property name="window_placement">GTK_CORNER_TOP_LEFT</property> <child> <widget class="GtkTreeView" id="tv_vor_comments"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="headers_visible">True</property> <property name="rules_hint">True</property> <property name="reorderable">False</property> <property name="enable_search">False</property> <property name="fixed_height_mode">False</property> <property name="hover_selection">False</property> <property name="hover_expand">False</property> <signal name="row_activated" handler="cb_vor_comment_row_activated" last_modification_time="Sun, 22 Aug 2004 12:57:10 GMT"/> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkHBox" id="hbox31"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">8</property> <child> <widget class="GtkButton" id="b_vor_add"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Add</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_vor_add" last_modification_time="Mon, 29 Mar 2004 22:36:50 GMT"/> <child> <widget class="GtkImage" id="image1"> <property name="visible">True</property> <property name="stock">gtk-add</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkButton" id="b_vor_remove"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Remove</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_vor_remove" last_modification_time="Mon, 29 Mar 2004 22:37:23 GMT"/> <child> <widget class="GtkImage" id="image2"> <property name="visible">True</property> <property name="stock">gtk-remove</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkButton" id="b_vor_edit"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Edit (double-click)</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_vor_edit" last_modification_time="Mon, 29 Mar 2004 22:37:11 GMT"/> <child> <widget class="GtkImage" id="image22"> <property name="visible">True</property> <property name="pixbuf">edit.png</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label132"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkButton" id="b_vor_simple"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_vor_view_button"/> <child> <widget class="GtkHBox" id="hbox32"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkLabel" id="label131"> <property name="visible">True</property> <property name="label" translatable="yes">Simple</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkArrow" id="arrow4"> <property name="visible">True</property> <property name="arrow_type">GTK_ARROW_LEFT</property> <property name="shadow_type">GTK_SHADOW_OUT</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label108"> <property name="visible">True</property> <property name="label">adv</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkHSeparator" id="hseparator4"> <property name="visible">True</property> </widget> <packing> <property name="padding">5</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkHBox" id="hbox30"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">8</property> <child> <widget class="GtkButton" id="b_vor_clear"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_vor_clear" last_modification_time="Mon, 29 Mar 2004 22:35:56 GMT"/> <child> <widget class="GtkAlignment" id="alignment8"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox34"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">2</property> <child> <widget class="GtkImage" id="image4"> <property name="visible">True</property> <property name="stock">gtk-clear</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label134"> <property name="visible">True</property> <property name="label" translatable="yes">Clear Tag</property> <property name="use_underline">True</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkButton" id="b_vor_write"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_vor_write" last_modification_time="Mon, 29 Mar 2004 22:36:15 GMT"/> <child> <widget class="GtkAlignment" id="alignment7"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox33"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">2</property> <child> <widget class="GtkImage" id="image3"> <property name="visible">True</property> <property name="stock">gtk-save</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label133"> <property name="visible">True</property> <property name="label" translatable="yes">Save Changes</property> <property name="use_underline">True</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label52"> <property name="visible">True</property> <property name="label">vorbis</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkTable" id="table23"> <property name="visible">True</property> <property name="n_rows">2</property> <property name="n_columns">2</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label177"> <property name="visible">True</property> <property name="label" translatable="yes"><b>File Info</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">2</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label178"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkHBox" id="hbox5"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">4</property> <child> <widget class="GtkLabel" id="lab_info_names"> <property name="visible">True</property> <property name="label">name1: name2: name3: name4: name5: name6: </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_RIGHT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">1</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="lab_info_values"> <property name="visible">True</property> <property name="label">value1 value2 value3 value4 value5 value6 </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">7.45058015283e-09</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options">fill</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label55"> <property name="visible">True</property> <property name="label">edit</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkImage" id="img_tab_edit"> <property name="visible">True</property> <property name="pixbuf">tab_edit.png</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> <child> <widget class="GtkVBox" id="vbox7"> <property name="border_width">4</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">16</property> <child> <widget class="GtkEventBox" id="box_tag_title"> <property name="visible">True</property> <property name="visible_window">True</property> <property name="above_child">False</property> <child> <widget class="GtkLabel" id="lab_tag_title"> <property name="visible">True</property> <property name="label" translatable="yes"><span size="large" weight="bold">Tag Multiple Files</span></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">8</property> <property name="ypad">4</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkTable" id="table21"> <property name="visible">True</property> <property name="n_rows">2</property> <property name="n_columns">3</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label12"> <property name="visible">True</property> <property name="label" translatable="yes"><b>File Name Format</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">3</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCombo" id="combo_tag_format"> <property name="width_request">300</property> <property name="visible">True</property> <property name="value_in_list">False</property> <property name="allow_empty">True</property> <property name="case_sensitive">False</property> <property name="enable_arrow_keys">True</property> <property name="enable_arrows_always">False</property> <child internal-child="entry"> <widget class="GtkEntry" id="ent_tag_format"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_update_filename"/> </widget> </child> <child internal-child="list"> <widget class="GtkList" id="convertwidget23"> <property name="visible">True</property> <property name="selection_mode">GTK_SELECTION_BROWSE</property> <child> <widget class="GtkListItem" id="convertwidget24"> <property name="visible">True</property> <child> <widget class="GtkLabel" id="convertwidget25"> <property name="visible">True</property> <property name="label" translatable="yes"></property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkButton" id="b_tag_format_help"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Get help on filename formats</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NONE</property> <property name="focus_on_click">False</property> <signal name="clicked" handler="cb_tag_help"/> <child> <widget class="GtkImage" id="image42"> <property name="visible">True</property> <property name="stock">gtk-help</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label171"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkTable" id="table3"> <property name="visible">True</property> <property name="n_rows">2</property> <property name="n_columns">2</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label172"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label174"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Character and Case Conversion</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">7.45058015283e-09</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">2</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkAlignment" id="alignment18"> <property name="visible">True</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xscale">0.10000000149</property> <property name="yscale">1</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkButton" id="b_show_tag_chconv"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Configure</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_show_tag_chconv"/> </widget> </child> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkTable" id="table22"> <property name="visible">True</property> <property name="n_rows">9</property> <property name="n_columns">5</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label176"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Tag</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">7.45058015283e-09</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">5</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCheckButton" id="cb_title"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Title:</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_check_changed"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCheckButton" id="cb_artist"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Artist:</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_check_changed"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">4</property> <property name="bottom_attach">5</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCheckButton" id="cb_album"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Album:</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_check_changed"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">5</property> <property name="bottom_attach">6</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCheckButton" id="cb_year"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Year:</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_check_changed"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">6</property> <property name="bottom_attach">7</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCheckButton" id="cb_comment"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Comnt.:</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_check_changed"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">7</property> <property name="bottom_attach">8</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCheckButton" id="cb_track"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Track:</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_check_changed"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">8</property> <property name="bottom_attach">9</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_title2"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_field_changed"/> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">5</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_artist2"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_field_changed"/> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">5</property> <property name="top_attach">4</property> <property name="bottom_attach">5</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_album2"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_field_changed"/> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">5</property> <property name="top_attach">5</property> <property name="bottom_attach">6</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_year2"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <property name="width_chars">4</property> <signal name="changed" handler="cb_field_changed"/> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">6</property> <property name="bottom_attach">7</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCheckButton" id="cb_genre"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Genre:</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_check_changed"/> </widget> <packing> <property name="left_attach">3</property> <property name="right_attach">4</property> <property name="top_attach">6</property> <property name="bottom_attach">7</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCombo" id="combo_genre2"> <property name="visible">True</property> <property name="value_in_list">False</property> <property name="allow_empty">True</property> <property name="case_sensitive">False</property> <property name="enable_arrow_keys">True</property> <property name="enable_arrows_always">False</property> <child internal-child="entry"> <widget class="GtkEntry" id="ent_genre2"> <property name="width_request">120</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_field_changed"/> </widget> </child> <child internal-child="list"> <widget class="GtkList" id="convertwidget26"> <property name="visible">True</property> <property name="selection_mode">GTK_SELECTION_BROWSE</property> <child> <widget class="GtkListItem" id="convertwidget27"> <property name="visible">True</property> <child> <widget class="GtkLabel" id="convertwidget28"> <property name="visible">True</property> <property name="label" translatable="yes"></property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="left_attach">4</property> <property name="right_attach">5</property> <property name="top_attach">6</property> <property name="bottom_attach">7</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_comment2"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <signal name="changed" handler="cb_field_changed"/> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">5</property> <property name="top_attach">7</property> <property name="bottom_attach">8</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_track2"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <property name="width_chars">4</property> <signal name="changed" handler="cb_field_changed"/> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">8</property> <property name="bottom_attach">9</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCheckButton" id="cb_track_auto"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Auto-increment</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_field_changed"/> </widget> <packing> <property name="left_attach">3</property> <property name="right_attach">5</property> <property name="top_attach">8</property> <property name="bottom_attach">9</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkHSeparator" id="hseparator2"> <property name="visible">True</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">5</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> </packing> </child> <child> <widget class="GtkLabel" id="label173"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkCheckButton" id="cb_use_filename"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Set tags based on file names</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_update_filename"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">5</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkAlignment" id="alignment4"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">1</property> <property name="xscale">1</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox49"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkLabel" id="label189"> <property name="visible">True</property> <property name="label" translatable="yes">Apply to </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkComboBox" id="combo_tag_apply"> <property name="visible">True</property> <property name="items" translatable="yes">All files Selected files</property> <property name="add_tearoffs">False</property> <property name="focus_on_click">True</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label190"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkButton" id="b_tag_go"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_tag_go"/> <child> <widget class="GtkAlignment" id="alignment11"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox41"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">2</property> <child> <widget class="GtkImage" id="image43"> <property name="visible">True</property> <property name="stock">gtk-execute</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label163"> <property name="visible">True</property> <property name="label" translatable="yes">Go!</property> <property name="use_underline">True</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkImage" id="img_tab_tag"> <property name="visible">True</property> <property name="pixbuf">tab_tag.png</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> <child> <widget class="GtkVBox" id="vbox34"> <property name="border_width">4</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">16</property> <child> <widget class="GtkEventBox" id="box_clear_title"> <property name="visible">True</property> <property name="visible_window">True</property> <property name="above_child">False</property> <child> <widget class="GtkLabel" id="lab_clear_title"> <property name="visible">True</property> <property name="label" translatable="yes"><span size="large" weight="bold">Clear Tags</span></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">8</property> <property name="ypad">4</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkTable" id="tab_clear_options"> <property name="visible">True</property> <property name="n_rows">4</property> <property name="n_columns">2</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label195"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label196"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Tags to Clear</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">7.45058015283e-09</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">2</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_clear_all"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">All</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_clear_id3v1"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Only ID3 v1 tags</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <property name="group">rb_clear_all</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_clear_id3v2"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Only ID3 v2 tags</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <property name="group">rb_clear_all</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkAlignment" id="alignment16"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">1</property> <property name="xscale">1</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox50"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkLabel" id="label192"> <property name="visible">True</property> <property name="label" translatable="yes">Apply to </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkComboBox" id="combo_clear_apply"> <property name="visible">True</property> <property name="items" translatable="yes">All files Selected files</property> <property name="add_tearoffs">False</property> <property name="focus_on_click">True</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label193"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkButton" id="b_clear_go"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_clear_go" last_modification_time="Sun, 10 Oct 2004 18:56:33 GMT"/> <child> <widget class="GtkAlignment" id="alignment17"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox51"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">2</property> <child> <widget class="GtkImage" id="image48"> <property name="visible">True</property> <property name="stock">gtk-execute</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label194"> <property name="visible">True</property> <property name="label" translatable="yes">Go!</property> <property name="use_underline">True</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkImage" id="img_tab_clear"> <property name="visible">True</property> <property name="pixbuf">tab_clear.png</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> <child> <widget class="GtkVBox" id="vbox8"> <property name="border_width">4</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">16</property> <child> <widget class="GtkEventBox" id="box_rename_title"> <property name="visible">True</property> <property name="visible_window">True</property> <property name="above_child">False</property> <child> <widget class="GtkLabel" id="lab_rename_title"> <property name="visible">True</property> <property name="label" translatable="yes"><span size="large" weight="bold">Rename Multiple Files</span></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">8</property> <property name="ypad">4</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkTable" id="table19"> <property name="visible">True</property> <property name="n_rows">2</property> <property name="n_columns">3</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkCombo" id="combo_rename_format"> <property name="width_request">300</property> <property name="visible">True</property> <property name="value_in_list">False</property> <property name="allow_empty">True</property> <property name="case_sensitive">True</property> <property name="enable_arrow_keys">True</property> <property name="enable_arrows_always">False</property> <child internal-child="entry"> <widget class="GtkEntry" id="ent_rename_format"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> </widget> </child> <child internal-child="list"> <widget class="GtkList" id="convertwidget31"> <property name="visible">True</property> <property name="selection_mode">GTK_SELECTION_BROWSE</property> <child> <widget class="GtkListItem" id="convertwidget32"> <property name="visible">True</property> <child> <widget class="GtkLabel" id="convertwidget33"> <property name="visible">True</property> <property name="label" translatable="yes"></property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkButton" id="b_rename_format_help"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Get help on filename formats</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NONE</property> <property name="focus_on_click">False</property> <signal name="clicked" handler="cb_rename_help"/> <child> <widget class="GtkImage" id="image41"> <property name="visible">True</property> <property name="stock">gtk-help</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> </child> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label13"> <property name="visible">True</property> <property name="label" translatable="yes"><b>File Name Format</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">3</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label166"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkTable" id="table4"> <property name="visible">True</property> <property name="n_rows">2</property> <property name="n_columns">2</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label167"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label78"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Character and Case Conversion</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">7.45058015283e-09</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">2</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkAlignment" id="alignment19"> <property name="visible">True</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xscale">0.10000000149</property> <property name="yscale">1</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkButton" id="b_show_rename_chconv"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Configure</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_show_rename_chconv"/> </widget> </child> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkAlignment" id="alignment2"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">1</property> <property name="xscale">1</property> <property name="yscale">5.36441973509e-07</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox47"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkLabel" id="label186"> <property name="visible">True</property> <property name="label" translatable="yes">Apply to </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkComboBox" id="combo_rename_apply"> <property name="visible">True</property> <property name="items" translatable="yes">All files Selected files</property> <property name="add_tearoffs">False</property> <property name="focus_on_click">True</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label187"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkButton" id="b_rename_go"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_rename_go"/> <child> <widget class="GtkAlignment" id="alignment15"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox48"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">2</property> <child> <widget class="GtkImage" id="image47"> <property name="visible">True</property> <property name="stock">gtk-execute</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label188"> <property name="visible">True</property> <property name="label" translatable="yes">Go!</property> <property name="use_underline">True</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkImage" id="img_tab_rename"> <property name="visible">True</property> <property name="pixbuf">tab_rename.png</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> <child> <widget class="GtkVBox" id="vbox32"> <property name="border_width">4</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">16</property> <child> <widget class="GtkEventBox" id="box_playlist_title"> <property name="visible">True</property> <property name="visible_window">True</property> <property name="above_child">False</property> <child> <widget class="GtkLabel" id="lab_playlist_title"> <property name="visible">True</property> <property name="label" translatable="yes"><span size="large" weight="bold">Create Playlists</span></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">8</property> <property name="ypad">4</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkTable" id="table9"> <property name="visible">True</property> <property name="n_rows">4</property> <property name="n_columns">2</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkRadioButton" id="rb_create_dir"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Every directory</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">True</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_create_toplevel"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Top-level directory</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <property name="group">rb_create_dir</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_create_both"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Both</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <property name="group">rb_create_dir</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label141"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Create In</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">2</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label144"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options"></property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkTable" id="table10"> <property name="visible">True</property> <property name="n_rows">4</property> <property name="n_columns">3</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label142"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Playlist File Name</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">3</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_name_set"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Set to:</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_name_set"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_pl_name"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes">playlist</property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_name_dir"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Same as directory name</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">True</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <property name="group">rb_name_set</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">3</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label49"> <property name="visible">True</property> <property name="label" translatable="yes">Extension:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_pl_extension"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text">m3u</property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label145"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">shrink</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkTable" id="table11"> <property name="visible">True</property> <property name="n_rows">4</property> <property name="n_columns">3</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label143"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Sort Entries</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">3</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label146"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">shrink</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_sort_field"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">By tag field (if available):</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_sort_field"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkComboBox" id="combo_field"> <property name="visible">True</property> <property name="items" translatable="yes">Title Artist Album Year Genre Comment Track #</property> <property name="add_tearoffs">False</property> <property name="focus_on_click">True</property> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options">fill</property> </packing> </child> <child> <widget class="GtkHBox" id="hbox40"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">4</property> <child> <widget class="GtkLabel" id="label147"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkCheckButton" id="cb_sort_across_dirs"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Sort across directories</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">3</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> <property name="x_options">shrink|fill</property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_sort_name"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">By file name</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">True</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <property name="group">rb_sort_field</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkAlignment" id="alignment1"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">1</property> <property name="xscale">1</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox46"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkLabel" id="label184"> <property name="visible">True</property> <property name="label" translatable="yes">Apply to </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkComboBox" id="combo_playlist_apply"> <property name="visible">True</property> <property name="items" translatable="yes">All files Selected files</property> <property name="add_tearoffs">False</property> <property name="focus_on_click">True</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label185"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkButton" id="b_playlist_go"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="cb_playlist_go"/> <child> <widget class="GtkAlignment" id="alignment13"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox43"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">2</property> <child> <widget class="GtkImage" id="image45"> <property name="visible">True</property> <property name="stock">gtk-execute</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label165"> <property name="visible">True</property> <property name="label" translatable="yes">Go!</property> <property name="use_underline">True</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkImage" id="img_tab_playlist"> <property name="visible">True</property> <property name="pixbuf">tab_playlist.png</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">4</property> <property name="ypad">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> </widget> <packing> <property name="shrink">False</property> <property name="resize">False</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkStatusbar" id="statusbar"> <property name="visible">True</property> <property name="has_resize_grip">True</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> <widget class="GtkDialog" id="dlg_help"> <property name="title">help topic</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_NONE</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> <property name="decorated">True</property> <property name="skip_taskbar_hint">False</property> <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> <property name="has_separator">True</property> <signal name="delete_event" handler="gtk_widget_hide"/> <child internal-child="vbox"> <widget class="GtkVBox" id="dialog-vbox3"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child internal-child="action_area"> <widget class="GtkHButtonBox" id="dialog-action_area3"> <property name="visible">True</property> <property name="layout_style">GTK_BUTTONBOX_END</property> <child> <widget class="GtkButton" id="b_close_help"> <property name="visible">True</property> <property name="can_default">True</property> <property name="has_default">True</property> <property name="can_focus">True</property> <property name="label">gtk-close</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">-7</property> <signal name="clicked" handler="gtk_widget_hide" object="dlg_help"/> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> <property name="pack_type">GTK_PACK_END</property> </packing> </child> <child> <widget class="GtkVBox" id="vbox10"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkLabel" id="lab_help"> <property name="visible">True</property> <property name="label">help text</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">20</property> <property name="ypad">20</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> <widget class="GtkDialog" id="dlg_char_conv"> <property name="title" translatable="yes">Character Conversions</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_NONE</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> <property name="decorated">True</property> <property name="skip_taskbar_hint">False</property> <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> <property name="has_separator">True</property> <signal name="delete_event" handler="gtk_widget_hide" object="dlg_char_conv"/> <child internal-child="vbox"> <widget class="GtkVBox" id="dialog-vbox4"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child internal-child="action_area"> <widget class="GtkHButtonBox" id="dialog-action_area4"> <property name="visible">True</property> <property name="layout_style">GTK_BUTTONBOX_END</property> <child> <widget class="GtkButton" id="b_chconv_cancel"> <property name="visible">True</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="label">gtk-cancel</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">-6</property> <signal name="clicked" handler="gtk_widget_hide" object="dlg_char_conv"/> </widget> </child> <child> <widget class="GtkButton" id="b_chconv_ok"> <property name="visible">True</property> <property name="can_default">True</property> <property name="has_default">True</property> <property name="can_focus">True</property> <property name="label">gtk-ok</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">-5</property> <signal name="clicked" handler="cb_chconv_save"/> <signal name="clicked" handler="gtk_widget_hide" object="dlg_char_conv"/> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> <property name="pack_type">GTK_PACK_END</property> </packing> </child> <child> <widget class="GtkNotebook" id="nb_char_conv"> <property name="border_width">6</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="show_tabs">True</property> <property name="show_border">True</property> <property name="tab_pos">GTK_POS_TOP</property> <property name="scrollable">False</property> <property name="enable_popup">False</property> <child> <widget class="GtkVBox" id="vbox18"> <property name="border_width">12</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">16</property> <child> <widget class="GtkTable" id="table12"> <property name="visible">True</property> <property name="n_rows">3</property> <property name="n_columns">3</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label149"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_t_conv_space_none"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">No conversion</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">True</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_t_conv_space_none_toggled"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_t_conv_space_from"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Convert this character to space:</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <property name="group">rb_t_conv_space_none</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label148"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Space Conversion</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">3</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_t_conv_chars"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">1</property> <property name="text">_</property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <property name="width_chars">5</property> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkTable" id="table13"> <property name="visible">True</property> <property name="n_rows">2</property> <property name="n_columns">2</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label150"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Case Conversion</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">2</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkComboBox" id="combo_t_case"> <property name="visible">True</property> <property name="items" translatable="yes">(no conversion) lower case UPPER CASE Sentence case Title Case</property> <property name="add_tearoffs">False</property> <property name="focus_on_click">True</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> </packing> </child> <child> <widget class="GtkLabel" id="label151"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label67"> <property name="visible">True</property> <property name="label" translatable="yes">When Tagging</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> <child> <widget class="GtkVBox" id="vbox20"> <property name="border_width">12</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">16</property> <child> <widget class="GtkTable" id="table14"> <property name="visible">True</property> <property name="n_rows">3</property> <property name="n_columns">3</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label156"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_r_conv_space_none"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">No conversion</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_r_conv_space_none_toggled"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_r_conv_space_to"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Convert spaces to:</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <property name="group">rb_r_conv_space_none</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_r_conv_chars"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text">_</property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <property name="width_chars">5</property> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label154"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Space Conversion</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">3</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkTable" id="table15"> <property name="visible">True</property> <property name="n_rows">2</property> <property name="n_columns">2</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label152"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Case Conversion</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">2</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label153"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkComboBox" id="combo_r_case"> <property name="visible">True</property> <property name="items" translatable="yes">(no conversion) lower case UPPER CASE Sentence case Title Case</property> <property name="add_tearoffs">False</property> <property name="focus_on_click">True</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkTable" id="table16"> <property name="visible">True</property> <property name="n_rows">3</property> <property name="n_columns">4</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label157"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_r_invalid_omit"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Omit</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <signal name="toggled" handler="cb_r_invalid_omit_toggled"/> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_r_invalid_convert"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Convert to:</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">True</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <property name="group">rb_r_invalid_omit</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkEntry" id="ent_r_invalid_chars"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text">-</property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <property name="width_chars">5</property> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label155"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Invalid File Name Characters</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">4</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label200"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">3</property> <property name="right_attach">4</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="y_options"></property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label68"> <property name="visible">True</property> <property name="label" translatable="yes">When Renaming</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <widget class="GtkDialog" id="dlg_about"> <property name="title" translatable="yes">About Audio Tag Tool</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> <property name="decorated">True</property> <property name="skip_taskbar_hint">False</property> <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> <property name="has_separator">True</property> <signal name="delete_event" handler="gtk_widget_hide" object="dlg_about"/> <child internal-child="vbox"> <widget class="GtkVBox" id="dialog-vbox5"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child internal-child="action_area"> <widget class="GtkHButtonBox" id="dialog-action_area5"> <property name="visible">True</property> <property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property> <child> <widget class="GtkButton" id="b_about_credits"> <property name="visible">True</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">0</property> <signal name="clicked" handler="cb_about_credits" last_modification_time="Sat, 12 Feb 2005 19:51:34 GMT"/> <child> <widget class="GtkAlignment" id="alignment20"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox53"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">2</property> <child> <widget class="GtkImage" id="image128"> <property name="visible">True</property> <property name="stock">gnome-stock-about</property> <property name="icon_size">4</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label201"> <property name="visible">True</property> <property name="label" translatable="yes">C_redits</property> <property name="use_underline">True</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> </child> </widget> </child> <child> <widget class="GtkButton" id="b_about_close"> <property name="visible">True</property> <property name="can_default">True</property> <property name="has_default">True</property> <property name="can_focus">True</property> <property name="label">gtk-close</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">0</property> <signal name="clicked" handler="cb_about_close" last_modification_time="Sat, 12 Feb 2005 19:54:44 GMT"/> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> <property name="pack_type">GTK_PACK_END</property> </packing> </child> <child> <widget class="GtkVBox" id="vbox24"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkAlignment" id="alignment6"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> <property name="top_padding">0</property> <property name="bottom_padding">0</property> <property name="left_padding">0</property> <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox24"> <property name="border_width">16</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">16</property> <child> <widget class="GtkImage" id="img_about"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkVBox" id="vbox31"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkLabel" id="label139"> <property name="visible">True</property> <property name="label" translatable="yes"><span size="xx-large" weight="bold">Audio Tag Tool</span></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="lab_about_version"> <property name="visible">True</property> <property name="label" translatable="yes"><b>version %s</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="label93"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label">http://pwp.netcabo.pt/paol/tagtool/</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">16</property> <property name="ypad">16</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkHBox" id="hbox27"> <property name="border_width">16</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">8</property> <child> <widget class="GtkLabel" id="label99"> <property name="visible">True</property> <property name="label" translatable="yes">Supported audio formats:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="lab_about_supported"> <property name="visible">True</property> <property name="label">lab__about__supported</property> <property name="use_underline">True</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="lab_about_license"> <property name="visible">True</property> <property name="label" translatable="yes">This software is made available under the GNU General Public Licence. See the file COPYING for the full license terms.</property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">16</property> <property name="ypad">16</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <widget class="GtkDialog" id="dlg_prefs"> <property name="title" translatable="yes">ID3 Preferences</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_NONE</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> <property name="decorated">True</property> <property name="skip_taskbar_hint">False</property> <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> <property name="has_separator">True</property> <signal name="delete_event" handler="gtk_widget_hide" object="dlg_prefs"/> <child internal-child="vbox"> <widget class="GtkVBox" id="dialog-vbox6"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child internal-child="action_area"> <widget class="GtkHButtonBox" id="dialog-action_area6"> <property name="visible">True</property> <property name="layout_style">GTK_BUTTONBOX_END</property> <child> <widget class="GtkButton" id="b_prefs_cancel"> <property name="visible">True</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="label">gtk-cancel</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">-6</property> <signal name="clicked" handler="gtk_widget_hide" object="dlg_prefs"/> </widget> </child> <child> <widget class="GtkButton" id="b_prefs_ok"> <property name="visible">True</property> <property name="can_default">True</property> <property name="has_default">True</property> <property name="can_focus">True</property> <property name="label">gtk-ok</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">-5</property> <signal name="clicked" handler="cb_prefs_save"/> <signal name="clicked" handler="gtk_widget_hide" object="dlg_prefs"/> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> <property name="pack_type">GTK_PACK_END</property> </packing> </child> <child> <widget class="GtkVBox" id="vbox33"> <property name="border_width">8</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">16</property> <child> <widget class="GtkTable" id="table26"> <property name="visible">True</property> <property name="n_rows">2</property> <property name="n_columns">2</property> <property name="homogeneous">False</property> <property name="row_spacing">4</property> <property name="column_spacing">4</property> <child> <widget class="GtkLabel" id="label181"> <property name="visible">True</property> <property name="label" translatable="yes"><b>When tagging multiple files</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">2</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">2</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label182"> <property name="visible">True</property> <property name="label"> </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkVBox" id="vbox28"> <property name="border_width">4</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">4</property> <child> <widget class="GtkLabel" id="label98"> <property name="visible">True</property> <property name="label" translatable="yes">ID3 tag versions to create:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">7.45058015283e-09</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_ver_v1"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Only v1</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_ver_v2"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Only v2</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <property name="group">rb_ver_v1</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_ver_both"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Both</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <property name="group">rb_ver_v1</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkRadioButton" id="rb_ver_auto"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Default to v1, add v2 only when necessary</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> <property name="group">rb_ver_v1</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkHSeparator" id="hseparator6"> <property name="visible">True</property> </widget> <packing> <property name="padding">4</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> <child> <widget class="GtkCheckButton" id="cb_ver_preserve"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">Preserve existing tag versions</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options">fill</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <widget class="GtkDialog" id="dlg_edit_field"> <property name="title">dlg_edit_field</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_NONE</property> <property name="modal">True</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> <property name="decorated">True</property> <property name="skip_taskbar_hint">False</property> <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> <property name="has_separator">True</property> <child internal-child="vbox"> <widget class="GtkVBox" id="dialog-vbox7"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child internal-child="action_area"> <widget class="GtkHButtonBox" id="dialog-action_area7"> <property name="visible">True</property> <property name="layout_style">GTK_BUTTONBOX_END</property> <child> <widget class="GtkButton" id="b_edit_field_cancel"> <property name="visible">True</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="label">gtk-cancel</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">-6</property> </widget> </child> <child> <widget class="GtkButton" id="b_edit_field_ok"> <property name="visible">True</property> <property name="can_default">True</property> <property name="has_default">True</property> <property name="can_focus">True</property> <property name="label">gtk-ok</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">-5</property> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> <property name="pack_type">GTK_PACK_END</property> </packing> </child> <child> <widget class="GtkTable" id="t_edit_field"> <property name="border_width">8</property> <property name="visible">True</property> <property name="n_rows">2</property> <property name="n_columns">2</property> <property name="homogeneous">False</property> <property name="row_spacing">8</property> <property name="column_spacing">8</property> <child> <widget class="GtkLabel" id="label105"> <property name="visible">True</property> <property name="label" translatable="yes">Text:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">fill</property> <property name="y_options">fill</property> </packing> </child> <child> <widget class="GtkEntry" id="ent_edit_field_text"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">True</property> <property name="width_chars">50</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="y_options"></property> </packing> </child> <child> <widget class="GtkLabel" id="label106"> <property name="visible">True</property> <property name="label" translatable="yes">Field:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> <property name="top_attach">0</property> <property name="bottom_attach">1</property> <property name="x_options">fill</property> <property name="y_options">fill</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <widget class="GtkDialog" id="dlg_progress"> <property name="width_request">400</property> <property name="height_request">300</property> <property name="title" translatable="yes">Progress</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_CENTER</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> <property name="decorated">True</property> <property name="skip_taskbar_hint">False</property> <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> <property name="has_separator">True</property> <signal name="delete_event" handler="gtk_widget_hide" object="dlg_progress" last_modification_time="Sun, 15 Aug 2004 08:59:11 GMT"/> <signal name="size_allocate" handler="cb_dlg_progress_size_changed" last_modification_time="Sun, 15 Aug 2004 11:29:08 GMT"/> <child internal-child="vbox"> <widget class="GtkVBox" id="dialog-vbox8"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child internal-child="action_area"> <widget class="GtkHButtonBox" id="dialog-action_area8"> <property name="visible">True</property> <property name="layout_style">GTK_BUTTONBOX_END</property> <child> <widget class="GtkButton" id="b_stop"> <property name="visible">True</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="label">gtk-stop</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">0</property> <signal name="clicked" handler="cb_dlg_progress_stop" last_modification_time="Sat, 21 Aug 2004 23:11:41 GMT"/> </widget> </child> <child> <widget class="GtkButton" id="b_close"> <property name="visible">True</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="label">gtk-close</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">-7</property> <signal name="clicked" handler="gtk_widget_hide" object="dlg_progress" last_modification_time="Sun, 15 Aug 2004 08:30:33 GMT"/> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> <property name="pack_type">GTK_PACK_END</property> </packing> </child> <child> <widget class="GtkScrolledWindow" id="scrolledwindow14"> <property name="border_width">4</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="shadow_type">GTK_SHADOW_IN</property> <property name="window_placement">GTK_CORNER_TOP_LEFT</property> <child> <widget class="GtkTreeView" id="tv_progress"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="headers_visible">False</property> <property name="rules_hint">False</property> <property name="reorderable">False</property> <property name="enable_search">False</property> <property name="fixed_height_mode">False</property> <property name="hover_selection">False</property> <property name="hover_expand">False</property> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <widget class="GtkMenu" id="menu_file_list"> <child> <widget class="GtkMenuItem" id="m_ctx_manual_rename"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Manually rename a file</property> <property name="label" translatable="yes">Manual Rename...</property> <property name="use_underline">True</property> <signal name="activate" handler="cb_ctx_manual_rename" last_modification_time="Sun, 26 Sep 2004 17:42:39 GMT"/> </widget> </child> <child> <widget class="GtkSeparatorMenuItem" id="separator4"> <property name="visible">True</property> </widget> </child> <child> <widget class="GtkMenuItem" id="m_ctx_delete"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Delete selected files from disk</property> <property name="label" translatable="yes">Delete Selected Files</property> <property name="use_underline">True</property> <signal name="activate" handler="cb_ctx_delete" last_modification_time="Sun, 26 Sep 2004 19:05:34 GMT"/> </widget> </child> <child> <widget class="GtkSeparatorMenuItem" id="separator5"> <property name="visible">True</property> </widget> </child> <child> <widget class="GtkMenuItem" id="m_ctx_unselect_all"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Unselect all files</property> <property name="label" translatable="yes">Unselect All</property> <property name="use_underline">True</property> <signal name="activate" handler="cb_ctx_unselect_all" last_modification_time="Sun, 31 Oct 2004 19:12:06 GMT"/> </widget> </child> </widget> <widget class="GtkDialog" id="dlg_rename_file"> <property name="title" translatable="yes">Rename File</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_NONE</property> <property name="modal">True</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> <property name="decorated">True</property> <property name="skip_taskbar_hint">False</property> <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> <property name="has_separator">True</property> <child internal-child="vbox"> <widget class="GtkVBox" id="dialog-vbox9"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child internal-child="action_area"> <widget class="GtkHButtonBox" id="dialog-action_area9"> <property name="visible">True</property> <property name="layout_style">GTK_BUTTONBOX_END</property> <child> <widget class="GtkButton" id="cancelbutton1"> <property name="visible">True</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="label">gtk-cancel</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">-6</property> </widget> </child> <child> <widget class="GtkButton" id="okbutton1"> <property name="visible">True</property> <property name="can_default">True</property> <property name="has_default">True</property> <property name="can_focus">True</property> <property name="label">gtk-ok</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">-5</property> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> <property name="pack_type">GTK_PACK_END</property> </packing> </child> <child> <widget class="GtkHBox" id="hbox45"> <property name="border_width">8</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">8</property> <child> <widget class="GtkLabel" id="label183"> <property name="visible">True</property> <property name="label" translatable="yes">File Name:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkEntry" id="ent_file_name"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> <property name="visibility">True</property> <property name="max_length">0</property> <property name="text" translatable="yes"></property> <property name="has_frame">True</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <property name="width_chars">50</property> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <widget class="GtkDialog" id="dlg_scan_progress"> <property name="title" translatable="yes">Scan Progress</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_NONE</property> <property name="modal">True</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> <property name="decorated">True</property> <property name="skip_taskbar_hint">False</property> <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> <property name="has_separator">True</property> <child internal-child="vbox"> <widget class="GtkVBox" id="dialog-vbox10"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child internal-child="action_area"> <widget class="GtkHButtonBox" id="dialog-action_area10"> <property name="visible">True</property> <property name="layout_style">GTK_BUTTONBOX_END</property> <child> <widget class="GtkButton" id="b_scan_stop"> <property name="visible">True</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="label">gtk-stop</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">0</property> <signal name="clicked" handler="cb_dlg_scan_stop" last_modification_time="Mon, 01 Nov 2004 12:29:15 GMT"/> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> <property name="pack_type">GTK_PACK_END</property> </packing> </child> <child> <widget class="GtkVBox" id="vbox40"> <property name="border_width">16</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">8</property> <child> <widget class="GtkLabel" id="label197"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Scanning...</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkHBox" id="hbox52"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">8</property> <child> <widget class="GtkLabel" id="label199"> <property name="visible">True</property> <property name="label" translatable="yes">Directories scanned: Files found:</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_RIGHT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkLabel" id="lab_scan_progress"> <property name="visible">True</property> <property name="label">999999 999999</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> <widget class="GtkDialog" id="dlg_credits"> <property name="title" translatable="yes">Credits</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> <property name="decorated">True</property> <property name="skip_taskbar_hint">False</property> <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> <property name="has_separator">True</property> <child internal-child="vbox"> <widget class="GtkVBox" id="dialog-vbox11"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child internal-child="action_area"> <widget class="GtkHButtonBox" id="dialog-action_area11"> <property name="visible">True</property> <property name="layout_style">GTK_BUTTONBOX_END</property> <child> <widget class="GtkButton" id="closebutton1"> <property name="visible">True</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="label">gtk-close</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <property name="response_id">-7</property> <signal name="clicked" handler="gtk_widget_hide" object="dlg_credits" last_modification_time="Sat, 12 Feb 2005 18:49:41 GMT"/> </widget> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> <property name="pack_type">GTK_PACK_END</property> </packing> </child> <child> <widget class="GtkNotebook" id="notebook1"> <property name="border_width">8</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="show_tabs">True</property> <property name="show_border">True</property> <property name="tab_pos">GTK_POS_TOP</property> <property name="scrollable">False</property> <property name="enable_popup">False</property> <child> <widget class="GtkLabel" id="label209"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label">Pedro Ávila Lopes <paol1976@yahoo.com></property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">True</property> <property name="xalign">0</property> <property name="yalign">0</property> <property name="xpad">8</property> <property name="ypad">8</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label202"> <property name="visible">True</property> <property name="label" translatable="yes">Written by</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> <child> <widget class="GtkLabel" id="label210"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label">Rafael Bermúdez <rafaelber@yahoo.com.mx> (es) Christian Bjelle <christian@bjelle.se> (sv) Dovydas <laisve@gmail.com> (lt) Daniel van Eeden <daniel_e@dds.nl> (nl) Rafal Glazar <rafal_glazar@o2.pl> (pl) Dmytro Goykolov <goykolov@pisem.net> (ua) Jeremie Knuesel <jeremie.knuesel@epfl.ch> (fr) Oleksandr Korneta <atenrok@ua.fm> (ua) Vítězslav Kotrla <vitko@post.cz> (cs) Pedro Ávila Lopes <paol1976@yahoo.com> (pt) Pavel Maryanov <acid_jack@ukr.net> (ru) Christopher Orr <chris@protactin.co.uk> (en_GB) Rostislav Raykov <zbrox@i-space.org> (bg) Emilio Scalise <emisca@rocketmail.com> (it) Lucas Mazzardo Veloso <lmveloso@gmail.com> (pt_BR) Jan Wenzel <scripter01@gmx.net> (de) </property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">True</property> <property name="xalign">0</property> <property name="yalign">0</property> <property name="xpad">8</property> <property name="ypad">8</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> <child> <widget class="GtkLabel" id="label203"> <property name="visible">True</property> <property name="label" translatable="yes">Translated by</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> <property name="single_line_mode">False</property> <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> </packing> </child> </widget> <packing> <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> </packing> </child> </widget> </child> </widget> </glade-interface> �������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/mpeg_file.c����������������������������������������������������������������������0000644�0001750�0001750�00000060215�10541302762�015470� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <ctype.h> #include <errno.h> #include <string.h> #include <glib.h> #include <glib/gi18n.h> #include "math_util.h" #include "str_convert.h" #include "genre.h" #include "prefs_dlg.h" #include "mpeg_file.h" /*** private functions dealing with MPEG headers ****************************/ static gint lookup_bit_rate(guint8 major_ver, guint8 minor_ver, guint8 layer, gint id) { static gint v1[3][15] = { {0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448}, /* layer 1 */ {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384}, /* layer 2 */ {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320} /* layer 3 */ }; static gint v2[3][15] = { {0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256}, /* layer 1 */ {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160}, /* layer 2 */ {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160} /* layer 3 */ }; if (id == 0xF) return -1; if (major_ver == 1 && minor_ver == 0) return v1[layer-1][id]; else if (major_ver == 2 && (minor_ver == 0 || minor_ver == 5)) return v2[layer-1][id]; return -1; } static gint lookup_sample_rate(guint8 major_ver, guint8 minor_ver, gint id) { static gint v1[] = { 44100, 48000, 32000 }; static gint v2[] = { 22050, 24000, 16000 }; static gint v2_5[] = { 11025, 12000, 8000 }; if (id == 0x3) return -1; if (major_ver == 1 && minor_ver == 0) { return v1[id]; } else if (major_ver == 2) { if (minor_ver == 0) return v2[id]; if (minor_ver == 5) return v2_5[id]; } return -1; } static char *lookup_channel_mode(gint id) { static char *modes[] = { "Stereo", "Joint Stereo", "Dual Channel", "Mono" }; return modes[id]; } /* Reads the first valid mpeg header found in the given file */ static gboolean read_header(FILE *file, size_t offset, frame_header *header) { /* mpeg audio frame header (32 bits): AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM A Frame sync (all bits set) B MPEG Audio version ID C Layer number D CRC bit (if set 16 bit CRC folows header) E Bitrate ID F Sampling rate ID G Padding bit (if set frame is padded with one extra slot) H Private bit (free for application specific use) I Channel Mode J Mode extension (only if Joint Stereo) K Copyright bit L Original bit M Emphasis */ /* TODO: - This needs to be more robust. Any chunk of random binary data will seem to contain valid frame headers. Checking for 2 or 3 valid frames in a row should do the trick. - Calculate the playing time and include it in the info. Requires reading the whole file (because ov VBR) */ guint8 hdr[4]; fseek(file, offset, SEEK_SET); while (fread(&hdr, 1, 4, file) == 4) { /* first 11 bits should be set (frame synchronization mark) */ if (hdr[0] != 0xFF || (hdr[1] & 0xE0) != 0xE0) { /* frame sync not found */ fseek(file, -3, SEEK_CUR); continue; } /* get mpeg audio version */ switch (hdr[1]>>3 & 0x03) { case 3: header->major_version = 1; header->minor_version = 0; break; case 2: header->major_version = 2; header->minor_version = 0; break; case 0: header->major_version = 2; header->minor_version = 5; break; default: /* invalid version */ fseek(file, -3, SEEK_CUR); continue; } /* get layer number */ switch (hdr[1]>>1 & 0x03) { case 3: header->layer = 1; break; case 2: header->layer = 2; break; case 1: header->layer = 3; break; default: /* invalid layer */ fseek(file, -3, SEEK_CUR); continue; } /* get bit rate */ header->bit_rate = lookup_bit_rate(header->major_version, header->minor_version, header->layer, hdr[2]>>4 & 0x0F); if (header->bit_rate == -1) { /* invalid bitrate */ fseek(file, -3, SEEK_CUR); continue; } /* get sample rate */ header->sample_rate = lookup_sample_rate(header->major_version, header->minor_version, hdr[2]>>2 & 0x03); if (header->sample_rate == -1) { /* invalid sample rate */ fseek(file, -3, SEEK_CUR); continue; } /* get channel mode */ header->channel_mode = lookup_channel_mode(hdr[3]>>6 & 0x03); /* get copyright flag */ header->copyright = hdr[3]>>3 & 0x01; /* get original flag */ header->original = hdr[3]>>2 & 0x01; /* keep the offset */ header->offset = ftell(file)-4; /* keep the raw header */ memcpy(header->raw, hdr, 4); return TRUE; } /* eof or error, give up */ return FALSE; } /*** private functions dealing with ID3 tags ********************************/ /* Gets the ID3v2 frame id that corresponds to the given field */ static int frame_id_from_field(int field) { switch (field) { case AF_TITLE: return ID3FID_TITLE; // TIT2 case AF_ARTIST: return ID3FID_LEADARTIST; // TPE1 case AF_ALBUM: return ID3FID_ALBUM; // TALB case AF_YEAR: return ID3FID_YEAR; // TYER case AF_GENRE: return ID3FID_CONTENTTYPE; // TCON case AF_TRACK: return ID3FID_TRACKNUM; // TRCK case AF_COMMENT: return ID3FID_COMMENT; // COMM default: return ID3FID_NOFRAME; } } /* * Returns the string stored in a frame's text or url field. If the frame does * not have a text or url field, returns NULL. */ static const char *get_text_field(ID3Frame* frame) { static char *convbuf = NULL; static char *readbuf = NULL; static size_t readbuf_size = 128; ID3Field *field; int encoding; if (ID3Frame_GetID(frame) == ID3FID_NOFRAME) return "[ unknown frame ]"; field = ID3Frame_GetField(frame, ID3FN_TEXTENC); if (field != NULL) encoding = ID3Field_GetINT(field); else encoding = ID3TE_ISO8859_1; field = ID3Frame_GetField(frame, ID3FN_TEXT); if (field == NULL) field = ID3Frame_GetField(frame, ID3FN_URL); if (field == NULL) return NULL; if (readbuf == NULL) readbuf = malloc(readbuf_size); while(1) { size_t read; if (ID3TE_IS_SINGLE_BYTE_ENC(encoding)) read = ID3Field_GetASCII(field, readbuf, readbuf_size); else read = ID3Field_GetUNICODE(field, (unicode_t*)readbuf, readbuf_size / 2); if (read < readbuf_size) break; /* grow buffer when needed */ free(readbuf); readbuf_size *= 2; readbuf = malloc(readbuf_size); } free(convbuf); if (ID3TE_IS_SINGLE_BYTE_ENC(encoding)) { convbuf = str_convert_encoding(ISO_8859_1, UTF_8, readbuf); } else { /* * NOTE * Returned UTF-16 string does not hava a BOM, but seems to be big-endian. * No mention of this in the docs though, so can we rely on it??? */ convbuf = str_convert_encoding(UTF_16BE, UTF_8, readbuf); } return convbuf; } /* * Sets the string stored in a frame's text or url field. If the frame does * not have a text or url field, has no effect. */ static void set_text_field(ID3Frame* frame, const char *text) { ID3Field *field; char *convbuf; int encoding; field = ID3Frame_GetField(frame, ID3FN_TEXTENC); if (field != NULL) { // XXX make configurable ID3Field_SetINT(field, ID3TE_ISO8859_1); encoding = ISO_8859_1; } else { encoding = ISO_8859_1; } field = ID3Frame_GetField(frame, ID3FN_TEXT); if (field == NULL) field = ID3Frame_GetField(frame, ID3FN_URL); if (field == NULL) return; convbuf = str_convert_encoding(UTF_8, encoding, text); if (encoding == ISO_8859_1) ID3Field_SetASCII(field, convbuf); else ID3Field_SetUNICODE(field, (unicode_t*)convbuf); free(convbuf); } /* * Expand the genre notation used in ID3v2 TCON frames * NOTE: This function ignores anything past the first genre reference. * (The ID3v2 spec pointlessly complicates the definition of the TCON frame. * In fact the whole spec is an exercise in pointless complication. Sigh.) */ static const char *parse_v2_content_type(const char *text) { gulong id; char *end; if (text[0] != '(') return text; if (text[1] == '(') return text+1; id = strtoul(text+1, &end, 10); if (end == text || *end != ')') { return text; } else { const char *genre = genre_get_name((int)id); return (genre == NULL ? "" : genre); } } /* Encode the genre with the notation used in ID3v2 TCON frames */ static const char *encode_v2_content_type(const char *text) { static char buf[10]; int id = genre_get_id(text); if (id < 0) { return ""; } else { snprintf(buf, 10, "(%i)", id); return buf; } } /* Copy frames from one tag version to another */ static void copy_frames(int from_v, int to_v) { // XXX - this can't be done because the C wrapper is missing the // copy constructors and Field iterator. /* ID3Tag *from_tag, *to_tag; ID3Frame *from_frame, *to_frame; ID3TagIterator *i; from_tag = (from_v == ID3TT_ID3V1) ? f->v1_tag : f->v2_tag; to_tag = (to_v == ID3TT_ID3V1) ? f->v1_tag : f->v2_tag; i = ID3Tag_CreateIterator(from_tag); while ( (from_frame = ID3TagIterator_GetNext(i)) ) { } ID3TagIterator_Delete(i); */ } /* Remove all frames from a tag */ static void remove_all_frames(ID3Tag *tag) { ID3Frame *frame; ID3TagIterator *i = ID3Tag_CreateIterator(tag); while ( (frame = ID3TagIterator_GetNext(i)) ) { ID3Tag_RemoveFrame(tag, frame); ID3Frame_Delete(frame); } ID3TagIterator_Delete(i); } /* Returns TRUE if the tag can be saved to ID3v1 without loss of information */ static gboolean tag_fits_id3v1(ID3Tag *tag) { gboolean result = TRUE; ID3Frame *frame; ID3TagIterator *i; const char *text; const char *p; i = ID3Tag_CreateIterator(tag); while ( (frame = ID3TagIterator_GetNext(i)) && result ) { int id = ID3Frame_GetID(frame); switch (id) { case ID3FID_TITLE: case ID3FID_LEADARTIST: case ID3FID_ALBUM: case ID3FID_COMMENT: text = get_text_field(frame); result = strlen(text) <= 30; break; case ID3FID_YEAR: text = get_text_field(frame); result = strlen(text) <= 4; break; case ID3FID_CONTENTTYPE: text = parse_v2_content_type(get_text_field(frame)); result = genre_get_id(text) >= 0; break; case ID3FID_TRACKNUM: text = get_text_field(frame); for (p = text; *p && result; p++) result = isdigit(*p); break; default: result = FALSE; break; } } ID3TagIterator_Delete(i); return result; } /* Dump tag contents to stdout */ static void dump_tag(ID3Tag *tag) { ID3Frame *frame; ID3TagIterator *i; const char *text; i = ID3Tag_CreateIterator(tag); while ( (frame = ID3TagIterator_GetNext(i)) ) { int id = ID3Frame_GetID(frame); if (id != ID3FID_NOFRAME) printf("%s (%s)\n", ID3FrameInfo_LongName(id), ID3FrameInfo_Description(id)); else printf("**** UNKNOWN FRAME\n"); text = get_text_field(frame); if (text != NULL) printf("\t%s\n", text); else printf("\t[ non-text frame ]\n"); } ID3TagIterator_Delete(i); } /* * This wrapper is meant to be called from audio_file_write_changes() * It enforces the tag version preferences */ int mpeg_file_write_changes_wrapper(mpeg_file *f) { id3_prefs prefs = prefs_get_id3_prefs(); if (prefs.write_id3_version == WRITE_V1 && (!f->orig_v2_tag || !prefs.preserve_existing)) { mpeg_file_remove_tag_v(f, ID3TT_ID3V2); } else if (prefs.write_id3_version == WRITE_V2 && (!f->orig_v1_tag || !prefs.preserve_existing)) { mpeg_file_remove_tag_v(f, ID3TT_ID3V1); } else if (prefs.write_id3_version == WRITE_AUTO && (!f->orig_v2_tag || !prefs.preserve_existing)) { if (tag_fits_id3v1(f->v2_tag)) mpeg_file_remove_tag_v(f, ID3TT_ID3V2); } return mpeg_file_write_changes(f); } /*** public functions *******************************************************/ /* * MPEG implementation of the standard audio_file functions */ int mpeg_file_new(mpeg_file **f, const char *filename, gboolean editable) { mpeg_file newfile; int v2_disk_size; gboolean res; *f = NULL; newfile.file = fopen(filename, (editable ? "r+" : "r")); if (!newfile.file) return AF_ERR_FILE; /* read v1 tag */ newfile.v1_tag = ID3Tag_New(); ID3Tag_LinkWithFlags(newfile.v1_tag, filename, ID3TT_ID3V1); newfile.has_v1_tag = ID3Tag_HasTagType(newfile.v1_tag, ID3TT_ID3V1); newfile.orig_v1_tag = newfile.has_v1_tag; /* read v2 tag */ newfile.v2_tag = ID3Tag_New(); v2_disk_size = ID3Tag_LinkWithFlags(newfile.v2_tag, filename, ID3TT_ID3V2); newfile.has_v2_tag = ID3Tag_HasTagType(newfile.v2_tag, ID3TT_ID3V2);; newfile.orig_v2_tag = newfile.has_v2_tag; /* read 1st frame header */ res = read_header(newfile.file, v2_disk_size, &newfile.header); fclose(newfile.file); newfile.file = NULL; if (!res) { ID3Tag_Delete(newfile.v1_tag); ID3Tag_Delete(newfile.v2_tag); return AF_ERR_FORMAT; } newfile.type = AF_MPEG; newfile.name = strdup(filename); newfile.editable = editable; newfile.changed = FALSE; newfile.delete = (af_delete_func) mpeg_file_delete; newfile.get_desc = (af_get_desc_func) mpeg_file_get_desc; newfile.get_info = (af_get_info_func) mpeg_file_get_info; newfile.has_tag = (af_has_tag_func) mpeg_file_has_tag; newfile.create_tag = (af_create_tag_func) mpeg_file_create_tag; newfile.remove_tag = (af_remove_tag_func) mpeg_file_remove_tag; newfile.write_changes = (af_write_changes_func) mpeg_file_write_changes_wrapper; newfile.set_field = (af_set_field_func) mpeg_file_set_field; newfile.get_field = (af_get_field_func) mpeg_file_get_field; newfile.dump = (af_dump_func) mpeg_file_dump; newfile.edit_load = (af_edit_load_func) mpeg_file_edit_load; newfile.edit_unload = (af_edit_unload_func) mpeg_file_edit_unload; *f = malloc(sizeof(mpeg_file)); memcpy(*f, &newfile, sizeof(mpeg_file)); return AF_OK; } void mpeg_file_delete(mpeg_file *f) { if (f) { if (f->file) fclose(f->file); if (f->v1_tag != NULL) ID3Tag_Delete(f->v1_tag); if (f->v2_tag != NULL) ID3Tag_Delete(f->v2_tag); free(f->name); free(f); } } const char *mpeg_file_get_desc(mpeg_file *f) { static char buf[32]; snprintf(buf, 32, "MPEG version %d.%d, layer %d", f->header.major_version, f->header.minor_version, f->header.layer); return buf; } const char *mpeg_file_get_info(mpeg_file *f) { static char buf[256]; snprintf(buf, sizeof(buf), _("Bit Rate\n%d kbps\n" "Sample Rate\n%d Hz\n" "Channel Mode\n%s\n" "Copyrighted\n%s\n" "Original\n%s\n"), f->header.bit_rate, f->header.sample_rate, f->header.channel_mode, (f->header.copyright ? _("Yes") : _("No")), (f->header.original ? _("Yes") : _("No"))); return buf; } gboolean mpeg_file_has_tag(mpeg_file *f) { return f->has_v1_tag || f->has_v2_tag; } void mpeg_file_create_tag(mpeg_file *f) { mpeg_file_create_tag_v(f, ID3TT_ID3V1); mpeg_file_create_tag_v(f, ID3TT_ID3V2); } void mpeg_file_remove_tag(mpeg_file *f) { mpeg_file_remove_tag_v(f, ID3TT_ID3V1); mpeg_file_remove_tag_v(f, ID3TT_ID3V2); } int mpeg_file_write_changes(mpeg_file *f) { ID3_Err res; if (!f->changed) return AF_OK; if (!f->editable) return AF_ERR_READONLY; if (f->has_v1_tag) res = ID3Tag_UpdateByTagType(f->v1_tag, ID3TT_ID3V1); else { /* * NOTE BUG WORKAROUND: * Reloading the tag here is needed because if the other tag was * deleted in the meantime, id3lib gets all confused about the * size of the file and ends up leaving garbage at the end. */ ID3Tag_LinkWithFlags(f->v1_tag, f->name, ID3TT_ID3V1); res = ID3Tag_Strip(f->v1_tag, ID3TT_ID3V1); remove_all_frames(f->v1_tag); } if (res != ID3E_NoError) return AF_ERR_FILE; if (f->has_v2_tag) res = ID3Tag_UpdateByTagType(f->v2_tag, ID3TT_ID3V2); else { /* NOTE BUG WORKAROUND: same as above */ ID3Tag_LinkWithFlags(f->v2_tag, f->name, ID3TT_ID3V2); res = ID3Tag_Strip(f->v2_tag, ID3TT_ID3V2); remove_all_frames(f->v2_tag); } if (res != ID3E_NoError) return AF_ERR_FILE; f->changed = FALSE; return AF_OK; } int mpeg_file_set_field(mpeg_file *f, int field, const char *value) { if (f->has_v1_tag) { int res = mpeg_file_set_field_v(f, ID3TT_ID3V1, field, value); if (res != AF_OK) return res; } if (f->has_v2_tag) { int res = mpeg_file_set_field_v(f, ID3TT_ID3V2, field, value); if (res != AF_OK) return res; } return AF_OK; } int mpeg_file_get_field(mpeg_file *f, int field, const char **value) { int version; /* If both v1 and v2 tags are present v2 has priority */ if (f->has_v2_tag) version = ID3TT_ID3V2; else if (f->has_v1_tag) version = ID3TT_ID3V1; else return AF_ERR_NO_TAG; return mpeg_file_get_field_v(f, version, field, value); } void mpeg_file_dump(mpeg_file *f) { printf("\nFile type: MPEG Audio\n"); printf("\nFirst frame found at 0x%08X (header: 0x%02X%02X%02X%02X):\n", f->header.offset, f->header.raw[0], f->header.raw[1], f->header.raw[2], f->header.raw[3]); printf("MPEG type : Version %d.%d, Layer %d\n" "Bit rate : %d kbps\n" "Sample rate : %d Hz\n" "Channel mode: %s\n" "Copyrighted : %s\n" "Original : %s\n", f->header.major_version, f->header.minor_version, f->header.layer, f->header.bit_rate, f->header.sample_rate, f->header.channel_mode, (f->header.copyright ? "Yes" : "No"), (f->header.original ? "Yes" : "No")); if (f->has_v1_tag) { printf("\n---- ID3 v1 ----\n\n"); dump_tag(f->v1_tag); } if (f->has_v2_tag) { printf("\n---- ID3 v2 ----\n\n"); dump_tag(f->v2_tag); } if (!(f->has_v1_tag || f->has_v2_tag)) printf("\nNo ID3 tags.\n"); printf("\n"); } extern void mpeg_edit_load(mpeg_file *f); void mpeg_file_edit_load(mpeg_file *f) { mpeg_edit_load(f); } extern void mpeg_edit_unload(); void mpeg_file_edit_unload(mpeg_file *f) { mpeg_edit_unload(); } /* * MPEG specific functions */ gboolean mpeg_file_has_tag_v(mpeg_file *f, int version) { switch (version) { case ID3TT_ID3V1: return f->has_v1_tag; case ID3TT_ID3V2: return f->has_v2_tag; default: return FALSE; } } void mpeg_file_create_tag_v(mpeg_file *f, int version) { switch (version) { case ID3TT_ID3V1: if (!f->has_v1_tag) { f->has_v1_tag = TRUE; f->changed = TRUE; if (!f->has_v2_tag) copy_frames(ID3TT_ID3V2, ID3TT_ID3V1); } break; case ID3TT_ID3V2: if (!f->has_v2_tag) { f->has_v2_tag = TRUE; f->changed = TRUE; if (!f->has_v1_tag) copy_frames(ID3TT_ID3V1, ID3TT_ID3V2); } break; } } void mpeg_file_remove_tag_v(mpeg_file *f, int version) { switch (version) { case ID3TT_ID3V1: if (f->has_v1_tag) { remove_all_frames(f->v1_tag); f->has_v1_tag = FALSE; f->changed = TRUE; } break; case ID3TT_ID3V2: if (f->has_v2_tag) { remove_all_frames(f->v2_tag); f->has_v2_tag = FALSE; f->changed = TRUE; } break; } } int mpeg_file_set_field_v(mpeg_file *f, int version, int field, const char *value) { ID3Tag* tag = NULL; ID3Frame *frame = NULL; int frame_id = frame_id_from_field(field); if (version == ID3TT_ID3V1) tag = f->v1_tag; else if (version == ID3TT_ID3V2) tag = f->v2_tag; else return AF_ERR_NO_TAG; frame = ID3Tag_FindFrameWithID(tag, frame_id); if (strcmp(value, "") == 0) { if (frame != NULL) { ID3Tag_RemoveFrame(tag, frame); ID3Frame_Delete(frame); } return AF_OK; } if (frame == NULL) { frame = ID3Frame_NewID(frame_id); ID3Tag_AttachFrame(tag, frame); } return mpeg_file_set_frame_text(f, version, frame, value); } int mpeg_file_get_field_v(mpeg_file *f, int version, int field, const char **value) { ID3Tag* tag = NULL; ID3Frame *frame = NULL; *value = NULL; if (version == ID3TT_ID3V1) tag = f->v1_tag; else if (version == ID3TT_ID3V2) tag = f->v2_tag; else return AF_ERR_NO_TAG; frame = ID3Tag_FindFrameWithID(tag, frame_id_from_field(field)); if (frame != NULL) { return mpeg_file_get_frame_text(f, version, frame, value); } else { *value = ""; return AF_OK; } } int mpeg_file_set_frame_text(mpeg_file *f, int version, ID3Frame *frame, const char *value) { int frame_id = ID3Frame_GetID(frame); if (frame_id == ID3FID_NOFRAME) return AF_ERR_NO_FIELD; if (version == ID3TT_ID3V1 && frame_id == ID3FID_CONTENTTYPE) { /* when saving v1 tags, genre must be encoded numerically */ value = encode_v2_content_type(value); } set_text_field(frame, value); f->changed = TRUE; return AF_OK; } int mpeg_file_get_frame_text(mpeg_file *f, int version, ID3Frame *frame, const char **value) { int frame_id = ID3Frame_GetID(frame); *value = NULL; if (frame_id == ID3FID_NOFRAME) return AF_ERR_NO_FIELD; if (frame != NULL) *value = get_text_field(frame); if (frame_id == ID3FID_CONTENTTYPE) *value = parse_v2_content_type(*value); return AF_OK; } int mpeg_file_remove_frame(mpeg_file *f, int version, ID3Frame *frame) { ID3Tag* tag = NULL; if (version == ID3TT_ID3V1) tag = f->v1_tag; else if (version == ID3TT_ID3V2) tag = f->v2_tag; else return AF_ERR_NO_TAG; ID3Tag_RemoveFrame(tag, frame); ID3Frame_Delete(frame); return AF_OK; } int mpeg_file_get_frames(mpeg_file *f, int version, ID3Frame ***frames) { ID3Tag *tag; ID3Frame *frame; ID3TagIterator *iter; int num_frames; int i; if (version == ID3TT_ID3V1) tag = f->v1_tag; else if (version == ID3TT_ID3V2) tag = f->v2_tag; else return 0; num_frames = ID3Tag_NumFrames(tag); *frames = malloc(sizeof(ID3Frame*) * num_frames); i = 0; iter = ID3Tag_CreateIterator(tag); while ( (frame = ID3TagIterator_GetNext(iter)) ) (*frames)[i++] = frame; ID3TagIterator_Delete(iter); return num_frames; } void mpeg_file_get_frame_info(int frame_id, const char **name, const char** desc, gboolean *editable, gboolean *simple) { if (frame_id == ID3FID_NOFRAME) { if (name) *name = "????"; if (desc) *desc = "UNKNOWN FRAME"; if (editable) *editable = FALSE; if (simple) *simple = FALSE; } else { if (name) *name = ID3FrameInfo_LongName(frame_id); if (desc) *desc = ID3FrameInfo_Description(frame_id); if (editable) { char *aux = ID3FrameInfo_LongName(frame_id); if (aux == NULL || strlen(aux) != 4) *editable = FALSE; else if (aux[0] == 'T' && strcmp(aux, "TXXX") != 0) *editable = TRUE; else if (aux[0] == 'W' && strcmp(aux, "WXXX") != 0) *editable = TRUE; else if (strcmp(aux, "COMM") == 0) *editable = TRUE; else *editable = FALSE; } if (simple) { switch (frame_id) { case ID3FID_TITLE: case ID3FID_LEADARTIST: case ID3FID_ALBUM: case ID3FID_YEAR: case ID3FID_CONTENTTYPE: case ID3FID_TRACKNUM: case ID3FID_COMMENT: *simple = TRUE; break; default: *simple = FALSE; break; } } } } int mpeg_file_get_editable_frame_ids(int **ids) { static int editable_frame_ids[] = { /* COMM */ ID3FID_COMMENT, /* TALB */ ID3FID_ALBUM, /* TBPM */ ID3FID_BPM, /* TCOM */ ID3FID_COMPOSER, /* TCON */ ID3FID_CONTENTTYPE, /* TCOP */ ID3FID_COPYRIGHT, /* TDAT */ ID3FID_DATE, /* TDEN */ //ID3FID_ENCODINGTIME, /* TDLY */ ID3FID_PLAYLISTDELAY, /* TDOR */ //ID3FID_ORIGRELEASETIME, /* TDRC */ //ID3FID_RECORDINGTIME, /* TDRL */ //ID3FID_RELEASETIME, /* TDTG */ //ID3FID_TAGGINGTIME, /* TIPL */ //ID3FID_INVOLVEDPEOPLE2, /* TENC */ ID3FID_ENCODEDBY, /* TEXT */ ID3FID_LYRICIST, /* TFLT */ ID3FID_FILETYPE, /* TIME */ ID3FID_TIME, /* TIT1 */ ID3FID_CONTENTGROUP, /* TIT2 */ ID3FID_TITLE, /* TIT3 */ ID3FID_SUBTITLE, /* TKEY */ ID3FID_INITIALKEY, /* TLAN */ ID3FID_LANGUAGE, /* TLEN */ ID3FID_SONGLEN, /* TMCL */ //ID3FID_MUSICIANCREDITLIST, /* TMED */ ID3FID_MEDIATYPE, /* TMOO */ //ID3FID_MOOD, /* TOAL */ ID3FID_ORIGALBUM, /* TOFN */ ID3FID_ORIGFILENAME, /* TOLY */ ID3FID_ORIGLYRICIST, /* TOPE */ ID3FID_ORIGARTIST, /* TORY */ ID3FID_ORIGYEAR, /* TOWN */ ID3FID_FILEOWNER, /* TPE1 */ ID3FID_LEADARTIST, /* TPE2 */ ID3FID_BAND, /* TPE3 */ ID3FID_CONDUCTOR, /* TPE4 */ ID3FID_MIXARTIST, /* TPOS */ ID3FID_PARTINSET, /* TPRO */ //ID3FID_PRODUCEDNOTICE, /* TPUB */ ID3FID_PUBLISHER, /* TRCK */ ID3FID_TRACKNUM, /* TRDA */ ID3FID_RECORDINGDATES, /* TRSN */ ID3FID_NETRADIOSTATION, /* TRSO */ ID3FID_NETRADIOOWNER, /* TSIZ */ ID3FID_SIZE, /* TSOA */ //ID3FID_ALBUMSORTORDER, /* TSOP */ //ID3FID_PERFORMERSORTORDER, /* TSOT */ //ID3FID_TITLESORTORDER, /* TSRC */ ID3FID_ISRC, /* TSSE */ ID3FID_ENCODERSETTINGS, /* TSST */ //ID3FID_SETSUBTITLE, /* TYER */ ID3FID_YEAR, /* WCOM */ ID3FID_WWWCOMMERCIALINFO, /* WCOP */ ID3FID_WWWCOPYRIGHT, /* WOAF */ ID3FID_WWWAUDIOFILE, /* WOAR */ ID3FID_WWWARTIST, /* WOAS */ ID3FID_WWWAUDIOSOURCE, /* WORS */ ID3FID_WWWRADIOPAGE, /* WPAY */ ID3FID_WWWPAYMENT, /* WPUB */ ID3FID_WWWPUBLISHER }; *ids = editable_frame_ids; return sizeof(editable_frame_ids) / sizeof(int); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/mpeg_file.h����������������������������������������������������������������������0000644�0001750�0001750�00000007035�10541302762�015476� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef MPEG_FILE_H #define MPEG_FILE_H #include <id3.h> #include "audio_file.h" typedef struct { size_t offset; // file offset of this frame guint8 raw[4]; // raw header (4 bytes) guint8 major_version; guint8 minor_version; guint8 layer; gint bit_rate; gint sample_rate; gchar *channel_mode; gboolean copyright; gboolean original; } frame_header; typedef struct { /* common part -- must match struct audio_file defined in audio_file.h */ guint8 type; FILE *file; char *name; gboolean editable; gboolean changed; af_delete_func delete; af_get_desc_func get_desc; af_get_info_func get_info; af_has_tag_func has_tag; af_create_tag_func create_tag; af_remove_tag_func remove_tag; af_write_changes_func write_changes; af_set_field_func set_field; af_get_field_func get_field; af_dump_func dump; af_edit_load_func edit_load; af_edit_unload_func edit_unload; /* mpeg specific part */ frame_header header; /* data taken from the first frame's header */ ID3Tag* v1_tag; /* ID3 tag, v1 */ ID3Tag* v2_tag; /* ID3 tag, v2 */ gboolean has_v1_tag; /* TRUE if file currently has a v1 tag */ gboolean has_v2_tag; /* TRUE if file currently has a v2 tag */ gboolean orig_v1_tag; /* TRUE if file originally had a v1 tag */ gboolean orig_v2_tag; /* TRUE if file originally had a v2 tag */ } mpeg_file; /* * MPEG implementation of the standard audio_file functions */ int mpeg_file_new(mpeg_file **f, const char *filename, gboolean editable); void mpeg_file_delete(mpeg_file *f); const gchar *mpeg_file_get_desc(mpeg_file *f); const gchar *mpeg_file_get_info(mpeg_file *f); gboolean mpeg_file_has_tag(mpeg_file *f); void mpeg_file_create_tag(mpeg_file *f); void mpeg_file_remove_tag(mpeg_file *f); int mpeg_file_write_changes(mpeg_file *f); int mpeg_file_set_field(mpeg_file *f, int field, const char *value); int mpeg_file_get_field(mpeg_file *f, int field, const char **value); void mpeg_file_dump(mpeg_file *f); void mpeg_file_edit_load(mpeg_file *f); void mpeg_file_edit_unload(mpeg_file *f); /* * MPEG specific functions */ /* These are the same as the standard functions, but allow specifying which * tag version to work on. Version is either ID3TT_ID3V1 or ID3TT_ID3V2. */ gboolean mpeg_file_has_tag_v(mpeg_file *f, int version); void mpeg_file_create_tag_v(mpeg_file *f, int version); void mpeg_file_remove_tag_v(mpeg_file *f, int version); int mpeg_file_set_field_v(mpeg_file *f, int version, int field, const char *value); int mpeg_file_get_field_v(mpeg_file *f, int version, int field, const char **value); /* Get/set a frame's text. For non-text frames, set has no effect and * get returns a NULL value */ int mpeg_file_set_frame_text(mpeg_file *f, int version, ID3Frame *frame, const char *value); int mpeg_file_get_frame_text(mpeg_file *f, int version, ID3Frame *frame, const char **value); /* Remove a frame from a tag */ int mpeg_file_remove_frame(mpeg_file *f, int version, ID3Frame *frame); /* Gets an array with the frames present in the tag. The return value is * the number of frames returned. * Caller is responsible for freeing the array */ int mpeg_file_get_frames(mpeg_file *f, int version, ID3Frame ***frames); /* Gets information about a frame type. Unwanted output parameters can be NULL. */ void mpeg_file_get_frame_info(int frame_id, const char **name, const char** desc, gboolean *editable, gboolean *simple); /* Gets the list of frame IDs that are editable. The array must not be altered * or freed. The return value is the number of elements in the array. */ int mpeg_file_get_editable_frame_ids(int **ids); #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/mpeg_edit.c����������������������������������������������������������������������0000644�0001750�0001750�00000062714�10541302762�015504� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <glib.h> #include <glib/gi18n.h> #include <gtk/gtk.h> #include <gdk/gdkkeysyms.h> #include <glade/glade.h> #include "elist.h" #include "gtk_util.h" #include "mru.h" #include "prefs.h" #include "file_list.h" #include "message_box.h" #include "cursor.h" #include "genre.h" #include "mpeg_file.h" #include "mpeg_edit_field.h" #include "mpeg_edit.h" /* widgets */ static GtkWindow *w_main = NULL; static GtkNotebook *nb_edit = NULL; static GtkNotebook *nb_id3 = NULL; static GtkNotebook *nb_id3v1 = NULL; static GtkNotebook *nb_id3v2 = NULL; static GtkMenuItem *m_id3 = NULL; static GtkCheckMenuItem *m_id3v2_view_simple = NULL; static GtkCheckMenuItem *m_id3v2_view_advanced = NULL; static GtkMenuItem *m_id3_copyv1tov2 = NULL; static GtkMenuItem *m_id3_copyv2tov1 = NULL; static GtkButton *b_write_tag = NULL; static GtkButton *b_remove_tag = NULL; static GtkButton *b_id3v1_create_tag = NULL; static GtkEntry *ent_id3v1_title = NULL; static GtkEntry *ent_id3v1_artist = NULL; static GtkEntry *ent_id3v1_album = NULL; static GtkEntry *ent_id3v1_year = NULL; static GtkEntry *ent_id3v1_comment = NULL; static GtkSpinButton *spin_id3v1_track = NULL; static GtkCombo *combo_id3v1_genre = NULL; static GtkLabel *lab_id3v1_title = NULL; static GtkLabel *lab_id3v1_artist = NULL; static GtkLabel *lab_id3v1_album = NULL; static GtkLabel *lab_id3v1_year = NULL; static GtkLabel *lab_id3v1_comment = NULL; static GtkLabel *lab_id3v1_track = NULL; static GtkLabel *lab_id3v1_genre = NULL; static GtkButton *b_id3v2_create_tag = NULL; static GtkEntry *ent_id3v2_title = NULL; static GtkEntry *ent_id3v2_artist = NULL; static GtkEntry *ent_id3v2_album = NULL; static GtkEntry *ent_id3v2_year = NULL; static GtkTextView *text_id3v2_comment = NULL; static GtkEntry *ent_id3v2_track = NULL; static GtkCombo *combo_id3v2_genre = NULL; static GtkLabel *lab_id3v2_title = NULL; static GtkLabel *lab_id3v2_artist = NULL; static GtkLabel *lab_id3v2_album = NULL; static GtkLabel *lab_id3v2_year = NULL; static GtkLabel *lab_id3v2_comment = NULL; static GtkLabel *lab_id3v2_track = NULL; static GtkLabel *lab_id3v2_genre = NULL; static GtkLabel *lab_id3v2_advanced = NULL; static GtkTreeView *tv_id3v2_frames = NULL; static GtkListStore *store_id3v2_frames = NULL; static GtkButton *b_id3v2_add = NULL; static GtkButton *b_id3v2_edit = NULL; static GtkButton *b_id3v2_remove = NULL; static GtkImage *img_id3v1_tab = NULL; static GtkImage *img_id3v2_tab = NULL; static GdkPixbuf *pix_graydot; static GdkPixbuf *pix_greendot; /* the various notebook tabs */ #define TAB_ID3_V1 0 #define TAB_ID3_V2 1 #define TAB_ID3V1_NOTAG 0 #define TAB_ID3V1_TAG 1 #define TAB_ID3V2_NOTAG 0 #define TAB_ID3V2_SIMPLE 1 #define TAB_ID3V2_ADVANCED 2 /* private data */ static int tab_edit_id3; static gboolean changed_flag = TRUE; static gboolean editable_flag = TRUE; static gboolean ignore_changed_signals = FALSE; static mpeg_file *file = NULL; /* preferences */ static MRUList *genre_mru; static int *current_tab; /*** private functions ******************************************************/ static void tree_view_setup() { GtkTreeViewColumn *col; GtkCellRenderer *renderer; /* model */ store_id3v2_frames = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER); /* columns and renderers */ col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, _("Field")); gtk_tree_view_append_column(tv_id3v2_frames, col); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "ypad", 0, NULL); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "text", 0); col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, _("Text")); gtk_tree_view_append_column(tv_id3v2_frames, col); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "ypad", 0, NULL); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "text", 1); /* selection mode */ gtk_tree_selection_set_mode(gtk_tree_view_get_selection(tv_id3v2_frames), GTK_SELECTION_SINGLE); } static void set_changed_flag(gboolean value) { if (changed_flag == value) return; changed_flag = value; gtk_widget_set_sensitive(GTK_WIDGET(b_write_tag), value); } static void set_editable_flag(gboolean value) { if (editable_flag == value) return; editable_flag = value; gtk_widget_set_sensitive(GTK_WIDGET(b_remove_tag), value); /* v1 edit controls */ gtk_widget_set_sensitive(GTK_WIDGET(b_id3v1_create_tag), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_id3v1_title), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_id3v1_title), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_id3v1_artist), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_id3v1_artist), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_id3v1_album), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_id3v1_album), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_id3v1_year), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_id3v1_year), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_id3v1_comment), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_id3v1_comment), value); gtk_widget_set_sensitive(GTK_WIDGET(combo_id3v1_genre), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_id3v1_genre), value); gtk_widget_set_sensitive(GTK_WIDGET(spin_id3v1_track), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_id3v1_track), value); gtk_widget_set_sensitive(GTK_WIDGET(m_id3_copyv1tov2), value); /* v2 simple edit controls */ gtk_widget_set_sensitive(GTK_WIDGET(b_id3v2_create_tag), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_id3v2_title), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_id3v2_title), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_id3v2_artist), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_id3v2_artist), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_id3v2_album), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_id3v2_album), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_id3v2_year), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_id3v2_year), value); gtk_widget_set_sensitive(GTK_WIDGET(text_id3v2_comment), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_id3v2_comment), value); gtk_widget_set_sensitive(GTK_WIDGET(combo_id3v2_genre), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_id3v2_genre), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_id3v2_track), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_id3v2_track), value); gtk_widget_set_sensitive(GTK_WIDGET(m_id3_copyv2tov1), value); /* v2 advanced edit controls */ gtk_widget_set_sensitive(GTK_WIDGET(tv_id3v2_frames), value); gtk_widget_set_sensitive(GTK_WIDGET(b_id3v2_add), value); gtk_widget_set_sensitive(GTK_WIDGET(b_id3v2_edit), value); gtk_widget_set_sensitive(GTK_WIDGET(b_id3v2_remove), value); } static void update_form_v1() { const gchar *str; if (mpeg_file_has_tag_v(file, ID3TT_ID3V1)) { gtk_notebook_set_page(nb_id3v1, TAB_ID3V1_TAG); ignore_changed_signals = TRUE; mpeg_file_get_field_v(file, ID3TT_ID3V1, AF_TITLE, &str); gtk_entry_set_text(ent_id3v1_title, str); mpeg_file_get_field_v(file, ID3TT_ID3V1, AF_ARTIST, &str); gtk_entry_set_text(ent_id3v1_artist, str); mpeg_file_get_field_v(file, ID3TT_ID3V1, AF_ALBUM, &str); gtk_entry_set_text(ent_id3v1_album, str); mpeg_file_get_field_v(file, ID3TT_ID3V1, AF_YEAR, &str); gtk_entry_set_text(ent_id3v1_year, str); mpeg_file_get_field_v(file, ID3TT_ID3V1, AF_COMMENT, &str); gtk_entry_set_text(ent_id3v1_comment, str); mpeg_file_get_field_v(file, ID3TT_ID3V1, AF_TRACK, &str); gtk_spin_button_set_value(spin_id3v1_track, atoi(str)); mpeg_file_get_field_v(file, ID3TT_ID3V1, AF_GENRE, &str); gtk_entry_set_text(GTK_ENTRY(combo_id3v1_genre->entry), str); ignore_changed_signals = FALSE; } else { gtk_notebook_set_page(nb_id3v1, TAB_ID3V1_NOTAG); } set_editable_flag(audio_file_is_editable((audio_file *)file)); } static void update_form_v2() { const gchar *str; if (mpeg_file_has_tag_v(file, ID3TT_ID3V2)) { gtk_notebook_set_page(nb_id3v2, *current_tab); if (*current_tab == TAB_ID3V2_SIMPLE) { int extra_fields; ID3Frame **frames; int nframes; int i; ignore_changed_signals = TRUE; if (g_elist_length(genre_mru->list) > 0) gtk_combo_set_popdown_strings(combo_id3v2_genre, GLIST(genre_mru->list)); mpeg_file_get_field_v(file, ID3TT_ID3V2, AF_TITLE, &str); gtk_entry_set_text(ent_id3v2_title, str); mpeg_file_get_field_v(file, ID3TT_ID3V2, AF_ARTIST, &str); gtk_entry_set_text(ent_id3v2_artist, str); mpeg_file_get_field_v(file, ID3TT_ID3V2, AF_ALBUM, &str); gtk_entry_set_text(ent_id3v2_album, str); mpeg_file_get_field_v(file, ID3TT_ID3V2, AF_YEAR, &str); gtk_entry_set_text(ent_id3v2_year, str); mpeg_file_get_field_v(file, ID3TT_ID3V2, AF_COMMENT, &str); gtk_text_buffer_set_text(gtk_text_view_get_buffer(text_id3v2_comment), str, -1); mpeg_file_get_field_v(file, ID3TT_ID3V2, AF_TRACK, &str); gtk_entry_set_text(ent_id3v2_track, str); mpeg_file_get_field_v(file, ID3TT_ID3V2, AF_GENRE, &str); gtk_entry_set_text(GTK_ENTRY(combo_id3v2_genre->entry), str); ignore_changed_signals = FALSE; /* Show in the "Advanced" button label how many fields are not visible */ extra_fields = 0; nframes = mpeg_file_get_frames(file, ID3TT_ID3V2, &frames); for (i = 0; i < nframes; i++) { gboolean is_simple; mpeg_file_get_frame_info(ID3Frame_GetID(frames[i]), NULL, NULL, NULL, &is_simple); if (!is_simple) extra_fields++; } if (extra_fields > 0) { char str[16]; snprintf(str, sizeof(str), _("Advanced (%i)"), extra_fields); gtk_label_set_text(lab_id3v2_advanced, str); } else { gtk_label_set_text(lab_id3v2_advanced, _("Advanced")); } } else { ID3Frame **frames; int nframes; int i; nframes = mpeg_file_get_frames(file, ID3TT_ID3V2, &frames); /* fill in the list */ gtk_tree_view_set_model(tv_id3v2_frames, NULL); gtk_list_store_clear(store_id3v2_frames); for (i = 0; i < nframes; i++) { char short_desc[64]; const char *value; const char *desc, *p; GtkTreeIter iter; mpeg_file_get_frame_info(ID3Frame_GetID(frames[i]), NULL, &desc, NULL, NULL); p = strchr(desc, '/'); snprintf(short_desc, sizeof(short_desc), "%.*s", (p ? p-desc : sizeof(short_desc)), desc); mpeg_file_get_frame_text(file, ID3TT_ID3V2, frames[i], &value); if (value == NULL) value = "[non-text field]"; gtk_list_store_append(store_id3v2_frames, &iter); gtk_list_store_set(store_id3v2_frames, &iter, 0, short_desc, 1, value, 2, frames[i], -1); } gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store_id3v2_frames), 0, GTK_SORT_ASCENDING); gtk_tree_view_set_model(tv_id3v2_frames, GTK_TREE_MODEL(store_id3v2_frames)); free(frames); gtk_widget_set_sensitive(GTK_WIDGET(b_id3v2_edit), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(b_id3v2_remove), FALSE); } } else { gtk_notebook_set_page(nb_id3v2, TAB_ID3V2_NOTAG); } set_editable_flag(audio_file_is_editable((audio_file *)file)); } static void update_tag_from_form_v1(int tag) { mpeg_file_set_field_v(file, tag, AF_TITLE, gtk_entry_get_text(ent_id3v1_title)); mpeg_file_set_field_v(file, tag, AF_ARTIST, gtk_entry_get_text(ent_id3v1_artist)); mpeg_file_set_field_v(file, tag, AF_ALBUM, gtk_entry_get_text(ent_id3v1_album)); mpeg_file_set_field_v(file, tag, AF_YEAR, gtk_entry_get_text(ent_id3v1_year)); mpeg_file_set_field_v(file, tag, AF_COMMENT, gtk_entry_get_text(ent_id3v1_comment)); mpeg_file_set_field_v(file, tag, AF_TRACK, gtk_entry_get_text(GTK_ENTRY(spin_id3v1_track))); mpeg_file_set_field_v(file, tag, AF_GENRE, gtk_entry_get_text(GTK_ENTRY(combo_id3v1_genre->entry))); } static void update_tag_from_form_v2(int tag) { if (*current_tab == TAB_ID3V2_SIMPLE) { GtkTextIter start, end; gchar *temp; mpeg_file_set_field_v(file, tag, AF_TITLE, gtk_entry_get_text(ent_id3v2_title)); mpeg_file_set_field_v(file, tag, AF_ARTIST, gtk_entry_get_text(ent_id3v2_artist)); mpeg_file_set_field_v(file, tag, AF_ALBUM, gtk_entry_get_text(ent_id3v2_album)); mpeg_file_set_field_v(file, tag, AF_YEAR, gtk_entry_get_text(ent_id3v2_year)); mpeg_file_set_field_v(file, tag, AF_TRACK, gtk_entry_get_text(ent_id3v2_track)); mpeg_file_set_field_v(file, tag, AF_GENRE, gtk_entry_get_text(GTK_ENTRY(combo_id3v2_genre->entry))); gtk_text_buffer_get_bounds(gtk_text_view_get_buffer(text_id3v2_comment), &start, &end); temp = gtk_text_buffer_get_text(gtk_text_view_get_buffer(text_id3v2_comment), &start, &end, FALSE); mpeg_file_set_field_v(file, tag, AF_COMMENT, temp); g_free(temp); } else { /* Nothing to do here, advanced mode alters tag directly */ } } static void update_tag() { if (mpeg_file_has_tag_v(file, ID3TT_ID3V1)) update_tag_from_form_v1(ID3TT_ID3V1); if (mpeg_file_has_tag_v(file, ID3TT_ID3V2)) update_tag_from_form_v2(ID3TT_ID3V2); } static void update_tabs(gboolean allow_change) { if (mpeg_file_has_tag_v(file, ID3TT_ID3V1)) { gtk_image_set_from_pixbuf(img_id3v1_tab, pix_greendot); gtk_widget_set_sensitive(GTK_WIDGET(m_id3_copyv1tov2), TRUE); } else { gtk_image_set_from_pixbuf(img_id3v1_tab, pix_graydot); gtk_widget_set_sensitive(GTK_WIDGET(m_id3_copyv1tov2), FALSE); } if (mpeg_file_has_tag_v(file, ID3TT_ID3V2)) { gtk_image_set_from_pixbuf(img_id3v2_tab, pix_greendot); gtk_widget_set_sensitive(GTK_WIDGET(m_id3_copyv2tov1), TRUE); } else { gtk_image_set_from_pixbuf(img_id3v2_tab, pix_graydot); gtk_widget_set_sensitive(GTK_WIDGET(m_id3_copyv2tov1), FALSE); } gtk_notebook_set_page(nb_edit, tab_edit_id3); if (allow_change) { if (mpeg_file_has_tag_v(file, ID3TT_ID3V2)) gtk_notebook_set_page(nb_id3, TAB_ID3_V2); else gtk_notebook_set_page(nb_id3, TAB_ID3_V1); } } static void write_to_file() { int res; cursor_set_wait(); if (mpeg_file_has_tag_v(file, ID3TT_ID3V2)) { const char *genre = gtk_entry_get_text(GTK_ENTRY(combo_id3v2_genre->entry)); if (strcmp(genre, "") != 0) mru_add(genre_mru, genre); } res = mpeg_file_write_changes(file); if (res != AF_OK) { char msg[512]; snprintf(msg, sizeof(msg), _("Error saving file \"%s\":\n%s (%d)"), file->name, strerror(errno), errno); message_box(w_main, _("Error Saving File"), msg, 0, GTK_STOCK_OK, NULL); } else { set_changed_flag(FALSE); } cursor_set_normal(); } /*** UI callbacks ***********************************************************/ void cb_id3_write_changes(GtkButton *button, gpointer user_data) { if (!file) { g_warning("file is not open!"); return; } update_tag(); write_to_file(); } void cb_id3_remove_tag(GtkButton *button, gpointer user_data) { if (!file) { g_warning("file is not open!"); return; } if (gtk_notebook_get_current_page(nb_id3) == TAB_ID3_V1) { mpeg_file_remove_tag_v(file, ID3TT_ID3V1); update_form_v1(); } else { mpeg_file_remove_tag_v(file, ID3TT_ID3V2); update_form_v2(); } update_tabs(TRUE); set_changed_flag(TRUE); } void cb_id3v1_create_tag(GtkButton *button, gpointer user_data) { if (!file) { g_warning("file is not open!"); return; } mpeg_file_create_tag_v(file, ID3TT_ID3V1); set_changed_flag(TRUE); update_form_v1(); update_tabs(FALSE); } void cb_id3v2_create_tag(GtkButton *button, gpointer user_data) { if (!file) { g_warning("file is not open!"); return; } mpeg_file_create_tag_v(file, ID3TT_ID3V2); set_changed_flag(TRUE); update_form_v2(); update_tabs(FALSE); } /* v1 and v2 simple mode callbacks */ void cb_id3_tag_changed(GObject *obj, gpointer user_data) { if (!ignore_changed_signals) set_changed_flag(TRUE); } gboolean cb_id3_keypress(GtkWidget *widget, GdkEventKey *event, gpointer user_data) { /* <return> saves the tag and advances to the next file */ if (event->keyval == GDK_Return) { if (file && changed_flag) { update_tag(); write_to_file(); } fl_select_next_file(); return TRUE; } return FALSE; } /* v2 advanced mode callbacks */ void cb_id3v2_frame_selection_changed(GtkTreeSelection *selection, gpointer data) { if (gtk_tree_selection_count_selected_rows(selection) == 0) { gtk_widget_set_sensitive(GTK_WIDGET(b_id3v2_edit), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(b_id3v2_remove), FALSE); } else { GtkTreeModel *model; GtkTreeIter iter; ID3Frame *frame; gboolean editable; gtk_tree_view_get_first_selected(tv_id3v2_frames, &model, &iter); gtk_tree_model_get(model, &iter, 2, &frame, -1); mpeg_file_get_frame_info(ID3Frame_GetID(frame), NULL, NULL, &editable, NULL); gtk_widget_set_sensitive(GTK_WIDGET(b_id3v2_edit), editable); gtk_widget_set_sensitive(GTK_WIDGET(b_id3v2_remove), TRUE); } } void cb_id3v2_add(GtkButton *button, gpointer user_data) { if ( mpeg_editfld_create_frame(file, ID3TT_ID3V2) ) { set_changed_flag(TRUE); update_form_v2(); } } void cb_id3v2_edit(GtkButton *button, gpointer user_data) { GtkTreeModel *model; GtkTreeIter iter; if (gtk_tree_view_get_first_selected(tv_id3v2_frames, &model, &iter)) { ID3Frame *frame; gboolean editable; gtk_tree_model_get(model, &iter, 2, &frame, -1); mpeg_file_get_frame_info(ID3Frame_GetID(frame), NULL, NULL, &editable, NULL); if (!editable) return; if ( mpeg_editfld_edit_frame(file, ID3TT_ID3V2, frame) ) { set_changed_flag(TRUE); update_form_v2(); } } } void cb_id3v2_frame_row_activated(GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer user_data) { /* same as clicking the edit button */ cb_id3v2_edit(NULL, NULL); } void cb_id3v2_remove(GtkButton *button, gpointer user_data) { GtkTreeModel *model; GtkTreeIter iter; if (gtk_tree_view_get_first_selected(tv_id3v2_frames, &model, &iter)) { ID3Frame *frame; gtk_tree_model_get(model, &iter, 2, &frame, -1); mpeg_file_remove_frame(file, ID3TT_ID3V2, frame); set_changed_flag(TRUE); update_form_v2(); } } void cb_id3v2_view_button(GtkButton *button, gpointer user_data) { if (*current_tab == TAB_ID3V2_SIMPLE) gtk_check_menu_item_set_active(m_id3v2_view_advanced, TRUE); else if (*current_tab == TAB_ID3V2_ADVANCED) gtk_check_menu_item_set_active(m_id3v2_view_simple, TRUE); } /* menu callbacks */ void cb_id3v2_view_simple(GtkWidget *widget, GdkEvent *event) { if (*current_tab == TAB_ID3V2_ADVANCED) { *current_tab = TAB_ID3V2_SIMPLE; if (gtk_notebook_get_current_page(nb_id3v2) != TAB_ID3V2_NOTAG) { update_form_v2(); gtk_notebook_set_page(nb_id3v2, TAB_ID3V2_SIMPLE); } } } void cb_id3v2_view_advanced(GtkWidget *widget, GdkEvent *event) { if (*current_tab == TAB_ID3V2_SIMPLE) { update_tag_from_form_v2(ID3TT_ID3V2); *current_tab = TAB_ID3V2_ADVANCED; if (gtk_notebook_get_current_page(nb_id3v2) != TAB_ID3V2_NOTAG) { update_form_v2(); gtk_notebook_set_page(nb_id3v2, TAB_ID3V2_ADVANCED); } } } void cb_id3_copyv1tov2(GtkWidget *widget, GdkEvent *event) { if (!file) { g_warning("file is not open!"); return; } if (!mpeg_file_has_tag_v(file, ID3TT_ID3V2)) mpeg_file_create_tag_v(file, ID3TT_ID3V2); update_tag_from_form_v1(ID3TT_ID3V2); set_changed_flag(TRUE); update_form_v2(); update_tabs(FALSE); } void cb_id3_copyv2tov1(GtkWidget *widget, GdkEvent *event) { if (!file) { g_warning("file is not open!"); return; } if (!mpeg_file_has_tag_v(file, ID3TT_ID3V1)) mpeg_file_create_tag_v(file, ID3TT_ID3V1); update_tag_from_form_v2(ID3TT_ID3V1); set_changed_flag(TRUE); update_form_v1(); update_tabs(FALSE); } /*** public functions *******************************************************/ void mpeg_edit_load(mpeg_file *f) { gtk_widget_show(GTK_WIDGET(m_id3)); file = f; set_changed_flag(FALSE); update_form_v1(); update_form_v2(); update_tabs(TRUE); } void mpeg_edit_unload() { if (changed_flag) { int button; button = message_box(w_main, _("Save Changes"), _("ID3 Tag has been modified. Save changes?"), 1, _("Discard"), GTK_STOCK_SAVE, NULL); if (button == 1) { /* save button was pressed */ update_tag(); write_to_file(); } } file = NULL; if (GTK_IS_WIDGET(m_id3)) gtk_widget_hide(GTK_WIDGET(m_id3)); } void mpeg_edit_init(GladeXML *xml) { GEList *temp_list; GEList *genre_list; int default_tab = TAB_ID3V2_SIMPLE; /* get the widgets from glade */ w_main = GTK_WINDOW(glade_xml_get_widget(xml, "w_main")); nb_edit = GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_edit")); nb_id3 = GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_id3")); nb_id3v1 = GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_id3v1")); nb_id3v2 = GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_id3v2")); m_id3 = GTK_MENU_ITEM(glade_xml_get_widget(xml, "m_id3")); m_id3v2_view_simple = GTK_CHECK_MENU_ITEM(glade_xml_get_widget(xml, "m_id3v2_view_simple")); m_id3v2_view_advanced = GTK_CHECK_MENU_ITEM(glade_xml_get_widget(xml, "m_id3v2_view_advanced")); m_id3_copyv1tov2 = GTK_MENU_ITEM(glade_xml_get_widget(xml, "m_id3_copyv1tov2")); m_id3_copyv2tov1 = GTK_MENU_ITEM(glade_xml_get_widget(xml, "m_id3_copyv2tov1")); b_write_tag = GTK_BUTTON(glade_xml_get_widget(xml, "b_id3_write_tag")); b_remove_tag = GTK_BUTTON(glade_xml_get_widget(xml, "b_id3_remove_tag")); b_id3v1_create_tag = GTK_BUTTON(glade_xml_get_widget(xml, "b_id3v1_create_tag")); ent_id3v1_title = GTK_ENTRY(glade_xml_get_widget(xml, "ent_id3v1_title")); ent_id3v1_artist = GTK_ENTRY(glade_xml_get_widget(xml, "ent_id3v1_artist")); ent_id3v1_album = GTK_ENTRY(glade_xml_get_widget(xml, "ent_id3v1_album")); ent_id3v1_year = GTK_ENTRY(glade_xml_get_widget(xml, "ent_id3v1_year")); ent_id3v1_comment = GTK_ENTRY(glade_xml_get_widget(xml, "ent_id3v1_comment")); spin_id3v1_track = GTK_SPIN_BUTTON(glade_xml_get_widget(xml, "spin_id3v1_track")); combo_id3v1_genre = GTK_COMBO(glade_xml_get_widget(xml, "combo_id3v1_genre")); lab_id3v1_title = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v1_title")); lab_id3v1_artist = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v1_artist")); lab_id3v1_album = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v1_album")); lab_id3v1_year = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v1_year")); lab_id3v1_comment = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v1_comment")); lab_id3v1_track = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v1_track")); lab_id3v1_genre = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v1_genre")); b_id3v2_create_tag = GTK_BUTTON(glade_xml_get_widget(xml, "b_id3v2_create_tag")); ent_id3v2_title = GTK_ENTRY(glade_xml_get_widget(xml, "ent_id3v2_title")); ent_id3v2_artist = GTK_ENTRY(glade_xml_get_widget(xml, "ent_id3v2_artist")); ent_id3v2_album = GTK_ENTRY(glade_xml_get_widget(xml, "ent_id3v2_album")); ent_id3v2_year = GTK_ENTRY(glade_xml_get_widget(xml, "ent_id3v2_year")); text_id3v2_comment = GTK_TEXT_VIEW(glade_xml_get_widget(xml, "text_id3v2_comment")); ent_id3v2_track = GTK_ENTRY(glade_xml_get_widget(xml, "ent_id3v2_track")); combo_id3v2_genre = GTK_COMBO(glade_xml_get_widget(xml, "combo_id3v2_genre")); lab_id3v2_title = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v2_title")); lab_id3v2_artist = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v2_artist")); lab_id3v2_album = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v2_album")); lab_id3v2_year = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v2_year")); lab_id3v2_comment = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v2_comment")); lab_id3v2_track = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v2_track")); lab_id3v2_genre = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v2_genre")); lab_id3v2_advanced = GTK_LABEL(glade_xml_get_widget(xml, "lab_id3v2_advanced")); tv_id3v2_frames = GTK_TREE_VIEW(glade_xml_get_widget(xml, "tv_id3v2_frames")); b_id3v2_add = GTK_BUTTON(glade_xml_get_widget(xml, "b_id3v2_add")); b_id3v2_edit = GTK_BUTTON(glade_xml_get_widget(xml, "b_id3v2_edit")); b_id3v2_remove = GTK_BUTTON(glade_xml_get_widget(xml, "b_id3v2_remove")); img_id3v1_tab = GTK_IMAGE(glade_xml_get_widget(xml, "img_id3v1_tab")); img_id3v2_tab = GTK_IMAGE(glade_xml_get_widget(xml, "img_id3v2_tab")); /* additional widget setup */ gtk_editable_set_max_chars(GTK_EDITABLE(ent_id3v1_title), 30); gtk_editable_set_max_chars(GTK_EDITABLE(ent_id3v1_artist), 30); gtk_editable_set_max_chars(GTK_EDITABLE(ent_id3v1_album), 30); gtk_editable_set_max_chars(GTK_EDITABLE(ent_id3v1_comment), 29); gtk_editable_set_max_chars(GTK_EDITABLE(ent_id3v1_year), 4); g_signal_connect(G_OBJECT(gtk_text_view_get_buffer(text_id3v2_comment)), "changed", G_CALLBACK(cb_id3_tag_changed), NULL); /* load the pixbufs */ pix_graydot = gdk_pixbuf_new_from_file(DATADIR"/graydot.png", NULL); pix_greendot = gdk_pixbuf_new_from_file(DATADIR"/greendot.png", NULL); /* set up the tree view */ tree_view_setup(); g_signal_connect(gtk_tree_view_get_selection(tv_id3v2_frames), "changed", G_CALLBACK(cb_id3v2_frame_selection_changed), NULL); /* find out which tab has the ID3 interface */ tab_edit_id3 = gtk_notebook_page_num(nb_edit, glade_xml_get_widget(xml, "cont_id3_edit")); /* ID3v1 genre list */ temp_list = genre_create_list(TRUE); g_elist_prepend(temp_list, ""); gtk_combo_set_popdown_strings(combo_id3v1_genre, GLIST(temp_list)); g_elist_free(temp_list); /* ID3v2 genre list, from prefs */ temp_list = g_elist_new(); genre_list = pref_get_or_set("common_edit:genre_mru", PREF_STRING | PREF_LIST, temp_list); g_elist_free_data(temp_list); genre_mru = mru_new_from_list(50, genre_list); /* current_tab, from prefs */ current_tab = pref_get_or_set("id3_edit:current_tab", PREF_INT, &default_tab); if (*current_tab != TAB_ID3V2_SIMPLE && *current_tab != TAB_ID3V2_ADVANCED) *current_tab = default_tab; if (*current_tab == TAB_ID3V2_SIMPLE) gtk_check_menu_item_set_active(m_id3v2_view_simple, TRUE); else if (*current_tab == TAB_ID3V2_ADVANCED) gtk_check_menu_item_set_active(m_id3v2_view_advanced, TRUE); } ����������������������������������������������������tagtool-0.12.3/src/mpeg_edit.h����������������������������������������������������������������������0000644�0001750�0001750�00000000127�10541302762�015477� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef MPEG_EDIT_H #define MPEG_EDIT_H void mpeg_edit_init(GladeXML *xml); #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/mpeg_edit_field.c����������������������������������������������������������������0000644�0001750�0001750�00000010715�10541302762�016641� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <string.h> #include <glib.h> #include <glib/gi18n.h> #include <gtk/gtk.h> #include <glade/glade.h> #include "elist.h" #include "glib_util.h" #include "mpeg_file.h" #include "mpeg_edit_field.h" enum { MODE_CREATE, MODE_EDIT }; /* widgets */ static GtkDialog *dlg; static GtkTable *table; static GtkEntry *entry; static GtkButton *b_ok; static GtkButton *b_cancel; static GtkWidget *widget; /* dinamically created "field" widget */ /* private data */ static GHashTable *frame_id_table = NULL; /*** private functions ******************************************************/ static void set_ui(int mode, mpeg_file *file, int tag_version, ID3Frame *frame) { const char* title; char buffer[256]; if (mode == MODE_CREATE) { GEList *strings; int *ids; int n_ids; int i; title = _("New ID3 Field"); widget = gtk_combo_new(); gtk_combo_set_value_in_list(GTK_COMBO(widget), TRUE, FALSE); gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(widget)->entry), FALSE); frame_id_table = g_hash_table_new(g_str_hash, g_str_equal); n_ids = mpeg_file_get_editable_frame_ids(&ids); strings = g_elist_new(); for (i = 0; i < n_ids; i++) { const char *name; const char *desc; char *display_name; mpeg_file_get_frame_info(ids[i], &name, &desc, NULL, NULL); snprintf(buffer, sizeof(buffer), "%s (%s)", desc, name); display_name = strdup(buffer); g_hash_table_insert(frame_id_table, display_name, (gpointer)ids[i]); g_elist_append(strings, display_name); } g_elist_sort(strings, (GCompareFunc)strcoll); gtk_combo_set_popdown_strings(GTK_COMBO(widget), GLIST(strings)); g_elist_free(strings); } else { const char *name; const char *desc; const char *text; mpeg_file_get_frame_info(ID3Frame_GetID(frame), &name, &desc, NULL, NULL); snprintf(buffer, sizeof(buffer), "%s (%s)", desc, name); title = _("Edit ID3 Field"); widget = gtk_label_new(buffer); gtk_label_set_justify(GTK_LABEL(widget), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5); mpeg_file_get_frame_text(file, tag_version, frame, &text); gtk_entry_set_text(entry, text); } gtk_window_set_title(GTK_WINDOW(dlg), title); gtk_table_attach(table, widget, 1, 2, 0, 1, GTK_FILL|GTK_EXPAND, GTK_SHRINK, 0, 0); gtk_widget_show_all(GTK_WIDGET(dlg)); } static void clear_ui() { if (frame_id_table != NULL) { g_hash_table_free(frame_id_table, TRUE, FALSE); frame_id_table = NULL; } gtk_entry_set_text(entry, ""); gtk_widget_destroy(widget); } static void create_frame(mpeg_file *file, int tag_version) { int frame_id; ID3Frame *new_frame; ID3Tag *tag; if (tag_version == ID3TT_ID3V1) tag = file->v1_tag; else tag = file->v2_tag; frame_id = (int)g_hash_table_lookup(frame_id_table, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(widget)->entry))); new_frame = ID3Frame_NewID(frame_id); ID3Tag_AttachFrame(tag, new_frame); mpeg_file_set_frame_text(file, tag_version, new_frame, gtk_entry_get_text(entry)); } static void update_frame(mpeg_file *file, int tag_version, ID3Frame *frame) { mpeg_file_set_frame_text(file, tag_version, frame, gtk_entry_get_text(entry)); } static gboolean do_modal(int mode, mpeg_file *file, int tag_version, ID3Frame *frame) { int result; /* create the missing widgets */ set_ui(mode, file, tag_version, frame); /* show the dialog and wait for it to finish */ result = gtk_dialog_run(dlg); if (result == GTK_RESPONSE_OK) { if (mode == MODE_CREATE) create_frame(file, tag_version); else update_frame(file, tag_version, frame); } /* cleanup and return the result */ gtk_widget_hide(GTK_WIDGET(dlg)); clear_ui(); return (result == GTK_RESPONSE_OK); } /*** public functions *******************************************************/ gboolean mpeg_editfld_create_frame(mpeg_file *file, int tag_version) { return do_modal(MODE_CREATE, file, tag_version, NULL); } gboolean mpeg_editfld_edit_frame(mpeg_file *file, int tag_version, ID3Frame *frame) { return do_modal(MODE_EDIT, file, tag_version, frame); } void mpeg_editfld_init(GladeXML *xml) { dlg = GTK_DIALOG(glade_xml_get_widget(xml, "dlg_edit_field")); table = GTK_TABLE(glade_xml_get_widget(xml, "t_edit_field")); entry = GTK_ENTRY(glade_xml_get_widget(xml, "ent_edit_field_text")); b_ok = GTK_BUTTON(glade_xml_get_widget(xml, "b_edit_field_ok")); b_cancel = GTK_BUTTON(glade_xml_get_widget(xml, "b_edit_field_cancel")); gtk_window_set_transient_for(GTK_WINDOW(dlg), GTK_WINDOW(glade_xml_get_widget(xml, "w_main"))); } ���������������������������������������������������tagtool-0.12.3/src/mpeg_edit_field.h����������������������������������������������������������������0000644�0001750�0001750�00000000454�10541302762�016645� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef MPEG_EDIT_FIELD_H #define MPEG_EDIT_FIELD_H #include <id3.h> #include "mpeg_file.h" gboolean mpeg_editfld_create_frame(mpeg_file *file, int tag_version); gboolean mpeg_editfld_edit_frame(mpeg_file *file, int tag_version, ID3Frame *frame); void mpeg_editfld_init(GladeXML *xml); #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/aux_id3lib.c���������������������������������������������������������������������0000644�0001750�0001750�00000077232�10541302762�015573� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� /* * NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE * * This code wast adapted from ID3Lib 3.8.3, to work around a bug: * The C wrapper defines a bunch of ID3FrameInfo_* functions, but the * implementation is actually missing from the library. As soon as * that bug is fixed this file can be removed. * * NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE */ #include "config.h" #ifdef LIBID3_MISSING_ID3FRAMEINFO #include <id3.h> typedef struct { ID3_FieldID _id; ID3_FieldType _type; size_t _fixed_size; ID3_V2Spec _spec_begin; ID3_V2Spec _spec_end; flags_t _flags; ID3_FieldID _linked_field; //static const ID3_FieldDef* DEFAULT; } ID3_FieldDef; typedef struct { ID3_FrameID eID; char sShortTextID[3 + 1]; char sLongTextID[4 + 1]; bool bTagDiscard; bool bFileDiscard; const ID3_FieldDef* aeFieldDefs; const char * sDescription; } ID3_FrameDef; //---------------------------------------------------------------------- // This is used for unimplemented frames so that their data is preserved when // parsing and rendering static ID3_FieldDef ID3FD_Unimplemented[] = { { ID3FN_DATA, // FIELD NAME ID3FTY_BINARY, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_URL[] = { { ID3FN_URL, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_UserURL[] = { { ID3FN_TEXTENC, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 1, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_DESCRIPTION, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_CSTR | ID3FF_ENCODABLE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_URL, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_Text[] = { { ID3FN_TEXTENC, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 1, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_TEXT, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_ENCODABLE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_UserText[] = { { ID3FN_TEXTENC, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 1, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_DESCRIPTION, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_CSTR | ID3FF_ENCODABLE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_TEXT, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_ENCODABLE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_GeneralText[] = { { ID3FN_TEXTENC, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 1, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_LANGUAGE, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 3, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_DESCRIPTION, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_CSTR | ID3FF_ENCODABLE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_TEXT, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_ENCODABLE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_TermsOfUse[] = { { ID3FN_TEXTENC, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 1, // FIXED LEN ID3V2_3_0, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_LANGUAGE, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 3, // FIXED LEN ID3V2_3_0, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_TEXT, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_3_0, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_ENCODABLE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_LinkedInfo[] = { { ID3FN_ID, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 3, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_2_1, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_ID, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 4, // FIXED LEN ID3V2_3_0, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_URL, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_CSTR, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_TEXT, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_Picture[] = { { ID3FN_TEXTENC, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 1, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_IMAGEFORMAT, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 3, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_2_1, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_MIMETYPE, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_3_0, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_CSTR, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_PICTURETYPE, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 1, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_DESCRIPTION, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_CSTR | ID3FF_ENCODABLE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_DATA, // FIELD NAME ID3FTY_BINARY, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_GEO[] = { { ID3FN_TEXTENC, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 1, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_MIMETYPE, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_CSTR, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_FILENAME, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_CSTR | ID3FF_ENCODABLE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_DESCRIPTION, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_CSTR | ID3FF_ENCODABLE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_DATA, // FIELD NAME ID3FTY_BINARY, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_UFI[] = { { ID3FN_OWNER, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_CSTR, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_DATA, // FIELD NAME ID3FTY_BINARY, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_PlayCounter[] = { { ID3FN_COUNTER, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 4, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_Popularimeter[] = { { ID3FN_EMAIL, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_CSTR, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_RATING, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 1, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_COUNTER, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 4, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_Private[] = { { ID3FN_OWNER, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_3_0, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_CSTR, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_DATA, // FIELD NAME ID3FTY_BINARY, // FIELD TYPE 0, // FIXED LEN ID3V2_3_0, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_Registration[] = { { ID3FN_OWNER, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_3_0, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_CSTR, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_ID, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 1, // FIXED LEN ID3V2_3_0, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_DATA, // FIELD NAME ID3FTY_BINARY, // FIELD TYPE 0, // FIXED LEN ID3V2_3_0, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_InvolvedPeople[] = { { ID3FN_TEXTENC, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 1, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_TEXT, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_TEXTLIST, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FieldDef ID3FD_CDM[] = { { ID3FN_DATA, // FIELD NAME ID3FTY_BINARY, // FIELD TYPE 0, // FIXED LEN ID3V2_2_1, // INITIAL SPEC ID3V2_2_1, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD } }; static ID3_FieldDef ID3FD_SyncLyrics[] = { { ID3FN_TEXTENC, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 1, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_LANGUAGE, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 3, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_TIMESTAMPFORMAT, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 1, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_CONTENTTYPE, // FIELD NAME ID3FTY_INTEGER, // FIELD TYPE 1, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_DESCRIPTION, // FIELD NAME ID3FTY_TEXTSTRING, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_CSTR | ID3FF_ENCODABLE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_DATA, // FIELD NAME ID3FTY_BINARY, // FIELD TYPE 0, // FIXED LEN ID3V2_EARLIEST, // INITIAL SPEC ID3V2_LATEST, // ENDING SPEC ID3FF_NONE, // FLAGS ID3FN_NOFIELD // LINKED FIELD }, { ID3FN_NOFIELD } }; static ID3_FrameDef ID3_FrameDefs[] = { // short long tag file // frame id id id discrd discrd field defs description {ID3FID_AUDIOCRYPTO, "CRA", "AENC", false, false, ID3FD_Unimplemented, "Audio encryption"}, {ID3FID_PICTURE, "PIC", "APIC", false, false, ID3FD_Picture, "Attached picture"}, {ID3FID_COMMENT, "COM", "COMM", false, false, ID3FD_GeneralText, "Comments"}, {ID3FID_COMMERCIAL, "" , "COMR", false, false, ID3FD_Unimplemented, "Commercial"}, {ID3FID_CRYPTOREG, "" , "ENCR", false, false, ID3FD_Registration, "Encryption method registration"}, {ID3FID_EQUALIZATION, "EQU", "EQUA", false, true, ID3FD_Unimplemented, "Equalization"}, {ID3FID_EVENTTIMING, "ETC", "ETCO", false, true, ID3FD_Unimplemented, "Event timing codes"}, {ID3FID_GENERALOBJECT, "GEO", "GEOB", false, false, ID3FD_GEO, "General encapsulated object"}, {ID3FID_GROUPINGREG, "" , "GRID", false, false, ID3FD_Registration, "Group identification registration"}, {ID3FID_INVOLVEDPEOPLE, "IPL", "IPLS", false, false, ID3FD_InvolvedPeople,"Involved people list"}, {ID3FID_LINKEDINFO, "LNK", "LINK", false, false, ID3FD_LinkedInfo, "Linked information"}, {ID3FID_CDID, "MCI", "MCDI", false, false, ID3FD_Unimplemented, "Music CD identifier"}, {ID3FID_MPEGLOOKUP, "MLL", "MLLT", false, true, ID3FD_Unimplemented, "MPEG location lookup table"}, {ID3FID_OWNERSHIP, "" , "OWNE", false, false, ID3FD_Unimplemented, "Ownership frame"}, {ID3FID_PRIVATE, "" , "PRIV", false, false, ID3FD_Private, "Private frame"}, {ID3FID_PLAYCOUNTER, "CNT", "PCNT", false, false, ID3FD_PlayCounter, "Play counter"}, {ID3FID_POPULARIMETER, "POP", "POPM", false, false, ID3FD_Popularimeter, "Popularimeter"}, {ID3FID_POSITIONSYNC, "" , "POSS", false, true, ID3FD_Unimplemented, "Position synchronisation frame"}, {ID3FID_BUFFERSIZE, "BUF", "RBUF", false, false, ID3FD_Unimplemented, "Recommended buffer size"}, {ID3FID_VOLUMEADJ, "RVA", "RVAD", false, true, ID3FD_Unimplemented, "Relative volume adjustment"}, {ID3FID_REVERB, "REV", "RVRB", false, false, ID3FD_Unimplemented, "Reverb"}, {ID3FID_SYNCEDLYRICS, "SLT", "SYLT", false, false, ID3FD_SyncLyrics, "Synchronized lyric/text"}, {ID3FID_SYNCEDTEMPO, "STC", "SYTC", false, true, ID3FD_Unimplemented, "Synchronized tempo codes"}, {ID3FID_ALBUM, "TAL", "TALB", false, false, ID3FD_Text, "Album/Movie/Show title"}, {ID3FID_BPM, "TBP", "TBPM", false, false, ID3FD_Text, "BPM (beats per minute)"}, {ID3FID_COMPOSER, "TCM", "TCOM", false, false, ID3FD_Text, "Composer"}, {ID3FID_CONTENTTYPE, "TCO", "TCON", false, false, ID3FD_Text, "Content type"}, {ID3FID_COPYRIGHT, "TCR", "TCOP", false, false, ID3FD_Text, "Copyright message"}, {ID3FID_DATE, "TDA", "TDAT", false, false, ID3FD_Text, "Date"}, {ID3FID_PLAYLISTDELAY, "TDY", "TDLY", false, false, ID3FD_Text, "Playlist delay"}, {ID3FID_ENCODEDBY, "TEN", "TENC", false, true, ID3FD_Text, "Encoded by"}, {ID3FID_LYRICIST, "TXT", "TEXT", false, false, ID3FD_Text, "Lyricist/Text writer"}, {ID3FID_FILETYPE, "TFT", "TFLT", false, false, ID3FD_Text, "File type"}, {ID3FID_TIME, "TIM", "TIME", false, false, ID3FD_Text, "Time"}, {ID3FID_CONTENTGROUP, "TT1", "TIT1", false, false, ID3FD_Text, "Content group description"}, {ID3FID_TITLE, "TT2", "TIT2", false, false, ID3FD_Text, "Title/songname/content description"}, {ID3FID_SUBTITLE, "TT3", "TIT3", false, false, ID3FD_Text, "Subtitle/Description refinement"}, {ID3FID_INITIALKEY, "TKE", "TKEY", false, false, ID3FD_Text, "Initial key"}, {ID3FID_LANGUAGE, "TLA", "TLAN", false, false, ID3FD_Text, "Language(s)"}, {ID3FID_SONGLEN, "TLE", "TLEN", false, true, ID3FD_Text, "Length"}, {ID3FID_MEDIATYPE, "TMT", "TMED", false, false, ID3FD_Text, "Media type"}, {ID3FID_ORIGALBUM, "TOT", "TOAL", false, false, ID3FD_Text, "Original album/movie/show title"}, {ID3FID_ORIGFILENAME, "TOF", "TOFN", false, false, ID3FD_Text, "Original filename"}, {ID3FID_ORIGLYRICIST, "TOL", "TOLY", false, false, ID3FD_Text, "Original lyricist(s)/text writer(s)"}, {ID3FID_ORIGARTIST, "TOA", "TOPE", false, false, ID3FD_Text, "Original artist(s)/performer(s)"}, {ID3FID_ORIGYEAR, "TOR", "TORY", false, false, ID3FD_Text, "Original release year"}, {ID3FID_FILEOWNER, "" , "TOWN", false, false, ID3FD_Text, "File owner/licensee"}, {ID3FID_LEADARTIST, "TP1", "TPE1", false, false, ID3FD_Text, "Lead performer(s)/Soloist(s)"}, {ID3FID_BAND, "TP2", "TPE2", false, false, ID3FD_Text, "Band/orchestra/accompaniment"}, {ID3FID_CONDUCTOR, "TP3", "TPE3", false, false, ID3FD_Text, "Conductor/performer refinement"}, {ID3FID_MIXARTIST, "TP4", "TPE4", false, false, ID3FD_Text, "Interpreted, remixed, or otherwise modified by"}, {ID3FID_PARTINSET, "TPA", "TPOS", false, false, ID3FD_Text, "Part of a set"}, {ID3FID_PUBLISHER, "TPB", "TPUB", false, false, ID3FD_Text, "Publisher"}, {ID3FID_TRACKNUM, "TRK", "TRCK", false, false, ID3FD_Text, "Track number/Position in set"}, {ID3FID_RECORDINGDATES, "TRD", "TRDA", false, false, ID3FD_Text, "Recording dates"}, {ID3FID_NETRADIOSTATION, "TRN", "TRSN", false, false, ID3FD_Text, "Internet radio station name"}, {ID3FID_NETRADIOOWNER, "TRO", "TRSO", false, false, ID3FD_Text, "Internet radio station owner"}, {ID3FID_SIZE, "TSI", "TSIZ", false, true, ID3FD_Text, "Size"}, {ID3FID_ISRC, "TRC", "TSRC", false, false, ID3FD_Text, "ISRC (international standard recording code)"}, {ID3FID_ENCODERSETTINGS, "TSS", "TSSE", false, false, ID3FD_Text, "Software/Hardware and settings used for encoding"}, {ID3FID_USERTEXT, "TXX", "TXXX", false, false, ID3FD_UserText, "User defined text information"}, {ID3FID_YEAR, "TYE", "TYER", false, false, ID3FD_Text, "Year"}, {ID3FID_UNIQUEFILEID, "UFI", "UFID", false, false, ID3FD_UFI, "Unique file identifier"}, {ID3FID_TERMSOFUSE, "" , "USER", false, false, ID3FD_TermsOfUse, "Terms of use"}, {ID3FID_UNSYNCEDLYRICS, "ULT", "USLT", false, false, ID3FD_GeneralText, "Unsynchronized lyric/text transcription"}, {ID3FID_WWWCOMMERCIALINFO, "WCM", "WCOM", false, false, ID3FD_URL, "Commercial information"}, {ID3FID_WWWCOPYRIGHT, "WCP", "WCOP", false, false, ID3FD_URL, "Copyright/Legal infromation"}, {ID3FID_WWWAUDIOFILE, "WAF", "WOAF", false, false, ID3FD_URL, "Official audio file webpage"}, {ID3FID_WWWARTIST, "WAR", "WOAR", false, false, ID3FD_URL, "Official artist/performer webpage"}, {ID3FID_WWWAUDIOSOURCE, "WAS", "WOAS", false, false, ID3FD_URL, "Official audio source webpage"}, {ID3FID_WWWRADIOPAGE, "WRA", "WORS", false, false, ID3FD_URL, "Official internet radio station homepage"}, {ID3FID_WWWPAYMENT, "WPY", "WPAY", false, false, ID3FD_URL, "Payment"}, {ID3FID_WWWPUBLISHER, "WPB", "WPUB", false, false, ID3FD_URL, "Official publisher webpage"}, {ID3FID_WWWUSER, "WXX", "WXXX", false, false, ID3FD_UserURL, "User defined URL link"}, {ID3FID_METACRYPTO, "CRM", "" , false, false, ID3FD_Unimplemented, "Encrypted meta frame"}, {ID3FID_METACOMPRESSION, "CDM", "" , false, false, ID3FD_CDM, "Compressed data meta frame"}, {ID3FID_NOFRAME} }; static ID3_FrameDef* ID3_FindFrameDef(ID3_FrameID id) { ID3_FrameDef* info = NULL; size_t cur; for (cur = 0; ID3_FrameDefs[cur].eID != ID3FID_NOFRAME; ++cur) { if (ID3_FrameDefs[cur].eID == id) { info = &ID3_FrameDefs[cur]; break; } } return info; } //---------------------------------------------------------------------- char* ID3FrameInfo_ShortName(ID3_FrameID frameid) { ID3_FrameDef *pFD = ID3_FindFrameDef(frameid); if (pFD!=NULL) return pFD->sShortTextID; else return NULL; } char* ID3FrameInfo_LongName(ID3_FrameID frameid) { ID3_FrameDef *pFD = ID3_FindFrameDef(frameid); if (pFD!=NULL) return pFD->sLongTextID; else return NULL; } const char* ID3FrameInfo_Description(ID3_FrameID frameid) { ID3_FrameDef *pFD = ID3_FindFrameDef(frameid); if (pFD!=NULL) return pFD->sDescription; else return NULL; } int ID3FrameInfo_MaxFrameID() { return ID3FID_LASTFRAMEID-1; } int ID3FrameInfo_NumFields(ID3_FrameID frameid) { int fieldnum = 0; ID3_FrameDef *pFD = ID3_FindFrameDef(frameid); if (pFD!=NULL) { while (pFD->aeFieldDefs[fieldnum]._id != ID3FN_NOFIELD) { ++fieldnum; } } return fieldnum; } ID3_FieldType ID3FrameInfo_FieldType(ID3_FrameID frameid, int fieldnum) { ID3_FrameDef *pFD = ID3_FindFrameDef(frameid); if (pFD!=NULL) return (pFD->aeFieldDefs[fieldnum]._type); else return ID3FTY_NONE; } size_t ID3FrameInfo_FieldSize(ID3_FrameID frameid, int fieldnum) { ID3_FrameDef *pFD = ID3_FindFrameDef(frameid); if (pFD!=NULL) return (pFD->aeFieldDefs[fieldnum]._fixed_size); else return 0; } flags_t ID3FrameInfo_FieldFlags (ID3_FrameID frameid, int fieldnum) { ID3_FrameDef *pFD = ID3_FindFrameDef(frameid); if (pFD!=NULL) return (pFD->aeFieldDefs[fieldnum]._flags); else return 0; } #endif /* LIBID3_MISSING_ID3FRAMEINFO */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/vorbis_file.c��������������������������������������������������������������������0000644�0001750�0001750�00000026016�10541302762�016045� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <math.h> #include <glib.h> #include <glib/gi18n.h> #include <vorbis/codec.h> #include <vorbis/vorbisfile.h> #include "vcedit.h" #include "str_util.h" #include "vorbis_file.h" /*** private functions ******************************************************/ /* insert a hash table entry into a vorbis_comment struct */ static void insert_comment(gpointer key, gpointer val, gpointer data) { vorbis_comment_add_tag((vorbis_comment *)data, key, val); } /* print a hash table entry */ static void print_comment(gpointer key, gpointer val, gpointer data) { printf("%-12s \"%s\"\n", (char *)key, (char *)val); } /* free a hash table entry */ static gboolean remove_comment(gpointer key, gpointer val, gpointer data) { free(key); free(val); return TRUE; } /* inserts a new comment into the hash table, or replaces an existing comment */ static void table_insert_or_replace(GHashTable *table, const char *key, const char *val) { void *old_key, *old_val; gboolean found; found = g_hash_table_lookup_extended(table, key, &old_key, &old_val); if (strcmp(val, "") != 0) { g_hash_table_insert(table, found ? old_key : strdup(key), strdup(val)); /* Word of warning: contrary to what the glib documentation says, only the old value must be freed, *not* the key. */ if (found) free(old_val); } else if (found) { g_hash_table_remove(table, old_key); free(old_key); free(old_val); } } /* inserts a new comment into the hash table, or appends to an existing comment */ static void table_insert_or_append(GHashTable *table, const char *key, const char *val) { void *old_key, *old_val; char *new_val; gboolean found; found = g_hash_table_lookup_extended(table, key, &old_key, &old_val); if (found) { new_val = g_strjoin(", ", old_val, val, NULL); g_hash_table_insert(table, old_key, new_val); free(old_val); } else { g_hash_table_insert(table, strdup(key), strdup(val)); } } static void format_time(double rsec, int *min, int *sec, int *msec) { double isec; *msec = modf(rsec, &isec) * 1000; *sec = (int)isec % 60; *min = (int)isec / 60; } static void vorbis_comment_to_table(vorbis_comment *vc, GHashTable *table) { char *key, *val, *p; size_t count; int i; for (i = 0; i < vc->comments; i++) { p = strchr(vc->user_comments[i], '='); if (!p) { g_warning("invalid vorbis comment: %s\n", vc->user_comments[i]); continue; } count = p - vc->user_comments[i] + 1; key = malloc(count); str_safe_strncpy(key, vc->user_comments[i], count); str_ascii_tolower(key); val = strdup(p+1); table_insert_or_append(table, key, val); free(key); free(val); } } static char *get_field_name(int field_id) { switch (field_id) { case AF_TITLE: return "title"; case AF_ARTIST: return "artist"; case AF_ALBUM: return "album"; case AF_YEAR: return "date"; case AF_GENRE: return "genre"; case AF_COMMENT: /* XXX "comment" is not part of the standard field names, but it's what Winamp uses. XMMS is horribly broken uses "" (empty name). Using "description" might be better */ return "comment"; case AF_TRACK: return "tracknumber"; default: return NULL; } } /*** public functions *******************************************************/ /* * Vorbis implementation of the standard audio_file functions */ int vorbis_file_new(vorbis_file **f, const char *filename, gboolean editable) { vorbis_file newfile; int res; *f = NULL; newfile.file = fopen(filename, "r"); if (!newfile.file) return AF_ERR_FILE; res = ov_open(newfile.file, &newfile.ov, NULL, 0); if (res < 0) { fclose(newfile.file); return AF_ERR_FORMAT; } newfile.comments = g_hash_table_new(g_str_hash, g_str_equal); vorbis_comment_to_table(ov_comment(&newfile.ov, -1), newfile.comments); newfile.type = AF_VORBIS; newfile.name = strdup(filename); /* XXX - editable flag is meaningless, write will fail if dir is read-only */ newfile.editable = editable; newfile.changed = FALSE; newfile.delete = (af_delete_func) vorbis_file_delete; newfile.get_desc = (af_get_desc_func) vorbis_file_get_desc; newfile.get_info = (af_get_info_func) vorbis_file_get_info; newfile.has_tag = (af_has_tag_func) vorbis_file_has_tag; newfile.create_tag = (af_create_tag_func) vorbis_file_create_tag; newfile.remove_tag = (af_remove_tag_func) vorbis_file_remove_tag; newfile.write_changes = (af_write_changes_func) vorbis_file_write_changes; newfile.set_field = (af_set_field_func) vorbis_file_set_field; newfile.get_field = (af_get_field_func) vorbis_file_get_field; newfile.dump = (af_dump_func) vorbis_file_dump; newfile.edit_load = (af_edit_load_func) vorbis_file_edit_load; newfile.edit_unload = (af_edit_unload_func) vorbis_file_edit_unload; *f = malloc(sizeof(vorbis_file)); memcpy(*f, &newfile, sizeof(vorbis_file)); return AF_OK; } void vorbis_file_delete(vorbis_file *f) { if (f) { ov_clear(&f->ov); /* closes the file */ g_hash_table_foreach_remove(f->comments, remove_comment, NULL); g_hash_table_destroy(f->comments); free(f->name); free(f); } } const gchar *vorbis_file_get_desc(vorbis_file *f) { return "Ogg Vorbis"; } const gchar *vorbis_file_get_info(vorbis_file *f) { static char buf[256]; int min, sec, msec; OggVorbis_File *ov = &f->ov; vorbis_info *vi = ov_info(ov, -1); format_time(ov_time_total(ov, -1), &min, &sec, &msec); snprintf(buf, sizeof(buf), _("Average Bit Rate\n%ld kbps\n" "Nominal Bit Rate\n%ld kbps\n" "Sample Rate\n%ld Hz\n" "Channels\n%d\n" "Playing Time\n%dm %ds %dms\n"), ov_bitrate(ov, -1)/1000, vi->bitrate_nominal/1000, vi->rate, vi->channels, min, sec, msec); return buf; } gboolean vorbis_file_has_tag(vorbis_file *f) { /* vorbis files always have a comment header, even if it's empty */ return TRUE; } void vorbis_file_create_tag(vorbis_file *f) { /* nothing to do (see above) */ } void vorbis_file_remove_tag(vorbis_file *f) { /* erase all comments */ g_hash_table_foreach_remove(f->comments, remove_comment, NULL); f->changed = TRUE; } int vorbis_file_write_changes(vorbis_file *f) { /* * Currently using vcedit.c from the vorbistools distribution, because * libvorbisfile does not provide writing functionality. */ char *temp_name; FILE *new_file; int save_errno; vcedit_state *state; vorbis_comment *vc; int res; /* move the original file out of the way */ temp_name = malloc(6 + strlen(f->name)); strcpy(temp_name, f->name); strcat(temp_name, ".orig"); res = rename(f->name, temp_name); if (res != 0) return AF_ERR_FILE; /* create the new file */ new_file = fopen(f->name, "w+"); if (!new_file) { save_errno = errno; rename(temp_name, f->name); errno = save_errno; return AF_ERR_FILE; } /* init vcedit */ fseek(f->file, 0, SEEK_SET); state = vcedit_new_state(); res = vcedit_open(state, f->file); if (res < 0) { /* this should never happen, file was validated when first opened */ save_errno = errno; g_warning("vcedit_open failed: %s\n", vcedit_error(state)); vcedit_clear(state); rename(temp_name, f->name); errno = save_errno; return AF_ERR_FILE; } /* fill in the vorbis_comments structure */ vc = vcedit_comments(state); vorbis_comment_clear(vc); vorbis_comment_init(vc); g_hash_table_foreach(f->comments, insert_comment, vc); /* write out the new file */ res = vcedit_write(state, new_file); if (res < 0) { save_errno = errno; g_warning("vcedit_write failed: %s\n", vcedit_error(state)); vcedit_clear(state); rename(temp_name, f->name); errno = save_errno; return AF_ERR_FILE; } vcedit_clear(state); fclose(new_file); /* remove the original file. */ remove(temp_name); /* * Note that we're still holding the original file open. There is no * point in switching to the new one because only the comments header * changed, and we won't be needing it again (the hash table has the * up-to-date values) */ f->changed = FALSE; return AF_OK; } int vorbis_file_set_field(vorbis_file *f, int field, const char *value) { char *name; name = get_field_name(field); if (!name) return AF_ERR_NO_FIELD; else return vorbis_file_set_field_by_name(f, name, value); } int vorbis_file_get_field(vorbis_file *f, int field, const char **value) { char *name; name = get_field_name(field); if (!name) return AF_ERR_NO_FIELD; else return vorbis_file_get_field_by_name(f, name, value); } void vorbis_file_dump(vorbis_file *f) { OggVorbis_File *ov = &f->ov; vorbis_info *vi; vorbis_comment *vc; int nstreams, i, j; printf("\nFile type: Ogg Vorbis\n\n"); nstreams = ov_streams(ov); printf("Physical stream contains %d logical stream(s)\n", nstreams); for (i = 0; i < nstreams; i++) { vi = ov_info(ov, i); vc = ov_comment(ov, i); printf("\n---- Logical Stream #%d ----\n\n" "Serial number : 0x%08lX\n" "Encoder version : %d\n" "Encoder vendor : %s\n", i+1, ov_serialnumber(ov,i), vi->version, vc->vendor); printf("Channels : %d\n" "Sample rate : %ld Hz\n", vi->channels, vi->rate); if (vi->bitrate_nominal > 0) printf("Nominal bit rate: %ld bps\n", vi->bitrate_nominal); if (vi->bitrate_upper > 0) printf("Upper bit rate : %ld bps\n", vi->bitrate_upper); if (vi->bitrate_lower > 0) printf("Lower bit rate : %ld bps\n", vi->bitrate_lower); printf("Average bit rate: %ld bps\n" "Playing time : %g s\n", ov_bitrate(ov, i), ov_time_total(ov, i)); if (vc->comments == 0) printf("\nNo user comments\n"); else { printf("\nUser comments (raw):\n"); for (j = 0; j < vc->comments; j++) printf("%s\n", vc->user_comments[j]); } } printf("\n---- Processed Comments ----\n\n"); if (g_hash_table_size(f->comments) == 0) printf("No user comments\n"); else g_hash_table_foreach(f->comments, print_comment, NULL); printf("\n"); } extern void vorbis_edit_load(vorbis_file *f); void vorbis_file_edit_load(vorbis_file *f) { vorbis_edit_load(f); } extern void vorbis_edit_unload(); void vorbis_file_edit_unload(vorbis_file *f) { vorbis_edit_unload(); } /* * Vorbis specific functions */ int vorbis_file_get_field_by_name(vorbis_file *f, const char *name, const char **value) { char *table_value; table_value = g_hash_table_lookup(f->comments, name); if (table_value) *value = table_value; else *value = ""; return AF_OK; } int vorbis_file_set_field_by_name(vorbis_file *f, const char *name, const char *value) { table_insert_or_replace(f->comments, name, value); f->changed = TRUE; return AF_OK; } int vorbis_file_append_field_by_name(vorbis_file *f, const char *name, const char *value) { table_insert_or_append(f->comments, name, value); f->changed = TRUE; return AF_OK; } int vorbis_file_get_std_fields(const char ***names) { static const char *std_comments[] = { "album", "artist", "contact", "copyright", "date", "description", "genre", "isrc", "license", "location", "organization", "performer", "title", "tracknumber", "version" }; *names = std_comments; return sizeof(std_comments) / sizeof(char*); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/vorbis_file.h��������������������������������������������������������������������0000644�0001750�0001750�00000003467�10541302762�016057� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef VORBIS_FILE_H #define VORBIS_FILE_H #include <vorbis/vorbisfile.h> #include "audio_file.h" typedef struct { /* common part -- must match struct audio_file defined in audio_file.h */ guint8 type; FILE *file; char *name; gboolean editable; gboolean changed; af_delete_func delete; af_get_desc_func get_desc; af_get_info_func get_info; af_has_tag_func has_tag; af_create_tag_func create_tag; af_remove_tag_func remove_tag; af_write_changes_func write_changes; af_set_field_func set_field; af_get_field_func get_field; af_dump_func dump; af_edit_load_func edit_load; af_edit_unload_func edit_unload; /* ogg vorbis specific part */ OggVorbis_File ov; GHashTable *comments; } vorbis_file; /* * Vorbis implementation of the standard audio_file functions */ int vorbis_file_new(vorbis_file **f, const char *filename, gboolean editable); void vorbis_file_delete(vorbis_file *f); const gchar *vorbis_file_get_desc(vorbis_file *f); const gchar *vorbis_file_get_info(vorbis_file *f); gboolean vorbis_file_has_tag(vorbis_file *f); void vorbis_file_create_tag(vorbis_file *f); void vorbis_file_remove_tag(vorbis_file *f); int vorbis_file_write_changes(vorbis_file *f); int vorbis_file_set_field(vorbis_file *f, int field, const char *value); int vorbis_file_get_field(vorbis_file *f, int field, const char **value); void vorbis_file_dump(vorbis_file *f); void vorbis_file_edit_load(vorbis_file *f); void vorbis_file_edit_unload(vorbis_file *f); /* * Vorbis specific functions */ int vorbis_file_get_field_by_name(vorbis_file *f, const char *name, const char **value); int vorbis_file_set_field_by_name(vorbis_file *f, const char *name, const char *value); int vorbis_file_append_field_by_name(vorbis_file *f, const char *name, const char *value); int vorbis_file_get_std_fields(const char ***names); #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/vorbis_edit.c��������������������������������������������������������������������0000644�0001750�0001750�00000035750�10541302762�016060� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <stdio.h> #include <string.h> #include <errno.h> #include <glib.h> #include <glib/gi18n.h> #include <gtk/gtk.h> #include <glade/glade.h> #include <gdk/gdkkeysyms.h> #include "elist.h" #include "gtk_util.h" #include "mru.h" #include "prefs.h" #include "file_list.h" #include "message_box.h" #include "cursor.h" #include "str_util.h" #include "vorbis_file.h" #include "vorbis_edit_field.h" #include "vorbis_edit.h" /* widgets */ static GtkWindow *w_main = NULL; static GtkNotebook *nb_edit = NULL; static GtkNotebook *nb_vorbis = NULL; static GtkMenuItem *m_vorbis = NULL; static GtkCheckMenuItem *m_vor_view_simple = NULL; static GtkCheckMenuItem *m_vor_view_advanced = NULL; static GtkEntry *ent_title = NULL; static GtkEntry *ent_artist = NULL; static GtkEntry *ent_album = NULL; static GtkEntry *ent_year = NULL; static GtkEntry *ent_comment = NULL; static GtkEntry *ent_track = NULL; static GtkCombo *combo_genre = NULL; static GtkLabel *lab_title = NULL; static GtkLabel *lab_artist = NULL; static GtkLabel *lab_album = NULL; static GtkLabel *lab_year = NULL; static GtkLabel *lab_comment = NULL; static GtkLabel *lab_track = NULL; static GtkLabel *lab_genre = NULL; static GtkLabel *lab_advanced = NULL; static GtkButton *b_advanced = NULL; static GtkButton *b_clear = NULL; static GtkButton *b_write = NULL; static GtkTreeView *tv_comments = NULL; static GtkListStore *store_comments = NULL; static GtkButton *b_add = NULL; static GtkButton *b_edit = NULL; static GtkButton *b_remove = NULL; static GtkButton *b_simple = NULL; /* the various notebook tabs */ #define TAB_SIMPLE 0 #define TAB_ADVANCED 1 /* private data */ static int tab_edit_vorbis; static gboolean changed_flag = TRUE; static gboolean editable_flag = TRUE; static gboolean ignore_changed_signals = FALSE; static int extra_fields = 0; static vorbis_file *file = NULL; /* preferences */ static MRUList *genre_mru; static int *current_tab; /*** private functions ******************************************************/ static void tree_view_setup() { GtkTreeViewColumn *col; GtkCellRenderer *renderer; /* model */ store_comments = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); /* columns and renderers */ col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, _("Field")); gtk_tree_view_append_column(tv_comments, col); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "ypad", 0, NULL); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "text", 0); col = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(col, _("Text")); gtk_tree_view_append_column(tv_comments, col); renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "ypad", 0, NULL); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_add_attribute(col, renderer, "text", 1); /* selection mode */ gtk_tree_selection_set_mode(gtk_tree_view_get_selection(tv_comments), GTK_SELECTION_SINGLE); } static void set_changed_flag(gboolean value) { if (changed_flag == value) return; changed_flag = value; gtk_widget_set_sensitive(GTK_WIDGET(b_write), value); } static void set_editable_flag(gboolean value) { if (editable_flag == value) return; editable_flag = value; /* simple edit controls */ gtk_widget_set_sensitive(GTK_WIDGET(ent_title), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_title), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_artist), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_artist), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_album), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_album), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_year), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_year), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_comment), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_comment), value); gtk_widget_set_sensitive(GTK_WIDGET(combo_genre), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_genre), value); gtk_widget_set_sensitive(GTK_WIDGET(ent_track), value); gtk_widget_set_sensitive(GTK_WIDGET(lab_track), value); gtk_widget_set_sensitive(GTK_WIDGET(b_clear), value); /* advanced edit controls */ gtk_widget_set_sensitive(GTK_WIDGET(tv_comments), value); gtk_widget_set_sensitive(GTK_WIDGET(b_add), value); gtk_widget_set_sensitive(GTK_WIDGET(b_edit), value); gtk_widget_set_sensitive(GTK_WIDGET(b_remove), value); } static gboolean is_simple_field(char *name) { static char *fields[] = { "title", "artist", "album", "date", "genre", "comment", "tracknumber", NULL }; int i; for (i = 0; fields[i] != NULL; i++) if (strcmp(name, fields[i]) == 0) return TRUE; return FALSE; } static void count_extra_fields_callback(gchar *name, gchar *text, gpointer data) { if (!is_simple_field(name)) extra_fields++; } static void update_form_simple() { const gchar *str; ignore_changed_signals = TRUE; if (g_elist_length(genre_mru->list) > 0) gtk_combo_set_popdown_strings(combo_genre, GLIST(genre_mru->list)); vorbis_file_get_field(file, AF_TITLE, &str); gtk_entry_set_text(ent_title, str); vorbis_file_get_field(file, AF_ARTIST, &str); gtk_entry_set_text(ent_artist, str); vorbis_file_get_field(file, AF_ALBUM, &str); gtk_entry_set_text(ent_album, str); vorbis_file_get_field(file, AF_YEAR, &str); gtk_entry_set_text(ent_year, str); vorbis_file_get_field(file, AF_COMMENT, &str); gtk_entry_set_text(ent_comment, str); vorbis_file_get_field(file, AF_TRACK, &str); gtk_entry_set_text(ent_track, str); vorbis_file_get_field(file, AF_GENRE, &str); gtk_entry_set_text(GTK_ENTRY(combo_genre->entry), str); ignore_changed_signals = FALSE; extra_fields = 0; g_hash_table_foreach(file->comments, (GHFunc)count_extra_fields_callback, NULL); if (extra_fields > 0) { char str[16]; snprintf(str, 16, _("Advanced (%i)"), extra_fields); gtk_label_set_text(lab_advanced, str); } else { gtk_label_set_text(lab_advanced, _("Advanced")); } } static void append_row_callback(gchar *name, gchar *text, GtkListStore *store) { GtkTreeIter iter; gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, name, 1, text, -1); } static void update_form_advanced() { /* fill in the list */ gtk_tree_view_set_model(tv_comments, NULL); gtk_list_store_clear(store_comments); g_hash_table_foreach(file->comments, (GHFunc)append_row_callback, store_comments); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store_comments), 0, GTK_SORT_ASCENDING); gtk_tree_view_set_model(tv_comments, GTK_TREE_MODEL(store_comments)); gtk_widget_set_sensitive(GTK_WIDGET(b_edit), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(b_remove), FALSE); } static void update_form() { if (!file) return; if (*current_tab == TAB_SIMPLE) update_form_simple(); else update_form_advanced(); } static void update_tag() { if (!file || !changed_flag) return; if (*current_tab == TAB_SIMPLE) { vorbis_file_set_field(file, AF_TITLE, gtk_entry_get_text(ent_title)); vorbis_file_set_field(file, AF_ARTIST, gtk_entry_get_text(ent_artist)); vorbis_file_set_field(file, AF_ALBUM, gtk_entry_get_text(ent_album)); vorbis_file_set_field(file, AF_YEAR, gtk_entry_get_text(ent_year)); vorbis_file_set_field(file, AF_COMMENT, gtk_entry_get_text(ent_comment)); vorbis_file_set_field(file, AF_TRACK, gtk_entry_get_text(ent_track)); vorbis_file_set_field(file, AF_GENRE, gtk_entry_get_text(GTK_ENTRY(combo_genre->entry))); } else { /* Nothing to do here, advanced mode alters tag directly */ } } static void write_to_file() { int res; const char *genre; cursor_set_wait(); genre = gtk_entry_get_text(GTK_ENTRY(combo_genre->entry)); if (strcmp(genre, "") != 0) mru_add(genre_mru, genre); res = vorbis_file_write_changes(file); if (res != AF_OK) { char msg[512]; if (errno == EACCES || errno == EPERM) { snprintf(msg, sizeof(msg), _("Error saving file \"%s\":\n%s (%d)\n\n" "Note:\n" "In order to save changes to an Ogg Vorbis file, you must have\n" "write permission for the directory where it is located."), file->name, strerror(errno), errno); } else { snprintf(msg, sizeof(msg), _("Error saving file \"%s\":\n%s (%d)"), file->name, strerror(errno), errno); } message_box(w_main, _("Error Saving File"), msg, 0, GTK_STOCK_OK, NULL); } else { set_changed_flag(FALSE); } cursor_set_normal(); } /* UI callbacks */ void cb_vor_clear(GtkButton *button, gpointer user_data) { vorbis_file_remove_tag(file); update_form(); set_changed_flag(TRUE); } void cb_vor_write(GtkButton *button, gpointer user_data) { if (!file) { g_warning("file is not open!"); return; } update_tag(); write_to_file(); } void cb_vor_view_simple(GtkWidget *widget, GdkEvent *event) { if (*current_tab != TAB_SIMPLE) { update_tag(); *current_tab = TAB_SIMPLE; update_form(); gtk_notebook_set_page(nb_vorbis, *current_tab); } } void cb_vor_view_advanced(GtkWidget *widget, GdkEvent *event) { if (*current_tab != TAB_ADVANCED) { update_tag(); *current_tab = TAB_ADVANCED; update_form(); gtk_notebook_set_page(nb_vorbis, *current_tab); } } void cb_vor_view_button(GtkButton *button, gpointer user_data) { if (*current_tab == TAB_SIMPLE) gtk_check_menu_item_set_active(m_vor_view_advanced, TRUE); else if (*current_tab == TAB_ADVANCED) gtk_check_menu_item_set_active(m_vor_view_simple, TRUE); } /* callbacks for the simple editor */ void cb_vor_tag_changed(GObject *obj, gpointer user_data) { if (!ignore_changed_signals) set_changed_flag(TRUE); } gboolean cb_vor_keypress(GtkWidget *widget, GdkEventKey *event, gpointer user_data) { if (event->keyval == GDK_Return) { if (file && changed_flag) { update_tag(); write_to_file(); } fl_select_next_file(); return TRUE; } return FALSE; } /* callbacks for the advanced editor */ void cb_vor_comment_selection_changed(GtkTreeSelection *selection, gpointer data) { if (gtk_tree_selection_count_selected_rows(selection) == 0) { gtk_widget_set_sensitive(GTK_WIDGET(b_edit), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(b_remove), FALSE); } else { gtk_widget_set_sensitive(GTK_WIDGET(b_edit), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(b_remove), TRUE); } } void cb_vor_add(GtkButton *button, gpointer user_data) { if ( vorbis_editfld_create_comment(file) ) { set_changed_flag(TRUE); update_form(); } } void cb_vor_edit(GtkButton *button, gpointer user_data) { GtkTreeModel *model; GtkTreeIter iter; if (gtk_tree_view_get_first_selected(tv_comments, &model, &iter)) { char *name; gtk_tree_model_get(model, &iter, 0, &name, -1); if ( vorbis_editfld_edit_comment(file, name) ) { set_changed_flag(TRUE); update_form(); } } } void cb_vor_comment_row_activated(GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer user_data) { /* same as clicking the edit button */ cb_vor_edit(NULL, NULL); } void cb_vor_remove(GtkButton *button, gpointer user_data) { GtkTreeModel *model; GtkTreeIter iter; if (gtk_tree_view_get_first_selected(tv_comments, &model, &iter)) { char *name; gtk_tree_model_get(model, &iter, 0, &name, -1); /* Setting a comment to empty removes it */ vorbis_file_set_field_by_name(file, name, ""); set_changed_flag(TRUE); update_form(); } } /*** public functions *******************************************************/ void vorbis_edit_load(vorbis_file *f) { gtk_widget_show(GTK_WIDGET(m_vorbis)); file = f; update_form(); set_editable_flag(audio_file_is_editable((audio_file *)file)); set_changed_flag(FALSE); gtk_notebook_set_page(nb_edit, tab_edit_vorbis); gtk_notebook_set_page(nb_vorbis, *current_tab); } void vorbis_edit_unload() { if (changed_flag) { int button; button = message_box(w_main, _("Save Changes"), _("Vorbis Tag has been modified. Save changes?"), 1, _("Discard"), GTK_STOCK_SAVE, NULL); if (button == 1) { /* save button was pressed */ update_tag(); write_to_file(); } } file = NULL; if (GTK_IS_WIDGET(m_vorbis)) gtk_widget_hide(GTK_WIDGET(m_vorbis)); } void vorbis_edit_init(GladeXML *xml) { GEList *temp_list; GEList *genre_list; int default_tab; /* * get the widgets from glade */ w_main = GTK_WINDOW(glade_xml_get_widget(xml, "w_main")); nb_edit = GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_edit")); nb_vorbis = GTK_NOTEBOOK(glade_xml_get_widget(xml, "nb_vorbis")); m_vorbis = GTK_MENU_ITEM(glade_xml_get_widget(xml, "m_vorbis")); m_vor_view_simple = GTK_CHECK_MENU_ITEM(glade_xml_get_widget(xml, "m_vor_view_simple")); m_vor_view_advanced = GTK_CHECK_MENU_ITEM(glade_xml_get_widget(xml, "m_vor_view_advanced")); ent_title = GTK_ENTRY(glade_xml_get_widget(xml, "ent_vor_title")); ent_artist = GTK_ENTRY(glade_xml_get_widget(xml, "ent_vor_artist")); ent_album = GTK_ENTRY(glade_xml_get_widget(xml, "ent_vor_album")); ent_year = GTK_ENTRY(glade_xml_get_widget(xml, "ent_vor_year")); ent_comment = GTK_ENTRY(glade_xml_get_widget(xml, "ent_vor_comment")); ent_track = GTK_ENTRY(glade_xml_get_widget(xml, "ent_vor_track")); combo_genre = GTK_COMBO(glade_xml_get_widget(xml, "combo_vor_genre")); lab_title = GTK_LABEL(glade_xml_get_widget(xml, "lab_vor_title")); lab_artist = GTK_LABEL(glade_xml_get_widget(xml, "lab_vor_artist")); lab_album = GTK_LABEL(glade_xml_get_widget(xml, "lab_vor_album")); lab_year = GTK_LABEL(glade_xml_get_widget(xml, "lab_vor_year")); lab_comment = GTK_LABEL(glade_xml_get_widget(xml, "lab_vor_comment")); lab_track = GTK_LABEL(glade_xml_get_widget(xml, "lab_vor_track")); lab_genre = GTK_LABEL(glade_xml_get_widget(xml, "lab_vor_genre")); lab_advanced = GTK_LABEL(glade_xml_get_widget(xml, "lab_vor_advanced")); b_advanced = GTK_BUTTON(glade_xml_get_widget(xml, "b_vor_advanced")); b_clear = GTK_BUTTON(glade_xml_get_widget(xml, "b_vor_clear")); b_write = GTK_BUTTON(glade_xml_get_widget(xml, "b_vor_write")); tv_comments = GTK_TREE_VIEW(glade_xml_get_widget(xml, "tv_vor_comments")); b_add = GTK_BUTTON(glade_xml_get_widget(xml, "b_vor_add")); b_edit = GTK_BUTTON(glade_xml_get_widget(xml, "b_vor_edit")); b_remove = GTK_BUTTON(glade_xml_get_widget(xml, "b_vor_remove")); b_simple = GTK_BUTTON(glade_xml_get_widget(xml, "b_vor_simple")); /* set up the tree view */ tree_view_setup(); g_signal_connect(gtk_tree_view_get_selection(tv_comments), "changed", G_CALLBACK(cb_vor_comment_selection_changed), NULL); /* find out which tab has the Vorbis interface */ tab_edit_vorbis = gtk_notebook_page_num(nb_edit, glade_xml_get_widget(xml, "cont_vorbis_edit")); /* * get the preference values, or set them to defaults */ /* genre_mru */ temp_list = g_elist_new(); genre_list = pref_get_or_set("common_edit:genre_mru", PREF_STRING | PREF_LIST, temp_list); g_elist_free_data(temp_list); genre_mru = mru_new_from_list(50, genre_list); /* current_tab */ default_tab = TAB_SIMPLE; current_tab = pref_get_or_set("vorbis_edit:current_tab", PREF_INT, &default_tab); if (*current_tab != TAB_SIMPLE && *current_tab != TAB_ADVANCED) *current_tab = default_tab; if (*current_tab == TAB_SIMPLE) gtk_check_menu_item_set_active(m_vor_view_simple, TRUE); else gtk_check_menu_item_set_active(m_vor_view_advanced, TRUE); } ������������������������tagtool-0.12.3/src/vorbis_edit.h��������������������������������������������������������������������0000644�0001750�0001750�00000000135�10541302762�016052� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef VORBIS_EDIT_H #define VORBIS_EDIT_H void vorbis_edit_init(GladeXML *xml); #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/vorbis_edit_field.c��������������������������������������������������������������0000644�0001750�0001750�00000006766�10541302762�017230� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <config.h> #include <string.h> #include <glib.h> #include <glib/gi18n.h> #include <gtk/gtk.h> #include <glade/glade.h> #include "elist.h" #include "str_util.h" #include "vorbis_edit_field.h" enum { MODE_CREATE, MODE_EDIT }; /* widgets */ static GtkDialog *dlg; static GtkTable *table; static GtkEntry *entry; static GtkButton *b_ok; static GtkButton *b_cancel; static GtkWidget *widget; /* dinamically created "field" widget */ /*** private functions ******************************************************/ static void fill_names_combo(GtkCombo *combo) { const char **name_array; GEList *name_list; int count; int i; name_list = g_elist_new(); count = vorbis_file_get_std_fields(&name_array); for (i = 0; i < count; i++) g_elist_append(name_list, (void*)name_array[i]); g_elist_sort(name_list, (GCompareFunc)strcoll); gtk_combo_set_popdown_strings(combo, GLIST(name_list)); g_elist_free(name_list); } static void set_ui(int mode, vorbis_file *file, const char *name) { const char *title; const char *value; widget = gtk_combo_new(); gtk_combo_set_value_in_list(GTK_COMBO(widget), FALSE, FALSE); fill_names_combo(GTK_COMBO(widget)); if (mode == MODE_CREATE) { title = _("New Vorbis Field"); } else { title = _("Edit Vorbis Field"); gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(widget)->entry), name); vorbis_file_get_field_by_name(file, name, &value); gtk_entry_set_text(entry, value); } gtk_window_set_title(GTK_WINDOW(dlg), title); gtk_table_attach(table, widget, 1, 2, 0, 1, GTK_FILL|GTK_EXPAND, GTK_SHRINK, 0, 0); gtk_widget_show_all(GTK_WIDGET(dlg)); } static void clear_ui() { gtk_entry_set_text(entry, ""); gtk_widget_destroy(widget); } static void update_comments(int mode, vorbis_file *file, const char *orig_name) { char *name = gtk_editable_get_chars(GTK_EDITABLE(GTK_COMBO(widget)->entry), 0, -1); char *value = gtk_editable_get_chars(GTK_EDITABLE(entry), 0, -1); str_ascii_tolower(name); if (mode == MODE_CREATE) { vorbis_file_append_field_by_name(file, name, value); } else { if (strcmp(name, orig_name) == 0) { vorbis_file_set_field_by_name(file, orig_name, value); } else { vorbis_file_set_field_by_name(file, orig_name, ""); vorbis_file_append_field_by_name(file, name, value); } } g_free(name); g_free(value); } static gboolean do_modal(int mode, vorbis_file *file, const char *name) { int result; /* create the missing widgets and connect the events */ set_ui(mode, file, name); /* show the dialog and wait for it to finish */ result = gtk_dialog_run(dlg); if (result == GTK_RESPONSE_OK) update_comments(mode, file, name); /* cleanup and return the result */ gtk_widget_hide(GTK_WIDGET(dlg)); clear_ui(); return (result == GTK_RESPONSE_OK); } /*** public functions *******************************************************/ gboolean vorbis_editfld_create_comment(vorbis_file *file) { return do_modal(MODE_CREATE, file, NULL); } gboolean vorbis_editfld_edit_comment(vorbis_file *file, const char *name) { return do_modal(MODE_EDIT, file, name); } void vorbis_editfld_init(GladeXML *xml) { dlg = GTK_DIALOG(glade_xml_get_widget(xml, "dlg_edit_field")); table = GTK_TABLE(glade_xml_get_widget(xml, "t_edit_field")); entry = GTK_ENTRY(glade_xml_get_widget(xml, "ent_edit_field_text")); b_ok = GTK_BUTTON(glade_xml_get_widget(xml, "b_edit_field_ok")); b_cancel = GTK_BUTTON(glade_xml_get_widget(xml, "b_edit_field_cancel")); gtk_window_set_transient_for(GTK_WINDOW(dlg), GTK_WINDOW(glade_xml_get_widget(xml, "w_main"))); } ����������tagtool-0.12.3/src/vorbis_edit_field.h��������������������������������������������������������������0000644�0001750�0001750�00000000416�10541302762�017217� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef VORBIS_EDIT_FIELD_H #define VORBIS_EDIT_FIELD_H #include "vorbis_file.h" gboolean vorbis_editfld_create_comment(vorbis_file *file); gboolean vorbis_editfld_edit_comment(vorbis_file *file, const char *name); void vorbis_editfld_init(GladeXML *xml); #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/vcedit.c�������������������������������������������������������������������������0000644�0001750�0001750�00000025156�10541302761�015023� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* This program is licensed under the GNU Library General Public License, version 2, * a copy of which is included with this program (LICENCE.LGPL). * * (c) 2000-2001 Michael Smith <msmith@labyrinth.net.au> * * * Comment editing backend, suitable for use by nice frontend interfaces. * * last modified: $Id: vcedit.c,v 1.1 2002/10/14 22:31:13 paol Exp $ */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <ogg/ogg.h> #include <vorbis/codec.h> #include "vcedit.h" //#include "i18n.h" #define _(s) s #define CHUNKSIZE 4096 vcedit_state *vcedit_new_state(void) { vcedit_state *state = malloc(sizeof(vcedit_state)); memset(state, 0, sizeof(vcedit_state)); return state; } char *vcedit_error(vcedit_state *state) { return state->lasterror; } vorbis_comment *vcedit_comments(vcedit_state *state) { return state->vc; } static void vcedit_clear_internals(vcedit_state *state) { if(state->vc) { vorbis_comment_clear(state->vc); free(state->vc); } if(state->os) { ogg_stream_clear(state->os); free(state->os); } if(state->oy) { ogg_sync_clear(state->oy); free(state->oy); } if(state->vendor) free(state->vendor); if(state->mainbuf) free(state->mainbuf); if(state->bookbuf) free(state->bookbuf); if(state->vi) { vorbis_info_clear(state->vi); free(state->vi); } memset(state, 0, sizeof(*state)); } void vcedit_clear(vcedit_state *state) { if(state) { vcedit_clear_internals(state); free(state); } } /* Next two functions pulled straight from libvorbis, apart from one change * - we don't want to overwrite the vendor string. */ static void _v_writestring(oggpack_buffer *o,char *s, int len) { while(len--) { oggpack_write(o,*s++,8); } } static int _commentheader_out(vorbis_comment *vc, char *vendor, ogg_packet *op) { oggpack_buffer opb; oggpack_writeinit(&opb); /* preamble */ oggpack_write(&opb,0x03,8); _v_writestring(&opb,"vorbis", 6); /* vendor */ oggpack_write(&opb,strlen(vendor),32); _v_writestring(&opb,vendor, strlen(vendor)); /* comments */ oggpack_write(&opb,vc->comments,32); if(vc->comments){ int i; for(i=0;i<vc->comments;i++){ if(vc->user_comments[i]){ oggpack_write(&opb,vc->comment_lengths[i],32); _v_writestring(&opb,vc->user_comments[i], vc->comment_lengths[i]); }else{ oggpack_write(&opb,0,32); } } } oggpack_write(&opb,1,1); op->packet = _ogg_malloc(oggpack_bytes(&opb)); memcpy(op->packet, opb.buffer, oggpack_bytes(&opb)); op->bytes=oggpack_bytes(&opb); op->b_o_s=0; op->e_o_s=0; op->granulepos=0; oggpack_writeclear(&opb); return 0; } static int _blocksize(vcedit_state *s, ogg_packet *p) { int this = vorbis_packet_blocksize(s->vi, p); int ret = (this + s->prevW)/4; if(!s->prevW) { s->prevW = this; return 0; } s->prevW = this; return ret; } static int _fetch_next_packet(vcedit_state *s, ogg_packet *p, ogg_page *page) { int result; char *buffer; int bytes; result = ogg_stream_packetout(s->os, p); if(result > 0) return 1; else { if(s->eosin) return 0; while(ogg_sync_pageout(s->oy, page) <= 0) { buffer = ogg_sync_buffer(s->oy, CHUNKSIZE); bytes = s->read(buffer,1, CHUNKSIZE, s->in); ogg_sync_wrote(s->oy, bytes); if(bytes == 0) return 0; } if(ogg_page_eos(page)) s->eosin = 1; else if(ogg_page_serialno(page) != s->serial) { s->eosin = 1; s->extrapage = 1; return 0; } ogg_stream_pagein(s->os, page); return _fetch_next_packet(s, p, page); } } int vcedit_open(vcedit_state *state, FILE *in) { return vcedit_open_callbacks(state, (void *)in, (vcedit_read_func)fread, (vcedit_write_func)fwrite); } int vcedit_open_callbacks(vcedit_state *state, void *in, vcedit_read_func read_func, vcedit_write_func write_func) { char *buffer; int bytes,i; ogg_packet *header; ogg_packet header_main; ogg_packet header_comments; ogg_packet header_codebooks; ogg_page og; state->in = in; state->read = read_func; state->write = write_func; state->oy = malloc(sizeof(ogg_sync_state)); ogg_sync_init(state->oy); buffer = ogg_sync_buffer(state->oy, CHUNKSIZE); bytes = state->read(buffer, 1, CHUNKSIZE, state->in); ogg_sync_wrote(state->oy, bytes); if(ogg_sync_pageout(state->oy, &og) != 1) { if(bytes<CHUNKSIZE) state->lasterror = _("Input truncated or empty."); else state->lasterror = _("Input is not an Ogg bitstream."); goto err; } state->serial = ogg_page_serialno(&og); state->os = malloc(sizeof(ogg_stream_state)); ogg_stream_init(state->os, state->serial); state->vi = malloc(sizeof(vorbis_info)); vorbis_info_init(state->vi); state->vc = malloc(sizeof(vorbis_comment)); vorbis_comment_init(state->vc); if(ogg_stream_pagein(state->os, &og) < 0) { state->lasterror = _("Error reading first page of Ogg bitstream."); goto err; } if(ogg_stream_packetout(state->os, &header_main) != 1) { state->lasterror = _("Error reading initial header packet."); goto err; } if(vorbis_synthesis_headerin(state->vi, state->vc, &header_main) < 0) { state->lasterror = _("Ogg bitstream does not contain vorbis data."); goto err; } state->mainlen = header_main.bytes; state->mainbuf = malloc(state->mainlen); memcpy(state->mainbuf, header_main.packet, header_main.bytes); i = 0; header = &header_comments; while(i<2) { while(i<2) { int result = ogg_sync_pageout(state->oy, &og); if(result == 0) break; /* Too little data so far */ else if(result == 1) { ogg_stream_pagein(state->os, &og); while(i<2) { result = ogg_stream_packetout(state->os, header); if(result == 0) break; if(result == -1) { state->lasterror = _("Corrupt secondary header."); goto err; } vorbis_synthesis_headerin(state->vi, state->vc, header); if(i==1) { state->booklen = header->bytes; state->bookbuf = malloc(state->booklen); memcpy(state->bookbuf, header->packet, header->bytes); } i++; header = &header_codebooks; } } } buffer = ogg_sync_buffer(state->oy, CHUNKSIZE); bytes = state->read(buffer, 1, CHUNKSIZE, state->in); if(bytes == 0 && i < 2) { state->lasterror = _("EOF before end of vorbis headers."); goto err; } ogg_sync_wrote(state->oy, bytes); } /* Copy the vendor tag */ state->vendor = malloc(strlen(state->vc->vendor) +1); strcpy(state->vendor, state->vc->vendor); /* Headers are done! */ return 0; err: vcedit_clear_internals(state); return -1; } int vcedit_write(vcedit_state *state, void *out) { ogg_stream_state streamout; ogg_packet header_main; ogg_packet header_comments; ogg_packet header_codebooks; ogg_page ogout, ogin; ogg_packet op; ogg_int64_t granpos = 0; int result; char *buffer; int bytes; int needflush=0, needout=0; state->eosin = 0; state->extrapage = 0; header_main.bytes = state->mainlen; header_main.packet = state->mainbuf; header_main.b_o_s = 1; header_main.e_o_s = 0; header_main.granulepos = 0; header_codebooks.bytes = state->booklen; header_codebooks.packet = state->bookbuf; header_codebooks.b_o_s = 0; header_codebooks.e_o_s = 0; header_codebooks.granulepos = 0; ogg_stream_init(&streamout, state->serial); _commentheader_out(state->vc, state->vendor, &header_comments); ogg_stream_packetin(&streamout, &header_main); ogg_stream_packetin(&streamout, &header_comments); ogg_stream_packetin(&streamout, &header_codebooks); while((result = ogg_stream_flush(&streamout, &ogout))) { if(state->write(ogout.header,1,ogout.header_len, out) != (size_t) ogout.header_len) goto cleanup; if(state->write(ogout.body,1,ogout.body_len, out) != (size_t) ogout.body_len) goto cleanup; } while(_fetch_next_packet(state, &op, &ogin)) { int size; size = _blocksize(state, &op); granpos += size; if(needflush) { if(ogg_stream_flush(&streamout, &ogout)) { if(state->write(ogout.header,1,ogout.header_len, out) != (size_t) ogout.header_len) goto cleanup; if(state->write(ogout.body,1,ogout.body_len, out) != (size_t) ogout.body_len) goto cleanup; } } else if(needout) { if(ogg_stream_pageout(&streamout, &ogout)) { if(state->write(ogout.header,1,ogout.header_len, out) != (size_t) ogout.header_len) goto cleanup; if(state->write(ogout.body,1,ogout.body_len, out) != (size_t) ogout.body_len) goto cleanup; } } needflush=needout=0; if(op.granulepos == -1) { op.granulepos = granpos; ogg_stream_packetin(&streamout, &op); } else /* granulepos is set, validly. Use it, and force a flush to account for shortened blocks (vcut) when appropriate */ { if(granpos > op.granulepos) { granpos = op.granulepos; ogg_stream_packetin(&streamout, &op); needflush=1; } else { ogg_stream_packetin(&streamout, &op); needout=1; } } } streamout.e_o_s = 1; while(ogg_stream_flush(&streamout, &ogout)) { if(state->write(ogout.header,1,ogout.header_len, out) != (size_t) ogout.header_len) goto cleanup; if(state->write(ogout.body,1,ogout.body_len, out) != (size_t) ogout.body_len) goto cleanup; } if (state->extrapage) { if(state->write(ogin.header,1,ogin.header_len, out) != (size_t) ogin.header_len) goto cleanup; if (state->write(ogin.body,1,ogin.body_len, out) != (size_t) ogin.body_len) goto cleanup; } state->eosin=0; /* clear it, because not all paths to here do */ while(!state->eosin) /* We reached eos, not eof */ { /* We copy the rest of the stream (other logical streams) * through, a page at a time. */ while(1) { result = ogg_sync_pageout(state->oy, &ogout); if(result==0) break; if(result<0) state->lasterror = _("Corrupt or missing data, continuing..."); else { /* Don't bother going through the rest, we can just * write the page out now */ if(state->write(ogout.header,1,ogout.header_len, out) != (size_t) ogout.header_len) { fprintf(stderr, "Bumming out\n"); goto cleanup; } if(state->write(ogout.body,1,ogout.body_len, out) != (size_t) ogout.body_len) { fprintf(stderr, "Bumming out 2\n"); goto cleanup; } } } buffer = ogg_sync_buffer(state->oy, CHUNKSIZE); bytes = state->read(buffer,1, CHUNKSIZE, state->in); ogg_sync_wrote(state->oy, bytes); if(bytes == 0) { state->eosin = 1; break; } } cleanup: ogg_stream_clear(&streamout); ogg_packet_clear(&header_comments); free(state->mainbuf); free(state->bookbuf); state->mainbuf = state->bookbuf = NULL; if(!state->eosin) { state->lasterror = _("Error writing stream to output. " "Output stream may be corrupted or truncated."); return -1; } return 0; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/src/vcedit.h�������������������������������������������������������������������������0000644�0001750�0001750�00000002636�10541302761�015026� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* This program is licensed under the GNU Library General Public License, version 2, * a copy of which is included with this program (with filename LICENSE.LGPL). * * (c) 2000-2001 Michael Smith <msmith@labyrinth.net.au> * * VCEdit header. * * last modified: $ID:$ */ #ifndef __VCEDIT_H #define __VCEDIT_H #ifdef __cplusplus extern "C" { #endif #include <stdio.h> #include <ogg/ogg.h> #include <vorbis/codec.h> typedef size_t (*vcedit_read_func)(void *, size_t, size_t, void *); typedef size_t (*vcedit_write_func)(const void *, size_t, size_t, void *); typedef struct { ogg_sync_state *oy; ogg_stream_state *os; vorbis_comment *vc; vorbis_info *vi; vcedit_read_func read; vcedit_write_func write; void *in; long serial; unsigned char *mainbuf; unsigned char *bookbuf; int mainlen; int booklen; char *lasterror; char *vendor; int prevW; int extrapage; int eosin; } vcedit_state; extern vcedit_state * vcedit_new_state(void); extern void vcedit_clear(vcedit_state *state); extern vorbis_comment * vcedit_comments(vcedit_state *state); extern int vcedit_open(vcedit_state *state, FILE *in); extern int vcedit_open_callbacks(vcedit_state *state, void *in, vcedit_read_func read_func, vcedit_write_func write_func); extern int vcedit_write(vcedit_state *state, void *out); extern char * vcedit_error(vcedit_state *state); #ifdef __cplusplus } #endif #endif /* __VCEDIT_H */ ��������������������������������������������������������������������������������������������������tagtool-0.12.3/src/preferences.dtd������������������������������������������������������������������0000644�0001750�0001750�00000000366�10541302762�016374� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!ELEMENT preferences (attr)*> <!ELEMENT attr (value)*> <!ELEMENT value (#PCDATA)> <!ATTLIST preferences app CDATA #REQUIRED ver CDATA #REQUIRED> <!ATTLIST attr name CDATA #REQUIRED type CDATA #REQUIRED> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/pixmaps/�����������������������������������������������������������������������������0000755�0001750�0001750�00000000000�10571121451�014260� 5����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/pixmaps/Makefile.in������������������������������������������������������������������0000644�0001750�0001750�00000026755�10571112705�016346� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.7.9 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_MP3_FALSE = @ENABLE_MP3_FALSE@ ENABLE_MP3_TRUE = @ENABLE_MP3_TRUE@ ENABLE_VORBIS_FALSE = @ENABLE_VORBIS_FALSE@ ENABLE_VORBIS_TRUE = @ENABLE_VORBIS_TRUE@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_ICONV = @INTLTOOL_ICONV@ INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@ INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@ INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@ INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPEC_RELEASE = @SPEC_RELEASE@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ icon1dir = $(datadir)/icons/hicolor/48x48/apps icon1_DATA = TagTool.png icon2dir = $(datadir)/icons/hicolor/scalable/apps icon2_DATA = TagTool.svg resourcedir = $(pkgdatadir) resource_DATA = TagTool.png fail.png graydot.png greendot.png info.png \ ok.png warn.png edit.png file.png folder.png tab_edit.png \ tab_tag.png tab_clear.png tab_rename.png tab_playlist.png gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor EXTRA_DIST = Makefile.am $(resource_DATA) $(icon2_DATA) subdir = pixmaps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = DATA = $(icon1_DATA) $(icon2_DATA) $(resource_DATA) DIST_COMMON = $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu pixmaps/Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) uninstall-info-am: icon1DATA_INSTALL = $(INSTALL_DATA) install-icon1DATA: $(icon1_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(icon1dir) @list='$(icon1_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(icon1DATA_INSTALL) $$d$$p $(DESTDIR)$(icon1dir)/$$f"; \ $(icon1DATA_INSTALL) $$d$$p $(DESTDIR)$(icon1dir)/$$f; \ done uninstall-icon1DATA: @$(NORMAL_UNINSTALL) @list='$(icon1_DATA)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f $(DESTDIR)$(icon1dir)/$$f"; \ rm -f $(DESTDIR)$(icon1dir)/$$f; \ done icon2DATA_INSTALL = $(INSTALL_DATA) install-icon2DATA: $(icon2_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(icon2dir) @list='$(icon2_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(icon2DATA_INSTALL) $$d$$p $(DESTDIR)$(icon2dir)/$$f"; \ $(icon2DATA_INSTALL) $$d$$p $(DESTDIR)$(icon2dir)/$$f; \ done uninstall-icon2DATA: @$(NORMAL_UNINSTALL) @list='$(icon2_DATA)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f $(DESTDIR)$(icon2dir)/$$f"; \ rm -f $(DESTDIR)$(icon2dir)/$$f; \ done resourceDATA_INSTALL = $(INSTALL_DATA) install-resourceDATA: $(resource_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(resourcedir) @list='$(resource_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(resourceDATA_INSTALL) $$d$$p $(DESTDIR)$(resourcedir)/$$f"; \ $(resourceDATA_INSTALL) $$d$$p $(DESTDIR)$(resourcedir)/$$f; \ done uninstall-resourceDATA: @$(NORMAL_UNINSTALL) @list='$(resource_DATA)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f $(DESTDIR)$(resourcedir)/$$f"; \ rm -f $(DESTDIR)$(resourcedir)/$$f; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: $(mkinstalldirs) $(DESTDIR)$(icon1dir) $(DESTDIR)$(icon2dir) $(DESTDIR)$(resourcedir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-icon1DATA install-icon2DATA \ install-resourceDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-icon1DATA uninstall-icon2DATA uninstall-info-am \ uninstall-resourceDATA .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-icon1DATA install-icon2DATA \ install-info install-info-am install-man install-resourceDATA \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-icon1DATA uninstall-icon2DATA uninstall-info-am \ uninstall-resourceDATA install-data-hook: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. After install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �������������������tagtool-0.12.3/pixmaps/Makefile.am������������������������������������������������������������������0000644�0001750�0001750�00000001356�10541302765�016327� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� icon1dir = $(datadir)/icons/hicolor/48x48/apps icon1_DATA = TagTool.png icon2dir = $(datadir)/icons/hicolor/scalable/apps icon2_DATA = TagTool.svg resourcedir = $(pkgdatadir) resource_DATA = TagTool.png fail.png graydot.png greendot.png info.png \ ok.png warn.png edit.png file.png folder.png tab_edit.png \ tab_tag.png tab_clear.png tab_rename.png tab_playlist.png gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor install-data-hook: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. After install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi EXTRA_DIST = Makefile.am $(resource_DATA) $(icon2_DATA) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/pixmaps/TagTool.png������������������������������������������������������������������0000644�0001750�0001750�00000006544�10541302765�016356� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���0���0���W���sBIT|d���tEXtSoftware�www.inkscape.org<�� IDAThyl}?ًMIEQHdѱ,ײ-ɖo[ۑFna4])"'AFAENZNNv$+hdQ)璻<sfvf^X%%Fo7{w.E)gӾlWj_Le"U}�"ҲJ*?ߌ/"ыMMܠvz!/VKkEGgO\Τ1JVI(y�]<OUI`@@7 m$*h!U>v XrwP+SSYPc\t)Y.*6r1'+ȫ:>Dn(qU>0nc٪;'}QPvuh{V;Daj.@x3LDB?>(`\Ikb-|6>^DׇgNu Õ,_s7KVlf4[�Ф|`mkhrۇ3o=i(H+m  2g]'!:@I\VдBՆ1zG_sT9xO�M G氲>o@62k=0B1ΊY\{/ !"}GOhȫuKzg}Oest5yNYU֔�hV@ݲ_qZC6ΟU -3o%+f)c}Xc%bEE >ȩ6&;VyxiJݣ% hZh=2!^ʦTZ2-8L[ٶ)|G: dQ,W xL 0$@B)®#531{\fVDƛXK � Dtc/|E,(Gmm>CSO ;Gb Y~_ & `+EbxXq}QJW[^{囏>Lլu]�gns3]M%jǶz*fQVR f8>Y72Sɂ{'ׂm'K !zeBcтz 3¸K 4b^ܝ-;5wP]8J}w]WlYRģ-,X~i;e"zǍ. z&UGZ^"d8 ~~~Ni% =cGeg[N$"a=% '|J]bR:(IU?GbrI6:o\ǡ7u2I}Cw@I3m)�i#.E0/G[&5w$՞К_cɎ㶧lDJ+HG� w_hϧR[8- �ÕEΞS$(u( wa[<U3@ ؀O\zj<K~>o~�T/�!S}I>>?"6-@rզD� ۪RAY$�JPJ1w:tDfK⽳iIh`z i8rt<M)( wbzNY,r XlT>Iд/u o|dZO٠^G鷧x3&aRx8(RyDQ:;ǖO<-5U}[f9YR{Q%*fMO_ Kʻ܉q00&b!@фQ*F 1p'_scy @߸-C{/k)8|ڤߴڕH?w)m3 c�DdRyaqճP\3xMWto35 g&qIδ7;.d%7m4V'iQ5h�Y7]�-ma«Ь, n^Kmb�c~�m:'-۹KLd( dHl&AQq]Bנ\DPXX~rlVquSa[kvn?pǢ3f=׻� _D�n[•zI$bVȺz4]s]PR]qDfx=6<p07r! _.͸?|yO\ gwi$L ?Uu *U.i<Vt͇O#g+h1M+~@u9H =[?f$g1ve_l"H!oϑ@)]I|Wy-C(&ս8`iz?LrO4#�.0Ic!kN2 0}[?"7$pͭ7RYYqR=q4J3&y'R+~xh`Y>F Cyex+RX�-OM4-REG!w|v�1X}cT`b d[d}0AwbTkL\/d=#DG 2ņ _G!T{-kW:X~!yGM/g+P)Ss�}~2LA|3O}q: {m\ggpsx8krdQJgʮ`4 .4S3oUsM,+MsιJ)[4+|_#fu=Fsq T_`CB:Q*K2`rJVRso4OJU@qk6|}?n`e0oA_"ÁKW&;OFE""lTQ(T'<v ~*E=<#\Z77r. (*A2 JS ioQwamZ>>jue+quGu).ӀjIog}H@)uT7mHQj5D(SQUR̼/]bRҏKJ{Ǵ.oʸCWjsmk^@P4pJ 湷"u3(lVvl^4I/h`AϰR#�㦔rg*g%}QwY݅!Uiq!k@փQ>zrmE4wi+|W+%W�_.27m2����IENDB`������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/pixmaps/fail.png���������������������������������������������������������������������0000644�0001750�0001750�00000000701�10541302765�015705� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��� ��� ���Vu\���bKGD������ pHYs�� �� ����tIME"e���tEXtComment�Created with The GIMPd%n��%IDATxڥ.DQuP0Oa:e(T Dh½gRܙ!::Ygk8J.$JgsD'/ɓ|0K)C0x2?gg#�Z ^�(_xjr9Dը*00BX` 7& In* �h7JDJQ, ʱYlRJE%J�8tQf3=׭ؾ|O?n޲]gv>7@ *����IENDB`���������������������������������������������������������������tagtool-0.12.3/pixmaps/graydot.png������������������������������������������������������������������0000644�0001750�0001750�00000000603�10541302765�016444� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��� ��� ���2Ͻ��� pHYs�� �� ����tIME%$��"IDATxM11EO3!J dUv ؈b"Fd|:pOs/sNF CqN}aXx<F)~S5It�˥s{Oc UURsN,crp^zx< z&sBn7B|>ZVmi!HiH)eZ@9{##J)ʲDDwl6PJѶ-ZkʲDkp`۩{өL&.ZD @zf1OmbL]G����IENDB`�����������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/pixmaps/greendot.png�����������������������������������������������������������������0000644�0001750�0001750�00000000662�10541302765�016607� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��� ��� ���2Ͻ��� pHYs�� �� ����tIME$1ȝRm��QIDATxMKBaL\Kn2(>-!hvohA/Z!hri軆JD׼h\Q:ӁS,3>xTDìDe(Cy$I?z2)� hm}]a)e1FBX-o39/1W'93 %+XmUARX:pk:JTtj6oSuݭzuQΓ1S|eg;>ޔ,"ʜ'EϨN,` X�]S$Z:8#jk[(!<-nwι>yv;<jȚ莫Ľ�p4'15 \y Slk����IENDB`������������������������������������������������������������������������������tagtool-0.12.3/pixmaps/info.png���������������������������������������������������������������������0000644�0001750�0001750�00000000721�10541302765�015727� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��� ��� ���Vu\���bKGD������ pHYs�� �� ����tIMEc���tEXtComment�Created with The GIMPd%n��5IDATxڕ/CQAHK ML,VtJH$ y?BN]]0l$ KygxOL{O~w>gy×q*L:j҇&Flԫ!{v H5z* J 9Lae&+" 噓1�91 P00Rj S"ɒ7B!G,)&@ΰ@2br~ef?kn?~~e ˅RkOLwwsu#-4 ȤL[-Iz/˛JRd2W�Eλ����IENDB`�����������������������������������������������tagtool-0.12.3/pixmaps/ok.png�����������������������������������������������������������������������0000644�0001750�0001750�00000000766�10541302765�015416� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��� ��� ���Vu\���bKGD������ pHYs�� �� ����tIME �#'���tEXtComment�Created with The GIMPd%n��ZIDATxڥ.aD FEVVعMB]Xسo !!E;(_ؚd;;PB(%*Q5獙zԂ8pTn:~}J�f$ Q!XT@X]NIJ5sި?l!{Uy<չP!_xH&_Y'T]CJ@ rq|1J�WX,�1.mY4БfrQBx;=kNG3P> @ɜ)I\tGZ}I>;NOꔪ?Yok)_����IENDB`����������tagtool-0.12.3/pixmaps/warn.png���������������������������������������������������������������������0000644�0001750�0001750�00000000633�10541302765�015745� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��� ��� ���Vu\���bKGD������ pHYs�� �� ����tIME y���tEXtComment�Created with The GIMPd%n���IDATxڭJ`ODQA "(s؇h vpprp \|EW"mLJ$ E=߽p(sCrf&'i.$$%[( 4TJ Uw�dEUQ]!܄ k@w :,`e.C?@{S\_Un%ɑ$:sHD"YEÆW3L%*֨w'u_1o>}6+{����IENDB`�����������������������������������������������������������������������������������������������������tagtool-0.12.3/pixmaps/edit.png���������������������������������������������������������������������0000644�0001750�0001750�00000001134�10541302765�015720� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��������� ���bKGD������ pHYs�� �� ����tIME:C3��IDATxڵOkA!6a5<݀z7HcH^ D{KRq#KC˒? %d ΒMwMz 3yy`C%LTjzMW2L&jJr"C)F,Zl6}`m�`v)Rq B~N[#` fN'uQJaYa  >I^!RFR4M� b qpW;'3`MRJEzty.N7y錝GkcHA0CEL&Sq{x; +p{)R+=4Ml6 3>/?`65TJ"d:NzE[qmRp6KvC^GXdk3�OֿPV</<t>ܪixN颖^7bKNu)rFbp8 Sh7jmpR7Wl�~_\Jv����IENDB`������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/pixmaps/file.png���������������������������������������������������������������������0000644�0001750�0001750�00000001124�10541302765�015711� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������a���bKGD������ pHYs�� �� ����tIME9+���tEXtComment�Created with The GIMPd%n��IDATxڥ;kTQ32$Z`TL"ډ0D#`26 A|0{/s 9IǭgoFu/wOKi74ȮlAvz|^CWoO�mIH^i'Zl ܽwgRJZ7ȄOQ*5ǹtv̯s)L0+$Dj.r?}f;?hB XW.X<|#9@„"! `}|Z3Ș&UU 0T.*=ًBx pm:ulBx`3(AfCvA0mv9 ܃Wxj\d崦:0Cr!GqE{ƇRjlNSm:?؀q EΧ����IENDB`��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/pixmaps/folder.png�������������������������������������������������������������������0000644�0001750�0001750�00000001177�10541302765�016255� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���������a���bKGD������ pHYs�� �� ����tIME^o���tEXtComment�Created with The GIMPd%n��IDATxœjAIDҴ4Zw*n Y \ڝ X\ �tܸJA 5T&K̗g$mRTseay0{2Ee*2&XQ՚=V�OWK<=?Zv8rtiSopi JY)6o?`�d,ĥ+w8w7W'@0bnalumNm F6`_MvkZ&/cFJ'ƒXPD~VXu22paOd0A@&\ l�4NP )NZ (.F A m˜ KkA;&΀*! Q&@v/cjցrt$ };qlD"snѡhiKlu:Ȳ OBT�%]n^?Fay>nJ�8q?dhrxx= +`����IENDB`�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/pixmaps/tab_edit.png�����������������������������������������������������������������0000644�0001750�0001750�00000004724�10541302765�016556� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���0���0���W���bKGD������ pHYs�� �� ����tIME 2 O"���tEXtComment�Created with The GIMPd%n�� 8IDATxkUvggvR@"rDBb! h5F"&*WM"R$Uhb!J@tB v3;;3<~xaL3ya^׼5y-;`0Xeo"q3-xbxFgz__ғ]u[#]ħ};zok} #X/% ԷsXoVmW[uӬF.]lcpf.XܛOZ~e.Aug8 {j>xfxN +$^[NZ~e.UݙՂ=Hs>XS,Ԅ_<~Sˈm ۷j ]kDM˖\[O�ǽ':˞ݖm#kyG{ Yc&EEs9uX(ƺe[/^y=_8Sٶ "`:tR\-)iۯ FPDQlJebyRSSS<`T:e~N`x+O=gM(0( I2C):,r+oM[_z/51[alDiщ" 3YAv;sۀ}# \|[O9wOfZ3(pΡÀ@+D�k0_5 ~m ǓKʙ1Q,2ZdddRjmc,THv<<R0 C`snwB֖3N=D6ӒAE({@#JxÐ71mKo{|<rrez ޑdY ےڛn]L�z`gw?L&9O�ut5H&t}qE ~j~/_]1HKï}h!Re󖗙Tֱ!l|Nz:)۸ǷV+;* !nE {MChAEks$%ȂF+xh`{�}9v)Ek:Mug>7M=2 t*EWGBv:;lo#rڻ/ �^*}?lo39ōC_yrcn?3'LbLA�+-^i~r9}N/uK.,%C,=<=tgȑJ%I%u3G7`cӚkpՍs[{V,S7^pT:{cefxtѕ\я(+cE`hH(N ]<OO,/$LB.KOW<B|[d"I Adlď׬.57z4zu|!.9=57YpAz3xQJ;B� =2<<MǷVU!L֖4|--Irr,dD26WX+/o¿Ԛgq(.=z1?+?|=cGdte^PZE)0hcT-}dZҤ[RÐd2I " 8.f̮ _GD_oS?Xx!ZT{OXNCi0 (%wx>NtFxAMS+ĉ/`oaý7nZwϽJ'?[vwuлZC"pk=-"qDmC0A$0�qB XYc#vNȭ߷\�,?tH;CЊZ@ ^@[kL&c[)A+B\Dڂ1%,(`( ^[,*7տKu@L,] ΡpƁR�^ AG8kGƋCཋ-B!]eqR(ΕVv_!30f�8YY}Ǽ o, .roEpXbQE8c⊤t j:�?7߳j Fxq{k/ljvک=%.4sٻ(1DނN^<95Xk_ l9<E#6.lj03E񁁿OWkk&l| \붞BsZEq/Q@(WfS35O~+s ;pW`v7PKR!M?yk^o\8vt����IENDB`��������������������������������������������tagtool-0.12.3/pixmaps/tab_tag.png������������������������������������������������������������������0000644�0001750�0001750�00000007432�10541302765�016403� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���0���0���W���bKGD������ pHYs�� �� ����tIME -+P���tEXtComment�Created with The GIMPd%n��~IDATx{\Uܪ~@� h2<&0 FP^dl\*0Kt ,`qC "D"I $$A߯<q�B :Yju[9.}>jfS#i.9ZZ[^ԩZ< GOnj[cutv_Ԙm9f&LĉSD_ܱ1 '2g-KV͆O0}or-g0q=t<cǺw*Z?w`ڴ}JE?f! 'ZL/E<m??I!6B0ں YޚbgWi0Be-啟h g5bC^ّfցWS(죈 XԆ}Wف�&>! 8u__v@sًUs}>~}?~# x(ricR+ \/:gf҈"J$+ (^Vߴ/n>6HhCC 7@GwJ<Nsh˳)Rk @"bEġ�,wݷ>y2WƵ}a:{zbdt02M0zf_(/uzS˗fd(p$W/~1 ⅟*]{Krŗ'E%:{ꣻF ETVWqd0C5P_L矕Mg(ĻZDuЈ Ai<o#t"Ce+wr÷fƿbo!F(t:MmZJ##u5[쮶N{(4u{Ʀt{G< (MT*)($1Ł\ɣ n;L_7ew?4X ,D|| M4Py7\s7w͎y{@%nNSee/#r`ZAIDD&B' nN MjX$lq6S qu0kpYZsIҦ-P ;K^I =^|U3yg&lᝧ"˜A�+-^iV-_D4\`Ѯzoқ3JʐgiXO}Mqu9**RT$<v]E}e ?썞55xy355Y_s`hdՌϟ<o?{ GYD,J@+iet^+[Yvu,M5ot\q4穭͑NJH$ Uu6&{1\_@U&OL>䲯]pVB՗^\YW]zA9)(Pk�/=I{%/ncpt(bHWN*SImL&E.!R ЁBL%~|߽tcqy›{GM͎'߹7-{7Ϭ3O;op(1W$7{ = J+(& Akx_KEJ]qHHE**3t&ILT Z+@+3Xub3{?.oWGvкS>6xKM[o,Q[a49~GO:� {D8tj$pΡAPJ^},tFxAJۓTqV:/`' ᱧָW_zγ_q>-|ݿtOjj[pq >֐@`m( x!Ђs,Fxƅ(k#A bP8TgTq?G!y{+^X_]ں9wo_Uw|lRѩdh�hSRXb EST({ +¹GpDbbT{@YsD!;"#w.XxM˶D+o|#kV˟i57cS5qB#Zm�:2fϴF91ϔ͘!^@%H(8p89786YA!8p"D"ށXD04N:{W\<\6=nPSZ )>mڲF�ZZ΂x8L \EpXbQE8S ଋwDba o# wԑvC ϷRd ~{͆-nXȲwj;Wm؂C-x d|lv1aZGh\|ϖA;'PؘɄ! wcw/ܽ7?׺x熾r^k ߿֓{u}gM *PxA)�*_;{˟�(;wv~^1򽯿1:x✋gc灥ٳN{An˼ѳ p@dk7;y|2P#bIe*+T2Q&> H%>zg!P$ (b�%OYܷxytg{90#yÚ ݳnnC+~k0Zf+q I# 18X78S8a: 븿fTqXggYqۏ</m]3N;s k{PwґOںCLTL Pę"*cq:qq" .̹X#8D, X"D�V"-otgǼ/msW:mޢbWV'|圍7kk}”JΕ@TVV&@J)Vz0nK%o @%w.³֎E,|䩱9_BT:^ߋ|hp%9DB36ZUTT>4J@b+[`IyD:֟%ݲ4/|'V7UG?vta7;?rd"[N@*Ҩ(q6qxkށZ ^t\5q`qB$A�xzQ'ۖ<5C=Zmhjk>{BŊ/&sO<`],�X"q{(ٓ8k`v6ok=[7oo㾇,t/Dugns$HCls;d<ZS:dG)烷Db)(x1s.<sH W3m_ UȘ׶N+:/�(]Eĺ YJQo rଉOsŸ' LgvsP ں=S2,|G)8bvh([WրC*Xuxo(B-e y>­Yst8 @RDa4W57扼GBBE%{ X_e*8`]\gI:Z<Z_ؾqzy.>HOoDm>;]]|}B ׈W#]*#����IENDB`��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/pixmaps/tab_clear.png����������������������������������������������������������������0000644�0001750�0001750�00000007621�10541302765�016716� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���0���0���W���bKGD������ pHYs�� �� ����tIME 6(}B���tEXtComment�Created with The GIMPd%n��IDATx{TՕ[/n_F!�ƄD31&+D4Y$NtE 1 *Q1 @7EtwU-Pg0QWfeZs}op܎q;n7mSjH=fC(SO7w~'<mES#*G/S~Y^Sʉ*@gkã?t5'<9w.}&5M96F)INcM}C0J\8BG/ǵY.~zA:lne*Y�|k9+~\B ;Z{lO}0n|#^s{r9zē۷z{�~emߥWt7Q#K{{Ƙ\2~OiM&V[B٧vk+*۝[fN*zS駪4${B! M\zE~Еuk*3e<Zۼ֯ Jr=U%`|瞗dQVJ Dd"tD0ZkQJ R|!liTx&]~3ztEy)"`<T) ijˠ4@C_SyRJQ^Vu0a ꩩ$ZcZ,^inڽ];�>w?st$R c-$KXcq(h]N>ʡrTJCAgiQ#A a(+/tyd"y+� ,v6?/DkM�2"}Ug/we9th`  ?kj>r"tf!: sɇOv&k C^'p_# 4Nɣ?οBՕ3jW,jּϚ,)){ 9=�ö/u+gLmDg,-;Ȳe1:AeU46$h7ġ*ɐe)=كe嫪2 ]8u˖/<5 'r46*t@!BOR>8Ֆ9Z3s;S*bD.OK{ T t=|zgnvͺsciY>!D!D΃(΀҈RXkQqh{r%%/a2Izs>:.aL;?= @oEYo],CéIQQQNRǬuaQ/Ϝq&j|J0v<*â%O{/{auXt,Zix^gLm<T&϶Ōij`&&;z[P X4c#xain]pu}=ݽ}Ou5w}j̏M=57~sMk=s߮Yw+.L<8uP!"W^V®],ٕ4560d)J))'qKRo(6~d#*CWO[>;oG[{W7y8./RIO:yh�eN9o}OU߿hi߶{rXnlU:p΂lu}AOgGR3/fTSMfҔ$K*Isv6NeԈ4�7pWulS_leO~l3km5Y(q1/-MwƏ^~љÊ$(",JL(8GGixVR*9^,^<1]zG|_gO9cٟ=PJm3݋<dovm<+d1QcGo_ZP' BlBD <G|5: Pb0J@=ZTjh󀠕U]eE0tvvw1}y�]_W+э 8k1XY-C Yi:? N1(\潉{)pB06V%k<v|/.<eכyUm:=OЁL?디wc&2x pN!^R(8Cyuxqp^aŢP8WOGd,V,Z D8҂ 8ro//Z-] 'NhRn0wܲ_?-8b8Z�:2k7D(%gŘ(Y0AF8kp"(NZ;P(D' eܓI%O<M;m#Kz>jQYgWv6w �?[΂x8L7!aNjFCD..>!>.rC FxدVɓ8Cܰ%֝8pg-b`0vߺ;Qb^L"fZ'.,0`$`\|vO.C!x<bM x6n֮?;kރ<C7-!YX6U@7X_W7Z)U,]ހX#틏 A0ƹڧ F,]&wu6cY؊ٗ{7@d7n/njH*=\+DJ&uEEJ)7q! B$ (b�%bjq,^*37eJÿxpq&MhgRWߓ=K9:rtD7 r ;bq^L #Ӣu8[@[|> βj&;~X Yc[/nx?s̆Ixc_(-Z "JJCXxam6NŜn|wd1!bQxDXqxv頵N͚[YuvqσKrcZ₏nP]UR%&/x\H*JDTTǵBE}{(�hy]}Ã<>q|/ߵ09/oy?9{1ajrd\IIRUfJuI Z†�QظCğ#rE hfhcO秝}u5m>btg[r};/X0gFY" ֡CȔҤҨE0J"o ;A+{wEs`qB$V �W~Qvȇږ??WzӆFun=^MA̟:`] o-1 E$ցwGu@Ձ0�c hng?Ǝ6/{noE][8E2"XbY8GT.R%ّ]yJ3LD<17\}ٺw|с*޾5q7n\ἠ&}<E""+Pg *TBͿ "/N.8" ph/ܽtvl.pw(Wji;P 8,|,ƣCI74qwVxuE 8t45 |@KCG~ڽ΁:d",0ix%hQqw-*(b~{_L#.At9x'ؾcZ wwVWO~[Yg Z]O;7l2W����IENDB`���������������������������������������������������������������������������������������������������������������tagtool-0.12.3/pixmaps/tab_rename.png���������������������������������������������������������������0000644�0001750�0001750�00000005423�10541302765�017075� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���0���0���W���bKGD������ pHYs�� �� ����tIME  Լ"n���tEXtComment�Created with The GIMPd%n�� wIDATxkT BKyIM%S1QkUu*54Yv^ybURʓ'O˻RT.+!M< 00ü32pz{μ i)kޞ~HJ R"9\JLf 7S'tG=Ynlߜ-h[Koo|'֭x3srRA'maw)E)~>;|D+M9bmv@I`/<`o]BZ<00ˁOh`1pXx9 DJh|;Wј_X*�^@pg �`[ z&BBH*dUHU 4[Ti*kVI>9Ļڶ r3[)%BH!!@UJU*%RYw WBVJn,Rjsa7m��^ƾ7r@8-v!Nc~p|^9zM1^zﮱ.84!S1@Jd{ޣg"|w!$$/_b['QS JIcHJ9GOjѐXrҖ(FD6\7q|YW֣jݫ8k _Dɒ72ygD&wmS_&.og^>3g͛jO;ms; RӼS$ڼXzί6 =*@ޡع} .hPpSNQ7>%#G>9m_qϞ=_Xy3Ndj_rرݾR4GrD'-t:;GdDwMIt_Cꂒu|m7'=~4o″n2!P)maIT &Md tBhh3fFU?~3<\OK.ծ]3~:[97B, )ٳsGrrs^%7; iNOv66 f"ap |P>Yz;sF!Uex--)fXr=ʥ`5S{ )XAHJq)gJ{'3+vF#.$d oNN`:t bpRYe@spCâ).+`q_L�C jq3Y/SޒN;{Un_]ƪ^&'bb1/�dZo}{fכMjVA_�yETtO6o /2m2Q-*:;Ux48P<8� ,z,mٸm7nPyRo1hHAA>&oq}7'~ihRȜșt)DСC( Oo< (Nc`�RRtVz ![MZ)!g52`@BÉU5SoL5/>~#Y ҍ5w*$8w fݷMz$@yK_CJIމc^>GPVZLDTw=3y+:mt O'J3LIQ<<aCH$ Wd| q8Po235L GlOsPUzpBùVSjED04GL\Ea4iSZ\L?"(XAϰCn ٢7|Y}\$&_gfݛ<yHºuCQ"Y<<<էzO=g<-E:$n>%Kw¤GGLcOT?@ye9gϐа(AtB'/{{hnd2O?dDU+)>_`Uӫ=:Ńk׮]2r8 B#cy~d~WV18%޾VX[@K}j}Q/ˊ |*=aݢMѩ{dNS).*u5r/vٰowDJ8_32T"]v RSC!.>]ey[ R]U19KHO2<ؔW>;NQvr;08n9H 6>ҩoOv2ߛ�ϕ1sQ{ENm#]:&9jL*wY^kIJmnUY26)UV^Ɨ+fy,˪2JM*vU4EӦ<%ݸz]:BUo9SxfMܚ*a"|#� -[ͦZ ~[D+ummް3\pM}%g";vQWsXQzMhY -8t]- C5gݵޤpDi̎p!-sK%^-S5w&څhT%`:0�O@.`iAJ7Z-kItnnq]oV1e j?gQW{ޠY(n V#^ @*iKT:8����IENDB`���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/pixmaps/tab_playlist.png�������������������������������������������������������������0000644�0001750�0001750�00000006147�10541302765�017473� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR���0���0���W���bKGD������ pHYs�� �� ����tIME +:o,�� IDATxZkpU힙<&�&!EDEYתkZ+>JK [.*,jkKQ@#y $C@IIf=ݙ<$ᵿNnuOO~?r>{_L2gvόyŜ34!D ڮ;߽żyYi/АɐAÜp]ķ!A(_!_֧zԤk~Ybp"/{<۹HAɚ/~į9ge㎙@/[u�2|ݑ¦HAU�vI_j5k�H8=!Yq44A.zdk_yBp"D;F|b QpH!<Ԇ#no|7/<r@bF!d@D1wSï`4̚1X3f(YEU9*" �iB9ՙ>-g9$YNXj5j�D@ 8eęqi u|XdƗ׾xU(GT${z]Dx^U⢘ 3 z;UE$�+Nb,E&E2"BgE(P�USM}0JSq{qtU&=>&b� "j|pEQQQas:p:(--07_A% S< sr8-KVn)dEQ DhhsI  //oII@DH3F7_`Tj5xo||n5�"h�W':6*hr@e$*ɦd[ܞ>?,vTxV�'1&$I@hFDp{'`Jݐ%nqLTUUY: `lt2ҒlnU($q8a\2D <}hG-mv=BsAy ! :�;o[w6쯨kpMhYg!1Qv";eãF@l`]ݐ8o5�"ǘSADhni D: /b"Y0*v!�-**Au$&$�d?�{Gga�CrfXH j\+P91=!ф�cl�=аp̈́�R9_�:5EUG[HPʴ)Tsc$#:1SpZX 2HUU,�heM4Jߡhm'Q ڐ9!^_r2@=8hlt�ͧ% ރmlA _t�={ #FWe E3r8P]8�OIl;0^Jj�BҘ1D`}Ok6\Y'xzZ9XgkF�% kɦ7NNLKImz.I QDD Nk׿>Ӄ`<j6b/o3伜ɰ٬Dpu_]pMD'&d&bNe(++5 H USx|?x&5�#yJb�([fͲ٬ A_[ }0tSa1惈0=77b# _!|@UU$NBϝX�P8ށ>?,_/˾ AMX91"Ds,�S|>z惭V,VIհfY(~BUUDN2ԟ'OCcYbH찇ف(?\Jt374%MLO1Ey!TUV vmA(?Eѣ�xrh9sjHU?S?\,Z.H7wg\j?T51Y"\YO$`x+gz.gނa(~SIUUH2_ů~}_+[Zv|etQ:+g`F^SM[V+y٦XM ׇJ>Tsc$ i4 >?omGlHdY6a 4u+:DOKbcFB|<"f4Zn[3o!!I3 @479A kC|b7W#(2`HMpn9mXJd6.446M �p2QQly8߃,Ȓ<i8}֝H|>NNI�$$ FC1$E7#@о \³g=:8X)4Uz'MAo �ЕBזfK$sE�(̝:6<F ) `g(�v�  >�h� =}#ς@Võ%Hu3rN0^޽PV_7Ї! ! ަo??BtX0 �3![Qytپ&z�-\ 1v{UR }!ͽQ�okzǽ?=DZtQ\k?o!�U�G"F ocgЇKm�;<C$o?Y :h ݺujܳca�HB-$p6($Y?e> 詥%ﭨBkkص8[T.sV;#/'vHF1ZW 6lGw{ž(Kٷ?$hm\ׄ/]mg*X=# W5~28.F^؈6QgR� ?KPxTfhRoNy?4p����IENDB`�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/pixmaps/TagTool.svg������������������������������������������������������������������0000644�0001750�0001750�00000034366�10541302765�016374� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Sodipodi ("http://www.sodipodi.com/") --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg604" sodipodi:version="0.32" width="72pt" height="72pt" sodipodi:docbase="/home/paol/Projects/tagtool_012x/pixmaps" sodipodi:docname="TagTool.svg" inkscape:version="0.44" inkscape:export-filename="/home/paol/Projects/tagtool_012x/pixmaps/TagTool.png" inkscape:export-xdpi="48" inkscape:export-ydpi="48"> <metadata id="metadata27"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> </cc:Work> </rdf:RDF> </metadata> <defs id="defs606"> <linearGradient id="linearGradient612"> <stop style="stop-color:#ffffff;stop-opacity:1;" offset="0.000000" id="stop613" /> <stop style="stop-color:#ffffff;stop-opacity:0;" offset="1.000000" id="stop614" /> </linearGradient> <linearGradient id="linearGradient2994"> <stop style="stop-color:#000000;stop-opacity:1;" offset="0" id="stop2996" /> <stop style="stop-color:#c9c9c9;stop-opacity:1;" offset="1" id="stop2998" /> </linearGradient> <linearGradient inkscape:collect="always" id="linearGradient2984"> <stop style="stop-color:#e7e2b8;stop-opacity:1;" offset="0" id="stop2986" /> <stop style="stop-color:#e7e2b8;stop-opacity:0;" offset="1" id="stop2988" /> </linearGradient> <linearGradient id="linearGradient2974"> <stop style="stop-color:#c1c1c1;stop-opacity:1;" offset="0" id="stop2976" /> <stop style="stop-color:#acacac;stop-opacity:1;" offset="1" id="stop2978" /> </linearGradient> <linearGradient id="linearGradient2966"> <stop style="stop-color:#ffd1d1;stop-opacity:1;" offset="0" id="stop2968" /> <stop id="stop3006" offset="0.5" style="stop-color:#ff1d1d;stop-opacity:1;" /> <stop style="stop-color:#6f0000;stop-opacity:1;" offset="1" id="stop2970" /> </linearGradient> <linearGradient inkscape:collect="always" xlink:href="#linearGradient2966" id="linearGradient1720" gradientUnits="userSpaceOnUse" gradientTransform="translate(-5.669292,0)" x1="48.90625" y1="17.376184" x2="50.988335" y2="22.250591" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient2974" id="linearGradient1722" gradientUnits="userSpaceOnUse" gradientTransform="translate(-5.669292,0)" x1="46" y1="19.8125" x2="47.6875" y2="22.625" /> <radialGradient inkscape:collect="always" xlink:href="#linearGradient2984" id="radialGradient1724" gradientUnits="userSpaceOnUse" gradientTransform="matrix(2.923565,0,0,2.029717,-61.55532,-27.88417)" cx="29.053354" cy="27.640751" fx="29.053354" fy="27.640751" r="3.2408544" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient2994" id="linearGradient1726" gradientUnits="userSpaceOnUse" gradientTransform="translate(-5.825542,0.125)" x1="25.71875" y1="31.046875" x2="25.514589" y2="30.703125" /> <radialGradient inkscape:collect="always" xlink:href="#linearGradient612" id="radialGradient3559" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.909685,0,0,1.544512,-9.003236,-36.54026)" spreadMethod="pad" cx="8.17300129" cy="62.0631676" fx="8.17300129" fy="62.0631676" r="4.03522396" /> <radialGradient inkscape:collect="always" xlink:href="#linearGradient612" id="radialGradient3583" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.909685,0,0,1.544512,-9.003236,-36.54026)" spreadMethod="pad" cx="8.17300129" cy="62.0631676" fx="8.17300129" fy="62.0631676" r="4.03522396" /> </defs> <sodipodi:namedview id="base" inkscape:zoom="5.4788397" inkscape:cx="44.629709" inkscape:cy="47.410564" inkscape:window-width="919" inkscape:window-height="780" inkscape:window-x="408" inkscape:window-y="169" inkscape:current-layer="svg604" /> <g id="g3553" transform="matrix(1.391135,0,0,1.466923,0.63862,-31.59411)" style="opacity:0.87315638"> <path style="font-size:12px;fill:#0d0000;fill-opacity:0.30147095;fill-rule:evenodd;stroke-width:1pt" d="M 7.9925808,37.072598 L 13.139556,57.52853 C 4.8251914,57.396539 3.7694034,63.071455 4.2973089,66.89873 C 6.8048127,77.720478 19.606302,74.685272 28.052562,71.12198 C 26.99675,67.294585 23.037602,49.214262 22.509756,46.046705 C 27.12874,44.859021 30.812511,44.071029 30.812511,44.071029 C 30.812511,44.071029 32.251825,29.943616 30.93215,26.248332 C 25.785079,28.095975 7.8606018,37.336462 7.9925808,37.072598 z " id="path635" sodipodi:nodetypes="cccccccc" /> <path style="font-size:12px;fill:#0d3c07;fill-rule:evenodd;stroke-width:1pt" d="M 6.8422942,36.018795 L 11.812595,55.77256 C 3.7836283,55.645099 2.7640806,61.125219 3.273866,64.82112 C 5.6952974,75.271402 18.057364,72.340381 26.213699,68.899402 C 25.194128,65.203387 21.370882,47.743685 20.861155,44.684858 C 25.321589,43.537942 29.86474,42.845083 29.86474,42.845083 C 29.86474,42.845083 31.036779,31.077142 29.762402,27.508702 C 24.79201,29.292922 6.714845,36.273602 6.8422942,36.018795 z " id="path616" sodipodi:nodetypes="cccccccc" /> <path style="font-size:12px;fill:#68a5af;fill-opacity:1;fill-rule:evenodd;stroke-width:1pt" d="M 16.145684,59.086078 L 10.793024,38.057821 L 27.312255,30.552987 L 27.682018,39.064889 L 15.508495,42.008644 L 21.370882,65.840575 C 21.370882,65.840575 13.724275,71.448156 7.0971811,65.968036 C 5.6952974,64.693659 5.5678481,61.252565 7.8618418,59.978188 C 9.7734532,57.556779 16.018223,59.340999 16.145684,59.086078 z " id="path574" sodipodi:nodetypes="ccccccccc" /> <path style="font-size:12px;fill:url(#radialGradient3559);fill-rule:evenodd;stroke-width:1pt" d="M 15.854014,62.335903 C 12.667856,60.99683 11.604774,63.419079 10.920553,66.605237 C 8.1972401,66.605237 6.2418883,65.202449 6.2418883,62.845633 C 6.2418883,60.488989 8.0697909,58.831163 10.793121,58.831163 C 13.516433,58.831163 15.854014,59.979258 15.854014,62.335903 z " id="path623" sodipodi:nodetypes="ccccc" /> </g> <g id="g3573" transform="matrix(1.391135,0,0,1.440398,23.423,-26.40248)" style="opacity:1"> <path style="font-size:12px;fill:#0d0000;fill-opacity:0.30147095;fill-rule:evenodd;stroke-width:1pt" d="M 7.9925808,37.072598 L 13.139556,57.52853 C 4.8251914,57.396539 3.7694034,63.071455 4.2973089,66.89873 C 6.8048127,77.720478 19.606302,74.685272 28.052562,71.12198 C 26.99675,67.294585 23.037602,49.214262 22.509756,46.046705 C 27.12874,44.859021 30.812511,44.071029 30.812511,44.071029 C 30.812511,44.071029 32.251825,29.943616 30.93215,26.248332 C 25.785079,28.095975 7.8606018,37.336462 7.9925808,37.072598 z " id="path3575" sodipodi:nodetypes="cccccccc" /> <path style="font-size:12px;fill:#0d3c07;fill-rule:evenodd;stroke-width:1pt" d="M 6.8422942,36.018795 L 11.812595,55.77256 C 3.7836283,55.645099 2.7640806,61.125219 3.273866,64.82112 C 5.6952974,75.271402 18.057364,72.340381 26.213699,68.899402 C 25.194128,65.203387 21.370882,47.743685 20.861155,44.684858 C 25.321589,43.537942 29.86474,42.845083 29.86474,42.845083 C 29.86474,42.845083 31.036779,31.077142 29.762402,27.508702 C 24.79201,29.292922 6.714845,36.273602 6.8422942,36.018795 z " id="path3577" sodipodi:nodetypes="cccccccc" /> <path style="font-size:12px;fill:#68a5af;fill-opacity:1;fill-rule:evenodd;stroke-width:1pt" d="M 16.145684,59.086078 L 10.793024,38.057821 L 27.312255,30.552987 L 27.682018,39.064889 L 15.508495,42.008644 L 21.370882,65.840575 C 21.370882,65.840575 13.724275,71.448156 7.0971811,65.968036 C 5.6952974,64.693659 5.5678481,61.252565 7.8618418,59.978188 C 9.7734532,57.556779 16.018223,59.340999 16.145684,59.086078 z " id="path3579" sodipodi:nodetypes="ccccccccc" /> <path style="font-size:12px;fill:url(#radialGradient3583);fill-rule:evenodd;stroke-width:1pt" d="M 15.854014,62.335903 C 12.667856,60.99683 11.604774,63.419079 10.920553,66.605237 C 8.1972401,66.605237 6.2418883,65.202449 6.2418883,62.845633 C 6.2418883,60.488989 8.0697909,58.831163 10.793121,58.831163 C 13.516433,58.831163 15.854014,59.979258 15.854014,62.335903 z " id="path3581" sodipodi:nodetypes="ccccc" /> </g> <g inkscape:r_cy="true" inkscape:r_cx="true" transform="matrix(2.05482,-0.901459,0.976339,2.083983,11.34705,-40.562)" id="g1574"> <path inkscape:r_cy="true" inkscape:r_cx="true" style="color:black;fill:#cb9022;fill-opacity:1;fill-rule:evenodd;stroke:#5c410c;stroke-width:0.93443578;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" d="M 17.34116,32.5 L 22.96616,26.875 L 43.059909,17.125 C 46.309909,15.875 48.247409,20.5 45.372409,22.125 L 25.34116,31.5 L 17.34116,32.5 z " id="path2960" sodipodi:nodetypes="cccccc" transform="translate(-29.75546,19)" /> <path inkscape:r_cy="true" inkscape:r_cx="true" sodipodi:nodetypes="czcczcc" id="path2964" d="M 38.330708,20 C 38.330708,20 39.768208,20.09375 40.330708,21.34375 C 40.910201,22.631511 40.330708,24 40.330708,24 L 45.361958,21.53125 C 45.361958,21.53125 46.81399,20.649883 46.018208,18.6875 C 45.233296,16.751923 43.330708,17.53125 43.330708,17.53125 L 38.330708,20 z " style="color:black;fill:url(#linearGradient1720);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" transform="translate(-29.75546,19)" /> <path inkscape:r_cy="true" inkscape:r_cx="true" style="color:black;fill:url(#linearGradient1722);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" d="M 38.330708,20 C 38.330708,20 39.768208,20.09375 40.330708,21.34375 C 40.910201,22.631511 40.330708,24 40.330708,24 L 42.330708,23 C 42.330708,23 43.15774,21.681133 42.549458,20.3125 C 41.924458,18.90625 40.330708,19 40.330708,19 L 38.330708,20 z " id="path2962" sodipodi:nodetypes="czcczcc" transform="translate(-29.75546,19)" /> <path inkscape:r_cy="true" inkscape:r_cx="true" style="color:black;fill:url(#radialGradient1724);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" d="M 18.768208,31.78125 L 23.268208,27.28125 C 24.768208,28.09375 25.549458,29.4375 25.143208,31 L 18.768208,31.78125 z " id="path2982" sodipodi:nodetypes="cccc" transform="translate(-29.75546,19)" /> <path inkscape:r_cy="true" inkscape:r_cx="true" style="color:black;fill:url(#linearGradient1726);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" d="M 20.111958,30.375 L 18.486958,31.96875 L 20.830708,31.65625 C 21.049458,30.9375 20.643208,30.59375 20.111958,30.375 z " id="path2992" sodipodi:nodetypes="cccc" transform="translate(-29.75546,19)" /> <path inkscape:r_cy="true" inkscape:r_cx="true" style="color:black;fill:white;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" d="M 23.268208,27.25 L 24.830708,28.5 L 40.218048,21.18133 C 39.773616,20.325286 38.976281,20.096733 38.314669,20.019068 L 23.268208,27.25 z " id="path3002" sodipodi:nodetypes="ccccc" transform="translate(-29.75546,19)" /> <path inkscape:r_cy="true" inkscape:r_cx="true" style="color:black;fill:black;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" d="M 25.143208,31.0625 L 25.330708,30.3125 L 40.561798,23.1829 C 40.561798,23.1829 40.451638,23.796527 40.345919,23.93225 L 25.143208,31.0625 z " id="path3004" sodipodi:nodetypes="ccccc" transform="translate(-29.75546,19)" /> </g> </svg> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/data/��������������������������������������������������������������������������������0000755�0001750�0001750�00000000000�10571121451�013510� 5����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/data/Makefile.in���������������������������������������������������������������������0000644�0001750�0001750�00000022627�10571112705�015570� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.7.9 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_MP3_FALSE = @ENABLE_MP3_FALSE@ ENABLE_MP3_TRUE = @ENABLE_MP3_TRUE@ ENABLE_VORBIS_FALSE = @ENABLE_VORBIS_FALSE@ ENABLE_VORBIS_TRUE = @ENABLE_VORBIS_TRUE@ EXEEXT = @EXEEXT@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_ICONV = @INTLTOOL_ICONV@ INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@ INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@ INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@ INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPEC_RELEASE = @SPEC_RELEASE@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ EXTRA_DIST = \ tagtool.desktop.in desktopdir = $(prefix)/share/applications desktop_in_files = tagtool.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) subdir = data ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = DATA = $(desktop_DATA) DIST_COMMON = $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu data/Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) uninstall-info-am: desktopDATA_INSTALL = $(INSTALL_DATA) install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(desktopdir) @list='$(desktop_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(desktopDATA_INSTALL) $$d$$p $(DESTDIR)$(desktopdir)/$$f"; \ $(desktopDATA_INSTALL) $$d$$p $(DESTDIR)$(desktopdir)/$$f; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f $(DESTDIR)$(desktopdir)/$$f"; \ rm -f $(DESTDIR)$(desktopdir)/$$f; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: $(mkinstalldirs) $(DESTDIR)$(desktopdir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-desktopDATA install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-desktopDATA uninstall-info-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am info info-am install \ install-am install-data install-data-am install-desktopDATA \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-am uninstall-desktopDATA uninstall-info-am @INTLTOOL_DESKTOP_RULE@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ���������������������������������������������������������������������������������������������������������tagtool-0.12.3/data/Makefile.am���������������������������������������������������������������������0000644�0001750�0001750�00000000304�10541302764�015546� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������EXTRA_DIST =\ tagtool.desktop.in desktopdir = $(prefix)/share/applications desktop_in_files = tagtool.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @INTLTOOL_DESKTOP_RULE@ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tagtool-0.12.3/data/tagtool.desktop.in��������������������������������������������������������������0000644�0001750�0001750�00000000265�10541302764�017171� 0����������������������������������������������������������������������������������������������������ustar �kartik��������������������������kartik�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������[Desktop Entry] _Name=Audio Tag Tool _Comment=MP3 and Ogg Vorbis tag editor Exec=tagtool Icon=TagTool Terminal=False Type=Application Categories=Audio;AudioVideo;AudioVideoEditing; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������