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
4b178918
Commit
4b178918
authored
Nov 15, 2016
by
Mike Gabriel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
drop platform support: unifdef AIXV3, AIXV4 (and AIXrt, AIX386).
Fixes ArcticaProject/nx-libs#274.
parent
184c5d77
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
19 additions
and
125 deletions
+19
-125
Imake.cf
nx-X11/config/cf/Imake.cf
+1
-5
site.def
nx-X11/config/cf/site.def
+1
-1
Xmd.h
nx-X11/include/Xmd.h
+1
-1
Xos_r.h
nx-X11/include/Xos_r.h
+6
-7
Xpoll.h.in
nx-X11/include/Xpoll.h.in
+5
-11
SetLocale.c
nx-X11/lib/X11/SetLocale.c
+2
-2
Xaixlcint.h
nx-X11/lib/X11/Xaixlcint.h
+0
-53
XlibInt.c
nx-X11/lib/X11/XlibInt.c
+1
-1
Xtrans.c
nx-X11/lib/xtrans/Xtrans.c
+1
-1
Init.c
nx-X11/programs/Xserver/hw/nxagent/Init.c
+0
-5
servermd.h
nx-X11/programs/Xserver/include/servermd.h
+0
-9
connection.c
nx-X11/programs/Xserver/os/connection.c
+0
-4
utils.c
nx-X11/programs/Xserver/os/utils.c
+0
-20
ddxLoad.c
nx-X11/programs/Xserver/xkb/ddxLoad.c
+1
-1
xkbAccessX.c
nx-X11/programs/Xserver/xkb/xkbAccessX.c
+0
-4
No files found.
nx-X11/config/cf/Imake.cf
View file @
4b178918
...
@@ -529,7 +529,7 @@
...
@@ -529,7 +529,7 @@
# define StellarArchitecture
# define StellarArchitecture
#endif /* stellar */
#endif /* stellar */
#if defined(ibm) || defined(_IBMR2) || defined(ibm032)
|| defined(aix)
#if defined(ibm) || defined(_IBMR2) || defined(ibm032)
# define MacroIncludeFile <ibm.cf>
# define MacroIncludeFile <ibm.cf>
# define MacroFile ibm.cf
# define MacroFile ibm.cf
# ifdef ibm
# ifdef ibm
...
@@ -544,10 +544,6 @@
...
@@ -544,10 +544,6 @@
# undef ibm032
# undef ibm032
# define RtArchitecture
# define RtArchitecture
# endif
# endif
# ifdef aix
# undef aix
# define AIXArchitecture
# endif
# ifdef _IBMR2
# ifdef _IBMR2
# undef _IBMR2
# undef _IBMR2
# if (DefaultOSMajorVersion < 5)
# if (DefaultOSMajorVersion < 5)
...
...
nx-X11/config/cf/site.def
View file @
4b178918
...
@@ -46,7 +46,7 @@
...
@@ -46,7 +46,7 @@
* the two following macros need to be defined directly (where "X11" is
* the two following macros need to be defined directly (where "X11" is
* really whatever the TopLevelProject macro is defined to be).
* really whatever the TopLevelProject macro is defined to be).
*/
*/
# if defined(
AIXArchitecture) || defined(
SVR4Architecture) || \
# if defined(SVR4Architecture) || \
defined(SCOArchitecture) || defined(Win32Architecture) || \
defined(SCOArchitecture) || defined(Win32Architecture) || \
defined(UXPArchitecture) || defined(SunArchitecture) || \
defined(UXPArchitecture) || defined(SunArchitecture) || \
defined(DynixPtxArchitecture) || defined(i386IscArchitecture)
defined(DynixPtxArchitecture) || defined(i386IscArchitecture)
...
...
nx-X11/include/Xmd.h
View file @
4b178918
...
@@ -100,7 +100,7 @@ typedef long INT32;
...
@@ -100,7 +100,7 @@ typedef long INT32;
#endif
#endif
typedef
short
INT16
;
typedef
short
INT16
;
#if defined(__STDC__) || defined(sgi)
|| defined(AIXV3)
#if defined(__STDC__) || defined(sgi)
typedef
signed
char
INT8
;
typedef
signed
char
INT8
;
#else
#else
typedef
char
INT8
;
typedef
char
INT8
;
...
...
nx-X11/include/Xos_r.h
View file @
4b178918
...
@@ -320,7 +320,7 @@ static __inline__ void _Xpw_copyPasswd(_Xgetpwparams p)
...
@@ -320,7 +320,7 @@ static __inline__ void _Xpw_copyPasswd(_Xgetpwparams p)
(p).pwp )
(p).pwp )
#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(__APPLE__) && !defined(__DARWIN__)
#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(__APPLE__) && !defined(__DARWIN__)
/* SVR4 threads
, AIX 4.2.0 and earlier
and OSF/1 3.2 and earlier pthreads */
/* SVR4 threads and OSF/1 3.2 and earlier pthreads */
# define X_NEEDS_PWPARAMS
# define X_NEEDS_PWPARAMS
typedef
struct
{
typedef
struct
{
struct
passwd
pws
;
struct
passwd
pws
;
...
@@ -467,7 +467,7 @@ typedef struct {
...
@@ -467,7 +467,7 @@ typedef struct {
*/
*/
# ifdef _POSIX_REENTRANT_FUNCTIONS
# ifdef _POSIX_REENTRANT_FUNCTIONS
# ifndef _POSIX_THREAD_SAFE_FUNCTIONS
# ifndef _POSIX_THREAD_SAFE_FUNCTIONS
# if defined(
AIXV3) || defined(AIXV4) || defined(
__osf__)
# if defined(__osf__)
# define X_POSIX_THREAD_SAFE_FUNCTIONS 1
# define X_POSIX_THREAD_SAFE_FUNCTIONS 1
# endif
# endif
# endif
# endif
...
@@ -604,9 +604,8 @@ typedef struct {
...
@@ -604,9 +604,8 @@ typedef struct {
# endif
# endif
}
_Xreaddirparams
;
}
_Xreaddirparams
;
# if defined(_POSIX_THREAD_SAFE_FUNCTIONS) || defined(AIXV3) || \
# if defined(_POSIX_THREAD_SAFE_FUNCTIONS) || \
defined(AIXV4) || defined(__APPLE__) || defined(__DARWIN__)
defined(__APPLE__) || defined(__DARWIN__)
/* AIX defines the draft POSIX symbol, but uses the final API. */
/* POSIX final API, returns (int)0 on success. */
/* POSIX final API, returns (int)0 on success. */
# if defined(__osf__)
# if defined(__osf__)
/* OSF/1 V4.0 <dirent.h> doesn't declare _Preaddir_r, breaking under C++. */
/* OSF/1 V4.0 <dirent.h> doesn't declare _Preaddir_r, breaking under C++. */
...
@@ -972,7 +971,7 @@ typedef struct tm _Xltimeparams;
...
@@ -972,7 +971,7 @@ typedef struct tm _Xltimeparams;
# define _XLocaltime(t,p) localtime_r((t),&(p))
# define _XLocaltime(t,p) localtime_r((t),&(p))
#else
/* defined(_POSIX_THREAD_SAFE_FUNCTIONS) */
#else
/* defined(_POSIX_THREAD_SAFE_FUNCTIONS) */
/* POSIX final API. OSF/1 v4.0,
AIX,
etc.
/* POSIX final API. OSF/1 v4.0, etc.
*
*
* extern char *asctime_r(const struct tm *timeptr, char *buffer);
* extern char *asctime_r(const struct tm *timeptr, char *buffer);
* extern char *ctime_r(const time_t *timer, char *buffer);
* extern char *ctime_r(const time_t *timer, char *buffer);
...
@@ -1093,7 +1092,7 @@ typedef struct {
...
@@ -1093,7 +1092,7 @@ typedef struct {
#define _XGetgrnam(n,p) getgrnam_r((n), &(p).grp, (p).buf, sizeof((p).buf))
#define _XGetgrnam(n,p) getgrnam_r((n), &(p).grp, (p).buf, sizeof((p).buf))
#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS)
#elif !defined(_POSIX_THREAD_SAFE_FUNCTIONS)
/* Non-POSIX API. HP/UX 10
, AIX 4
.
/* Non-POSIX API. HP/UX 10.
*
*
* extern int getgrgid_r(gid_t, struct group *, char *, int);
* extern int getgrgid_r(gid_t, struct group *, char *, int);
* extern int getgrnam_r(const char *, struct group *, char *, int);
* extern int getgrnam_r(const char *, struct group *, char *, int);
...
...
nx-X11/include/Xpoll.h.in
View file @
4b178918
...
@@ -80,22 +80,16 @@ from The Open Group.
...
@@ -80,22 +80,16 @@ from The Open Group.
* 'the branch below is the fallthrough for halfway modern systems', and include
* 'the branch below is the fallthrough for halfway modern systems', and include
* <sys/select.h>, so we get the FD_* macros. */
* <sys/select.h>, so we get the FD_* macros. */
#if !defined(DGUX)
#if !defined(DGUX)
# if
(defined(SVR4) || defined(AIXV3)
) && !defined(FD_SETSIZE)
# if
defined(SVR4
) && !defined(FD_SETSIZE)
# include <sys/select.h>
# include <sys/select.h>
# ifdef luna
# ifdef luna
# include <sysent.h>
# include <sysent.h>
# endif
# endif
# else /* not SVR4/AIXv3 */
# else /* not SVR4 */
# if defined(AIXV4) /* AIX 4.2 fubar-ed <sys/select.h>, so try really hard. */
# ifdef __QNX__ /* Make sure we get 256 bit select masks */
# if !defined(NFDBITS)
# define FD_SETSIZE 256
# include <sys/select.h>
# endif
# else /* the branch below is the fallthrough for halfway modern systems */
# ifdef __QNX__ /* Make sure we get 256 bit select masks */
# define FD_SETSIZE 256
# endif
# include <sys/select.h>
# endif
# endif
# include <sys/select.h>
# endif
# endif
#else /* DGUX -- No sys/select in Intel DG/ux */
#else /* DGUX -- No sys/select in Intel DG/ux */
# include <sys/time.h>
# include <sys/time.h>
...
...
nx-X11/lib/X11/SetLocale.c
View file @
4b178918
...
@@ -102,7 +102,7 @@ _XlcMapOSLocaleName(
...
@@ -102,7 +102,7 @@ _XlcMapOSLocaleName(
/* FIXME: correct indentation levels after ancient platform clean-up */
/* FIXME: correct indentation levels after ancient platform clean-up */
#if defined(CSRG_BASED) || defined(sun) || defined(SVR4) || defined(sgi) || defined(__osf__) || defined(
AIXV3) || defined(
ultrix) || defined(WIN32) || defined(linux)
#if defined(CSRG_BASED) || defined(sun) || defined(SVR4) || defined(sgi) || defined(__osf__) || defined(ultrix) || defined(WIN32) || defined(linux)
# ifdef ultrix
# ifdef ultrix
# define SKIPCOUNT 2
# define SKIPCOUNT 2
# define STARTCHAR '\001'
# define STARTCHAR '\001'
...
@@ -114,7 +114,7 @@ _XlcMapOSLocaleName(
...
@@ -114,7 +114,7 @@ _XlcMapOSLocaleName(
# define ENDCHAR ';'
# define ENDCHAR ';'
# define WHITEFILL
# define WHITEFILL
# else
# else
# if defined(__osf__)
|| (defined(AIXV3) && !defined(AIXV4))
# if defined(__osf__)
# define STARTCHAR ' '
# define STARTCHAR ' '
# define ENDCHAR ' '
# define ENDCHAR ' '
# else
# else
...
...
nx-X11/lib/X11/Xaixlcint.h
deleted
100644 → 0
View file @
184c5d77
/*
*
* Copyright IBM Corporation 1993
*
* All Rights Reserved
*
* License to use, copy, modify, and distribute this software and its
* documentation for any purpose and without fee is hereby granted,
* provided that the above copyright notice appear in all copies and that
* both that copyright notice and this permission notice appear in
* supporting documentation, and that the name of IBM not be
* used in advertising or publicity pertaining to distribution of the
* software without specific, written prior permission.
*
* IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
* ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS, AND
* NONINFRINGEMENT OF THIRD PARTY RIGHTS, IN NO EVENT SHALL
* IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
* ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*
*/
/************************************************************************/
/* Xaixlcint.h */
/*----------------------------------------------------------------------*/
/* This file contains Xlcint.h extension for AIX. */
/************************************************************************/
#ifndef _Xaixlcint_h
#define _Xaixlcint_h
#include "Xlcint.h"
#include <sys/lc_core.h>
#define _LC_LDX 11
#define _LC_LDX_R6 (_LC_LDX+1)
#define _LC_VERSION_R5 5
#define _LC_VERSION_R6 6
typedef
struct
_LC_core_ldx_t
{
_LC_object_t
lc_object_header
;
XLCd
(
*
default_loader
)();
Bool
sticky
;
}
_XlcCoreObjRec
,
*
_XlcCoreObj
;
#if _LC_VERSION < 0x40000000
#define __type_id type_id
#define __magic magic
#define __version version
#endif
#endif
/*_Xaixlcint_h*/
nx-X11/lib/X11/XlibInt.c
View file @
4b178918
...
@@ -3891,7 +3891,7 @@ _XData32(
...
@@ -3891,7 +3891,7 @@ _XData32(
* and so, you may be better off using gethostname (if it exists).
* and so, you may be better off using gethostname (if it exists).
*/
*/
#if (defined(_POSIX_SOURCE) && !defined(
AIXV3) && !defined(
__QNX__)) || defined(SVR4)
#if (defined(_POSIX_SOURCE) && !defined(__QNX__)) || defined(SVR4)
#define NEED_UTSNAME
#define NEED_UTSNAME
#include <sys/utsname.h>
#include <sys/utsname.h>
#else
#else
...
...
nx-X11/lib/xtrans/Xtrans.c
View file @
4b178918
...
@@ -669,7 +669,7 @@ TRANS(SetOption) (XtransConnInfo ciptr, int option, int arg)
...
@@ -669,7 +669,7 @@ TRANS(SetOption) (XtransConnInfo ciptr, int option, int arg)
#else
#else
ret
=
fcntl
(
fd
,
F_SETFL
,
ret
|
O_NDELAY
);
ret
=
fcntl
(
fd
,
F_SETFL
,
ret
|
O_NDELAY
);
#endif
#endif
#endif
/*
AIXV3 || uniosu
*/
#endif
/*
WIN32
*/
#endif
/* FIOSNBIO */
#endif
/* FIOSNBIO */
#endif
/* O_NONBLOCK */
#endif
/* O_NONBLOCK */
break
;
break
;
...
...
nx-X11/programs/Xserver/hw/nxagent/Init.c
View file @
4b178918
...
@@ -536,11 +536,6 @@ void OsVendorEndRedirectErrorFFunction()
...
@@ -536,11 +536,6 @@ void OsVendorEndRedirectErrorFFunction()
nxagentEndRedirectToClientsLog
();
nxagentEndRedirectToClientsLog
();
}
}
/* this is just to get the server to link on AIX */
#ifdef AIXV3
int
SelectWaitTime
=
10000
;
/* usec */
#endif
ServerGrabInfoRec
nxagentGrabServerInfo
;
ServerGrabInfoRec
nxagentGrabServerInfo
;
static
void
nxagentGrabServerCallback
(
CallbackListPtr
*
callbacks
,
void
*
data
,
static
void
nxagentGrabServerCallback
(
CallbackListPtr
*
callbacks
,
void
*
data
,
...
...
nx-X11/programs/Xserver/include/servermd.h
View file @
4b178918
...
@@ -159,15 +159,6 @@ SOFTWARE.
...
@@ -159,15 +159,6 @@ SOFTWARE.
#endif
/* sun && !(i386 && SVR4) */
#endif
/* sun && !(i386 && SVR4) */
#if defined(AIXV3)
#define IMAGE_BYTE_ORDER MSBFirst
/* Values for the RISC/6000 */
#define BITMAP_BIT_ORDER MSBFirst
#define GLYPHPADBYTES 4
#endif
/* AIXV3 */
#if defined(ibm032) || defined (ibm)
#if defined(ibm032) || defined (ibm)
#ifdef i386
#ifdef i386
...
...
nx-X11/programs/Xserver/os/connection.c
View file @
4b178918
...
@@ -94,10 +94,6 @@ SOFTWARE.
...
@@ -94,10 +94,6 @@ SOFTWARE.
#endif
#endif
#ifdef AIXV3
#include <sys/ioctl.h>
#endif
#if defined(TCPCONN)
#if defined(TCPCONN)
# include <netinet/in.h>
# include <netinet/in.h>
# include <arpa/inet.h>
# include <arpa/inet.h>
...
...
nx-X11/programs/Xserver/os/utils.c
View file @
4b178918
...
@@ -264,11 +264,6 @@ int auditTrailLevel = 1;
...
@@ -264,11 +264,6 @@ int auditTrailLevel = 1;
Bool
Must_have_memory
=
FALSE
;
Bool
Must_have_memory
=
FALSE
;
#ifdef AIXV3
int
SyncOn
=
0
;
extern
int
SelectWaitTime
;
#endif
#if defined(SVR4) || defined(__linux__) || defined(CSRG_BASED)
#if defined(SVR4) || defined(__linux__) || defined(CSRG_BASED)
#define HAS_SAVED_IDS_AND_SETEUID
#define HAS_SAVED_IDS_AND_SETEUID
#endif
#endif
...
@@ -571,7 +566,6 @@ AdjustWaitForDelay (void * waitTime, unsigned long newdelay)
...
@@ -571,7 +566,6 @@ AdjustWaitForDelay (void * waitTime, unsigned long newdelay)
void
UseMsg
(
void
)
void
UseMsg
(
void
)
{
{
#if !defined(AIXrt) && !defined(AIX386)
ErrorF
(
"use: X [:<display>] [option]
\n
"
);
ErrorF
(
"use: X [:<display>] [option]
\n
"
);
ErrorF
(
"-a # mouse acceleration (pixels)
\n
"
);
ErrorF
(
"-a # mouse acceleration (pixels)
\n
"
);
ErrorF
(
"-ac disable access control restrictions
\n
"
);
ErrorF
(
"-ac disable access control restrictions
\n
"
);
...
@@ -664,7 +658,6 @@ void UseMsg(void)
...
@@ -664,7 +658,6 @@ void UseMsg(void)
#ifdef XDMCP
#ifdef XDMCP
XdmcpUseMsg
();
XdmcpUseMsg
();
#endif
#endif
#endif
/* !AIXrt && ! AIX386 */
#ifdef XKB
#ifdef XKB
XkbUseMsg
();
XkbUseMsg
();
#endif
#endif
...
@@ -1062,19 +1055,6 @@ ProcessCommandLine(int argc, char *argv[])
...
@@ -1062,19 +1055,6 @@ ProcessCommandLine(int argc, char *argv[])
i
=
skip
-
1
;
i
=
skip
-
1
;
}
}
#endif
#endif
#ifdef AIXV3
else
if
(
strcmp
(
argv
[
i
],
"-timeout"
)
==
0
)
{
if
(
++
i
<
argc
)
SelectWaitTime
=
atoi
(
argv
[
i
]);
else
UseMsg
();
}
else
if
(
strcmp
(
argv
[
i
],
"-sync"
)
==
0
)
{
SyncOn
++
;
}
#endif
#ifdef SMART_SCHEDULE
#ifdef SMART_SCHEDULE
else
if
(
strcmp
(
argv
[
i
],
"-dumbSched"
)
==
0
)
else
if
(
strcmp
(
argv
[
i
],
"-dumbSched"
)
==
0
)
{
{
...
...
nx-X11/programs/Xserver/xkb/ddxLoad.c
View file @
4b178918
...
@@ -53,7 +53,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
...
@@ -53,7 +53,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XI.h>
#include "xkb.h"
#include "xkb.h"
#if defined(CSRG_BASED) || defined(linux) || defined(__sgi) || defined(
AIXV3) || defined(
__osf__) || defined(__GNU__)
#if defined(CSRG_BASED) || defined(linux) || defined(__sgi) || defined(__osf__) || defined(__GNU__)
#include <paths.h>
#include <paths.h>
#endif
#endif
...
...
nx-X11/programs/Xserver/xkb/xkbAccessX.c
View file @
4b178918
...
@@ -360,9 +360,7 @@ XkbControlsPtr ctrls;
...
@@ -360,9 +360,7 @@ XkbControlsPtr ctrls;
if
(
keybd
->
kbdfeed
->
ctrl
.
autoRepeat
&&
if
(
keybd
->
kbdfeed
->
ctrl
.
autoRepeat
&&
((
xkbi
->
slowKey
!=
xkbi
->
mouseKey
)
||
(
!
xkbi
->
mouseKeysAccel
))
&&
((
xkbi
->
slowKey
!=
xkbi
->
mouseKey
)
||
(
!
xkbi
->
mouseKeysAccel
))
&&
(
ctrls
->
enabled_ctrls
&
XkbRepeatKeysMask
))
{
(
ctrls
->
enabled_ctrls
&
XkbRepeatKeysMask
))
{
#ifndef AIXV3
if
(
BitIsOn
(
keybd
->
kbdfeed
->
ctrl
.
autoRepeats
,
xkbi
->
slowKey
))
if
(
BitIsOn
(
keybd
->
kbdfeed
->
ctrl
.
autoRepeats
,
xkbi
->
slowKey
))
#endif
{
{
xkbi
->
repeatKey
=
xkbi
->
slowKey
;
xkbi
->
repeatKey
=
xkbi
->
slowKey
;
xkbi
->
repeatKeyTimer
=
TimerSet
(
xkbi
->
repeatKeyTimer
,
xkbi
->
repeatKeyTimer
=
TimerSet
(
xkbi
->
repeatKeyTimer
,
...
@@ -529,9 +527,7 @@ KeySym * sym = XkbKeySymsPtr(xkbi->desc,key);
...
@@ -529,9 +527,7 @@ KeySym * sym = XkbKeySymsPtr(xkbi->desc,key);
if
((
keybd
->
kbdfeed
->
ctrl
.
autoRepeat
)
&&
if
((
keybd
->
kbdfeed
->
ctrl
.
autoRepeat
)
&&
((
ctrls
->
enabled_ctrls
&
(
XkbSlowKeysMask
|
XkbRepeatKeysMask
))
==
((
ctrls
->
enabled_ctrls
&
(
XkbSlowKeysMask
|
XkbRepeatKeysMask
))
==
XkbRepeatKeysMask
))
{
XkbRepeatKeysMask
))
{
#ifndef AIXV3
if
(
BitIsOn
(
keybd
->
kbdfeed
->
ctrl
.
autoRepeats
,
key
))
if
(
BitIsOn
(
keybd
->
kbdfeed
->
ctrl
.
autoRepeats
,
key
))
#endif
{
{
#ifdef DEBUG
#ifdef DEBUG
if
(
xkbDebugFlags
&
0x10
)
if
(
xkbDebugFlags
&
0x10
)
...
...
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