
echo $ngx_n "checking for $ngx_type printf() format ..." $ngx_c
echo >> $NGX_ERR
echo "checking for $ngx_type printf() format" >> $NGX_ERR

ngx_fmt=no
comma=
fmtX=

for fmt in $ngx_formats
do

    cat << END > $NGX_AUTOTEST.c

int main() {
    printf("$fmt", ($ngx_type) $ngx_max_size);
    return 0;
}

END

    eval "$CC_WARN $CC_TEST_FLAGS -o $NGX_AUTOTEST $NGX_AUTOTEST.c \
          >> $NGX_ERR 2>&1"

    max_size=`echo $ngx_max_size | sed -e "s/L*\$//"`

    if [ -x $NGX_AUTOTEST ]; then
        if [ "`$NGX_AUTOTEST`" = $max_size ]; then
            ngx_fmt=$fmt
        fi
    fi

    rm $NGX_AUTOTEST*

    if [ $ngx_fmt != no ]; then
        break
    fi

    fmtX=`echo $fmt | sed -e "s/d/X/"`

    echo $ngx_n "$comma \"${fmtX}\" is not appropriate" $ngx_c
    comma=","
done


if [ $ngx_fmt = no ]; then
    echo "$0: error: printf() $ngx_type format not found"
    exit 1
fi


if [ $ngx_ptr_bytes = 4 ]; then
    fmtX="%0`expr 2 \* $ngx_ptr_bytes`"
else
    fmtX="%"
fi

ngx_fmt=`echo $ngx_fmt | sed -e "s/d/X/" -e "s/^%/$fmtX/"`

echo "$comma \"${ngx_fmt}\" used"


cat << END >> $NGX_AUTO_CONFIG_H

#ifndef $ngx_fmt_name
#define $ngx_fmt_name  "$ngx_fmt"
#endif

END
