File: string_length_for_printf.c

package info (click to toggle)
putty 0.78-2%2Bdeb12u2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 13,964 kB
  • sloc: ansic: 137,777; python: 7,775; perl: 1,798; makefile: 133; sh: 111
file content (21 lines) | stat: -rw-r--r-- 605 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
 * Convert a size_t value to int, by saturating it at INT_MAX. Useful
 * if you want to use the printf idiom "%.*s", where the '*' precision
 * specifier expects an int in the variadic argument list, but what
 * you have is not an int but a size_t. This method of converting to
 * int will at least do something _safe_ with overlong values, even if
 * (due to the limitation of printf itself) the whole string still
 * won't be printed.
 */

#include <limits.h>

#include "defs.h"
#include "misc.h"

int string_length_for_printf(size_t s)
{
    if (s > INT_MAX)
        return INT_MAX;
    return s;
}