Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nx-libs
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dimbor
nx-libs
Commits
e54e42af
Unverified
Commit
e54e42af
authored
Dec 10, 2017
by
Mike Gabriel
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'Ionic-feature/backport-asprintf' into 3.6.x
Attributes GH PR #592:
https://github.com/ArcticaProject/nx-libs/pull/592
parents
804ff445
a6e632aa
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
330 additions
and
50 deletions
+330
-50
Imakefile
nx-X11/programs/Xserver/include/Imakefile
+1
-0
Xprintf.h
nx-X11/programs/Xserver/include/Xprintf.h
+81
-0
os.h
nx-X11/programs/Xserver/include/os.h
+9
-4
xprintf.c
nx-X11/programs/Xserver/os/xprintf.c
+239
-46
No files found.
nx-X11/programs/Xserver/include/Imakefile
View file @
e54e42af
...
...
@@ -14,6 +14,7 @@ all::
depend::
InstallDriverSDKNonExecFile(XIstubs.h,$(DRIVERSDKINCLUDEDIR))
InstallDriverSDKNonExecFile(Xprintf.h,$(DRIVERSDKINCLUDEDIR))
InstallDriverSDKNonExecFile(bstore.h,$(DRIVERSDKINCLUDEDIR))
InstallDriverSDKNonExecFile(bstorestr.h,$(DRIVERSDKINCLUDEDIR))
InstallDriverSDKNonExecFile(client.h,$(DRIVERSDKINCLUDEDIR))
...
...
nx-X11/programs/Xserver/include/Xprintf.h
0 → 100644
View file @
e54e42af
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
#ifndef XPRINTF_H
#define XPRINTF_H
#include <stdio.h>
#include <stdarg.h>
#include <nx-X11/Xfuncproto.h>
#ifndef _X_RESTRICT_KYWD
#if defined(restrict)
/* assume autoconf set it correctly */
|| \
(defined(__STDC__) && (__STDC_VERSION__ - 0 >= 199901L))
/* C99 */
#define _X_RESTRICT_KYWD restrict
#elif defined(__GNUC__) && !defined(__STRICT_ANSI__)
/* gcc w/C89+extensions */
#define _X_RESTRICT_KYWD __restrict__
#else
#define _X_RESTRICT_KYWD
#endif
#endif
/*
* These functions provide a portable implementation of the common (but not
* yet universal) asprintf & vasprintf routines to allocate a buffer big
* enough to sprintf the arguments to. The XNF variants terminate the server
* if the allocation fails.
* The buffer allocated is returned in the pointer provided in the first
* argument. The return value is the size of the allocated buffer, or -1
* on failure.
*/
extern
_X_EXPORT
int
Xasprintf
(
char
**
ret
,
const
char
*
_X_RESTRICT_KYWD
fmt
,
...)
_X_ATTRIBUTE_PRINTF
(
2
,
3
);
extern
_X_EXPORT
int
Xvasprintf
(
char
**
ret
,
const
char
*
_X_RESTRICT_KYWD
fmt
,
va_list
va
)
_X_ATTRIBUTE_PRINTF
(
2
,
0
);
extern
_X_EXPORT
int
XNFasprintf
(
char
**
ret
,
const
char
*
_X_RESTRICT_KYWD
fmt
,
...)
_X_ATTRIBUTE_PRINTF
(
2
,
3
);
extern
_X_EXPORT
int
XNFvasprintf
(
char
**
ret
,
const
char
*
_X_RESTRICT_KYWD
fmt
,
va_list
va
)
_X_ATTRIBUTE_PRINTF
(
2
,
0
);
#if !defined(HAVE_ASPRINTF) && !defined(HAVE_VASPRINTF)
#define asprintf Xasprintf
#define vasprintf Xvasprintf
#endif
/*
* These functions provide a portable implementation of the linux kernel
* scnprintf & vscnprintf routines that return the number of bytes actually
* copied during a snprintf, (excluding the final '\0').
*/
extern
_X_EXPORT
int
Xscnprintf
(
char
*
s
,
int
n
,
const
char
*
_X_RESTRICT_KYWD
fmt
,
...)
_X_ATTRIBUTE_PRINTF
(
3
,
4
);
extern
_X_EXPORT
int
Xvscnprintf
(
char
*
s
,
int
n
,
const
char
*
_X_RESTRICT_KYWD
fmt
,
va_list
va
)
_X_ATTRIBUTE_PRINTF
(
3
,
0
);
#endif
/* XPRINTF_H */
nx-X11/programs/Xserver/include/os.h
View file @
e54e42af
...
...
@@ -230,10 +230,15 @@ extern void OsInitAllocator(void);
extern
char
*
Xstrdup
(
const
char
*
s
);
extern
char
*
XNFstrdup
(
const
char
*
s
);
extern
char
*
Xprintf
(
const
char
*
fmt
,
...);
extern
char
*
Xvprintf
(
const
char
*
fmt
,
va_list
va
);
extern
char
*
XNFprintf
(
const
char
*
fmt
,
...);
extern
char
*
XNFvprintf
(
const
char
*
fmt
,
va_list
va
);
/* Include new X*asprintf API */
#include "Xprintf.h"
/* Older api deprecated in favor of the asprintf versions */
extern
_X_EXPORT
char
*
Xprintf
(
const
char
*
fmt
,
...)
_X_ATTRIBUTE_PRINTF
(
1
,
2
)
_X_DEPRECATED
;
extern
_X_EXPORT
char
*
Xvprintf
(
const
char
*
fmt
,
va_list
va
)
_X_ATTRIBUTE_PRINTF
(
1
,
0
)
_X_DEPRECATED
;
extern
_X_EXPORT
char
*
XNFprintf
(
const
char
*
fmt
,
...)
_X_ATTRIBUTE_PRINTF
(
1
,
2
)
_X_DEPRECATED
;
extern
_X_EXPORT
char
*
XNFvprintf
(
const
char
*
fmt
,
va_list
va
)
_X_ATTRIBUTE_PRINTF
(
1
,
0
)
_X_DEPRECATED
;
typedef
SIGVAL
(
*
OsSigHandlerPtr
)(
int
/* sig */
);
...
...
nx-X11/programs/Xserver/os/xprintf.c
View file @
e54e42af
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment