aboutsummaryrefslogtreecommitdiff
path: root/src/fbasicstring.h (follow)
AgeCommit message (Collapse)Author
2011-01-20Bu::FString is now String, and there's a shell script to fix any other programsMike Buland
that were using fstring, I hope.
2011-01-10Merged in the core branch. This is a major update that fixes many things, andMike Buland
changes many others, including source files that were deleted and renamed. Before doing this update, I reccomend a full clean, or even a fresh checkout. Things to note, most outstanding about this update: - Bu::Socket was changed to Bu::TcpSocket and the default mode is blocking. - All templatized container classes are SharedCore now, which is good, but SharedCore is inherently non-reentrant safe. However, all SharedCore classes have a "clone" function that return a non-shared copy of the object, safe for passing into a reentrant safe function accessing shared memory.
2011-01-10The FString is much more optimized, and hopefully still works accurately.Mike Buland
2011-01-10Tweaking the fstring, almost done.Mike Buland
2010-11-19I now think that this may not work out at all. It looks like if we want properMike Buland
Unicode handling we'll need to implement a series of codecs and converters as well as tables of codepages and lookups. It'll be interesting, I guess, but it makes me care a lot less about proper encoding. Anyway, UtfString uses shorts instead of chars, so it's a step in the right direction, but still not enough to be able to handle proper UTF-16 encoding, maybe UCS-2 encoding, but... ...that's lame. Bu::FBasicString has been generalized a bit with optimizations from libc for char based strings. It also, unfortunately, still uses char-only functions in several places, those all rely on char casting strings at the moment just to get the thing to compile. Basically, it's not a good UTF-16 solution yet, and it may never be and remain compatible with char based strings.
2010-10-20Hopefully this fixes some really out there fstring corner casese.Mike Buland
2010-10-16Many, many changes. Documentation changes, renamed the socket class toMike Buland
TcpSocket, fixed many other things, and finally removed ParamProc. Anything that needs it will now have to switch to OptParser.
2010-10-14SharedCore has more features now, which is cool, including a test to see ifMike Buland
another object of the parent type has the same core, and another to clone the parent object. That one is pretty cool, it means you can now get a real copy when you want to, great for multi-threaded stuff. Also, two more classes are now SharedCore: Hash and Heap!
2010-05-26Fixed most of the compilation warnings, and a valgrind warning in the fstring'sMike Buland
remove function. memcpy can't do overlapping memory, changed it to use memmove.
2010-05-20Added some tweaks to array and fbasicstring.Mike Buland
2010-05-16Added operators <= and >= to the FBasicString.Mike Buland
2010-05-03Minor corner case fix in the comparison code.Mike Buland
2010-05-02wow, bug fixes everywhere.Mike Buland
2010-03-31Removed the bool cast operator from FBasicString. It turns out it was causingMike Buland
way, way, way more problems than it solved. A number of libbu++ tests were inacurate because of it, there were problems in several other programs, and there may be more that have problems we haven't found yet because of this. This will most likely cause complitaion errors, especially in places we didn't expect, where strings were being stored into or passed as integers and the like. In cases where you were just testing a string, just call the "isSet()" function, which is functionally equivellent to the old bool cast operator.
2010-03-03I think I just changed whitespace...Mike Buland
2010-02-13Added and updated the license info in all the source files, they still saidMike Buland
copyright 2007-2008.
2010-02-11Started working on a CSV reader, it's pretty much done, the CSV writer is justMike Buland
a shell, but I may finish it soon, and started work on NewLine, a filter that converts newlines in text streams between the different OS standards. Also added some more helper operators to fbasicstring.
2010-01-07Added a function that really should have always been in FString...Mike Buland
2009-12-21Added a trimBack fonction to FBasicString that removes all occurances of onceMike Buland
char from the back of the string.
2009-12-15Bugfix in Bu::FBasicString for null string comparisons.Mike Buland
2009-11-24Added a replace function to fstring...sweeet.Mike Buland
2009-11-12I've started my campaign to clean up all of the header files in libbu++ as farMike Buland
as includes go. This required a little bit of reworking as far as archive goes, but I've been planning on changing it aronud for a bit anyway. The final result here is that you may need to add some more includes in your own code, libbu++ doesn't include as many random things you didn't ask for anymore, most of these seem to be bu/hash.h, unistd.h, and time.h. Also, any Archive functions and operators should use ArchiveBase when they can instead of Archive, archivebase.h is a much lighterweight include that will be used everywhere in core that it can be, there are a few classes that actually want a specific archiver to be used, they will use it (such as the nids storage class). So far, except for adding header files, nothing has changed in functionality, and no other code changes should be required, although the above mentioned archive changeover is reccomended.
2009-10-16Although this looks like a load of code changes, this represents no functionalMike Buland
change to the Taf system. Really all that's happened is I've broken out the core taf data types into seperate files, and gone ahead and created a helpful new header file ("taf.h") that will include the entire taf system, including the reader and writer for you. This means that a lot of programs will start complaining, but fortunately, there's an easy solution, if it complains about taf, make sure to include taf.h at the top, instead of other taf files and you'll be set. The next set of changes will add lots of helpers to the taf system and change the reader to read non-const structures, i.e. I'll actually add editing support to created taf structures.
2009-09-21Stupid prepend. A prepend function was missing, and the prepend functionsMike Buland
didn't hardcopy appropriately.
2009-09-09Fixed a minor assignment bug in shared core, assigning an object to itself wasMike Buland
causing memory corruption, and fbasicstring is playing even nicer with shared core now.
2009-08-21Added loads of debugging to sharedcore, we're sure it's to blame, but not asMike Buland
much anymore, for the fishtrax issues, maybe.
2009-08-14Massive freaking changes!!!Mike Buland
Bu:;SharedCore actually is in and works, it's well tested and there are no known memory leaks or violations as of now. It's been applied to Bu::List and Bu::FBasicString so far. This means that everything using Bu::List and Bu::FBasicString will be much, much faster and use considerably less memory. I still have plans to apply this to Hash and maybe a couple of other core classes.
2009-08-11Added some more functions to Bu::FBasicString, including a setSize function.Mike Buland
Also added some awesome helpers to Bu::FString in the form of << operators to convert a string to many common types. Handy.
2009-08-09Really, just a lot of documenting.Mike Buland
2009-07-31Silly, the new g++ complained about some "style." Now it doesn't.Mike Buland
2009-07-31Added a character based splitting function to FBasicString and made more of theMike Buland
parsing functions publicly accessible in Url, and added some more helpers.
2009-06-16The Bu::FBasicString::iterator and const_iterator didn't have != comparsionMike Buland
functions for comparing with chr type.
2009-06-15Changed a couple of comparison functions to const.Mike Buland
2009-04-23Hey, FBasicString throws exceptions when you try to use the index operator andMike Buland
the index operator is out of range...
2009-04-16Hey, the list code is better, also, I fixed some stuff in socket (theMike Buland
isBlocking function was backward), and fastcgi is actually working now! Also added comparison functions to FString.
2009-04-10Added some new goodness to the fbasicstring, fixing some inconsistancies andMike Buland
adding some more helpers. Hopefully this won't affect anything, but if it complains about any functions not working the way they used to, see if they're returning an int or an iterator. I made several functions handle iterators instead of ints, the int versions have an "Idx" suffix added now. I'm trying to switch entirely to iterators to reduce flattening and increase performance and stability. Also...something must have changed in the cache code...
2009-02-27Fixed a bug in Bu::FString, it wouldn't concatinate properly when using the +Mike Buland
operator and the left-hand-side FString was const. Also, added a formatter << operator for Bu::List. The other containers should get their own formatter << operators soon too.
2009-02-24david - apparently the mingw compiler has a couple issues...David
1) i had to make iterator and const_iterator friends of each other so they could see each other's private constructors 2) apparently there is a bug in the name-lookup related to inline typedef structs and the friend keyword... had to move the typedef struct const_iterator to after the actual struct.
2009-02-24Corrected some iterator confusion in FString and added a helper toMike Buland
ProtocolTelnet. I'm going to have to do some reading and find out just where ProtocolTelnet is...
2009-02-08So many updates. I recommend using the new FString iterators instead of directMike Buland
indexing. It is now many times faster, and requires less overhead. Also, more stuff iterator related in every class. More on that later.
2009-01-07Only two real changes. First, Bu::FString and Bu::FBasicString are in differentMike Buland
files. This won't affect any programs at all anywhere. This will just make it easier to maintain and extend later. You still want to include "bu/fstring.h" and use Bu::FString in code. The other is kinda fun. I created a special format for unit tests, they use the extension .unit now and use the mkunit.sh script to convert them to c++ code. There are some nice features here too, maintaining unit tests is much, much easier, and we can have more features without making the code any harder to use. Also, it will be easier to have the unit tests generate reports and be run from a master program and the like.