Candidate release of source code.

This commit is contained in:
Dan 2019-03-26 13:45:32 -04:00
parent db81e6b3b0
commit 79d8f164f8
12449 changed files with 2800756 additions and 16 deletions

View file

@ -0,0 +1,64 @@
/* ###
* IP: GHIDRA
* REVIEWED: YES
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "Gadget.h"
#include "iostream"
#include "ostream"
#include "stdio.h"
Gadget::Gadget(char *gname)
{
this->name = gname;
this->deployed = false;
this->type = 0;
this->workingOn = NULL;
}
char *Gadget::getName()
{
return name;
}
bool Gadget::isDeployed()
{
return deployed;
}
int Gadget::getType()
{
return type;
}
void Gadget::use(Person *person)
{
if (deployed) {
return;
}
deployed = true;
workingOn = person;
}
void Gadget::print() {
char *depstr = (deployed == false ? "is not" : "is");
char *who = (deployed == false ? "anyone" : workingOn->name);
printf("%s %s deployed on %s\n", name, depstr, who);
}
Gadget::~Gadget(void)
{
}

View file

@ -0,0 +1,38 @@
/* ###
* IP: GHIDRA
* REVIEWED: YES
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "Wallace.h"
class Gadget
{
char *name;
int type;
bool deployed;
Person *workingOn;
public:
Gadget(char *name);
void use (Person *person);
bool isDeployed ();
char * getName ();
int getType ();
void print();
public:
~Gadget(void);
};

View file

@ -0,0 +1,74 @@
/* ###
* IP: GHIDRA
* REVIEWED: YES
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// WinHelloCPP.cpp : Defines the entry point for the application.
//
#include "Wallace.h"
#include "Gadget.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Person *personList = NULL;
void addPeople(Person **list) {
addPerson(list, "Lord Victor Quartermaine");
addPerson(list, "Lady Tottington");
addPerson(list, "Were Rabbit");
addPerson(list, "Rabbit");
addPerson(list, "Gromit");
addPerson(list, "Wallace");
}
void initializePeople(Person *people) {
int index = 0;
do {
people->likesCheese = ((index % 3) == 0);
people->id = index++;
people = people->next;
} while (people != NULL);
}
void addPerson (Person **list, char *name) {
Person *person = new(Person);
strncpy_s(person->name, name, sizeof(person->name));
person->next = *list;
*list = person;
}
Gadget* deployGadget() {
Gadget *gadget = new Gadget("Infrared Garden Gnome");
Person *pp = personList;
while (pp != NULL) {
if (strcmp(pp->name, "Wallace")==0 || pp->likesCheese) {
gadget->use(pp);
}
pp = pp->next;
}
return gadget;
}
int main(int argc, char **argv) {
addPeople(&personList);
initializePeople(personList);
Gadget *gadget = deployGadget();
gadget->print();
}

View file

@ -0,0 +1,34 @@
/* ###
* IP: GHIDRA
* REVIEWED: YES
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
enum StateMask { READ = 1, WRITE = 2, EXEC = 4, LOCKED = 8 };
typedef struct _person {
int id;
char name[32];
bool likesCheese;
struct _person *next;
} Person;
void addPeople(Person **list);
void initializePeople(Person *people);
void addPerson (Person **list, char *name);
void declare();