From d7a39a31a9b39edab1c3354748c5383b1b57b924 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?"Uray=20M.=20J=C3=A1nos"?= Date: Tue, 31 Jul 2012 08:04:06 +0200 Subject: [PATCH] fdo#42492: fixing Basic HEX command Change-Id: I133590c9f2a34d8daab031da0c77bd049d275c29 --- basic/source/runtime/methods.cxx | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-) diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx index 7050093..c06e0d7 100644 --- a/basic/source/runtime/methods.cxx +++ b/basic/source/runtime/methods.cxx @@ -871,12 +871,13 @@ RTLFUNC(Hex) StarBASIC::Error( SbERR_BAD_ARGUMENT ); else { - char aBuffer[16]; + char aBuffer[17]; SbxVariableRef pArg = rPar.Get( 1 ); - if ( pArg->IsInteger() ) - snprintf( aBuffer, sizeof(aBuffer), "%X", pArg->GetInteger() ); - else - snprintf( aBuffer, sizeof(aBuffer), "%lX", static_cast(pArg->GetLong()) ); + // converting value to unsigned + sal_uInt32 nVal = pArg->IsInteger() ? + static_cast(pArg->GetInteger()) : + static_cast(pArg->GetLong()); + snprintf( aBuffer, sizeof(aBuffer), "%"SAL_PRIXUINT32, nVal ); rPar.Get(0)->PutString( rtl::OUString::createFromAscii( aBuffer ) ); } } -- 1.7.7