diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2015-11-05 23:20:23 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2015-11-05 23:20:23 +0200 |
commit | 6f8dc538dab2a9284802b63e80fd4f03bb0dff34 (patch) | |
tree | 387372a6dc1c8e04aa81e19b19820c8d75351f67 /src/guile.c | |
parent | 353839b7a29a53aa754b98b02ede449c737a873a (diff) | |
download | idest-6f8dc538dab2a9284802b63e80fd4f03bb0dff34.tar.gz idest-6f8dc538dab2a9284802b63e80fd4f03bb0dff34.tar.bz2 |
Bugfixes.
1. Fix --convert option so it can be used to remove unnecessary
ID3 formats (e.g. --convert=2).
2. Fix processing of unknown frames in Guile code.
3. Fix setpic and pic modules.
* scheme/idest/batch/setpic.scm (read-picture): Use binary i/o.
* scheme/idest/format/pic.scm (save-picture): Likewise.
* scheme/idest/list-modules.scm: Minor changes.
* src/frametab.gperf (frame_field_from_rawdata): New function.
* src/getopt.m4: Update copyright years.
* src/guile.c (set_frame_from_rawdata): Use frame_field_from_rawdata.
* src/idest.h (frame_field_from_rawdata): New proto.
* src/idop.c (set_tag_options): Always call id3_tag_options.
Diffstat (limited to 'src/guile.c')
-rw-r--r-- | src/guile.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/guile.c b/src/guile.c index e59b49c..7fe052f 100644 --- a/src/guile.c +++ b/src/guile.c @@ -1,5 +1,5 @@ /* This file is part of Idest. - Copyright (C) 2009-2011 Sergey Poznyakoff + Copyright (C) 2009-2011, 2015 Sergey Poznyakoff Idest is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -383,9 +383,11 @@ set_frame_from_rawdata(struct id3_frame *frame, SCM list) for (; !scm_is_null(list); list = SCM_CDR(list)) { SCM cell = SCM_CAR(list); int n = scm_to_int(SCM_CAR(cell)); - int rc; + int type = scm_to_int(SCM_CAR(SCM_CDR(cell))); char *value = scm_to_locale_string(SCM_CAR(SCM_CDR(SCM_CDR(cell)))); - rc = frame_field_from_string(frame, n, value); + int rc; + + rc = frame_field_from_rawdata(frame, n, type, value); free(value); if (rc) return rc; @@ -420,11 +422,11 @@ scm_to_tag(SCM scm, struct id3_tag *tag) scm_list_1(elt)); id = scm_to_locale_string(x); - frametype = id3_frametype_lookup(id, strlen(id)); - if (!frametype) - idest_guile_error("guile-transform", - id, SCM_BOOL_F, - IDEST_ERR_BADTYPE); + /* frametype = id3_frametype_lookup(id, strlen(id)); */ + /* if (!frametype) */ + /* idest_guile_error("guile-transform", */ + /* id, SCM_BOOL_F, */ + /* IDEST_ERR_BADTYPE); */ ed_item_zero(&itm); memcpy(itm.id, id, sizeof(itm.id)); |