Hi,
Unfortunately I can't review submissions when they are inlined, could
you please repost the submission so I can review it. Could you also
please supply your name so I can properly credit you when you I do a
commit to SVN.
Thanks,
Robert.
On Dec 27, 2007 5:22 AM, IceSharK <[EMAIL PROTECTED]> wrote:
> 2.3 Applications osgversion osgversion.cpp
>
> original version can't compile on WinXP VS 2005 both chinese simplified
> edition
>
> just like this
>
> if (name=="Morn茅") return "Morn?;
>
> miss "
>
> the fixed file is :
>
> save as unicode file
>
> #include <osg/Version>
> #include <osg/ArgumentParser>
> #include <osg/ApplicationUsage>
> #include <OpenThreads/Version>
>
> #include <set>
> #include <vector>
> #include <iostream>
> #include <fstream>
>
> // the majority of the application is dedicated to building the
> // current contribitors list by parsing the ChangeLog, it just takes
> // one line in the main itself to report the version number.
>
> #if defined(_MSC_VER)
> #pragma setlocale("C")
> #endif
>
> typedef std::pair<std::string, std::string> NamePair;
> typedef std::map<NamePair,unsigned int> NameMap;
> typedef std::vector< std::string > Words;
>
> NamePair EmptyNamePair;
> NamePair NameRobertOsfield("Robert","Osfield");
> NamePair NameDonBurns("Don","Burns");
>
> bool validName(const std::string& first)
> {
> if (first=="de") return true;
>
>
> if (first.empty()) return false;
> if (first[0]<'A' || first[0]>'Z') return false;
>
> if (first.size()>=2 && (first[1]<'a' || first[1]>'z') && (first[1]!='.')
> && (first[1]!=',')) return false;
>
> if (first=="Xcode") return false;
> if (first=="Added") return false;
> if (first=="Camera") return false;
> if (first=="CameraNode") return false;
> if (first=="CopyOp") return false;
> if (first=="Fixed") return false;
> if (first=="View") return false;
> if (first=="GraphicsContext") return false;
> if (first=="WindowData") return false;
> if (first=="ViewPoint") return false;
> if (first=="PickHandler") return false;
> if (first=="Program") return false;
> if (first=="Object") return false;
> if (first=="OpenSceneGraph") return false;
> if (first=="SpotExponent") return false;
> if (first=="Framstamp") return false;
> if (first=="Stats") return false;
> if (first=="Group") return false;
> if (first=="Texture") return false;
> if (first=="Texture2DArray") return false;
> if (first=="Creator") return false;
> if (first=="CullVisitor") return false;
> if (first=="Drawable") return false;
> if (first=="Geode") return false;
> if (first=="GeoSet") return false;
> if (first=="Image") return false;
> if (first=="Face") return false;
> if (first=="Images/SolarSystem") return false;
> if (first=="IntersectVisitor") return false;
> if (first=="LongIDRecord") return false;
> if (first=="Makefile") return false;
> if (first=="Matrix") return false;
> if (first=="MemoryManager") return false;
> if (first=="MeshRecord") return false;
> if (first=="Multigen") return false;
> if (first=="NewCullVisitor") return false;
> if (first=="Output") return false;
> if (first=="PageLOD") return false;
> if (first=="Improved") return false;
> if (first=="PagedLOD") return false;
> if (first=="Referenced") return false;
> if (first=="StateAttribute") return false;
> if (first=="Switch") return false;
> if (first=="TechniqueEventHandler") return false;
> if (first=="Uniform") return false;
> if (first=="Vec*") return false;
> if (first=="Viewer") return false;
> if (first=="VisualStudio") return false;
> if (first=="X") return false;
> if (first=="Y") return false;
> if (first=="Producer") return false;
> if (first=="New") return false;
> if (first=="Removed") return false;
> if (first=="Ouput") return false;
> if (first=="ReaderWriters") return false;
> if (first=="NodeVisitor") return false;
> if (first=="Fixes") return false;
> if (first=="FontImplementation") return false;
> if (first=="DisplaySettings") return false;
> if (first=="AnimationPath") return false;
> if (first=="AnimationPathCallback") return false;
> if (first=="AnimationPathManipulator") return false;
> if (first=="ArgumentParser") return false;
> if (first=="AttrData") return false;
> if (first=="Azimuth") return false;
> if (first=="CluserCullingCallback") return false;
> if (first=="ClusterCullingCallback") return false;
> if (first=="CoordinateSystem") return false;
> if (first=="CoordinateSystemNode") return false;
> if (first=="CoordinateSystemNode&") return false;
> if (first=="Copyright") return false;
> if (first=="Cygwin") return false;
> if (first=="CullCallbacks") return false;
> if (first=="CullingSettngs") return false;
> if (first=="DataVariance") return false;
> if (first=="DatabasePager") return false;
> if (first=="DrawElementsUByte") return false;
> if (first=="Escape") return false;
> if (first=="FluidProgram") return false;
> if (first=="FrameStats") return false;
> if (first=="FreeBSD") return false;
> if (first=="GraphicsContextImplementation") return false;
> if (first=="GraphicsThread") return false;
> if (first=="Images") return false;
> if (first=="IndexBlock") return false;
> if (first=="Inventor") return false;
> if (first=="Make") return false;
> if (first=="Material") return false;
> if (first=="MergeGeometryVisitor") return false;
> if (first=="Mode") return false;
> if (first=="Prodcuer") return false;
> if (first=="ProxyNode") return false;
> if (first=="ReentrantMutex") return false;
> if (first=="ReferenceFrame") return false;
> if (first=="RemoveLoadedProxyNodes") return false;
> if (first=="RenderTargetFallback") return false;
> if (first=="RenderToTextureStage") return false;
> if (first=="Sequence") return false;
> if (first=="Shape") return false;
> if (first=="TessellationHints") return false;
> if (first=="Support") return false;
> if (first=="State") return false;
> if (first=="SmokeTrailEffect") return false;
> if (first=="TexEnv") return false;
> if (first=="Texture3D") return false;
> if (first=="TextureCubeMap") return false;
> if (first=="TextureObjectManager") return false;
> if (first=="TextureRectangle(Image*") return false;
> if (first=="TextureType") return false;
> if (first=="Texuture") return false;
> if (first=="TriStripVisitor") return false;
> if (first=="UserData") return false;
> if (first=="Viewport") return false;
> if (first=="Visual") return false;
> if (first=="Studio") return false;
> if (first=="Vec2d") return false;
> if (first=="Vec3d") return false;
> if (first=="Windows") return false;
> if (first=="Version") return false;
> if (first=="Viewport") return false;
> if (first=="Core") return false;
> if (first=="DataSet") return false;
> if (first=="Endian") return false;
> if (first=="ImageOptions") return false;
> if (first=="ImageStream") return false;
> if (first=="KeyboardMouse") return false;
> if (first=="KeyboardMouseCallback") return false;
> if (first=="AutoTransform") return false;
> if (first=="AutoTransform.") return false;
> if (first=="LightModel") return false;
> if (first=="MatrixManipulator") return false;
> if (first=="MatrixTransform") return false;
> if (first=="OpenDX") return false;
> if (first=="ParentList") return false;
> if (first=="TerraPage") return false;
> if (first=="OveralyNode") return false;
> if (first=="OpenThreads") return false;
> if (first=="PolygonStipple") return false;
> if (first=="SceneView") return false;
> if (first=="PrimitiveIndexFunctor") return false;
> if (first=="PolytopeVisitor") return false;
> if (first=="Performer") return false;
> if (first=="Paging") return false;
> if (first=="CameraBarrierCallback") return false;
> if (first=="TestSupportCallback") return false;
> if (first=="Quake3") return false;
> if (first=="BlenColour(Vec4") return false;
> if (first=="UseFarLineSegments") return false;
> if (first=="TextureRectangle") return false;
> if (first=="DeleteHandler") return false;
> if (first=="EventQueue") return false;
> if (first=="TrPageViewer") return false;
> if (first=="TestManipulator") return false;
> if (first=="ProducerEventCallback") return false;
> if (first=="OrientationConverter") return false;
> if (first=="Logos") return false;
> if (first=="StatsVisitor") return false;
> if (first=="LineStipple") return false;
> if (first=="Files") return false;
> if (first=="Mr") return false;
> if (first=="Osfields") return false;
> if (first=="Optimizer") return false;
> if (first=="RenderStage") return false;
> if (first=="Matrix*") return false;
> if (first=="Vec4ub") return false;
> if (first=="Proxy") return false;
> if (first=="CullVistor") return false;
> if (first=="SimpleViewer") return false;
> if (first=="TexMat(Matrix") return false;
> if (first=="GraphicsWindowX11") return false;
> if (first=="OperationThread") return false;
> if (first=="SimpleViewer") return false;
> if (first=="IndexFaceSets") return false;
> return true;
> }
>
> std::string typoCorrection(const std::string& name)
> {
> #if 0
> if (name=="") return "";
> if (name=="") return "";
> if (name=="") return "";
> if (name=="") return "";
> #endif
> if (name=="Martsz") return "Martz";
> if (name=="Matz") return "Martz";
> if (name=="Froenlich") return "Fr�hlich";
> if (name=="Froechlich") return "Fr�hlich";
> if (name=="Froelich") return "Fr�hlich";
> if (name=="Fruciel") return "Frauciel";
> if (name=="Hebelin") return "Herbelin";
> if (name=="Jea-Sebastien") return "Jean-Sebastien";
> if (name=="Robet") return "Robert";
> if (name=="Morn茅") return "Morn?";
> if (name=="Adndre") return "Andre";
> if (name=="Mellis") return "Melis";
> if (name=="Rajce") return "Trajce";
> if (name=="Trastenjak") return "Trstenjak";
> if (name=="Baverage") return "Beverage";
> if (name=="Bistroviae") return "Bistrovic";
> if (name=="Christaiansen") return "Christiansen";
> if (name=="Cobin") return "Corbin";
> if (name=="Connel") return "Connell";
> if (name=="Daust") return "Daoust";
> if (name=="Lugi") return "Luigi";
> if (name=="Daved") return "David";
> if (name=="Fred") return "Frederic";
> if (name=="Fredrick") return "Frederic";
> if (name=="Fredric") return "Frederic";
> if (name=="Garrat") return "Garret";
> if (name=="Geof") return "Geoff";
> if (name=="Gronenger") return "Gronager";
> if (name=="Gronger") return "Gronager";
> if (name=="Heirtlein") return "Hertlein";
> if (name=="Heirtlein") return "Hertlein";
> if (name=="Heirtlein") return "Hertlein";
> if (name=="Hertlien") return "Hertlein";
> if (name=="Narache") return "Marache";
> if (name=="Hi") return "He";
> if (name=="Hooper") return "Hopper";
> if (name=="Inverson") return "Iverson";
> if (name=="Iversion") return "Iverson";
> if (name=="Jeoen") return "Joran";
> if (name=="Johhansen") return "Johansen";
> if (name=="Johnansen") return "Johansen";
> if (name=="Johnasen") return "Johansen";
> if (name=="Jolly") return "Jolley";
> if (name=="Jose") return "Jos?";
> if (name=="Joson") return "Jason";
> if (name=="J") return "Jos?";
> if (name=="Keuhne") return "Kuehne";
> if (name=="Kheune") return "Kuehne";
> if (name=="Lashakari") return "Lashkari";
> if (name=="Lashari") return "Lashkari";
> if (name=="Lasharki") return "Lashkari";
> if (name=="Laskari") return "Lashkari";
> if (name=="Macro") return "Marco";
> if (name=="Mammond") return "Marmond";
> if (name=="March") return "Marco";
> if (name=="Marz") return "Martz";
> if (name=="Micheal") return "Michael";
> if (name=="Molishtan") return "Moloshtan";
> if (name=="Molishtan") return "Moloshtan";
> if (name=="Moloshton") return "Moloshtan";
> if (name=="Moule") return "Moiule";
> if (name=="Nicklov") return "Nikolov";
> if (name=="Nickolov") return "Nikolov";
> if (name=="Olad") return "Olaf";
> if (name=="Olar") return "Olaf";
> if (name=="Oritz") return "Ortiz";
> if (name=="Osfied") return "Osfield";
> if (name=="Pail") return "Paul";
> if (name=="Randal") return "Randall";
> if (name=="Rodger") return "Roger";
> if (name=="Sewel") return "Sewell";
> if (name=="Sjolie") return "Sj�lie";
> if (name=="Sokolosky") return "Sokolowsky";
> if (name=="Sokolowski") return "Sokolowsky";
> if (name=="Sokolsky") return "Sokolowsky";
> if (name=="Sonda") return "Sondra";
> if (name=="Stansilav") return "Stanislav";
> if (name=="Stefan") return "Stephan";
> if (name=="Stell") return "Steel";
> if (name=="Takeahei") return "Takahei";
> if (name=="Takehei") return "Takahei";
> if (name=="Tarantilils") return "Tarantilis";
> if (name=="Vines") return "Vine";
> if (name=="Wieblen") return "Weiblen";
> if (name=="Xennon") return "Hanson";
> if (name=="Yefrei") return "Yefei";
> if (name=="Yfei") return "Yefei";
> if (name=="Antonoine") return "Antoine";
> if (name=="Antione") return "Antoine";
> if (name=="Andew") return "Andrew";
> if (name=="Daneil") return "Daniel";
> if (name=="Andr茅") return "Andr?";
> if (name=="Garc铆a") return "Garcea";
> if (name=="Sj枚lie") return "Sj�lie";
> if (name=="Jos茅") return "Jos?";
> if (name=="Fr枚hlich") return "Fr�hlich";
> if (name=="Froehlich") return "Fr�hlich";
> if (name=="Eileman") return "Eilemann";
> if (name=="Skinnder") return "Skinner";
> if (name=="Mihair") return "Mihai";
> if (name=="Mahai") return "Mihai";
> if (name=="Wojiech") return "Wojciech";
> if (name=="Leandowski") return "Lewandowski";
> if (name=="Aderian") return "Adrian";
>
> return name;
> }
>
> void nameCorrection(NamePair& name)
> {
> if (name.first=="Ralf" && name.second=="Karn")
> {
> name.first = "Ralf";
> name.second = "Kern";
> }
> if (name.first=="Donny" && name.second=="Cipperly")
> {
> name.first = "Donald";
> name.second = "Cipperly";
> }
> if (name.first=="Gino" && name.second=="")
> {
> name.first = "Gino";
> name.second = "van den Bergen";
> }
> if (name.first=="Radu" && name.second=="Mihai")
> {
> name.first = "Mihai";
> name.second = "Radu";
> }
> if (name.first=="Art" && name.second=="Trevs")
> {
> name.first = "Art";
> name.second = "Tevs";
> }
> if (name.first=="Tim" && name.second=="More")
> {
> name.first = "Tim";
> name.second = "Moore";
> }
> if ( name.first=="Andre" && name.second=="Garneau")
> {
> name.first = "Andr?";
> name.second = "Garneau";
> }
> if (name.first=="Eric" && name.second=="Hammil")
> {
> name.first = "Chris";
> name.second = "Hanson";
> }
> if (name.first=="Paul" && name.second=="de")
> {
> name.first = "Paul";
> name.second = "de Repentigny";
> }
> if (name.first=="Nick" && name.second=="")
> {
> name.first = "Trajce";
> name.second = "Nikolov";
> }
> if (name.first=="Daniel" && name.second=="")
> {
> name.first = "Daniel";
> name.second = "Sj�lie";
> }
> if (name.first=="Julia" && name.second=="Ortiz")
> {
> name.first = "Julian";
> name.second = "Ortiz";
> }
> if (name.first== "Rune" && name.second=="Schmidt")
> {
> name.first = "Rune";
> name.second = "Schmidt Jensen";
> }
> if (name.first=="Romano" && name.second=="Jos?")
> {
> name.first = "Romano";
> name.second = "Jos?Magacho da Silva";
> }
> if (name.first=="Rommano" && name.second=="Silva")
> {
> name.first = "Romano";
> name.second = "Jos?Magacho da Silva";
> }
> if (name.first=="Leandro" && name.second=="Motta")
> {
> name.first = "Leandro";
> name.second = "Motta Barros";
> }
> if (name.first=="A" && name.second=="Botorabi")
> {
> name.first = "Ali";
> name.second = "Botorabi";
> }
>
> if (name.first=="Waltice" && name.second=="")
> {
> name.first = "Walter";
> name.second = "J. Altice";
> }
>
> if (name.first=="Drew" && name.second=="")
> {
> name.first = "Drew";
> name.second = "Whitehouse";
> }
> if (name.first== "Douglas" && name.second=="A")
> {
> name.first = "Douglas";
> name.second = "A. Pouk";
> }
> if (name.first=="Colin" && name.second== "MacDonald")
> {
> name.first = "Colin";
> name.second = "McDonald";
> }
> if (name.first=="Nikolov" && name.second=="Trajce")
> {
> name.first = "Trajce";
> name.second = "Nikolov";
> }
> if (name.first=="Frauciel" && name.second=="Luc")
> {
> name.first = "Luc";
> name.second = "Frauciel";
> }
> }
>
> void lastValidCharacter(const std::string& name, unsigned int& pos,char c)
> {
> for(unsigned int i=0;i<pos;++i)
> {
> if (name[i]==c)
> {
> pos = i;
> return;
> }
> }
> }
>
> void lastValidCharacter(const std::string& name, unsigned int& last)
> {
> lastValidCharacter(name, last, '.');
> lastValidCharacter(name, last, ',');
> lastValidCharacter(name, last, '\'');
> lastValidCharacter(name, last, '/');
> lastValidCharacter(name, last, '\\');
> lastValidCharacter(name, last, ':');
> lastValidCharacter(name, last, ';');
> lastValidCharacter(name, last, ')');
> }
>
>
>
> NamePair createName(const std::string& first, const std::string& second)
> {
> if ( first.empty()) return EmptyNamePair;
>
> unsigned int last = first.size();
> lastValidCharacter(first, last);
>
> if (last==0) return EmptyNamePair;
>
> std::string name;
>
> name.append(first.begin(), first.begin()+last);
>
> if (!validName(name)) return EmptyNamePair;
>
> name = typoCorrection(name);
>
> if (second.empty() ||
> !validName(second))
> {
> // filter any single or two letter words as unlike to be names.
> if (name.size()<=2) return EmptyNamePair;
>
> return NamePair(name,"");
> }
>
> last = second.size();
>
> lastValidCharacter(second, last);
>
> if (last>0)
> {
> std::string surname(second.begin(), second.begin()+last);
>
> if (validName(surname))
> {
> surname = typoCorrection(surname);
> return NamePair(name, surname);
> }
> }
>
> // filter any single or two letter words as unlike to be names.
> if (name.size()<=2) return EmptyNamePair;
>
> return NamePair(name,"");
> }
>
> bool submissionsSequence(const Words& words, unsigned int& i)
> {
> if (i+1>=words.size()) return false;
>
> if (words[i]=="From" ||
> words[i]=="from" ||
> words[i]=="From:" ||
> words[i]=="from:" ||
> words[i]=="Merged" ||
> words[i]=="Integrated") return true;
>
> if (i+2>=words.size ()) return false;
>
> if (words[i]=="submitted" && words[i+1]=="by")
> {
> i+=1;
> return true;
> }
>
> if (words[i]=="Folded" && words[i+1]=="in")
> {
> i+=1;
> return true;
> }
>
> if (words[i]=="Rolled" && words[i+1]=="in")
> {
> i+=1;
> return true;
> }
>
> if (words[i]=="Checked" && words[i+1]=="in")
> {
> i+=1;
> return true;
> }
>
> if (i+3>=words.size()) return false;
>
> if (words[i]=="sent" && words[i+1]=="in" && words[i+2]=="by")
> {
> i+=2;
> return true;
> }
>
> return false;
> }
>
> void readContributors(NameMap& names, const std::string& file)
> {
> std::ifstream fin(file.c_str());
>
> Words words;
> while(fin)
> {
> std::string keyword;
> fin >> keyword;
> words.push_back(keyword);
> }
>
> std::string blank_string;
>
> for(unsigned int i=0; i< words.size(); ++i)
> {
> if (submissionsSequence(words,i))
> {
> if (i+2<words.size() && validName(words[i+1]))
> {
> NamePair name = createName(words[i+1], words[i+2]);
> nameCorrection(name);
> if (!name.first.empty()) ++names[name];
> i+=2;
> }
> else if (i+1<words.size() && validName(words[i+1]))
> {
> NamePair name = createName(words[i+1], blank_string);
> nameCorrection(name);
> if (!name.first.empty()) ++names[name];
> i+=1;
> }
> }
> else
> {
> if (words[i]=="robert:")
> {
> ++names[NameRobertOsfield];
> }
> else if (words[i]=="don:")
> {
> ++names[NameDonBurns];
> }
> }
> }
>
> // reassign fisrt name entries to their full names entries
> if (names.size()>1)
> {
> for(NameMap::iterator itr = names.begin();
> itr != names.end();
> )
> {
> if (itr->first.second.empty())
> {
> NameMap::iterator next_itr = itr;
> ++next_itr;
>
> if (next_itr!=names.end() &&
> itr->first.first==next_itr->first.first)
> {
> next_itr->second += itr->second;
> names.erase(itr);
> itr = next_itr;
> }
> else
> {
> ++itr;
> }
> }
> else
> {
> ++itr;
> }
> }
> }
>
> // remove the double entries from Robert's contributions
> if (names.size()>1)
> {
> for(NameMap::iterator itr = names.begin();
> itr != names.end();
> ++itr)
> {
> if (itr->first != NameRobertOsfield && itr->first !=
> NameDonBurns )
> {
> names[NameRobertOsfield] -= itr->second;
> }
> }
> }
>
>
> }
>
> void buildContributors(NameMap& names)
> {
> // top five contributors
> ++names[NamePair("Robert","Osfield")];
> ++names[NamePair("Don","Burns")];
> ++names[NamePair("Marco","Jez")];
> ++names[NamePair("Mike","Weiblen")];
> ++names[NamePair("Geoff","Michel")];
> ++names[NamePair("Ben","van Basten")];
>
> // contributors that don't appear in the ChangeLog due to their
> contributions
> // being before CVS started for the OSG, or before the name logging
> began.
> ++names[NamePair("Karsten","Weiss")];
> ++names[NamePair("Graeme","Harkness")];
> ++names[NamePair("Axel","Volley")];
> ++names[NamePair("Nikolaus","Hanekamp")];
> ++names[NamePair("Kristopher","Bixler")];
> ++names[NamePair("Tanguy","Fautr?")];
> ++names[NamePair("J.E.","Hoffmann")];
> }
>
> int main( int argc, char **argv)
> {
> osg::ArgumentParser arguments(&argc,argv);
>
> arguments.getApplicationUsage()->setCommandLineUsage(arguments.getApplicationName()+"
> [options]");
> arguments.getApplicationUsage()->addCommandLineOption("-h or
> --help","Display this information");
> arguments.getApplicationUsage()->addCommandLineOption("--entries","Print
> out number of entries into the ChangeLog file for each contributor.");
>
> arguments.getApplicationUsage()->addCommandLineOption("--version-number","Print
> out version number only");
>
> arguments.getApplicationUsage()->addCommandLineOption("--soversion-number","Print
> out shared object version number only");
>
> arguments.getApplicationUsage()->addCommandLineOption("--openthreads-version-number","Print
> out version number for OpenThreads only");
>
> arguments.getApplicationUsage()->addCommandLineOption("--openthreads-soversion-number","Print
> out shared object version number for OpenThreads only");
> arguments.getApplicationUsage()->addCommandLineOption("-r <file> or
> --read <file>","Read the ChangeLog to generate an estimated contributors
> list.");
>
> if (arguments.read("--version-number"))
> {
> std::cout<<osgGetVersion()<<std::endl;
> return 0;
> }
>
> if (arguments.read("--major-number"))
> {
> std::cout<<OPENSCENEGRAPH_MAJOR_VERSION<<std::endl;
> return 0;
> }
>
> if (arguments.read("--minor-number"))
> {
> std::cout<<OPENSCENEGRAPH_MINOR_VERSION<<std::endl;
> return 0;
> }
>
> if (arguments.read("--patch-number"))
> {
> std::cout<<OPENSCENEGRAPH_PATCH_VERSION<<std::endl;
> return 0;
> }
>
> if ( arguments.read("--soversion-number"))
> {
> std::cout<<osgGetSOVersion()<<std::endl;
> return 0;
> }
>
>
> if (arguments.read("--openthreads-version-number"))
> {
> std::cout<<OpenThreadsGetVersion()<<std::endl;
> return 0;
> }
>
>
> if (arguments.read("--openthreads-major-number"))
> {
> std::cout<<OPENTHREADS_MAJOR_VERSION<<std::endl;
> return 0;
> }
>
> if (arguments.read("--openthreads-minor-number"))
> {
> std::cout<<OPENTHREADS_MINOR_VERSION<<std::endl;
> return 0;
> }
>
> if (arguments.read("--openthreads-patch-number"))
> {
> std::cout<<OPENTHREADS_PATCH_VERSION<<std::endl;
> return 0;
> }
>
>
> if (arguments.read("--openthreads-soversion-number"))
> {
> std::cout<<OpenThreadsGetSOVersion()<<std::endl;
> return 0;
> }
>
> std::cout<<osgGetLibraryName()<< " "<<
> osgGetVersion()<<std::endl<<std::endl;
>
> bool printContributors = false;
> bool printNumEntries = false;
> while ( arguments.read("--entries"))
> {
> printContributors = true;
> printNumEntries = true;
> }
>
> std::string changeLog;
> while ( arguments.read("-r",changeLog) ||
> arguments.read("--read",changeLog)) printContributors = true;
>
> // if user request help write it out to cout.
> if (arguments.read("-h") || arguments.read("--help"))
> {
>
> std::cout<<arguments.getApplicationUsage()->getCommandLineUsage()<<std::endl;
> arguments.getApplicationUsage
> ()->write(std::cout,arguments.getApplicationUsage()->getCommandLineOptions());
> return 1;
> }
>
> if (printContributors)
> {
> NameMap names;
> buildContributors(names);
> if (!changeLog.empty())
> {
> readContributors(names, changeLog);
> }
>
> typedef std::multimap<unsigned int, NamePair> SortedNameMap;
>
> SortedNameMap sortedNames;
> for(NameMap::iterator itr = names.begin();
> itr != names.end();
> ++itr)
> {
> sortedNames.insert(SortedNameMap::value_type(itr->second,
> itr->first));
> }
>
> std::cout<<names.size()<<" Contributors:"<<std::endl<<std::endl;
>
> if (printNumEntries)
> {
> std::cout<<"Entries Firstname Surname"<<std::endl;
> std::cout<<"-------------------------"<<std::endl;
> for(SortedNameMap::reverse_iterator sitr = sortedNames.rbegin();
> sitr != sortedNames.rend();
> ++sitr)
> {
> std::cout<<sitr->first<<"\t"<<sitr->second.first<<"
> "<<sitr->second.second<<std::endl;
> }
> }
> else
> {
> std::cout<<"Firstname Surname"<<std::endl;
> std::cout<<"-----------------"<<std::endl;
> for(SortedNameMap::reverse_iterator sitr = sortedNames.rbegin();
> sitr != sortedNames.rend();
> ++sitr)
> {
> std::cout<<sitr->second.first<<" "<<sitr->second.second
> <<std::endl;
> }
> }
> }
>
> return 0;
> }
>
>
>
> _______________________________________________
> osg-submissions mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
>
>
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org