diff --git a/Source/Makefile b/Source/Makefile index 5a642b9b..57e5f914 100644 --- a/Source/Makefile +++ b/Source/Makefile @@ -6,7 +6,7 @@ BUILDDIR=../build # -- Objects and source files -- -SRCS = zlib/deflate.c zlib/trees.c bzip2/blocksort.c bzip2/bzlib.c bzip2/compress.c bzip2/huffman.c 7zip/7zGuids.cpp 7zip/Common/CRC.cpp 7zip/7zip/Compress/LZ/LZInWindow.cpp 7zip/7zip/Compress/LZMA/LZMAEncoder.cpp 7zip/7zip/Common/OutBuffer.cpp 7zip/7zip/Compress/RangeCoder/RangeCoderBit.cpp 7zip/Common/Alloc.cpp build.cpp crc32.c DialogTemplate.cpp exedata.cpp lang.cpp makenssi.cpp Plugins.cpp ResourceEditor.cpp ResourceVersionInfo.cpp script.cpp tokens.cpp util.cpp strlist.cpp growbuf.cpp mmap.cpp clzma.cpp lineparse.cpp +SRCS = zlib/deflate.c zlib/trees.c bzip2/blocksort.c bzip2/bzlib.c bzip2/compress.c bzip2/huffman.c 7zip/7zGuids.cpp 7zip/Common/CRC.cpp 7zip/7zip/Compress/LZ/LZInWindow.cpp 7zip/7zip/Compress/LZMA/LZMAEncoder.cpp 7zip/7zip/Common/OutBuffer.cpp 7zip/7zip/Compress/RangeCoder/RangeCoderBit.cpp 7zip/Common/Alloc.cpp build.cpp crc32.c DialogTemplate.cpp exedata.cpp lang.cpp makenssi.cpp Plugins.cpp ResourceEditor.cpp ResourceVersionInfo.cpp script.cpp tokens.cpp util.cpp strlist.cpp growbuf.cpp mmap.cpp clzma.cpp lineparse.cpp ShConstants.cpp OBJS = $(addprefix $(BUILDDIR)/,$(addsuffix .o,$(basename $(SRCS)))) ifeq "$(strip $(findstring i386pe,$(shell ld -V)))" "" LIBS = -lstdc++ -lpthread diff --git a/Source/ShConstants.cpp b/Source/ShConstants.cpp new file mode 100644 index 00000000..122b156f --- /dev/null +++ b/Source/ShConstants.cpp @@ -0,0 +1,69 @@ +#include "ShConstants.h" + +ConstantsStringList::ConstantsStringList() +{ + index = 0; +} + +int ConstantsStringList::add(const char *name, int value1, int value2) +{ + int pos=SortedStringListND::add(name); + if (pos == -1) return -1; + + ((struct constantstring*)gr.get())[pos].index = index; + ((struct constantstring*)gr.get())[pos].pos = pos; + ((struct constantstring*)gr.get())[pos].value1 = value1; + ((struct constantstring*)gr.get())[pos].value2 = value2; + + int temp = index; + index++; + + return temp; +} + +int ConstantsStringList::get(char *name, int n_chars /*= -1*/) +{ + int v=SortedStringListND::find(name, n_chars); + if (v==-1) return -1; + return (((struct constantstring*)gr.get())[v].index); +} + +int ConstantsStringList::getnum() +{ + return index; +} + +int ConstantsStringList::get_value1(int idx) +{ + int pos=get_internal_idx(idx); + if (pos==-1) return -1; + return (((struct constantstring*)gr.get())[pos].value1); +} + +int ConstantsStringList::get_value2(int idx) +{ + int pos=get_internal_idx(idx); + if (pos==-1) return -1; + return (((struct constantstring*)gr.get())[pos].value2); +} + +char* ConstantsStringList::idx2name(int idx) +{ + int pos=get_internal_idx(idx); + if (pos==-1) return NULL; + struct constantstring *data=(struct constantstring *)gr.get(); + return ((char*)strings.get() + data[pos].name); +} + +int ConstantsStringList::get_internal_idx(int idx) +{ + struct constantstring *data=(struct constantstring *)gr.get(); + for (int i = 0; i < index; i++) + { + if (data[i].index == idx) + { + return i; + } + } + return -1; +} diff --git a/Source/ShConstants.h b/Source/ShConstants.h index 928123e9..19732cb0 100644 --- a/Source/ShConstants.h +++ b/Source/ShConstants.h @@ -3,7 +3,7 @@ #ifndef ___CONSTANTS___H_____ #define ___CONSTANTS___H_____ -#include "lang.h" +#include "strlist.h" struct constantstring { int name; @@ -16,76 +16,18 @@ struct constantstring { class ConstantsStringList : public SortedStringListND { public: - ConstantsStringList() - { - index = 0; - } - ~ConstantsStringList() { } + ConstantsStringList(); - int add(const char *name, int value1, int value2) - { - int pos=SortedStringListND::add(name); - if (pos == -1) return -1; - - ((struct constantstring*)gr.get())[pos].index = index; - ((struct constantstring*)gr.get())[pos].pos = pos; - ((struct constantstring*)gr.get())[pos].value1 = value1; - ((struct constantstring*)gr.get())[pos].value2 = value2; - - int temp = index; - index++; - - return temp; - } - - int get(char *name, int n_chars = -1) - { - int v=SortedStringListND::find(name, n_chars); - if (v==-1) return -1; - return (((struct constantstring*)gr.get())[v].index); - } - - int getnum() - { - return index; - } - - int get_value1(int idx) - { - int pos=get_internal_idx(idx); - if (pos==-1) return -1; - return (((struct constantstring*)gr.get())[pos].value1); - } - - int get_value2(int idx) - { - int pos=get_internal_idx(idx); - if (pos==-1) return -1; - return (((struct constantstring*)gr.get())[pos].value2); - } - - char *idx2name(int idx) - { - int pos=get_internal_idx(idx); - if (pos==-1) return NULL; - struct constantstring *data=(struct constantstring *)gr.get(); - return ((char*)strings.get() + data[pos].name); - } + int add(const char *name, int value1, int value2); + int get(char *name, int n_chars = -1); + int getnum(); + int get_value1(int idx); + int get_value2(int idx); + char *idx2name(int idx); private: int index; - int get_internal_idx(int idx) - { - struct constantstring *data=(struct constantstring *)gr.get(); - for (int i = 0; i < index; i++) - { - if (data[i].index == idx) - { - return i; - } - } - return -1; - } + int get_internal_idx(int idx); }; #endif diff --git a/Source/makenssi.dsp b/Source/makenssi.dsp index a44bc2b3..bcf0afab 100644 --- a/Source/makenssi.dsp +++ b/Source/makenssi.dsp @@ -248,6 +248,10 @@ SOURCE=.\script.cpp # End Source File # Begin Source File +SOURCE=.\ShConstants.cpp +# End Source File +# Begin Source File + SOURCE=.\strlist.cpp # End Source File # Begin Source File