Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136/////////////////////////////////////////////////////////////////////////////////Telnet Win32 : an ANSI telnet client.//Copyright (C) 1998-2000 Paul Brannan//Copyright (C) 1998 I.Ioannou//Copyright (C) 1997 Brad Johnson////This program is free software; you can redistribute it and/or//modify it under the terms of the GNU General Public License//as published by the Free Software Foundation; either version 2//of the License, or (at your option) any later version.////This program is distributed in the hope that it will be useful,//but WITHOUT ANY WARRANTY; without even the implied warranty of//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the//GNU General Public License for more details.////You should have received a copy of the GNU General Public License//along with this program; if not, write to the Free Software//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.////I.Ioannou//roryt@hol.gr/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////// Class TkeyDef - Key Definitions //// - kept in an array container //// originally part of KeyTrans.cpp ///////////////////////////////////////////////////////////
#include "precomp.h"
// This class did not properly release memory before, and a buffer overrun// was apparent in operator=(char*). Fixed. (Paul Brannan Feb. 4, 1999)
TKeyDef::TKeyDef() { uKeyDef.szKeyDef = 0; vk_code = dwState = 0;}
TKeyDef::TKeyDef(char *def, DWORD state, DWORD code) { uKeyDef.szKeyDef = 0; if (def != NULL && *def != 0) { // szKeyDef = (char *) GlobalAlloc(GPTR, strlen(def) +1); uKeyDef.szKeyDef = new char[strlen(def)+1]; strcpy(uKeyDef.szKeyDef, def); } dwState = state; vk_code = code;}
TKeyDef::TKeyDef(optype op, DWORD state, DWORD code) { uKeyDef.op = new optype; uKeyDef.op->sendstr = 0; uKeyDef.op->the_op = op.the_op; dwState = state; vk_code = code;}
TKeyDef::TKeyDef(const TKeyDef &t) { if(t.uKeyDef.szKeyDef == NULL) { uKeyDef.szKeyDef = (char *)NULL; } else if(t.uKeyDef.op->sendstr == 0) { uKeyDef.op = new optype; uKeyDef.op->sendstr = 0; uKeyDef.op->the_op = t.uKeyDef.op->the_op; } else { uKeyDef.szKeyDef = new char[strlen(t.uKeyDef.szKeyDef)+1]; strcpy(uKeyDef.szKeyDef, t.uKeyDef.szKeyDef); } dwState = t.dwState; vk_code = t.vk_code;}
TKeyDef::~TKeyDef() { if(uKeyDef.szKeyDef) delete[] uKeyDef.szKeyDef;}
char * TKeyDef::operator=(char *def) { if(def != NULL && *def != 0) { if(uKeyDef.szKeyDef) delete[] uKeyDef.szKeyDef; uKeyDef.szKeyDef = new char[strlen(def)+1]; strcpy(uKeyDef.szKeyDef, def); } return uKeyDef.szKeyDef;}
DWORD TKeyDef::operator=(DWORD code) { return vk_code = code;}
TKeyDef& TKeyDef::operator=(const TKeyDef &t) { if(t.uKeyDef.szKeyDef) { if(uKeyDef.szKeyDef) delete[] uKeyDef.szKeyDef; if(t.uKeyDef.op->sendstr) { uKeyDef.szKeyDef = new char[strlen(t.uKeyDef.szKeyDef)+1]; strcpy(uKeyDef.szKeyDef, t.uKeyDef.szKeyDef); } else { uKeyDef.op = new optype; uKeyDef.op->sendstr = 0; uKeyDef.op->the_op = t.uKeyDef.op->the_op; } } else { uKeyDef.szKeyDef = (char *)NULL; } dwState = t.dwState; vk_code = t.vk_code; return *this;}
const optype& TKeyDef::operator=(optype op) { uKeyDef.op = new optype; uKeyDef.op->sendstr = 0; uKeyDef.op->the_op = op.the_op; return *uKeyDef.op;}
// STL requires that operators be friends rather than member functions// (Paul Brannan 5/25/98)#ifndef __BORLANDC__bool operator==(const TKeyDef & t1, const TKeyDef & t2) { return ((t1.vk_code == t2.vk_code) && (t1.dwState == t2.dwState));}// We need this function for compatibility with STL (Paul Brannan 5/25/98)bool operator< (const TKeyDef& t1, const TKeyDef& t2) { if (t1.vk_code == t2.vk_code) return t1.dwState < t2.dwState; return t1.vk_code < t2.vk_code;}#elseint TKeyDef::operator==(TKeyDef & t) { return ((vk_code == t.vk_code) && (dwState == t.dwState));}#endif