Description: Resurrect symbols in libvcdinfo The library with SONAME libvcdinfo.so.0 used to have symbols vcdinfo_msf2lba, vcdinfo_lba2msf, vcdinfo_msf2lsn and _vcd_malloc; resurrect them not to break the ABI. Author: Nicolas Boullis https://sources.debian.org/data/main/v/vcdimager/2.0.1+dfsg-3/debian/patches/resurrect_library_symbols Index: b/lib/info.c =================================================================== --- a/lib/info.c +++ b/lib/info.c @@ -1640,6 +1640,48 @@ vcdinfo_inc_msf (uint8_t *p_min, uint8_t } } +/*! + Convert minutes, seconds and frame (MSF components) into a + logical block address (or LBA). + See also cdio_msf_to_lba which uses msf_t as its single parameter. +*/ +#undef vcdinfo_msf2lba +lba_t +vcdinfo_msf2lba (uint8_t min, uint8_t sec, int8_t frame) +{ + return CDIO_CD_FRAMES_PER_SEC*(CDIO_CD_SECS_PER_MIN*min + sec) + frame; +} + +/*! + Convert minutes, seconds and frame (MSF components) into a + logical block address (or LBA). + See also cdio_msf_to_lba which uses msf_t as its single parameter. +*/ +void +vcdinfo_lba2msf (lba_t lba, uint8_t *p_min, uint8_t *p_sec, uint8_t *p_frame) +{ + *p_min = lba / (60*75); + lba %= (60*75); + *p_sec = lba / 75; + *p_frame = lba % 75; +} + +/*! + Convert minutes, seconds and frame (MSF components) into a + logical sector number (or LSN). +*/ +lsn_t +vcdinfo_msf2lsn (uint8_t min, uint8_t sec, int8_t frame) +{ + lba_t lba=75*(60*min + sec) + frame; + if (lba < CDIO_PREGAP_SECTORS) { + vcd_error ("lba (%u) less than pregap sector (%u)", + (unsigned int) lba, CDIO_PREGAP_SECTORS); + return lba; + } + return lba - CDIO_PREGAP_SECTORS; +} + const char * vcdinfo_ofs2str (const vcdinfo_obj_t *p_obj, unsigned int offset, bool ext) { Index: b/lib/util.c =================================================================== --- a/lib/util.c +++ b/lib/util.c @@ -119,6 +119,18 @@ _vcd_strsplit(const char str[], char del } void * +_vcd_malloc (size_t size) +{ + void *new_mem = malloc (size); + + vcd_assert (new_mem != NULL); + + memset (new_mem, 0, size); + + return new_mem; +} + +void * _vcd_memdup (const void *mem, size_t count) { void *new_mem = NULL; Index: b/include/libvcd/info.h =================================================================== --- a/include/libvcd/info.h +++ b/include/libvcd/info.h @@ -752,7 +752,7 @@ extern "C" { See also msf_to_lba which uses msf_t as its single parameter. */ void - vcdinfo_lba2msf (lba_t lba, uint8_t *min, uint8_t *sec, uint8_t *frame); + vcdinfo_lba2msf (lba_t lba, uint8_t *p_min, uint8_t *p_sec, uint8_t *p_frame); /*! Get the item id for a given list ID.