blob: 3e136fc60ca32d7482b7aa995161bce269c8e404 [file] [log] [blame]
#!/bin/sh
set -e
testdir=$(dirname "$0")
srcfile="$testdir/../optim.c"
header='/*\
* *print_ratio.generated.c\
* Generated from optim.c\
*\
* Copyright (C) 2008-2012 Cosmin Truta.\
*\
* This software is distributed under the zlib license.\
* Please see the attached LICENSE for more information.\
*/\
\
#include "print_ratio.h"\
#include <stdio.h>\
#include "../osys.h"\
'
snprintf_hack='#ifdef _MSC_VER\
#define snprintf _snprintf\
#endif\
'
extract_fprint_ratio_script="
1 i\\
$header
/return/ d
s/usr_printf(/return fprintf(stream, /
/^opng_print_fsize_ratio/ i\\
int
s/^opng_print_fsize_ratio(/fprint_fsize_ratio(FILE *stream, /
/^fprint_fsize_ratio/,/^}/ p
"
extract_sprint_ratio_script="
1 i\\
$header
1 i\\
$snprintf_hack
/return/ d
s/usr_printf(/return snprintf(buf, bufsize, /
/^opng_print_fsize_ratio/ i\\
int
s/^opng_print_fsize_ratio(/sprint_fsize_ratio(char *buf, size_t bufsize, /
/^sprint_fsize_ratio/,/^}/ p
"
sed -n "$extract_fprint_ratio_script" "$srcfile" > fprint_ratio.generated.c
sed -n "$extract_sprint_ratio_script" "$srcfile" > sprint_ratio.generated.c