sourcepawn/decompiler/platform_util.cpp
author David Anderson <dvander@alliedmods.net>
Tue Sep 23 21:20:40 2008 -0700 (2008-09-23)
changeset 2320 88550c031d23
child 2325 7a24ee5557fb
permissions -rw-r--r--
Initial import/sketch of opcode analyzer (bug 3279).
Uses single static assignment to recover expression trees from straight-line byte code.
dvander@2320
     1
#include <stdio.h>
dvander@2320
     2
#include "platform_util.h"
dvander@2320
     3
dvander@2320
     4
size_t Sp_Format(char *buffer, size_t maxlength, const char *fmt, ...)
dvander@2320
     5
{
dvander@2320
     6
	size_t len;
dvander@2320
     7
dvander@2320
     8
	va_list ap;
dvander@2320
     9
	va_start(ap, fmt);
dvander@2320
    10
	len = Sp_FormatArgs(buffer, maxlength, fmt, ap);
dvander@2320
    11
	va_end(ap);
dvander@2320
    12
dvander@2320
    13
	return len;
dvander@2320
    14
}
dvander@2320
    15
dvander@2320
    16
size_t Sp_FormatArgs(char *buffer, size_t maxlength, const char *fmt, va_list ap)
dvander@2320
    17
{
dvander@2320
    18
	size_t len;
dvander@2320
    19
dvander@2320
    20
	len = vsnprintf(buffer, maxlength, fmt, ap);
dvander@2320
    21
dvander@2320
    22
	if (len >= maxlength)
dvander@2320
    23
	{
dvander@2320
    24
		buffer[maxlength - 1] = '\0';
dvander@2320
    25
		return (maxlength - 1);
dvander@2320
    26
	}
dvander@2320
    27
	else
dvander@2320
    28
	{
dvander@2320
    29
		return len;
dvander@2320
    30
	}
dvander@2320
    31
}
dvander@2320
    32