53{
54 enableCompletionStatus();
55 add("pgm", programName);
56 add("vsn", version);
57 add("args", params);
58
59 connect();
60
61
62 int start = ourReturnString.Find(ourToolName+"\t");
63 if(start < 0)
64 {
65
66
67 int colStart = ourToolName.FastFindChar(':');
68 if(colStart >= 0)
69 {
70 ourToolName.SetLength(colStart);
71 start = ourReturnString.Find(ourToolName+"\t");
72 }
73 }
74
75 if(start < 0)
76 {
77
78
79
80 return(true);
81 }
82
83
84 start += ourToolName.Length();
85 while((start < ourReturnString.Length()) &&
86 isspace(ourReturnString[start]))
87 {
88
89 ++start;
90 }
91
92
93 String thisVersion = version;
95 int end = start;
96 while((end < ourReturnString.Length()) &&
97 !isspace(ourReturnString[end]))
98 {
99 latestVersion += ourReturnString[end];
100 ++end;
101 }
102
103
104
105 if(latestVersion.FastCompare(thisVersion) > 0)
106 {
107 std::cerr << "\n**************************************************************************************\n"
108 << "A new version, " << latestVersion
109 << ", of " << ourToolName
110 << " is available (currently running "
111 << thisVersion.c_str() << ")"
112 << "\n**************************************************************************************\n\n";
113 return(false);
114 }
115 return(true);
116}