summaryrefslogtreecommitdiff
path: root/src/input/input_cdda.c
AgeCommit message (Collapse)Author
2013-09-13Copyright year update by hg log infoTorsten Jager
script execution time: 55"
2012-04-11Fixed warningsPetri Hintukainen
2011-12-15Marked xine_get_autoplay_mrls() and get_autoplay_list()'s return value constPetri Hintukainen
2011-12-10Merge from 1.1.Darren Salt
--HG-- rename : src/liba52/xine_a52_decoder.c => src/audio_dec/xine_a52_decoder.c rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c rename : src/libxinevdec/image.c => src/video_dec/image.c
2011-11-24Fixed leaks in input pluginsPetri Hintukainen
--HG-- branch : point-release
2011-10-17Merge from 1.1Petri Hintukainen
2011-10-11Merge from 1.1.Darren Salt
--HG-- rename : src/xine-engine/post.h => include/xine/post.h rename : po/libxine1.pot => po/libxine2.pot
2011-10-10Fixed asprintf usagePetri Hintukainen
2011-10-10input_cdda: fixed writing outside of tablePetri Hintukainen
2011-10-08Build fix for Fedora with external FFmpeg.Jose Alberto Reguero
2011-10-04Merge from 1.1.Darren Salt
--HG-- rename : src/xine-utils/attributes.h => include/xine/attributes.h rename : src/xine-engine/xine_internal.h => include/xine/xine_internal.h rename : src/xine-utils/xineutils.h => include/xine/xineutils.h
2011-10-03Prefix open_cloexec() and create_cloexec() with xine_, and add new ↵Chris Rankin
xine_socket_cloexec() function.
2011-10-01Mark simple file and socket descriptors as uninheritable.Chris Rankin
This patch creates two utility functions: int open_cloexec(pathname, flags) int create_cloexec(pathname, flags, mode) These return a file descriptor with the CLOEXEC flag set, to ensure that the descriptor is not inherited across a fork/exec operation. The sockets returned by: _x_io_tcp_connect_ipv4() _x_io_tcp_connect() now also have their CLOEXEC flag set.
2011-05-17Fix build with relatively recent copies of FFmpegBrad Smith
Relatively recent copies of FFmpeg before the major API clean up have both the old SHA1 API and the new SHA (1/2) API so the recently added autoconf check will reject perfectly valid copies of FFmpeg. Also tweak the input_cdda code to make sure to use the new API and not include the compat macros if both the old and new API are around.
2011-05-16Missed a #define.Darren Salt
2011-05-16Fix up "pp" post-proc plugin and A/V decoding for ffmpeg 0.7.Darren Salt
2011-03-20Merge from 1.1.Darren Salt
--HG-- rename : src/libxineadec/gsm610/Makefile.am => contrib/gsm610/Makefile.am rename : src/libxineadec/nosefart/diff_to_nosefart_cvs.patch => contrib/nosefart/diff_to_nosefart_cvs.patch rename : src/libxineadec/nosefart/nes6502.c => contrib/nosefart/nes6502.c rename : src/libxineadec/nosefart/nes6502.h => contrib/nosefart/nes6502.h rename : src/libxineadec/nosefart/nes_apu.c => contrib/nosefart/nes_apu.c rename : src/libxineadec/nosefart/nes_apu.h => contrib/nosefart/nes_apu.h rename : src/libxineadec/nosefart/nsf.c => contrib/nosefart/nsf.c rename : src/libxineadec/nosefart/nsf.h => contrib/nosefart/nsf.h rename : src/libxineadec/nosefart/types.h => contrib/nosefart/types.h rename : src/libxineadec/nosefart/version.h => contrib/nosefart/version.h rename : doc/faq/faq.sgml => doc/faq/faq.docbook rename : src/libsputext/demux_sputext.c => src/spu_dec/sputext_demuxer.c rename : src/libxinevdec/image.c => src/video_dec/image.c
2010-10-23mingw32-w64 port:František Dvořák
- mkdir/_mkdir function - prefer prepared POSIX version in CDDA plugin
2009-11-30Trim trailing space & reduce space+tab.Darren Salt
2010-01-06Update to libxdg-basedir 1.0.2; adapt accordingly, and default to external.Darren Salt
2009-11-30Trim trailing space & reduce space+tab.Darren Salt
2009-08-05Merge from 1.1.Darren Salt
--HG-- rename : src/libmusepack/xine_musepack_decoder.c => src/audio_dec/xine_musepack_decoder.c
2009-08-05Fix reading of CDDB information (ref. cset a470c338149c)Christopher Martin
This fixes the reading of CDDB information by not setting INPUT_CAP_BLOCK for the CDDA plugin (and therefore also setting CD_RAW_FRAME_SIZE to 0), and allow reading in non-block sized chunks as per http://hg.debian.org/hg/xine-lib/xine-lib?cmd=changeset;node=a470c338149c;style=gitweb Explanation: At some point a number of releases ago, a codepath in Xine related to the reading of block devices which had been bypassed was fixed, which meant that when certain frontends asked Xine to provide CDDB information for a disc, querying the name, length, etc. of each track, Xine would actually cause a seek to the starting block of each track, which meant that before starting to play, the player would pause for 5-10 seconds, seeking through each track. This is unnecessary, since Xine should have simply used the CD TOC information from the CD audio header at the start of the disc. Other frontends handle CDDB differently and don't query Xine for information track by track, and so never triggered this problem. But for those with the problem, it made loading a disc rather slow. It turns out that the root of the problem is that the CDDA plugin shouldn't be setting INPUT_CAP_BLOCK, since Audio CDs are not block devices _in the sense that Xine intends_. Simply turning this off fixes the problem, with no other side effects (tested locally, for some time now, on xine-ui, kscd, kaffeine, amarok, etc.). This change pairs nicely with a patch originally committed years ago (cset a470c338149c) but which was reverted as it inadvertently triggered the same problem as is now (properly) fixed by the simple above-mentioned change. Now that a better fix is in, it can be re-committed.
2009-08-05Accept CDDB return code 211 ("found inexact matches")Christopher Martin
This code is returned when there is more than one CDDB entry for the disc in question. Before, when receiving a 211 response from a CDDB server, Xine would simply not display any CDDB information. Now one of the responses is displayed, on the theory that something is better than nothing.
2009-05-17Merge from 1.1.Darren Salt
2009-05-10Further improve parsing of CDDB informationChristopher Martin
Use strchr instead of strrchr to allow text to contain "=". --HG-- extra : transplant_source : l%29%15%0F%DFVV%08%B7%CF%FEb%E0v%22%18%FA%9Ap%8B
2009-05-10Provide genre & track no. for CDDB dataMarkus Kaufhold
(Tweaked to fit current hg and to fix a bug.) --HG-- extra : transplant_source : %FC%0C%D1n%D1%26%90%88%E0%EC%7D/%27%A1i%00%B0m%E5%AF
2009-05-10CDDB parsing code duplication cleanup.Darren Salt
--HG-- extra : transplant_source : w%85%203%2C%D1%04%CCgoRexh%03%88%9E%86Z%5B
2009-04-26Adjust the CDDA frame cache to a 'snappier' value.Christopher Martin
2009-03-03Merge from 1.1.Darren Salt
--HG-- rename : src/libmpeg2new/include/Makefile.am => src/video_dec/libmpeg2new/include/Makefile.am rename : src/libmpeg2new/libmpeg2/Makefile.am => src/video_dec/libmpeg2new/libmpeg2/Makefile.am
2009-02-17Add OpenBSD support to the CDDA, DVD & VCD input code.Brad Smith
2009-01-12Merge from 1.1.Darren Salt
--HG-- rename : src/libmpeg2new/Makefile.am => src/video_dec/libmpeg2new/Makefile.am rename : src/libmpeg2new/xine_mpeg2new_decoder.c => src/video_dec/libmpeg2new/xine_mpeg2new_decoder.c
2009-01-12Fixed lvalue cast error (build with newer mingw compilation tools).František Dvořák
2008-11-22Access to cddb cache brokenMatthias
2008-12-15Merge from 1.1; update PO files; make buildable.Diego E. 'Flameeyes' Pettenò
--HG-- rename : include/xine.h.in => include/xine.h rename : src/xine-utils/attributes.h => include/xine/attributes.h rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : m4/_xine.m4 => m4/types.m4 rename : po/libxine1.pot => po/libxine2.pot rename : src/libfaad/xine_faad_decoder.c => src/audio_dec/xine_faad_decoder.c rename : src/libspucc/cc_decoder.h => src/spu_dec/cc_decoder.h rename : src/libspucmml/xine_cmml_decoder.c => src/spu_dec/cmml_decoder.c rename : src/libspudec/xine_spu_decoder.c => src/spu_dec/spu_decoder.c rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c rename : src/libspucc/xine_cc_decoder.c => src/spu_dec/xine_cc_decoder.c rename : src/libmpeg2/mpeg2.h => src/video_dec/libmpeg2/mpeg2.h
2008-11-20Some warning fixes: XINE_FORMAT_SCANF, statics in headers, consts, ...František Dvořák
Add warning flags to the DEBUG_CFLAGS too.
2008-10-13Merge from 1.1.Darren Salt
--HG-- rename : src/xine-engine/buffer.h => include/xine/buffer.h
2008-08-25Fix CDDB access on 64-bit.Darren Salt
2008-08-14Merge from 1.1.Darren Salt
--HG-- rename : src/libfaad/Makefile.am => contrib/libfaad/Makefile.am rename : src/libfaad/analysis.h => contrib/libfaad/analysis.h rename : src/libfaad/bits.c => contrib/libfaad/bits.c rename : src/libfaad/bits.h => contrib/libfaad/bits.h rename : src/libfaad/cfft.c => contrib/libfaad/cfft.c rename : src/libfaad/cfft.h => contrib/libfaad/cfft.h rename : src/libfaad/cfft_tab.h => contrib/libfaad/cfft_tab.h rename : src/libfaad/codebook/hcb.h => contrib/libfaad/codebook/hcb.h rename : src/libfaad/codebook/hcb_1.h => contrib/libfaad/codebook/hcb_1.h rename : src/libfaad/codebook/hcb_10.h => contrib/libfaad/codebook/hcb_10.h rename : src/libfaad/codebook/hcb_11.h => contrib/libfaad/codebook/hcb_11.h rename : src/libfaad/codebook/hcb_2.h => contrib/libfaad/codebook/hcb_2.h rename : src/libfaad/codebook/hcb_3.h => contrib/libfaad/codebook/hcb_3.h rename : src/libfaad/codebook/hcb_4.h => contrib/libfaad/codebook/hcb_4.h rename : src/libfaad/codebook/hcb_5.h => contrib/libfaad/codebook/hcb_5.h rename : src/libfaad/codebook/hcb_6.h => contrib/libfaad/codebook/hcb_6.h rename : src/libfaad/codebook/hcb_7.h => contrib/libfaad/codebook/hcb_7.h rename : src/libfaad/codebook/hcb_8.h => contrib/libfaad/codebook/hcb_8.h rename : src/libfaad/codebook/hcb_9.h => contrib/libfaad/codebook/hcb_9.h rename : src/libfaad/codebook/hcb_sf.h => contrib/libfaad/codebook/hcb_sf.h rename : src/libfaad/common.c => contrib/libfaad/common.c rename : src/libfaad/common.h => contrib/libfaad/common.h rename : src/libfaad/decoder.c => contrib/libfaad/decoder.c rename : src/libfaad/decoder.h => contrib/libfaad/decoder.h rename : src/libfaad/drc.c => contrib/libfaad/drc.c rename : src/libfaad/drc.h => contrib/libfaad/drc.h rename : src/libfaad/drm_dec.c => contrib/libfaad/drm_dec.c rename : src/libfaad/drm_dec.h => contrib/libfaad/drm_dec.h rename : src/libfaad/error.c => contrib/libfaad/error.c rename : src/libfaad/error.h => contrib/libfaad/error.h rename : src/libfaad/filtbank.c => contrib/libfaad/filtbank.c rename : src/libfaad/filtbank.h => contrib/libfaad/filtbank.h rename : src/libfaad/fixed.h => contrib/libfaad/fixed.h rename : src/libfaad/hcr.c => contrib/libfaad/hcr.c rename : src/libfaad/huffman.c => contrib/libfaad/huffman.c rename : src/libfaad/huffman.h => contrib/libfaad/huffman.h rename : src/libfaad/ic_predict.c => contrib/libfaad/ic_predict.c rename : src/libfaad/ic_predict.h => contrib/libfaad/ic_predict.h rename : src/libfaad/iq_table.h => contrib/libfaad/iq_table.h rename : src/libfaad/is.c => contrib/libfaad/is.c rename : src/libfaad/is.h => contrib/libfaad/is.h rename : src/libfaad/kbd_win.h => contrib/libfaad/kbd_win.h rename : src/libfaad/lt_predict.c => contrib/libfaad/lt_predict.c rename : src/libfaad/lt_predict.h => contrib/libfaad/lt_predict.h rename : src/libfaad/mdct.c => contrib/libfaad/mdct.c rename : src/libfaad/mdct.h => contrib/libfaad/mdct.h rename : src/libfaad/mdct_tab.h => contrib/libfaad/mdct_tab.h rename : src/libfaad/mp4.c => contrib/libfaad/mp4.c rename : src/libfaad/mp4.h => contrib/libfaad/mp4.h rename : src/libfaad/ms.c => contrib/libfaad/ms.c rename : src/libfaad/ms.h => contrib/libfaad/ms.h rename : src/libfaad/output.c => contrib/libfaad/output.c rename : src/libfaad/output.h => contrib/libfaad/output.h rename : src/libfaad/pns.c => contrib/libfaad/pns.c rename : src/libfaad/pns.h => contrib/libfaad/pns.h rename : src/libfaad/ps_dec.c => contrib/libfaad/ps_dec.c rename : src/libfaad/ps_dec.h => contrib/libfaad/ps_dec.h rename : src/libfaad/ps_syntax.c => contrib/libfaad/ps_syntax.c rename : src/libfaad/ps_tables.h => contrib/libfaad/ps_tables.h rename : src/libfaad/pulse.c => contrib/libfaad/pulse.c rename : src/libfaad/pulse.h => contrib/libfaad/pulse.h rename : src/libfaad/rvlc.c => contrib/libfaad/rvlc.c rename : src/libfaad/rvlc.h => contrib/libfaad/rvlc.h rename : src/libfaad/sbr_dct.c => contrib/libfaad/sbr_dct.c rename : src/libfaad/sbr_dct.h => contrib/libfaad/sbr_dct.h rename : src/libfaad/sbr_dec.c => contrib/libfaad/sbr_dec.c rename : src/libfaad/sbr_dec.h => contrib/libfaad/sbr_dec.h rename : src/libfaad/sbr_e_nf.c => contrib/libfaad/sbr_e_nf.c rename : src/libfaad/sbr_e_nf.h => contrib/libfaad/sbr_e_nf.h rename : src/libfaad/sbr_fbt.c => contrib/libfaad/sbr_fbt.c rename : src/libfaad/sbr_fbt.h => contrib/libfaad/sbr_fbt.h rename : src/libfaad/sbr_hfadj.c => contrib/libfaad/sbr_hfadj.c rename : src/libfaad/sbr_hfadj.h => contrib/libfaad/sbr_hfadj.h rename : src/libfaad/sbr_hfgen.c => contrib/libfaad/sbr_hfgen.c rename : src/libfaad/sbr_hfgen.h => contrib/libfaad/sbr_hfgen.h rename : src/libfaad/sbr_huff.c => contrib/libfaad/sbr_huff.c rename : src/libfaad/sbr_huff.h => contrib/libfaad/sbr_huff.h rename : src/libfaad/sbr_noise.h => contrib/libfaad/sbr_noise.h rename : src/libfaad/sbr_qmf.c => contrib/libfaad/sbr_qmf.c rename : src/libfaad/sbr_qmf.h => contrib/libfaad/sbr_qmf.h rename : src/libfaad/sbr_qmf_c.h => contrib/libfaad/sbr_qmf_c.h rename : src/libfaad/sbr_syntax.c => contrib/libfaad/sbr_syntax.c rename : src/libfaad/sbr_syntax.h => contrib/libfaad/sbr_syntax.h rename : src/libfaad/sbr_tf_grid.c => contrib/libfaad/sbr_tf_grid.c rename : src/libfaad/sbr_tf_grid.h => contrib/libfaad/sbr_tf_grid.h rename : src/libfaad/sine_win.h => contrib/libfaad/sine_win.h rename : src/libfaad/specrec.c => contrib/libfaad/specrec.c rename : src/libfaad/specrec.h => contrib/libfaad/specrec.h rename : src/libfaad/ssr.c => contrib/libfaad/ssr.c rename : src/libfaad/ssr.h => contrib/libfaad/ssr.h rename : src/libfaad/ssr_fb.c => contrib/libfaad/ssr_fb.c rename : src/libfaad/ssr_fb.h => contrib/libfaad/ssr_fb.h rename : src/libfaad/ssr_ipqf.c => contrib/libfaad/ssr_ipqf.c rename : src/libfaad/ssr_ipqf.h => contrib/libfaad/ssr_ipqf.h rename : src/libfaad/ssr_win.h => contrib/libfaad/ssr_win.h rename : src/libfaad/structs.h => contrib/libfaad/structs.h rename : src/libfaad/syntax.c => contrib/libfaad/syntax.c rename : src/libfaad/syntax.h => contrib/libfaad/syntax.h rename : src/libfaad/tns.c => contrib/libfaad/tns.c rename : src/libfaad/tns.h => contrib/libfaad/tns.h rename : src/libfaad/xine_faad_decoder.c => src/audio_dec/xine_faad_decoder.c rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c
2008-08-13Improve parsing of cddb informationArnold Metselaar
Date: Thu, 1 May 2008 21:09:25 +0200 This patch improves the parsing of cddb information: * Disc and track titles can now contain '='. * If a track title is of the form <track-artist> / <track-title> the meta-info will contain the track-artist rather than the disc-artist. I have tested these changes together with my get_dir patch with the sources from debian testing/security and both Amarok and gxine now show the right artists for tracks on a compilation album.
2008-08-13add cdda_class_get_dir method to cdda pluginArnold Metselaar
Date: Thu, 1 May 2008 21:05:55 +0200 This patch adds a cdda_class_get_dir method to the cdda input plugin. I can now add an audio cd to a play-list in Amarok. There may be small interruptions if another cd is playing though, so it would be desirable to lower the priority for access to the cd-drive by the get_dir function.
2008-07-17Merge from 1.1.Darren Salt
--HG-- rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/demuxers/demux_nsf.c => src/combined/nsf_demuxer.c rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c rename : src/libspucmml/xine_cmml_decoder.c => src/spu_dec/cmml_decoder.c rename : src/libspudec/xine_spu_decoder.c => src/spu_dec/spu_decoder.c rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c rename : src/libsputext/xine_sputext_decoder.c => src/spu_dec/sputext_decoder.c rename : src/libsputext/demux_sputext.c => src/spu_dec/sputext_demuxer.c
2008-07-08Add #include <windef.h> to fix compile for mingw32Matthias Ringwald
--HG-- extra : transplant_source : %24%19%EE%23d%E8%AE%93%98%9E%B4%2B%2C%A1%BE%D9%92%B7%27%1E
2008-06-23Allow for <libavutil/base64.h> etc.Darren Salt
Fixes build failures with some ffmpeg dev packages, e.g. from debian-multimedia.
2008-06-20Merge the avutil branch; port the "raw" video output plugin.Darren Salt
--HG-- rename : src/combined/ffmpeg/ff_dvaudio_decoder.c => src/audio_dec/ff_dvaudio_decoder.c rename : src/combined/ffmpeg/ffmpeg_encoder.c => src/dxr3/ffmpeg_encoder.c
2008-05-23Merge from 1.1. VDR needs to be updated.Diego 'Flameeyes' Pettenò
--HG-- rename : src/liba52/parse.c => contrib/a52dec/parse.c rename : include/xine.h.in => include/xine.h rename : src/xine-engine/alphablend.h => include/xine/alphablend.h rename : src/xine-utils/attributes.h => include/xine/attributes.h rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/input/input_plugin.h => include/xine/input_plugin.h rename : src/xine-utils/xineutils.h => include/xine/xineutils.h rename : src/libxineadec/fooaudio.c => src/audio_dec/fooaudio.c rename : src/libxineadec/gsm610.c => src/audio_dec/gsm610.c rename : src/liba52/xine_a52_decoder.c => src/audio_dec/xine_a52_decoder.c rename : src/libdts/xine_dts_decoder.c => src/audio_dec/xine_dts_decoder.c rename : src/libfaad/xine_faad_decoder.c => src/audio_dec/xine_faad_decoder.c rename : src/libxineadec/xine_lpcm_decoder.c => src/audio_dec/xine_lpcm_decoder.c rename : src/libmad/xine_mad_decoder.c => src/audio_dec/xine_mad_decoder.c rename : src/libmusepack/xine_musepack_decoder.c => src/audio_dec/xine_musepack_decoder.c rename : src/combined/decoder_flac.c => src/combined/flac_decoder.c rename : src/combined/demux_flac.c => src/combined/flac_demuxer.c rename : src/libxineadec/nsf.c => src/combined/nsf_decoder.c rename : src/demuxers/demux_nsf.c => src/combined/nsf_demuxer.c rename : src/combined/combined_wavpack.h => src/combined/wavpack_combined.h rename : src/combined/decoder_wavpack.c => src/combined/wavpack_decoder.c rename : src/combined/demux_wavpack.c => src/combined/wavpack_demuxer.c rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c rename : src/libxineadec/xine_speex_decoder.c => src/combined/xine_speex_decoder.c rename : src/libxinevdec/xine_theora_decoder.c => src/combined/xine_theora_decoder.c rename : src/libxineadec/xine_vorbis_decoder.c => src/combined/xine_vorbis_decoder.c rename : src/libspucc/cc_decoder.c => src/spu_dec/cc_decoder.c rename : src/libspucmml/xine_cmml_decoder.c => src/spu_dec/cmml_decoder.c rename : src/libspudec/xine_spu_decoder.c => src/spu_dec/spu_decoder.c rename : src/libspudec/spu.c => src/spu_dec/spudec.c rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c rename : src/libsputext/xine_sputext_decoder.c => src/spu_dec/sputext_decoder.c rename : src/libsputext/demux_sputext.c => src/spu_dec/sputext_demuxer.c rename : src/libspucc/xine_cc_decoder.c => src/spu_dec/xine_cc_decoder.c rename : src/libxinevdec/bitplane.c => src/video_dec/bitplane.c rename : src/libxinevdec/foovideo.c => src/video_dec/foovideo.c rename : src/libxinevdec/gdkpixbuf.c => src/video_dec/gdkpixbuf.c rename : src/libxinevdec/image.c => src/video_dec/image.c rename : src/libmpeg2/xine_mpeg2_decoder.c => src/video_dec/libmpeg2/xine_mpeg2_decoder.c rename : src/libxinevdec/rgb.c => src/video_dec/rgb.c rename : src/libxinevdec/yuv.c => src/video_dec/yuv.c
2008-05-09Use asprintf() rather than sn?printf() + strn?dup().Diego 'Flameeyes' Pettenò
Instead of duplicating a buffer after using sn?printf() on it, use asprintf() directly on the final variable.
2008-05-09Use size_t rather than int to store the return value of strlen().Diego 'Flameeyes' Pettenò
Also, don't reset buffers when we're just going to run a snprintf() call, and avoid multiple calls to strlen() when we're appending to it.
2008-05-09Loop improvements, avoid multiple strlen() and strdup() calls.Diego 'Flameeyes' Pettenò
Instead of executing strlen() after each snprintf() call, use the value returned by the call itself. Instead of using sprintf() on a buffer and then duplicate it, use asprintf().
2008-05-07xine_xmalloc() deprecation: replace its use with static and non-zero size.Diego 'Flameeyes' Pettenò
The xine_xmalloc() function is going to be deprecated, as its behaviour is rarely needed as such, and it's thus misused. With this, almost all uses of xine_xmalloc() with static size (for instance the value returned by sizeof()) or with a size that is guaranteed not to be zero (like strlen()+1) are replaced with calls to either calloc(1, ...) or malloc(). malloc() is used whenever the allocated memory is going to be immediately overwritten, while calloc() is used in every other case, as it sets the whole memory area to zero. --HG-- extra : transplant_source : %8F%98%EC%02%1E%83%F0s%06X%83C%205Y%80%B12%CC%E1