This is an automated email from the git hooks/post-receive script. sebastic-guest pushed a commit to branch upstream-master in repository pktools.
commit 70f56cf5d9be154d0c283ab4857f56e770ec7e6e Author: Pieter Kempeneers <kempe...@gmail.com> Date: Tue Aug 28 15:26:07 2012 +0200 support Optionpk without default value --- src/apps/pkfilter.cc | 4 ++-- src/base/Optionpk.h | 30 +++++++++++++++++++++++++++--- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/apps/pkfilter.cc b/src/apps/pkfilter.cc index c4c2122..b78ac57 100644 --- a/src/apps/pkfilter.cc +++ b/src/apps/pkfilter.cc @@ -58,9 +58,9 @@ int main(int argc,char **argv) { Optionpk<int> dimX_opt("dx", "dx", "filter kernel size in x, must be odd (example: 3).", 0); Optionpk<int> dimY_opt("dy", "dy", "filter kernel size in y, must be odd (example: 3).. Set dy=0 if 1-D filter must be used in band domain", 0); Optionpk<string> option_opt("co", "co", "options: NAME=VALUE [-co COMPRESS=LZW] [-co INTERLEAVE=BAND]", "INTERLEAVE=BAND"); - Optionpk<short> class_opt("class", "class", "class value(s) to use for density, erosion, dilation, openening and closing, thresholding", 1); + Optionpk<short> class_opt("class", "class", "class value(s) to use for density, erosion, dilation, openening and closing, thresholding"); Optionpk<double> threshold_opt("t", "threshold", "threshold value(s) to use for threshold filter (one for each class)", 0); - Optionpk<short> mask_opt("\0", "mask", "mask value(s) ", -1); + Optionpk<short> mask_opt("\0", "mask", "mask value(s) "); Optionpk<std::string> tap_opt("tap", "tap", "text file conttaining taps used for filtering (from ul to lr). Use dimX and dimY to specify tap dimensions in x and y. Leave empty for not using taps", ""); Optionpk<std::string> colorTable_opt("\0", "ct", "color table (file with 5 columns: id R G B ALFA (0: transparent, 255: solid)", ""); Optionpk<short> down_opt("d", "down", "down sampling factor. Use value 1 for no downsampling)", 1); diff --git a/src/base/Optionpk.h b/src/base/Optionpk.h index 48922f9..6547f99 100644 --- a/src/base/Optionpk.h +++ b/src/base/Optionpk.h @@ -117,8 +117,10 @@ template<class T> class Optionpk : public vector <T> { public: Optionpk(); + Optionpk(const string& shortName, const string& longName, const string& helpInfo); Optionpk(const string& shortName, const string& longName, const string& helpInfo,const T& defaultValue); ~Optionpk(); + void setAll(const string& shortName, const string& longName, const string& helpInfo); void setAll(const string& shortName, const string& longName, const string& helpInfo,const T& defaultValue); void setHelp(const string& helpInfo){m_help=helpInfo;}; string usage() const; @@ -155,6 +157,7 @@ private: string m_help; bool m_hasArgument; T m_defaultValue; + bool m_hasDefault; }; template<class T1> ostream& operator<<(ostream& os, const Optionpk<T1>& theOption) @@ -167,10 +170,17 @@ template<class T1> ostream& operator<<(ostream& os, const Optionpk<T1>& theOptio } template<class T> Optionpk<T>::Optionpk() + : m_hasDefault(false) { } -template<class T> Optionpk<T>::Optionpk(const string& shortName, const string& longName, const string& helpInfo,const T& defaultValue) +template<class T> Optionpk<T>::Optionpk(const string& shortName, const string& longName, const string& helpInfo) + : m_hasDefault(false) +{ + setAll(shortName,longName,helpInfo); +} + + template<class T> Optionpk<T>::Optionpk(const string& shortName, const string& longName, const string& helpInfo,const T& defaultValue) { setAll(shortName,longName,helpInfo,defaultValue); } @@ -192,7 +202,8 @@ template<class T> string Optionpk<T>::usage() const helpss << " " << setiosflags(ios::left) << setw(20) << " "; helpss << " " << m_help; // helpss << std::resetiosflags << " (default: " << type2string<T>(m_defaultValue) << ")"; - helpss << " (default: " << type2string<T>(m_defaultValue) << ")"; + if(m_hasDefault) + helpss << " (default: " << type2string<T>(m_defaultValue) << ")"; return helpss.str(); } @@ -203,9 +214,21 @@ template<class T> void Optionpk<T>::setAll(const string& shortName, const string m_hasArgument=true; m_help=helpInfo; m_defaultValue=defaultValue; + m_hasDefault=true; +} + +template<class T> void Optionpk<T>::setAll(const string& shortName, const string& longName, const string& helpInfo) +{ + m_shortName=shortName; + m_longName=longName; + m_hasArgument=true; + m_help=helpInfo; } + template<> void Optionpk<bool>::setAll(const string& shortName, const string& longName, const string& helpInfo,const bool& defaultValue); +template<> void Optionpk<bool>::setAll(const string& shortName, const string& longName, const string& helpInfo); + template<> Optionpk<bool>::Optionpk(const string& shortName, const string& longName, const string& helpInfo,const bool& defaultValue) { setAll(shortName,longName,helpInfo,defaultValue); @@ -218,6 +241,7 @@ template<> void Optionpk<bool>::setAll(const string& shortName, const string& lo m_hasArgument=false; m_help=helpInfo; m_defaultValue=defaultValue; + m_hasDefault=true; } template<class T> Optionpk<T>::~Optionpk() @@ -259,7 +283,7 @@ template<class T> int Optionpk<T>::retrieveOption(int argc, char **argv){ this->push_back(string2type<T>("1")); } } - if(!(this->size()))//only set default value if no options were given + if(!(this->size())&&m_hasDefault)//only set default value if no options were given this->push_back(m_defaultValue); return(this->size()); } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/pktools.git _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel