// * this is for making emacs happy: -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
+ * Copyright 1998-2005,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "cursslk.h"
#include "cursesapp.h"
-MODULE_ID("$Id: cursslk.cc,v 1.15 2005/08/06 22:12:36 tom Exp $")
+MODULE_ID("$Id: cursslk.cc,v 1.21 2023/02/25 23:36:06 tom Exp $")
Soft_Label_Key_Set::Soft_Label_Key&
Soft_Label_Key_Set::Soft_Label_Key::operator=(char *text)
{
delete[] label;
- label = new char[1 + ::strlen(text)];
- (::strcpy)(label,text);
+ size_t need = 1 + ::strlen(text);
+ label = new char[need];
+ ::_nc_STRCPY(label,text,need);
return *this;
}
void Soft_Label_Key_Set::init()
{
- slk_array = new Soft_Label_Key[num_labels];
+ if (num_labels > 12)
+ num_labels = 12;
+ if (num_labels < 0)
+ num_labels = 0;
+ slk_array = new Soft_Label_Key[num_labels + 1];
for(int i=0; i < num_labels; i++) {
slk_array[i].num = i+1;
}
init();
}
-Soft_Label_Key_Set::~Soft_Label_Key_Set() {
+Soft_Label_Key_Set::~Soft_Label_Key_Set() THROWS(NCursesException) {
if (!::isendwin())
clear();
delete[] slk_array;
return slk_array[i-1];
}
+int Soft_Label_Key_Set::labels() const {
+ return num_labels;
+}
+
void Soft_Label_Key_Set::activate_label(int i, bool bf) {
if (!b_attrInit) {
NCursesApplication* A = NCursesApplication::getApplication();