path: root/src/
AgeCommit message (Collapse)AuthorFiles
2017-03-11Version 2.1HEADmasterSergey Poznyakoff1
2016-11-17Keep textual data in UTF-8 internally; provide new options for recodingSergey Poznyakoff1
* libid3tag/tag.c (id3_tag_new): Use conservative default options. * Check for iconv * src/utf8conv.c: New file. * src/ (idest_SOURCES): Add new source file. (LDADD): Link with iconv libraries. * src/backup.c (copy_file): Initialize fsize properly. * src/cmdline.opt: New options: --fixup, --broken-8bit-charset, --encoding * src/guile.c: Remove unused functions. * src/frametab.gperf: Use textual_frame_encoding. * src/idest.h: Include locale.h (latin1_option): Remove. (charset,broken_8bit_charset) (textual_frame_encoding,fixup_option): New globals. (idest_conv_mode): New enum (utf8_convert): New proto. * src/idop.c (idest_ucs4_cvt): Hanlde broken_8bit_charset option. (set_tags): Fix-up frames if so requested. * src/main.c (latin1_option): Remove. (textual_frame_encoding,fixup_option): New globals (main): Set locale. * bootstrap: Update. * gnulib: Update. * gnulib.modules: Add localcharset * doc/html.init: Minor change. * doc/idest.texi: Update docs.
2015-11-07Include gnulib as a submodule. Fix testsuite.Sergey Poznyakoff1
Guile 2.x outputs spurious diagnostics to stderr when compiling input files. The only way to disable it is to disable compilation by setting environment variable GUILE_AUTO_COMPILE to 0. However, even if compilation is disabled, Guile still checks whether the compiled file exists and complains on stderr if it is older than the input file. This diagnostics begins with ;;;. Delete this using sed prior to comparing stderr with the expected text. * .gitmodules: Add gnulib * gnulib: New module. * bootstrap: Update from gnulib * gint: Upgrade. * scheme/idest/batch/setlyrics.scm: Fix typo. * src/ Use AM_CPPFLAGS instead of obsolete includes. * tests/ Set GUILE_AUTO_COMPILE=0 * tests/ (WITH_GUILE): New macro. * tests/ Use WITH_GUILE. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise. * tests/ Likewise.
2011-07-28Add testsuiteSergey Poznyakoff1
* (SUBDIRS): Add tests * Initialize testsuite. * src/cmdline.opt (get_options): Bugfix. * src/frametab.gperf: Use condesc instead of descr, which is reserved. * src/getopt.m4: Fix version output. * src/guile.c: Bugfixes. * src/main.c (guile_argv): Declare here, instead of in guile.c. * tests/ New file. * tests/ New file. * tests/.gitignore: New file. * tests/ New file. * tests/ New file. * tests/genfile.c: New file. * tests/id3v1: New file. * tests/id3v1-2: New file. * tests/id3v2: New file. * tests/idest-32.png: New file. * tests/idest-68.png: New file. * tests/ New file. * tests/ New file. * tests/ New file. * tests/ New file. * tests/ New file. * tests/ New file. * tests/ New file. * tests/ New file. * tests/ New file. * tests/ New file. * tests/ New file. * tests/ New file. * tests/ New file.
2011-07-26Various improvements.Sergey Poznyakoff1
* src/ Initialize MAINTAINERCLEANFILES. * src/cmdline.opt: New options: --prepend-load-path and --no-init-files. * src/guile.c (no_init_files_option): New variable. (guile_load): Bail out on error. (load_path_prepend): Rewrite. (load_path_append): New function. (user_load_path_list): Replace with user_path_list (array). (guile_add_load_path): Second arg indicates which list to modify. (flush_user_load_path): Argument indicates which list to flush. (load_startup_file): Don't touch load path. It is done elsewhere. (guile_init): Set up load path. Call load_startup_file unless no_init_files_option is set. * src/idest.h (no_init_files_option): New extern. (guile_add_load_path): Change signature. * src/main.c (main): Fix coredump.
2011-07-20Implement --format option.Sergey Poznyakoff1
* (SUBDIRS): Add scheme (conditionally). * (IDEST_COND_GUILE): New condition. * examples/dry-run.scm: Move to scheme. * examples/ Update. * src/ (AM_CPPFLAGS): Add VERSION_SITE. * src/cmdline.opt: New options --format and --load-path. * src/editem.c (str_split_col): Remove static qualifier. * src/guile.c (guile_add_load_path): New function. (load_startup_file): Flush user additions to the load path. Add VERSION_SITE at the beginning. * src/idest.h (list_supported_frames) (str_split_col,guile_add_load_path): New protos. * src/main.c (format_name): New global. (main): Handle --format option. * scheme/dry-run.scm: New file (from examples) * scheme/format.scm: New file. * scheme/idest/format/shortlist.scm: New file.
2011-07-16Major rewrite.Sergey Poznyakoff1
* src/idest.h (ed_item): Remove union, leave only value instead. <ref>: New member. (describe_option,verbose_option,all_frames): New externs. (set_frame_value): Return int. (IDEST_OK,IDEST_ERR_*): New constants. (_idest_errstr, _idest_nerrs): New externs. (idest_frame_cmp_t,idest_frame_encoder_t) (idest_frame_decoder_t): New typedefs. (idest_frametab): New struct. (idest_frame_lookup) (find_matching_frame): New protos. (ed_list_add_item) (ed_list_print,ed_list_add_assignment) (ed_list_clear,ed_item_matches_frame) (ed_item_set_comment_fields): Remove. (qv_free,input_list_locate) (parse_ed_items): New protos. * src/idop.c: Rewrite. * src/.gitignore: Add src/frametab.c * src/ (idest_SOURCES): Add editem.c and frametab.c (BUILT_SOURCES): Add frametab.c (.gperf.c): New rule (GPERF_FLAGS): New variable. * src/editem.c: New source. * src/frametab.gperf: New source. * src/cmdline.opt: Use input_list_add_assignment in --set handler. * src/guile.c (frame_to_scm,scm_to_tag): Rewrite using the new logic.
2011-07-10Search for Guile files in the %load-path. Implement startup files.Sergey Poznyakoff1
* NEWS: Document Guile startup files. * src/ (AM_CPPFLAGS): Define GUILE_SITE and PKG_SITE. * src/guile.c (guile_load): Second argument controls whether to search for the file in the %load-path. (load_path_prepend,try_file) (load_startup_file): New functions. (guile_init): Load startup files. Unless guile_script contains directory separators, look it up in the %load-path.
2011-03-19Update copyright years.Sergey Poznyakoff1
2010-04-14Migrate Guile support to GINT.Sergey Poznyakoff1
* gint: Add submodule. * am/guile.m4: Remove. * (ACLOCAL_AMFLAGS): Look for includes in gint, instead of am. (SUBDIRS): Add gint. * bootstrap.conf: Init submodule. * Integrate gint. Set version number 1.1.90. * src/ Integrate gint. * src/guile.c (struct scheme_exec_data)<result>: Remove. (scheme_safe_exec_body): Return the result of ed->handler call, not SCM_BOOL_F. (guile_safe_exec): Use scm_c_catch instead of the deprecated scm_internal_lazy_catch. (guile_apply_main): Likewise. * NEWS: Update. * libid3tag/ (AUTOMAKE_OPTIONS): Remove. Now set in Add AM_V_GEN marker to actions in all rules. * libid3tag/ (AM_INIT_AUTOMAKE): Pass options here. Use silent rules by default.
2010-01-02Update copyright years.Sergey Poznyakoff1
Happy GNU Year!
2009-03-17Improve scripting, implement v1->v2 conversion, implement --delete command.Sergey Poznyakoff1
* libid3tag/file.c (v2_write): Change for make it possible to convert v1 to v2. * src/.gitignore: Add guile.x. * src/ (idest_SOURCES): Add guile.x (BUILT_SOURCES): Add guile.x (SUFFIXES): Add .x (.c.x): New rule * src/cmdline.opt: New option: --trace. * src/guile.c: Rewrite. * src/idest.h (MODE_QUERY, MODE_MOD, MODE_DELETE): New defines (from main.c). (guile_transform, guile_list): New protos. (guile_apply): Remove. * src/idop.c (set_tags): Handle convert_version == 2. (del_tags): New function. * src/main.c (del_id3): Call del_tags
2009-03-16Add framework for Guile scripting.Sergey Poznyakoff1
* am/guile.m4: New file. * (ACLOCAL_AMFLAGS): Add -I am * Check for Guile. * src/ (idest_SOURCES): guile.c (INCLUDES,LDADD): Add guile variables. * src/cmdline.opt: New options: --script and --function. * src/getopt.m4: Support conditional compilation. * src/idest.h (guile_debug, guile_script, guile_function): New externs. * src/guile.c: New file.
2009-03-15Remove old v1 code. Add an option for converting tags to v1.Sergey Poznyakoff1
* libid3tag/file.c (SIZE_T_MAX): Rename to MALLOC_MAX. Use (size_t_max-1), due to a bug in glibc's malloc. (make_temp_file): Fix size calculation (memory overrun). (v2_write): data and/or length can be 0. (id3_file_update): Drop v2 header, if ID3_TAG_OPTION_NO_ID3V2 is set. * libid3tag/id3tag.h (ID3_TAG_OPTION_NO_ID3V2): New constant. * src/id3v1.c, src/id3v1.h: Remove. * src/id3v2.c: Rename to... * src/idop.c: ... this. (set_tags): Handle convert_version and version_option. * src/ Reflect the above. * src/cmdline.opt (--convert, -C): New option. * src/idest.h: Kick off id3v1.h. (convert_version, version_option): new externs. (set_id3v1, query_id3v1, del_id3v1) (set_id3v2, query_id3v2, del_id3v2): Remove. (set_tags, query_tags, del_tags): New prototypes. * src/main.c (convert_version): New variable. (query_id3): use all_frames to determine ed_list. (set_id3): Remove old v1 code. (main): Remove old v1 code.
2009-02-09Use included copy of libid3tag.Sergey Poznyakoff1
* (SUBDIRS): Add libid3tag. * README-hacking: Mention gperf * bootstrap: Replace series of invocation of autotools with a single invocation of autoreconf. * bootstrap.conf: Make sure libid3tag/m4 exists. * Don't check for external libid3tag. Use included copy. * src/ Link with ../libid3tag/libid3tag.a. * src/id3v2.c (set_id3v2): Attach new frame to the tag. Remove call to backup. * src/main.c (backup_type): Change default value back to no_backups. (set_id3, del_id3): Call backup. * src/libid3tag: Trimmed-down copy of libid3tag 0.15.1b.
2009-02-08Preparation for implementing set/delete operations.Sergey Poznyakoff1
* src/backup.c: New file. * gnulib.modules: Request backupfile, dirname and save-cwd. * src/ (idest_SOURCES): Add backup.c * src/cmdline.opt: New options --backup and --backup-directory. * src/id3v2.c: Minor change. * src/idest.h: Include backupfile.h (backup_type, backup_dir): New externs. * src/main.c: Minor change.
2009-02-07Assume `idest' as the official project nameSergey Poznyakoff1
2009-02-07Implement ID3v2 read-only access.Sergey Poznyakoff1
* .gitignore: Add core. * gnulib.modules: Add argmatch and linked-list. * src/.gitignore: Add .gdbinit * src/slist.c: New file * src/ (id3ed_SOURCES): Add new files. * src/cmdline.opt: Remove all options, except -q and --latin1. Add new options: --all and --set. * src/getopt.m4 (BEGIN): Fix handling of optional arguments. * src/id3ed.h: Include xalloc.h, gl_linked_list.h and argmatch.h (v1_block,title,artist,album,year,comment,track,genre): Remove. (DEFAULT_ED_LIST): New define. (set_id3v1): Takes 2 arguments. (string_list_action_fn): new data type. (new_string_list,do_string_list,concat_string_list) (print_string_list): New prototypes. (ed_list_add_item,ed_list_print,ed_list_add_assignment): New prototypes. * src/id3v1.c (id3v1_read,id3v1_write): Bugfixes. (set_id3v1): Take a pointer to id3v1_block as 2nd argument. * src/id3v2.c: Implement show_tags. * src/main.c: Rewrite.
2009-02-05Switch to using libid3tagSergey Poznyakoff1
2009-02-05Add src/ and .gitignoresSergey Poznyakoff1

Return to:

Send suggestions and report system problems to the System administrator.