xf86-input-keyboard: Import xf86-input-keyboard-1.9.0 as wip/xf86-input-keyboard-dfbsd
Add to pkgsrc NetBSD xsrc amiga keyboard patches
This commit is contained in:
parent
b52d9fefae
commit
0165d90d13
1
Makefile
1
Makefile
|
@ -5006,6 +5006,7 @@ SUBDIR+= xdiskusage
|
|||
SUBDIR+= xebece
|
||||
SUBDIR+= xerces-c-2.8.0
|
||||
SUBDIR+= xesam-glib
|
||||
SUBDIR+= xf86-input-keyboard-dfbsd
|
||||
SUBDIR+= xf86-input-mouse-dfbsd
|
||||
SUBDIR+= xf86-input-synaptics
|
||||
SUBDIR+= xf86-input-vboxmouse
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
This is the keyboard driver for the modular Xorg server.
|
|
@ -0,0 +1,48 @@
|
|||
# $NetBSD: Makefile,v 1.26 2018/03/07 11:57:41 wiz Exp $
|
||||
|
||||
DISTNAME= xf86-input-keyboard-1.9.0
|
||||
PKGREVISION= 2
|
||||
CATEGORIES= x11
|
||||
MASTER_SITES= ${MASTER_SITE_XORG:=driver/}
|
||||
EXTRACT_SUFX= .tar.bz2
|
||||
|
||||
MAINTAINER= joerg@NetBSD.org
|
||||
HOMEPAGE= http://xorg.freedesktop.org/
|
||||
COMMENT= Modular Xorg keyboard driver
|
||||
LICENSE= mit
|
||||
|
||||
USE_LIBTOOL= YES
|
||||
GNU_CONFIGURE= YES
|
||||
USE_TOOLS+= gmake pkg-config
|
||||
|
||||
CONFIGURE_ENV.SunOS+= DRIVER_MAN_SUFFIX=4
|
||||
|
||||
.include "../../mk/bsd.prefs.mk"
|
||||
|
||||
PKG_OPTIONS_VAR= PKG_OPTIONS.xf86-input-keyboard
|
||||
PKG_SUPPORTED_OPTIONS= debug
|
||||
# PKG_SUGGESTED_OPTIONS= debug
|
||||
|
||||
PKG_SUPPORTED_OPTIONS+= delay_kdsetled
|
||||
.if ${OPSYS} == "DragonFly"
|
||||
# PKG_SUGGESTED_OPTIONS+= delay_kdsetled
|
||||
.endif
|
||||
|
||||
.include "../../mk/bsd.options.mk"
|
||||
|
||||
# Debug flags recommended for server and drivers by:
|
||||
# https://www.x.org/wiki/Development/Documentation/ServerDebugging/
|
||||
.if !empty(PKG_OPTIONS:Mdebug)
|
||||
CPPFLAGS+= -DDEBUG
|
||||
CFLAGS+= -O0 -g3
|
||||
.endif
|
||||
|
||||
.if !empty(PKG_OPTIONS:Mdelay_kdsetled)
|
||||
CPPFLAGS+= -DDELAY_KDSETLED
|
||||
.endif
|
||||
|
||||
.include "../../x11/libxkbfile/buildlink3.mk"
|
||||
.include "../../x11/modular-xorg-server/buildlink3.mk"
|
||||
|
||||
.include "../../x11/xorgproto/buildlink3.mk"
|
||||
.include "../../mk/bsd.pkg.mk"
|
|
@ -0,0 +1,3 @@
|
|||
@comment $NetBSD: PLIST,v 1.2 2007/08/05 23:32:47 joerg Exp $
|
||||
lib/xorg/modules/input/kbd_drv.la
|
||||
man/man4/kbd.4
|
|
@ -0,0 +1,11 @@
|
|||
$NetBSD: distinfo,v 1.15 2018/01/21 10:12:39 triaxx Exp $
|
||||
|
||||
SHA1 (xf86-input-keyboard-1.9.0.tar.bz2) = 24b5d84d221a75650f390ff63315912bf9a94992
|
||||
RMD160 (xf86-input-keyboard-1.9.0.tar.bz2) = 1b6d2d6fc538f7d57a0b452173184248e22d87d0
|
||||
SHA512 (xf86-input-keyboard-1.9.0.tar.bz2) = d1a52d10039096d0d5e09750b6a8c2388345748331615af93e5be499646c3bc5fbbfc897fcebdeada5efaafff94f26a2ab84d6e35f01a875b8b9956a42015df9
|
||||
Size (xf86-input-keyboard-1.9.0.tar.bz2) = 341693 bytes
|
||||
SHA1 (patch-src_at__scancode.c) = 24aa54f28b645919b65e5e4eb1699c1cb5e64609
|
||||
SHA1 (patch-src_bsd__KbdMap.c) = bd9b3f487f1915b3c06b6c25fcf541c3addc5480
|
||||
SHA1 (patch-src_bsd__kbd.c) = 80240c465b85055739f0318b6a0cb3faae8b2eca
|
||||
SHA1 (patch-src_kbd.c) = 334390167984fe750a26f24a297c71de50e75a6c
|
||||
SHA1 (patch-src_sun__kbd.c) = 21da7cb7110ae8b08f9245de1d1678965ba7a0c8
|
|
@ -0,0 +1,39 @@
|
|||
$NetBSD$
|
||||
|
||||
From FreeBSD ports x11-drivers/xf86-input-keyboard 1.9.0.
|
||||
|
||||
--- src/at_scancode.c.orig 2014-02-10 22:04:31.000000000 +0000
|
||||
+++ src/at_scancode.c
|
||||
@@ -82,6 +82,12 @@ ATScancode(InputInfoPtr pInfo, int *scan
|
||||
case KEY_Prefix0:
|
||||
pKbd->scanPrefix = 0;
|
||||
switch (*scanCode) {
|
||||
+#if (defined(__FreeBSD__) && __FreeBSD__ >= 11) || defined(__DragonFly__)
|
||||
+ case 0x1e: *scanCode = KEY_AudioRaise;break;
|
||||
+ case 0x1f: *scanCode = KEY_AudioLower;break;
|
||||
+ case 0x20: *scanCode = KEY_Power; break;
|
||||
+ case 0x25: *scanCode = KEY_Mute; break;
|
||||
+#endif
|
||||
case KEY_KP_7: *scanCode = KEY_Home; break; /* curs home */
|
||||
case KEY_KP_8: *scanCode = KEY_Up; break; /* curs up */
|
||||
case KEY_KP_9: *scanCode = KEY_PgUp; break; /* curs pgup */
|
||||
@@ -102,6 +108,19 @@ ATScancode(InputInfoPtr pInfo, int *scan
|
||||
case 0x5b: *scanCode = KEY_LMeta; break;
|
||||
case 0x5c: *scanCode = KEY_RMeta; break;
|
||||
case 0x5d: *scanCode = KEY_Menu; break;
|
||||
+#if (defined(__FreeBSD__) && __FreeBSD__ >= 11) || defined(__DragonFly__)
|
||||
+ case 0x5e: *scanCode = KEY_L1; break; /* stop */
|
||||
+ case 0x5f: *scanCode = KEY_L2; break; /* again */
|
||||
+ case 0x60: *scanCode = KEY_L3; break; /* props */
|
||||
+ case 0x61: *scanCode = KEY_L4; break; /* undo */
|
||||
+ case 0x62: *scanCode = KEY_L5; break; /* front */
|
||||
+ case 0x63: *scanCode = KEY_L6; break; /* copy */
|
||||
+ case 0x64: *scanCode = KEY_L7; break; /* open */
|
||||
+ case 0x65: *scanCode = KEY_L8; break; /* paste */
|
||||
+ case 0x66: *scanCode = KEY_L9; break; /* find */
|
||||
+ case 0x67: *scanCode = KEY_L10; break; /* cut */
|
||||
+ case 0x68: *scanCode = KEY_Help; break;
|
||||
+#endif
|
||||
case KEY_F3: *scanCode = KEY_F13; break;
|
||||
case KEY_F4: *scanCode = KEY_F14; break;
|
||||
case KEY_F5: *scanCode = KEY_F15; break;
|
|
@ -0,0 +1,188 @@
|
|||
$NetBSD: patch-src_bsd__KbdMap.c,v 1.1 2018/01/21 10:12:39 triaxx Exp $
|
||||
|
||||
PR191459: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191459
|
||||
Fix a segmentation fault due to the use of Unicode codepoints in vt(4) which is
|
||||
the default console driver from FreeBSD 11.
|
||||
|
||||
Don't query console keymap
|
||||
|
||||
This seems to be useless and doesn't work anymore with vt(4), due to the
|
||||
use of Unicode codepoints in vt(4). So remove the related code. This fixes
|
||||
a segmentation fault during X.Org server startup.
|
||||
|
||||
PR: 191459
|
||||
|
||||
Also used in DragonFly dports.
|
||||
|
||||
Patches from NetBSD xsrc:
|
||||
Scancode translation table for wskbd on Amiga keyboards.
|
||||
|
||||
--- src/bsd_KbdMap.c.orig 2015-08-07 03:16:08.000000000 +0000
|
||||
+++ src/bsd_KbdMap.c
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "bsd_kbd.h"
|
||||
|
||||
#if (defined(SYSCONS_SUPPORT) || defined(PCVT_SUPPORT)) && defined(GIO_KEYMAP)
|
||||
+#if !(defined(__FreeBSD__) && __FreeBSD__ >= 11) && !defined(__DragonFly__)
|
||||
#define KD_GET_ENTRY(i,n) \
|
||||
eascii_to_x[((keymap.key[i].spcl << (n+1)) & 0x100) + keymap.key[i].map[n]]
|
||||
|
||||
@@ -188,6 +189,7 @@ static KeySym eascii_to_x[512] = {
|
||||
NoSymbol, NoSymbol, NoSymbol, NoSymbol,
|
||||
NoSymbol, NoSymbol, NoSymbol, NoSymbol
|
||||
};
|
||||
+#endif /* !(defined(__FreeBSD__) && __FreeBSD__ >= 11) */
|
||||
|
||||
#ifdef SYSCONS_SUPPORT
|
||||
static
|
||||
@@ -841,6 +843,122 @@ TransMapRec wsAdb = {
|
||||
wsAdbMap
|
||||
};
|
||||
|
||||
+/* Map for amiga keyboards */
|
||||
+static CARD8 wsAmigaMap[] = {
|
||||
+ /* 0 */ KEY_Tilde,
|
||||
+ /* 1 */ KEY_1,
|
||||
+ /* 2 */ KEY_2,
|
||||
+ /* 3 */ KEY_3,
|
||||
+ /* 4 */ KEY_4,
|
||||
+ /* 5 */ KEY_5,
|
||||
+ /* 6 */ KEY_6,
|
||||
+ /* 7 */ KEY_7,
|
||||
+ /* 8 */ KEY_8,
|
||||
+ /* 9 */ KEY_9,
|
||||
+ /* 10 */ KEY_0,
|
||||
+ /* 11 */ KEY_Minus,
|
||||
+ /* 12 */ KEY_Equal,
|
||||
+ /* 13 */ KEY_BSlash, /* key in this position only on Amiga */
|
||||
+ /* 14 */ KEY_NOTUSED,
|
||||
+ /* 15 */ KEY_KP_0,
|
||||
+ /* 16 */ KEY_Q,
|
||||
+ /* 17 */ KEY_W,
|
||||
+ /* 18 */ KEY_E,
|
||||
+ /* 19 */ KEY_R,
|
||||
+ /* 20 */ KEY_T,
|
||||
+ /* 21 */ KEY_Y,
|
||||
+ /* 22 */ KEY_U,
|
||||
+ /* 23 */ KEY_I,
|
||||
+ /* 24 */ KEY_O,
|
||||
+ /* 25 */ KEY_P,
|
||||
+ /* 26 */ KEY_LBrace,
|
||||
+ /* 27 */ KEY_RBrace,
|
||||
+ /* 28 */ KEY_NOTUSED,
|
||||
+ /* 29 */ KEY_KP_1,
|
||||
+ /* 30 */ KEY_KP_2,
|
||||
+ /* 31 */ KEY_KP_3,
|
||||
+ /* 32 */ KEY_A,
|
||||
+ /* 33 */ KEY_S,
|
||||
+ /* 34 */ KEY_D,
|
||||
+ /* 35 */ KEY_F,
|
||||
+ /* 36 */ KEY_G,
|
||||
+ /* 37 */ KEY_H,
|
||||
+ /* 38 */ KEY_J,
|
||||
+ /* 39 */ KEY_K,
|
||||
+ /* 40 */ KEY_L,
|
||||
+ /* 41 */ KEY_SemiColon,
|
||||
+ /* 42 */ KEY_Quote,
|
||||
+ /* 43 */ KEY_BSlash, /* # on international keyboards */
|
||||
+ /* 44 */ KEY_NOTUSED,
|
||||
+ /* 45 */ KEY_KP_4,
|
||||
+ /* 46 */ KEY_KP_5,
|
||||
+ /* 47 */ KEY_KP_6,
|
||||
+ /* 48 */ KEY_Less,
|
||||
+ /* 49 */ KEY_Z,
|
||||
+ /* 50 */ KEY_X,
|
||||
+ /* 51 */ KEY_C,
|
||||
+ /* 52 */ KEY_V,
|
||||
+ /* 53 */ KEY_B,
|
||||
+ /* 54 */ KEY_N,
|
||||
+ /* 55 */ KEY_M,
|
||||
+ /* 56 */ KEY_Comma,
|
||||
+ /* 57 */ KEY_Period,
|
||||
+ /* 58 */ KEY_Slash,
|
||||
+ /* 59 */ KEY_NOTUSED,
|
||||
+ /* 60 */ KEY_KP_Decimal,
|
||||
+ /* 61 */ KEY_KP_7,
|
||||
+ /* 62 */ KEY_KP_8,
|
||||
+ /* 63 */ KEY_KP_9,
|
||||
+ /* 64 */ KEY_Space,
|
||||
+ /* 65 */ KEY_BackSpace,
|
||||
+ /* 66 */ KEY_Tab,
|
||||
+ /* 67 */ KEY_KP_Enter,
|
||||
+ /* 68 */ KEY_Enter,
|
||||
+ /* 69 */ KEY_Escape,
|
||||
+ /* 70 */ KEY_Delete,
|
||||
+ /* 71 */ KEY_NOTUSED,
|
||||
+ /* 72 */ KEY_NOTUSED,
|
||||
+ /* 73 */ KEY_NOTUSED,
|
||||
+ /* 74 */ KEY_KP_Minus,
|
||||
+ /* 75 */ KEY_NOTUSED,
|
||||
+ /* 76 */ KEY_Up,
|
||||
+ /* 77 */ KEY_Down,
|
||||
+ /* 78 */ KEY_Right,
|
||||
+ /* 79 */ KEY_Left,
|
||||
+ /* 80 */ KEY_F1,
|
||||
+ /* 81 */ KEY_F2,
|
||||
+ /* 82 */ KEY_F3,
|
||||
+ /* 83 */ KEY_F4,
|
||||
+ /* 84 */ KEY_F5,
|
||||
+ /* 85 */ KEY_F6,
|
||||
+ /* 86 */ KEY_F7,
|
||||
+ /* 87 */ KEY_F8,
|
||||
+ /* 88 */ KEY_F9,
|
||||
+ /* 89 */ KEY_F10,
|
||||
+ /* 90 */ KEY_UNKNOWN, /* Keypad [ */
|
||||
+ /* 91 */ KEY_UNKNOWN, /* Keypad ] */
|
||||
+ /* 92 */ KEY_KP_Divide,
|
||||
+ /* 93 */ KEY_KP_Multiply,
|
||||
+ /* 94 */ KEY_KP_Plus,
|
||||
+ /* 95 */ KEY_Help,
|
||||
+ /* 96 */ KEY_ShiftL,
|
||||
+ /* 97 */ KEY_ShiftR,
|
||||
+ /* 98 */ KEY_NOTUSED,
|
||||
+ /* 99 */ KEY_LCtrl,
|
||||
+ /* 100 */ KEY_Alt,
|
||||
+ /* 101 */ KEY_AltLang,
|
||||
+ /* 102 */ KEY_LMeta,
|
||||
+ /* 103 */ KEY_RMeta
|
||||
+};
|
||||
+#define WS_AMIGA_MAP_SIZE (sizeof(wsAmigaMap)/sizeof(*wsAmigaMap))
|
||||
+
|
||||
+static
|
||||
+TransMapRec wsAmiga = {
|
||||
+ 0,
|
||||
+ WS_AMIGA_MAP_SIZE,
|
||||
+ wsAmigaMap
|
||||
+};
|
||||
+
|
||||
/* Map for LK201 keyboards */
|
||||
static CARD8 wsLk201Map[] = {
|
||||
/* 0 */ KEY_F1,
|
||||
@@ -1261,6 +1379,7 @@ KbdGetMapping (InputInfoPtr pInfo, KeySy
|
||||
KeySym *k;
|
||||
int i;
|
||||
|
||||
+#if !(defined(__FreeBSD__) && __FreeBSD__ >= 11) && !defined(__DragonFly__)
|
||||
#ifndef __bsdi__
|
||||
switch (pKbd->consType) {
|
||||
|
||||
@@ -1294,6 +1413,7 @@ KbdGetMapping (InputInfoPtr pInfo, KeySy
|
||||
|
||||
}
|
||||
#endif /* !bsdi */
|
||||
+#endif /* !(defined(__FreeBSD__) && __FreeBSD__ >= 11) */
|
||||
|
||||
/*
|
||||
* compute the modifier map
|
||||
@@ -1386,6 +1506,11 @@ KbdGetMapping (InputInfoPtr pInfo, KeySy
|
||||
pKbd->scancodeMap = &wsAdb;
|
||||
break;
|
||||
#endif
|
||||
+#ifdef WSKBD_TYPE_AMIGA
|
||||
+ case WSKBD_TYPE_AMIGA:
|
||||
+ pKbd->scancodeMap = &wsAmiga;
|
||||
+ break;
|
||||
+#endif
|
||||
#ifdef WSKBD_TYPE_LK201
|
||||
case WSKBD_TYPE_LK201:
|
||||
pKbd->scancodeMap = &wsLk201;
|
|
@ -0,0 +1,67 @@
|
|||
$NetBSD$
|
||||
|
||||
* DragonFly has on a specific machine some timing problem at SetKbdLeds.
|
||||
Try a random sleep before calling it.
|
||||
|
||||
Patch from FreeBSD ports / DragonFly dports x11-drivers/xf86-input-keyboard.
|
||||
|
||||
* Switch keyboards which are not attached to console to RAW mode.
|
||||
|
||||
Patches from NetBSD xsrc:
|
||||
Scancode translation table for wskbd on Amiga keyboards.
|
||||
|
||||
--- src/bsd_kbd.c.orig 2013-10-28 00:44:23.000000000 +0000
|
||||
+++ src/bsd_kbd.c
|
||||
@@ -27,6 +27,11 @@
|
||||
#include "atKeynames.h"
|
||||
#include "bsd_kbd.h"
|
||||
|
||||
+#if defined(DELAY_KDSETLED)
|
||||
+#include <unistd.h>
|
||||
+#include <stdlib.h>
|
||||
+#endif
|
||||
+
|
||||
static KbdProtocolRec protocols[] = {
|
||||
{"standard", PROT_STD },
|
||||
#ifdef WSCONS_SUPPORT
|
||||
@@ -104,7 +109,13 @@ SetKbdLeds(InputInfoPtr pInfo, int leds)
|
||||
#if defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)
|
||||
case SYSCONS:
|
||||
case PCVT:
|
||||
+#if defined(DELAY_KDSETLED)
|
||||
+ sleep(1 + (unsigned int)(0x03L && random()));
|
||||
+#endif
|
||||
ioctl(pInfo->fd, KDSETLED, real_leds);
|
||||
+#if defined(DELAY_KDSETLED)
|
||||
+ sleep(1);
|
||||
+#endif
|
||||
break;
|
||||
#endif
|
||||
#if defined(WSCONS_SUPPORT)
|
||||
@@ -236,6 +247,14 @@ KbdOn(InputInfoPtr pInfo, int what)
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
+#if (defined(__FreeBSD__) && __FreeBSD__ >= 11) || defined(__DragonFly__)
|
||||
+/*
|
||||
+ * Switch keyboards which are not attached to console in RAW mode
|
||||
+ */
|
||||
+#if defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)
|
||||
+ ioctl(pInfo->fd, KDSKBMODE, K_RAW);
|
||||
+#endif
|
||||
+#endif
|
||||
}
|
||||
return Success;
|
||||
}
|
||||
@@ -459,6 +478,11 @@ OpenKeyboard(InputInfoPtr pInfo)
|
||||
printWsType("ADB", pInfo->name);
|
||||
break;
|
||||
#endif
|
||||
+#ifdef WSKBD_TYPE_AMIGA
|
||||
+ case WSKBD_TYPE_AMIGA:
|
||||
+ printWsType("Amiga", pInfo->name);
|
||||
+ break;
|
||||
+#endif
|
||||
#ifdef WSKBD_TYPE_LK201
|
||||
case WSKBD_TYPE_LK201:
|
||||
printWsType("LK201", pInfo->name);
|
|
@ -0,0 +1,36 @@
|
|||
$NetBSD$
|
||||
|
||||
FreeBSD ports / DragonFly dports x11-drivers/xf86-input-keyboard.
|
||||
Close device file for keyboards which are not attached
|
||||
to console, otherwise they can't be opened again after
|
||||
relogin when using session manager like xdm.
|
||||
|
||||
--- src/kbd.c.orig 2016-05-30 21:35:35.000000000 +0000
|
||||
+++ src/kbd.c
|
||||
@@ -25,6 +25,9 @@
|
||||
|
||||
#include "xf86.h"
|
||||
#include "atKeynames.h"
|
||||
+#if (defined(__FreeBSD__) && __FreeBSD__ >= 11) || defined(__DragonFly__)
|
||||
+#include "xf86Priv.h"
|
||||
+#endif
|
||||
#include "xf86Privstr.h"
|
||||
|
||||
#include <X11/extensions/XI.h>
|
||||
@@ -382,6 +385,16 @@ KbdProc(DeviceIntPtr device, int what)
|
||||
}
|
||||
pKbd->KbdOff(pInfo, what);
|
||||
device->public.on = FALSE;
|
||||
+#if (defined(__FreeBSD__) && __FreeBSD__ >= 11) || defined(__DragonFly__)
|
||||
+ /*
|
||||
+ * Close device file for keyboards which are not attached
|
||||
+ * to console, otherwise they can't be opened again after
|
||||
+ * relogin when using session manager like xdm.
|
||||
+ * X server will take care about console attached keyboards.
|
||||
+ */
|
||||
+ if (pInfo->fd != xf86Info.consoleFd)
|
||||
+ close(pInfo->fd);
|
||||
+#endif
|
||||
break;
|
||||
|
||||
default:
|
|
@ -0,0 +1,31 @@
|
|||
$NetBSD: patch-src_sun__kbd.c,v 1.2 2016/11/17 08:05:55 wiz Exp $
|
||||
|
||||
rearrange includes to fix build on OmniOS. Include unistd.h for ioctl(2).
|
||||
|
||||
--- src/sun_kbd.c.orig 2013-03-27 00:56:38.000000000 +0000
|
||||
+++ src/sun_kbd.c
|
||||
@@ -49,6 +49,12 @@
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
+#include <unistd.h> /* for ioctl */
|
||||
+#include <sys/stropts.h>
|
||||
+#include <sys/vuid_event.h>
|
||||
+#include <sys/kbd.h>
|
||||
+#include <sys/note.h> /* needed before including older versions of hid.h */
|
||||
+#include <sys/usb/clients/hid/hid.h>
|
||||
#include <xorg-server.h>
|
||||
#include "xf86.h"
|
||||
#include "xf86Priv.h"
|
||||
@@ -56,11 +62,6 @@
|
||||
#include "xf86OSKbd.h"
|
||||
#include "sun_kbd.h"
|
||||
|
||||
-#include <sys/stropts.h>
|
||||
-#include <sys/vuid_event.h>
|
||||
-#include <sys/kbd.h>
|
||||
-#include <sys/note.h> /* needed before including older versions of hid.h */
|
||||
-#include <sys/usb/clients/hid/hid.h>
|
||||
|
||||
static int KbdOn(InputInfoPtr pInfo, int what);
|
||||
static Bool OpenKeyboard(InputInfoPtr pInfo);
|
Loading…
Reference in New Issue