12019-05-06 James Youngman <jay@gnu.org> 2 3 Fix more compiler warnings. 4 * src/what.cc: Forward-declare usage(). 5 * src/sccsfile.h: Declare print_flag2() functions. 6 * src/get.cc (main): Format the (unsigned in) line count with %u 7 instead of %d. 8 * src/environment.cc (max_sfile_line_len): Simplify a complex 9 boolean expression to silence a compiler warning suggesting 10 parentheses. 11 * src/writesubst.cc (write_subst): Print the output line number 12 with %u since it is an unsigned int. 13 * src/sf-write.cc (write_delta): Remove unsed variables "len" and 14 "i". 15 (write): Likewise, also "s". 16 17 Fix some compiler warnings. Also turn off warning options which 18 themselves just generate warnings. 19 * src/run.cc (run): Avoid mixing signed/unsigned quantities. 20 * src/sf-get2.cc (get): Avoid variable 'd' shadowing a variable of 21 the same name in an outer scope. 22 * src/sccsfile.h: Declare print_flag(). 23 * src/cap.cc (cap_min): Simplify this function; we only use it for 24 trivially copyable types anyway. 25 * configure.ac: Disable some warnings known to the manywarnings 26 module (thus enabled with --enable-warnings) but which aren't 27 suitable for C++ compilation. We disable them so that we don't 28 get a warning message from GCC about the inappropriate warning 29 option. 30 31 Use block I/O for encoded streams. 32 * src/encoding.cc (encode_line): return the number of bytes 33 output. 34 (encode_stream): Use the count returned by encode_line to perform 35 block I/O (with fwrite) instead of string I/O (with fprintf). 36 37 Move the implementation details of uuencoding/decoding into a 38 separate namespace. 39 * src/encoding.cc (encode): Put into an encoding_impl namespace to 40 emphasize that it is not intended as a public API for the rest of 41 the program to use. It's not in an unnamed namespace since the 42 unit test still needs to use it. 43 * src/bodyio.h (encoding_impl): Put declarations of encode and 44 decode into this namespace. 45 * unit-tests/test_encoding.cc: Use the namespace-qualified names 46 for encode and decode. 47 48 Delete mylist.h. 49 * src/mylist.h: Delete mylist.h 50 * src/Makefile.am (noinst_HEADERS): Delete mylist.h 51 * src/sccsfile.cc: Don't include mylist.h. 52 * src/l-split.cc: Don't include mylist.h. 53 (split_comments): use std::vector<T> instead of mylist<T>. 54 * unit-tests/test_bigfile.cc: use std::vector<T> instead of 55 mylist<T>. Don't include mylist.h. 56 * unit-tests/test_delta.cc: Likewise. 57 * unit-tests/test_mylist.cc: Delete. 58 * unit-tests/Makefile.am (unit_tests): Remove test_mylist. 59 60 Switch class sccs_file from mylist<T> to vector<T>. 61 * src/sccsfile.h: use std::vector<T> instead of mylist<T>. 62 * src/sf-val.cc: Likewise. 63 * src/cdc.cc (main): Likewise. 64 * src/sf-prt.cc: Likewise. 65 * src/admin.cc (main): Likewise. 66 * src/sf-cdc.cc: Likewise. 67 * src/sf-admin.cc: Likewise. 68 * src/sf-write.cc: Likewise. 69 * src/get.cc (print_id_list): Likewise. 70 * src/sf-get.cc (prepare_seqstate_1): Likewise. 71 * src/sf-prs.cc (print_seq_list): Likewise. 72 * src/sf-rmdel.cc (is_seqlist_member): Likewise. 73 74 Switch test_delta-table.cc from mylist to vector. 75 * unit-tests/test_delta-table.cc: Switch data structures from 76 mylist<T> to std:vector<T> (for which mylist is an alias anyway). 77 782019-05-05 James Youngman <jay@gnu.org> 79 80 Switch class release_list from using mylist<T> to vector<T>. 81 * src/rel_list.h: Switch data structures from mylist<T> to 82 std:vector<T> (for which mylist is an alias anyway). 83 * src/rl-merge.cc (remove): Likewise. 84 85 Switch class sccs_file_iterator from using mylist<T> to 86 vector<T>. 87 * src/fileiter.h: Switch data structures from mylist<T> to 88 std:vector<T> (for which mylist is an alias anyway). 89 90 Switch class delta from using mylist<T> to vector<T>. 91 * src/delta.h: Switch data structures from mylist<T> to 92 std:vector<T> (for which mylist is an alias anyway). 93 * src/delta.cc (delta_main): Likewise. 94 * src/sf-delta.cc (add_delta): Likewise. 95 962019-05-05 Martin Wilck <mwilck@suse.com> (tiny change) 97 98 sccs: comply with POSIX POS36-C rule. 99 POS36-C compliance requires that setgid() is called before 100 setuid(), and both called after relinquishing extra groups with 101 setgroups(). See 102 https://wiki.sei.cmu.edu/confluence/display/c/POS36-C.+Observe+correct+revocation+order+while+relinquishing+privileges 103 * configure.ac: check for setgroups() 104 * src/sccs.c (drop_privs): correct call order: setgroups, setgid, 105 setuid. 106 1072019-05-05 James Youngman <jay@gnu.org> 108 109 Suggest setting CSSC_DISABLE_VALGRIND=1 if system binaries cause 110 tests to fail. 111 * README (--disable-valgrind): point out that occasionally, a 112 system binary will cause Valgrind checking to make tests 113 fail. Explain how to work around this problem. 114 115 Include config.h before other files. 116 * build-aux/find-out-of-order-includes.sh: Script for identifying 117 source files which include other headers before "config.h", which 118 gnulib doesn't like. 119 * src/version.cc: Include "config.h" before <stdio.h> to avoid 120 complaints from gnulib. 121 1222016-03-01 James Youngman <jay@gnu.org> 123 124 Don't distrubite unit-tests/googletest/Makefile.in. 125 * unit-tests/Makefile.am (EXTRA_DIST): Don't include 126 googletest/Makefile.in, since we don't create that file, as 127 googletest is not in SUBDIRS. 128 1292016-02-28 James Youngman <jay@gnu.org> 130 131 Add tests covering p-file validity checks in sact. 132 * src/pfile.cc (sccs_pfile): Validate the delta SID (instead of 133 only the gotten SID). When rejecting an invalid date, say 134 "date/time", since it may in fact be the time field which is 135 incorrect. 136 * tests/common/test-common: New options to docommand, 137 --stderr_regex and stdout_regex, allowing regex (egrep) matching 138 of tool output. Each has a --no* counterpart which turns the 139 option off again (this is useful for deteating the defaults 140 provided by functions which wrap docommand). 141 * tests/sact/pfile_corruption.sh: New test, covering the p-file 142 validity checks in sact. 143 1442016-02-24 James Youngman <jay@gnu.org> 145 146 Don't use unique_ptr on the result of strdup, and other cleanup. 147 * src/sccsdate.cc (y2k_window): move all year windowing 148 calculations into this new function. 149 (is_leapyear): fix typo in comment. 150 (get_two_digits): Add specialization which takes a constr 151 string&. 152 (sccs_date::sccs_date): Use y2k_window. Also, instead of using 153 unique_ptr on a pointer returned by strdup, just use a std::string 154 instance. 155 * src/sccsdate.h (class sccs_date): Remove the daysecond field. 156 157 Fix a number of problems identified by "make syntax-check". 158 * src/get.cc: Remove trailing blanks. 159 * src/Makefile.am: Likewise. 160 * src/l-split.cc: Likewise. 161 * src/get.cc: Likewise. 162 * src/prs.cc: Likewise. 163 * src/run.cc: Likewise. 164 * src/sccsfile.cc: Likewise. 165 * src/sccsfile.h: Likewise. 166 * Makefile.am (distcheck-hook): Remove trailing blank. 167 * src/sccs.c (gstrncat): Avoid spurious warning about reference to 168 strncpy() in a comment. 169 * tests/val/historical.sh: Remove empty lines at EOF. 170 * unit-tests/test_linebuf.cc: Likewise. 171 * build-aux/check-googletest-files.sh: Remove empty lines at EOF. 172 (deleteprefix): Remove trailing blanks. 173 * NEWS: Change "the the" to "the" in item for CSSC-1.3.2. Remove 174 trailing blanks. 175 * src/sccsdate.cc (sccs_date::sccs_date): Avoid the use of strncpy. 176 * docs/cssc.texi (Admin Options): Don't say "see also @xref". 177 (Executable File Support): Remove trailing blanks. 178 * src/sf-prs.cc (prs): Don't use the space-tab combination. 179 * src/file.cc (get_mode_bits): Remove trailing blanks. 180 (is_writable): Likewise. 181 182 Make mylist a simple synonym for std::vector. 183 * src/mylist.h: Make mylist a simple synonym for std::vector. 184 185 Don't require mylist<T>::operator[] to assert on index errors. 186 * unit-tests/test_mylist.cc: Remove tests which verify that 187 mylist<T>::operator[] assert-fails when an index is out of range 188 (since std::vector does not do this). 189 190 Stop depending on mylist not actually being a synonym for std::vector. 191 * src/sf-prs.cc (print_string_list): Remove the two versions of 192 this function for std::vector<string> and mylist<string>. 193 Instead, implement a single template function which takes a range 194 of iterators. This allows us not to care wither mylist is simply 195 compatible with std::vector, or actually is std::vector. 196 (print_delta): Update callers of print_string_list. 197 198 Include <algorithm> where it is needed, and not where it is not. 199 * src/sf-rmdel.cc: include the <algorithm> header since we use 200 std::find. 201 * src/mylist.h: Don't include <algorithm>, the transitive 202 inclusion of which sf-rmsel.cc was previously takign advantage 203 of. 204 205 Replace constructor from const set& with a range of iterators. 206 * src/mylist.h (mylist::mylist): Add constructor from a range of 207 input iterators, allowing initialization from any container. 208 Remove the special-purpose constructor from const set&. This 209 change provides closer compatibility with std::vector<T>, 210 * src/delta.h (delta::delat): Initialize included_ and excluded 211 using the iterator range instead of plain const set&. 212 2132016-02-23 James Youngman <jay@gnu.org> 214 215 Remove mylist<T>::operator+=(), implementing insert() instead. 216 * src/mylist.h (mylist::insert): add insert() method, forwarding 217 to std::vector<T>::insert(), as a replacement for 218 mylist::operator+=() (and that method is removed). 219 (mylist::cbegin): add, forwarding to items_.cbegin(). 220 (mylist::cend): add, forwarding to items_.cend(). 221 * src/delta.h (delta::prepend_comments): Implement. 222 * src/sf-cdc.cc (sccs_file::cdc): Call mylist::insert() instead of 223 the removed mylist<T>::operator+=(). Also use 224 delta::prepend_comments() to prepend comments instead of copying 225 the old comments, modifying the list and callign set_comments(). 226 * unit-tests/test_mylist.cc (MylistTest::Catenate::TestBody): use 227 the new insert method to perform the concatenation, instead of the 228 removed method operator+=. 229 2302016-02-21 James Youngman <jay@gnu.org> 231 232 Avoid unnecessary for loop in mylist::operator+=(const mylist&). 233 * src/mylist.h (mylist): Implement operator+= with a range insert 234 on the underlying vector. 235 236 Remove mylist<T>::operator-=(const mylist<T>&). 237 * src/mylist.h (mylist): remove mylist<T>::operator-=(const 238 mylist<T>&). 239 240 * unit-tests/test_mylist.cc: Remove tests of 241 mylist<T>::operator-=(const mylist<T>&). 242 * src/sccsfile.h (sccs_file::admin): change the type of 243 erase_users from mylist<string> to 244 std::unordered_set<std::string>. This allows the implementation 245 to be more efficient without affecting the ordering of the 246 resulting user list. 247 * src/admin.cc (main): Update the type of erase_users 248 accordingly. 249 * src/sf-admin.cc (admin): take advantage of the efficiency of 250 std::unordered_set<T>::find() when computing the updated 251 authorized user list. Hence we no longer need to call 252 mylist<T>::operator-=(const mylist<T>&). 253 254 Delete mylist<T>::add(), preferring push_back() instead. 255 * src/mylist.h (mylist): Delete mylist<T>::add() since we prefer 256 push_back(). 257 * unit-tests/test_mylist.cc: Don't use or test .add(), but use or 258 test .push_back() there was previously .add(). 259 * unit-tests/test_delta.cc: Don't use mylist<T>::add(), use 260 mylist<T>::push_back() instead. 261 * src/rl-merge.cc (merge): Use mylist<T>::push_back() instead of 262 mylist<T>::add(). 263 * src/delta.h (delta::add_include): Likewise. 264 (delta::add_exclude): Likewise. 265 (delta::add_ignore): Likewise. 266 (delta::add_comment): Likewise. 267 * src/l-split.cc (split_comments): Likewise. 268 * src/rel_list.cc (release_list): Likewise. 269 * src/fileiter.cc (sccs_file_iterator): Likewise. 270 * src/sccsfile.cc (sccs_file::sccs_file): Likewise. 271 * src/sf-get2.cc (sccs_file::get): Likewise. 272 * src/sf-delta.cc (sccs_file::add_delta): Likewise. 273 * src/sf-admin.cc (sccs_file::admin): Likewise. 274 (sccs_file::create): Likewise. 275 * src/sf-cdc.cc (process_mrs): Likewise. 276 (sccs_file::cdc): Likewise. 277 * src/admin.cc (main): Likewise. 278 279 Remove mylist<T>::select(size_type). 280 * src/mylist.h (mylist): remove mylist<T>::select(). 281 * unit-tests/test_mylist.cc: remove tests for mylist<T>::select(). 282 283 Remove mylist<T>::operator=(void*). 284 * src/mylist.h (mylist): remove mylist<T>::operator=(void*). The 285 effect of this method was to clear the list, so add a clear() 286 method instead, for closer matching to std::vector.n 287 * unit-tests/test_mylist.cc: remove tests for 288 mylist<T>::operator=(void*). 289 290 * src/sf-admin.cc (sccs_file::admin): use clear() to clear an 291 instance of mylist<T>, not assignment to NULL. 292 293 Remove mylist<T>::length(). 294 * src/mylist.h (mylist::length): delete this method (size() should 295 be used instead). 296 297 Avoid using mylist<T>::length(). 298 * src/sf-get2.cc (get): Use a range-based for loop instead of 299 indexing up to mylist<T>::length(). 300 * src/sf-cdc.cc (cdc): Use mylist<T>::empty() rather than 301 comparing the result of length() against 0. 302 * src/sf-get3.cc (authorised): Use a range-based for loop instead 303 of indexing up to mylist<T>::length(). 304 * src/sf-prs.cc (print_seq_list): Prefer mylist::size() to 305 mylist::length(). 306 (print_delta): Use mylist<T>::empty() rather than comparing the 307 result of length() against 0. 308 * src/fileiter.cc (next): Prefer mylist::size() to 309 mylist::length(). 310 * src/sf-admin.cc (sccs_file): Likewise. 311 * src/sf-val.cc (validate_seq_lists): Likewise, factoring repeated 312 code out into a new function, validate_seq_numbers. 313 * src/sf-rmdel.cc (is_seqlist_member): use std::find instead of 314 iterating over list members ourselves. 315 * src/sf-prt.cc (print_seq_list): use a range-based for loop 316 rather than iterating over the indexes in a mylist<seq_no>. 317 (sccs_file): Instead of checking mylist<T>::length() against 0, 318 use the empty() method. 319 3202016-02-20 James Youngman <jay@gnu.org> 321 322 Prefer mylist::size() to mylist::length(). 323 * unit-tests/test_delta.cc: Don't use mylist::length(). 324 * unit-tests/test_bigfile.cc (emit_comments_or_mrs): Don't use 325 mylist::length(). 326 327 Prefer mylist::size() to mylist::length(). 328 * unit-tests/test_mylist.cc: Use the size() method instead of the 329 length() method, for better compatibility with (and so simpler 330 transition to) std::vector. 331 332 Avoid bash-specific [[...]]. 333 * build-aux/check-googletest-files.sh (findproblems): Avoid 334 [[...]] since that is a Bash feature, and this is a /bin/sh 335 script. 336 337 Add a menu for "admin", correcting a Texinfo build failure. 338 * docs/cssc.texi: Updated copyright years. 339 (admin): Added a menu for the sections relating to "admin". 340 3412016-02-09 James Youngman <jay@gnu.org> 342 343 * src/sf-prs.cc (print_seq_list): Use a range-based for loop for 344 iterating over sequence numbers. 345 * src/sf-val.cc (validate_seq_lists): Factor out the repeated 346 logic into a local function, validate_seq_numbers. 347 * src/sf-get2.cc (get): Use a range-based for loop for iterating 348 over the comments. 349 3502016-02-08 James Youngman <jay@gnu.org> 351 352 Don't gratuitously count elements of mylist<T>. 353 * src/sf-admin.cc (create): Prefer !mylist<T>::empty() over 354 mylist<T>::length() != 0. 355 356 Use range-based for in get.cc. 357 * src/get.cc (print_id_list): Use a range-based for loop to print 358 a sid list. 359 360 Use range-based for loops in the release_list implementation. 361 * src/rel_list.cc (member): Search with std::find, rather 362 than coding it manually. 363 (print): Use a range-based for loop. 364 365 Use mylist<T>::size() in preference to .length(). 366 * src/sf-get.cc (prepare_seqstate_1): Use the size() method of 367 mylist, instead of length(), for better std::vector 368 compatibility. 369 370 Use range-based for loops in print_seqs and sccs_file::write. 371 * src/sf-write.cc (print_seqs): Iterate over sequence numbers with 372 a range-based for loop. 373 (sccs_file::write): Iterate over users with a range-based for loop. 374 (sccs_file::write): Iterate over comments with a range-based for 375 loop. 376 377 Support and used range-based for for release_list instances. 378 * src/rl-merge.cc (merge): Use a range-based for loop to iterate 379 over release_list instances. 380 (remove): Likewise. 381 * src/rel_list.h (release_list): Implement begin() and end() and 382 empty(). 383 384 Use a range-based for loop for iterating over deltas. 385 * src/sf-get.cc (prepare_seqstate_1): Use a range-based for loop 386 for iterating over included/excluded/ignored deltas. 387 388 sccs_delta: Use empty() to find out if a mylist is empty. 389 * src/delta.h: use mylist<T>.empty() instead of .length() == 0. 390 391 Implement mylist<T>::push_back. 392 * src/mylist.h (mylist): Implement a push_back method and add TODO 393 comments for methods which aren't shared by std::vector. 394 395 State that a C++11 compiler is needed. 396 * README: Mention the need for a C++11 capable compiler. 397 * NEWS: Likewise. 398 399 Store MRs as std::vector<std::string> (not mylist<std::string>). 400 * unit-tests/test_bigfile.cc: (emit_comments_or_mrs): Convert to a 401 template so that we can use it to print a std::vector<std::string> 402 or a mylist<std::string>. 403 (emit_delta): Pass MRs as a vector not a mylist. 404 (make_delta): Likewise. 405 * unit-tests/test_delta-table.cc: Update to take account of the 406 change in representation of MR lists from mylist<std::string> to 407 std::vector<std::string>. 408 * unit-tests/test_delta.cc: Likewise. 409 * src/sf-write.cc (write_delta): Change the way we loop over the 410 MRs and the comments to use a range-based for loop (hence 411 accomodating the change in type of the MR list. 412 * src/sf-prt.cc (print_string_list): Convert this function to a 413 template so that it can be used to print a 414 std::vector<std::string> or a mylist<std::string>. 415 * src/sf-prs.cc (print_string_list): Add an override of 416 print_string_list for printing an instance of const 417 std::vector<std::string>&. 418 * src/sf-delta.cc (sccs_file::add_delta): Update the type of the 419 mrs parameter to std::vector<std::string>. 420 * src/sf-cdc.cc (process_mrs): Update the parameter list to use 421 std::vector<std::string> instead of mylist<std::string>. Change 422 the type of the to_delete parameter to const 423 std::unordered_set<std::string>& for greater efficiency. 424 * src/sf-admin.cc (sccs_file::create): Update type of mrs 425 parameter. 426 * src/sccsfile.h (sccs_file::check_mrs): Update the type of the 427 mrs parameter to std::vector<std::string>&. 428 (sccs_file::admin): update type of the mrs parameter. 429 (sccs_file::create): Likewise. 430 (::split_mrs): Likewise. 431 * src/sf-chkmr.h (check_mrs): Update the type of the mrs 432 parameter. 433 * src/run.cc (run): Update to take a vector<const char*> instead 434 of a mylist<const char*>. 435 (run_mr_checker): Change the type of the mrs parameter from 436 mylist<std::string> to std::vector<std::string>. 437 * src/run.h: Update declarations accordingly. 438 * src/mylist.h (mylist): Add method size() and empty() for 439 consistency with std::vector<T> so that we can define template 440 functions which will act on a mylist or a std::vector. 441 * src/l-split.cc (split_mrs): represent MRs as 442 std::vector<std::string>. 443 * src/delta.h (class delta): Change type of mrs_ member from 444 mylist<std::string> to std::vector<std::string>. 445 (delta::delta): change constructor parameters similarly. 446 (delta::mrs()): now returns std::vector<std::string>. 447 * src/admin.cc (main): Change type of mr_list from 448 mylist<std::string> to std::vector<std::string>. 449 * src/cdc.cc (main): Likewise. 450 * src/delta.cc (delta_main): Likewise. 451 (main): Simplify. 452 4532016-02-07 James Youngman <jay@gnu.org> 454 455 Use std::string rather than mystring. 456 We also use range-based for loops to iterate over instances of 457 mylist<std::string>. 458 * src/mystring.h: Delete this file. 459 * src/Makefile.am (noinst_HEADERS): Remove mystring.h. 460 * src/admin.cc (main): Update to use string rather than mystring. 461 * src/cdc.cc: Likewise. 462 * src/canonify.cc (get_current_directory): Update to return string 463 * src/cssc.h: Likewise. 464 * src/delta.cc: Likewise. 465 * src/delta.h: Likewise. 466 * src/file.cc: Likewise. 467 * src/file.h: Likewise. 468 * src/file.h: Update function parameters and return types to be string rather than mystring. 469 * src/filediff.cc: Likewise. 470 * src/filediff.h: Likewise. 471 * src/fileiter.cc: Likewise. 472 * src/fileiter.h: Likewise. 473 * src/filelock.h: Likewise. 474 * src/fnsplit.cc: Likewise. 475 * src/get.cc: Likewise. 476 * src/l-split.cc: Likewise. 477 * src/pfile.h: Likewise. 478 * src/pf-del.cc: Likewise. 479 * src/prompt.cc: Likewise. 480 * src/prs.cc: Likewise. 481 * src/run.cc: Likewise. 482 * src/run.h: Likewise. 483 * src/sccsdate.h (sccs_date::as_string()): Likewise. 484 * src/sccsfile.cc: Likewise. 485 * src/sccsfile.h: Likewise. 486 * src/sccsname.cc: Likewise. 487 * src/sccsname.h (sccs_name): Likewise (and attributes). 488 * src/sf-admin.h: Likewise. 489 * src/sf-cdc.cc: Likewise. 490 * src/sf-chkmr.h (check_mrs): Likewise. 491 * src/sf-delta.cc: Likewise. 492 * src/sf-get.cc (get): Likewise. 493 * src/sf-get2.cc: Likewise. 494 * src/sf-get3.cc (authorised): Use string instead of mystring. 495 * src/sf-prs.cc: Likewise. 496 * src/sf-prt.cc: Likewise. 497 * src/sf-val.cc: Likewise. 498 * src/sf-write.cc: Likewise. 499 * src/sid.h (class sid): the as_string method now returns a string instead of a mystring. 500 * src/sid.cc: Use string instead of mystring. 501 * src/unget.cc: Likewise. 502 * src/writesubst.cc: Likewise. 503 * unit-tests/test_delta-table.cc: Likewise. 504 * unit-tests/test_delta.cc: Likewise. 505 * unit-tests/test_bigfile.cc: Use std::string instead of 506 mystring. 507 * src/mylist.h (mylist): Provide begin() and end() methods. 508 509 Delete myset.h, and switch to using std::set instead. Use C++11. 510 * src/sccsfile.h (substitued_flag_letters): change from 511 myset<char> to std::set<char>. 512 * src/sccsfile.cc (set_expanded_keyword_flag): update 513 implementation now that substitued_flag_letters is std::set<char>. 514 (print_subsituted_flags_list): Likewise. 515 * src/sf-write.cc (write): Likewise. 516 * src/writesubst.cc (expand_keyletter): Likewise. 517 * src/sf-admin.cc (admin): Likewise. 518 * src/sf-prt.cc (prt): Likewise. 519 * src/sf-val.cc (validate): Likewise, using a range-based for 520 loop. 521 * bootstrap.conf (gnulib_modules): Add std-gnu11 (to compile 522 C++11). 523 * src/mylist.h (mylist): Add constructor from const std::set<TYPE>&. 524 * unit-tests/Makefile.am (unit_tests): Remove test_myset. 525 (test_myset_SOURCES): Remove. 526 * src/Makefile.am (noinst_HEADERS): Remove myset.h. 527 * myset.h: delete this file. 528 * unit-tests/test_myselt.cc: delete this file. 529 * src/delta.h (delta): included and excluded deltas are now 530 std::set<seq_no> rather than myset<seq_no>. 531 * unit-tests/test_delta.cc (DeltaTest::Constructor): Update the 532 call to the constructor of delta, to pass in std::set<seqno> for 533 the included and excluded deltas. 534 * src/sf-delta.cc (add_delta): Switch from using myset<seq_no> to 535 using std::set<seq_no> for the included and excluded deltas. 536 537 Remove obsolete code from mylist.h. 538 * src/mylist.h (mylist): Remove the obsolete implementation of 539 mylist (which was disabled via the preprocessor anyway). 540 541 Mention that gnulib has been updated. 542 * NEWS: mention this. 543 5442014-09-08 James Youngman <jay@gnu.org> 545 546 Always include config.h first; eliminate some compiler warnings. 547 * auxfiles/firstinclude.sed: New. Script which determines what 548 the first file #included in a C/C++ source file is. 549 * auxfiles/Makefile.am (EXTRA_DIST): Distribute firstinclude.sed. 550 * src/Makefile.am (check-include-order): Check that each source 551 file includes <config.h> before any other include file. 552 * src/admin.cc: Inlude <config.h> first. Include system headers 553 before our own headers. 554 * src/bodyio.cc: Likewise. 555 * src/cap.cc: Likewise. 556 * src/cdc.cc: Likewise. 557 * src/delta-iterator.cc: Likewise. 558 * src/delta-table.cc: Likewise. 559 * src/delta.cc: Likewise. 560 * src/dtbl-prepend.cc: Likewise. 561 * src/encoding.cc: Likewise. 562 * src/environment.cc: Likewise. 563 * src/fatalsig.cc: Likewise. 564 * src/fdclosed.cc: Likewise. 565 * src/fnsplit.cc: Likewise. 566 * src/l-split.cc: Likewise. 567 * src/linebuf.cc: Likewise. 568 * src/get.cc: Likewise. 569 * src/pf-add.cc: Likewise. 570 * src/pfile.cc: Likewise. 571 * src/prompt.cc: Likewise. 572 * src/prs.cc: Likewise. 573 * src/prt.cc: Likewise. 574 * src/quit.cc: Likewise. 575 * src/rel_list.cc: Likewise. 576 * src/rmdel.cc: Likewise. 577 * src/run.cc: Likewise. 578 * src/sact.cc: Likewise. 579 * src/sccs-delta.cc: Likewise. 580 * src/rl-merge.cc: Likewise. 581 * src/sccsdate.cc: Likewise. 582 * src/sccsfile.cc: Likewise. 583 * src/sccsname.cc: Likewise. 584 * src/seqstate.cc: Likewise. 585 * src/sf-add.cc: Likewise. 586 * src/sf-admin.cc: Likewise. 587 * src/sf-cdc.cc: Likewise. 588 * src/sf-chkid.cc: Likewise. 589 * src/sf-delta.cc: Likewise. 590 * src/sf-get.cc: Likewise. 591 * src/sf-get2.cc: Likewise. 592 * src/sf-get3.cc: Likewise. 593 * src/sf-kw.cc: Likewise. 594 * src/sf-prs.cc: Likewise. 595 * src/sf-prt.cc: Likewise. 596 * src/sf-rmdel.cc: Likewise. 597 * src/sf-write.cc: Likewise. 598 * src/sid.cc: Likewise. 599 * src/sf-val.cc: Likewise. 600 * src/unget.cc: Likewise. 601 * src/val.cc: Likewise. 602 * src/writesubst.cc: Likewise. 603 * src/file.cc: Likewise. Also move the definition of unprivileged 604 out of the #if in order to avoid a compiler warning. 605 * src/file.h: #include "mystring.h" since we use that class in 606 this header. 607 * src/filelock.h: Likewise. 608 6092014-07-28 James Youngman <jay@gnu.org> 610 611 Support executable history files (=> g-files executable on get). 612 * src/sf-admin.cc (create): Open any file specified with the -i 613 command-line option before calling start_update, and using the 614 open file pointer, call set_sfile_executable if the history file 615 should be created with execute bits set. 616 * src/sf-write.cc (start_update): Use sfile_should_be_executable 617 rather than flags.executable in order to decide whether the 618 updated history file should be executable. 619 * NEWS: Mention that the 'x' flag no longer determines the mode of 620 the updated history file. 621 * src/sccsfile.h (sfile_executable): new boolean member variable. 622 If true, the history file, when we create it, should be 623 executable. 624 (set_sfile_executable): setter for sfile_executable. 625 (sfile_should_be_executable): getter for sfile_executable. 626 (gfile_should_be_executable): new method; when true, the gotten 627 file should be executable. 628 * src/sccsfile.cc (sccs_file): Point out that setting the 'x' flag 629 is not the most portable way to make gotten files executable. 630 (set_sfile_executable): Implement (sets the sfile_executable 631 member variable). 632 (gfile_should_be_executable): Implement (when this method returns 633 true, the gotten file should be executable). 634 (sfile_should_be_executable): Implement (when this method returns 635 true, the (updated) history file should be executable). 636 (sccs_file): If the history file is executable, remember this so 637 that the gotten file is created with the relevant execute bits 638 set. 639 * src/get.cc (main): The gotten file should be executable if 640 sccs_file::gfile_should_be_executable() returns true (that is, if 641 either the 'x' flag is set or the history file is executable). 642 * src/sf-delta.cc (add_delta): When greating gotten files (for 643 diffing) use gfile_should_be_executable rather than 644 flags.executable. 645 * docs/cssc.texi (Executable File Support): Document the fact that 646 the execute bits of the history file's mode are now copied to the 647 gotten file's mode (subject to umask) and in the reverse direction 648 in the case of admin -i. 649 (admin): Document the same behaviour. 650 (Flags): Mention the mode of the history file as an alternative to 651 setting the 'x' flag. 652 (SCCS Version Differences): Mention this behaviour (which follows 653 Solaris) for admin and get. 654 (Data Keywords): Add missing comma after @xref. 655 * tests/admin/executable.sh: New test file; verifies that the 656 execute bits of the file offered via admin -i are copied to the 657 history file. Verify that setting the 'x' flag cuases the g-file 658 to be created executable, and that not setting it does not (when 659 the history file is not executable). Verify that the history file 660 can still be set as executable when the initial body is presented 661 on stdin. 662 * tests/common/test-common (docommand): pass through the exit 663 status of the child command. Log the return value, stdout and 664 stderr in command.log. 665 * src/file.cc (get_mode_bits): New function; Factors stat call out 666 of is_writable. 667 (get_open_file_xbits): New function; populate an output flag as 668 true IFF the FILE* argument is open on a file which has an execute 669 bit set. 670 * src/file.h: Declare get_open_file_xbits. 671 * tests/get/executable.sh: New test file; verify that the 672 executable bit is copied from the history file to the gotten 673 file. 674 675 Process test files in a consistent order for a case where this matters. 676 * tests/get/middle-fail.sh (e3): List the history files explicitly 677 so that we know that SCCS/s.b is definitely the second file of 678 three processed. 679 680 Show the label of the test command in the command.log file. 681 * tests/common/test-common (docommand): Show the label for the 682 current command in command.log. 683 (do_output): Likewise 684 685 Update version number. 686 * configure.ac: Move on from version 1.4.0. 687 * NEWS: Add a new section for changes in CSSC-1.4.1-rc1. 688 6892014-07-11 James Youngman <jay@gnu.org> 690 691 Release CSSC-1.4.0. 692 * configure.ac (AC_INIT): Update the version number. 693 * NEWS: Describe the new release. 694 6952014-06-30 James Youngman <jay@gnu.org> 696 697 Release CSSC-1.3.2. 698 * configure.ac: Change version number to 1.3.2. 699 * NEWS: Update the version number of the first section. 700 701 Update googletest unit test framework from r424 to r690. 702 * gl/lib/.gitignore: Add the files generated by the pthread module 703 (since we now depend on that). 704 * bootstrap.conf (bootstrap_epilogue): Upgrade from r424 to r690 705 of the googletest test framework. 706 (buildreq): Update tool versions to the ones I'm actually using 707 now, since these are really the only tools I test with routinely. 708 (gnulib_modules): Depend on the pthread module. Download 709 googletest before we run gnulib-tool (instead of in the epilogue), 710 so that the googletest/m4 directory is available to autoconf. 711 * configure.ac: Include the googletest m4 library, 712 unit-tests/googletest/m4. Turn on the Automake option 'tar-ustar' 713 which switches the dist file format from v7 Unix to the selects 714 the ustar format defined by POSIX 1003.1-1988. We need to do this 715 since the distribution now contains path names longer than 99 716 characters and the v7 format (or its consumers) cannot reliably 717 deal with this. Also make explicit some of the options which in 718 any case are implied by the "gnits" option, since we would want to 719 keep them even if turning off gnits. Add configure tests required 720 by the googletest framework. 721 722 * NEWS: Point out the change of tar file format used for the 723 distribution file. Also mention the recent updates to googletest 724 and gnulib. 725 * unit-tests/Makefile.am: Update the build rules used to build the 726 googletest unit test framework. Don't build the samples. Build 727 libgtest by compiling individual source files, instead of only 728 libgtest-all.cc (this fixes a problem in which "make distcheck" 729 would otherwise fail due to dependency rule files being left 730 around. Also, don't compile the sample programs. Remove the 731 rules for fusing the sources. We don't use them, and the rules 732 themselves are still available in googletest/Makefile.am. 733 * Makefile.am (ACLOCAL_AMFLAGS): Include the googletest m4 734 library. 735 (distcheck-hook): Call build-aux/check-googletest-files.sh 736 (this is described below). 737 * build-aux/check-googletest-files.sh: New script; verifies that 738 all the files for the "googletest" C++ Unit test framework are 739 included in the distribution. This script is called from 740 distcheck-hook. 741 * .gitignore: Don't ignore build-aux. 742 7432014-06-22 James Youngman <jay@gnu.org> 744 745 Update gnulib. 746 * bootstrap: Update from current gnulib. 747 * bootstrap.conf: Remove second (and wrong) --tests-base 748 argument. Don't munge include paths in gl/tests/Makefile.am 749 (since now, doing that breaks the build and whatever made it 750 necessary before no longer does). 751 * src/canonify.cc: Include <config.h> before (gnulib's replacement 752 of) <unistd.h>. 753 754 * src/file.h: Include <sys/types.h> for gid_t. 755 7562013-04-20 James Youngman <jay@gnu.org> 757 758 Typo fix. 759 * COPYING.bsd: Fix typo 'modifiactions'. 760 7612011-11-19 James Youngman <jay@gnu.org> 762 763 Fix Savannah bug #33633 (coredump in prs -d:GB:) 764 * src/sf-prs.cc (sccs_file::get): pass in the correct delta 765 information for keyword expansion instead of a blank (that is, 766 invalid) delta. This fixes Savannah bug #33633. 767 * tests/prs/sv33633.sh: New file, test for this bug. 768 * tests/prs/s.sv33633.txt: Test input for the new test. 769 * NEWS: Mention this bug fix. 770 7712011-05-22 James Youngman <jay@gnu.org> 772 773 Add unit test for cssc_linebuf. 774 * unit-tests/Makefile.am (unit_tests): Add test_linebuf. 775 (test_linebuf_SOURCES): Build test_linebuf. 776 * unit-tests/test_linebuf.cc: New unit test file. 777 7782011-05-21 James Youngman <jay@gnu.org> 779 780 Print clearer test labels. 781 * tests/common/test-common (docommand): Print the test directory 782 and the test script as part of the label of each test, for 783 additional clarity and because many of them are actually not 784 unique. 785 * tests/get/sf111140.sh (label_prefix): Print qualified labels (as 786 for docommand). 787 788 Source the command-names script only once per test script. 789 * tests/common/real-thing: Instead of sourcing the command-names 790 script unconditionally, just complain if it was not already 791 sourced. 792 * tests/common/command-names: Error out if the command-names 793 script is sourced twice. 794 * tests/common/config-data: Don't source the command-names script 795 more than once. 796 * tests/common/need-prt: Likewise. 797 798 * tests/Makefile.am (test-*): Indicate the full path of each test 799 script. 800 801 Set TZ=GMT in the y2k tests. 802 * tests/year-2000/ext.sh: Set $TZ to GMT in order to make it 803 possible for implementations which convert SCCS file dates to 804 time_t values (but which otherwise have no bugs) to pass the 805 tests. 806 * tests/year-2000/prs-y2k.sh: Likewise. 807 808 Remove spurious space in definition of admin. 809 * tests/common/command-names (admin): remove spurious space. 810 811 Move on from release 1.3.1. 812 * configure.ac: Update version number to 1.3.2-git, to indicate 813 that compiled versions of this code are no longer identical to the 814 1.3.1 release. 815 * NEWS: Likewise. 816 8172011-05-10 James Youngman <jay@gnu.org> 818 819 Release version 1.3.1. 820 * NEWS: Update version number to 1.3.1. 821 * configure.ac: Likewise. 822 823 Check we distributed all the tests. Remove redundant Makefile.am files. 824 * auxfiles/check-testfiles.sh: New script (copied from GNU 825 findutils e66802375963941b3b54a0e038d18eccde449e14 with some 826 adaptations for CSSC) for checking that we installed all the test 827 scripts in "make dist". 828 * tests/Makefile.am (dist-hook): Invoke the 829 auxfiles/check-testfiles.sh script. 830 * tests/common/Makefile.am: remove unreferenced file; 831 tests/Makefile.am does not recurse. 832 * tests/delta/Makefile.am, tests/prs/Makefile.am: Likewise. 833 * tests/prt/Makefile.am, tests/sact/Makefile.am: Likewise. 834 * tests/admin/Makefile.am, tests/unget/Makefile.am: Likewise. 835 * tests/val/Makefile.am, tests/what/Makefile.am: Likewise. 836 8372011-05-03 James Youngman <jay@gnu.org> 838 839 Modify "prs -d :DI:" to print ignored deltas. 840 * tests/prs/delta_ixg.sh: New test script for "prs -d :DI:". 841 * tests/prs/s.delta_ixg: New test input file for delta_ixg.sh. 842 * src/sf-prs.cc (print_delta): For :DI:, also print ignored 843 deltas. Follow the conventions of OpenSolaris 2009.06 on the 844 question of how many slashes to produce. 845 * docs/cssc.texi (Data Keywords): Describe in more detail just how 846 the keyword :DI: is expanded. 847 (SCCS Version Differences): Explain how the expansion of :DI: 848 varies across implementations. 849 * NEWS: Mention this change. 850 8512011-04-30 James Youngman <jay@gnu.org> 852 853 Accept entirely empty comment lines (lacking the initial space). 854 * src/sccsfile.cc (read_delta): Accept comment lines containing 855 nothing at all (not even a space after the 'c'). Some historis 856 versions of SCCS seem to have produced these, and later versions 857 tolerate it. 858 859 Fix Savannah bug bug #33153: "prs" includes "AUTO NULL DELTA"s. 860 * src/prs.cc (main): Change type of all_deltas from int to bool. 861 (main): Move detection of errors writing to stdout to here, 862 instead of sccs_file::prs(). Likewise diagnosis of the fact that 863 no deltas were matched. 864 * src/sf-prs.cc (prs): Add an output parameter, "matched", which 865 is set if any delta was matched (and printed). 866 (prs): Rewrite this method to evaluate the earlier/later cutoff in 867 terms of SIDs where this is necessary. That is, avoid the 868 assumption that different SIDs have different timestamps. 869 * src/sccsfile.h (sccs_file::prs): Modify the declaration 870 of sccs_file::prs() to add the output parameter, "matched". 871 * tests/prs/sv33153.sh: New test. 872 * tests/prs/s.sv33153: New test input file. 873 * NEWS: Mention this bugfix. 874 8752011-04-29 James Youngman <jay@gnu.org> 876 877 * testutils/mogrify.awk: Preserve comment lines which have no 878 space (that is, \001Ac\n). 879 8802011-04-26 James Youngman <jay@gnu.org> 881 882 Fix some minor issues identified by 'make syntax-check'. 883 * testutils/uu_decode.c: avoid including unnecessary header 884 <stddef.h>. 885 * src/sf-delta.cc (add_delta): Remove doubled word in a comment. 886 * docs/cssc.texi (Other Variables): Remove doubled word. 887 (Year 2000 Summary): Likewise. 888 * cfg.mk: Modify spelling of a comment in order not to have a 889 false positive from the sc_makefile_at_at_check syntax check. 890 * tests/year-2000/ext.sh: Remove blank line at the end of the 891 file. 892 * tests/year-2000/prs-y2k.sh: Likewise. 893 * .x-sc_unmarked_diagnostics: Likewise. 894 * unit-tests/testwrapper.sh.in: Add final newline. 895 * README-hacking: Remove space-tab combinations. 896 897 Update hacking instructions to explain the git submodule. 898 * README-hacking: Update instructions detailing how to collect 899 gnulib (since we now use it as a submodule). 900 901 Update gnulib. 902 * gnulib: update to current HEAD. 903 904 Various minor fixes suggested by 'make syntax-check'. 905 * docs/.ispell_english: Remove blank line from end of document. 906 * src/Makefile.am: Remove blank space from end of line. 907 * src/file.cc (atomic_nfs_create): Likewise. 908 * src/sf-prs.cc (prs): Likewise. 909 * testutils/lndir.c: Likewise. 910 911 Change output order in "sccs unedit" to match OpenSolaris. 912 * tests/bsd-sccs/driver-basic.sh (h1): Modify the ordering of the 913 expected ouput to match OpenSolaris 2009.06. 914 * src/sccs.c (command): For the UNEDIT case, flush stdout before 915 invoking 'get' in order to pass the changed test. 916 * NEWS: Mention this change. 917 9182011-04-25 James Youngman <jay@gnu.org> 919 920 Allow non-CSSC implementations to XFAIL for tricky dates. 921 * tests/year-2000/prs-y2k.sh: Divide tests into "easy" (which any 922 y2k-compliant version of SCCS must pass) and "harder" (which 923 require correct implementation of the windowing scheme and correct 924 conversion of dates at the limits of a 32-bit time_t). Require 925 CSSC to pass all tests, but allow other implementations to XFAIL 926 on the hader tests. 927 * tests/year-2000/ext.sh: Correct the mechanism by which we figure 928 out if we are testing CSSC itself. 929 * tests/common/test-common (fail): return false on XFAIL. 930 931 Move source and documentation out of bsd/ into src/ and docs/. 932 * COPYING.bsd: Move from bsd/COPYING.bsd. 933 * bsd/sccs.1: move to docs/sccs.1 934 * bsd/sccs.c: move to src/sccs.c 935 * tests/common/command-names: Locate the sccs binary in its new 936 location. 937 * src/Makefile.am (generic_CPPFLAGS): Put preprocessor flags here 938 so that AM_CPPFLAGS and AM_CFLAGS can both refer to it, now that 939 we have both C and C++ sources in this directory. 940 (LDADD): Link against gnulib. 941 (AM_CFLAGS): #define PREFIX for the benefit of sccs.c. 942 (AM_INSTALLCHECK_STD_OPTIONS_EXEMPT): Exempt the binaries from the 943 gnits install check which requires them to support --version and 944 --help. 945 * AUTHORS: Mention the new location of the COPYING.bsd file. 946 * THANKS: Point to COPYING.bsd in its new location. 947 * docs/.ispell_english: Incorporate contents of bsd/.ispell_english. 948 * docs/Makefile.am: Add sccs.1 and sccs.me. 949 * bsd/.ispell_english, bad/Makefile.am, bsd/Makefile.bsd: Delete. 950 * bsd/sccs.me: move to docs/sccs.me 951 * configure.ac: refer to src/sccs.c instead of bsd/sccs.c 952 * Makefile.am (SUBDIRS): Remove bsd from SUBDIRS. 953 * README: sccs no longer lives in bsd/sccs. 954 955 Allow an empty MR list to be passed to admin. 956 * tests/admin/init-mr.sh: Don't expect "admin -m" to interpret 957 a plain "-m" as meaning an empty MR list. Distinguishing the 958 absence of an argument to -m requires a traditional SCCS argument 959 processor, and this behaviour is incompatible with modern 960 implementations of SCCS (for example OpenSolaris). 961 * tests/admin/flags.sh: Likewise. 962 * src/admin.cc (main): Allow an empty list of MRs to be specified 963 to admin, for example "admin -fv -m' '". OpenSolaris allows 964 this, and we can no longer use the previous method which was to 965 omit the optional argument. Elminiate doubled space in error 966 message. 967 * docs/cssc.texi (admin): document this clearly. 968 * NEWS: mention this change. 969 970 Fix delta summary; when it goes to stdout, send other to stderr. 971 * tests/get/delta-summary.sh: OpenSolaris get emits the delta 972 summary (produced by get -L) to stdout and the SID of the gotten 973 delta and the number of body lines to stderr. Expect this 974 behaviour. 975 * tests/get/delta-summary.sh (L2e): Check that the "new delta" 976 message also goes to stderr when we are using "get -e -L" (since 977 the delta summary goes to stdout). 978 * src/get.cc (print_id_list): New parameter, fp: the file handle 979 to print the IDs to. 980 (main): rename use_stdout to send_body_to_stdout (being a more 981 accurate description). 982 (main): add variable commentary, the file descriptor on which we 983 announce which delta we're getting and so forth. This is usually 984 stdout, but if stdout needs to be used for something else (for 985 example the delta summary), commentary can be set to stderr. 986 * src/sf-get2.cc (get): Correct the spacing before the items in 987 the delta summary. Add a trailing newline. 988 * NEWS: Mention this change. 989 990 Produce better test diagnostics when a command unexpectedly fails. 991 * tests/common/test-common (docommand): when the return value is 992 zero, print any error message that had been issued on stderr. 993 994 Update sccsdiff to work like sccsdiff on OpenSolaris. 995 * tests/sccsdiff/rap.sh: Update the tests to match the results we 996 actually get from sccsdiff on OpenSolaris. 997 * src/sccsdiff.sh.in: Update to pass the modified tests. 998 Specifically, use a different header for the case where -p is 999 specified and when it's not. 1000 * NEWS: Mention this change. 1001 1002 Call ${admin} in test preparations, not "admin". 1003 * tests/admin/y-flag.sh: when trying to deduce the properties of 1004 the admin command we're testing, invoke ${admin} (i.e. the thing 1005 we are testing) as opposed to "admin" (i.e. the system's 1006 already-installed version). Add extra checks to verify that the 1007 right thing happened. 1008 1009 Avoid assuming Unix semantics for st_nlinks in lndir. 1010 * testutils/lndir.c (quit): Accept errno argument; include the 1011 error string in the error message if it is nonzero. Call vmsg 1012 instead of calling vfprintf directly. 1013 (mperror): Accept the errno value as a function argument. 1014 (vmsg): make a static function. 1015 (dodir): Eliminate n_dirs subdirectory counter; this is unreliable 1016 on filesystems which don't have Unix-like semantics for the 1017 directory link count (for example, ISO9660 on Solaris, VirtualBox 1018 shared folders on Solaris). Also word error messages more 1019 explicitly. 1020 1021 Avoid retrying link(2) when errno is set to ENOSYS. 1022 * src/file.cc (atomic_nfs_create): If link(2) fails with ENOSYS, 1023 there is no point in retrying. 1024 1025 Bugfix for lndir on OpenSolaris: ignore . and .. 1026 * testutils/lndir.c (dodir): Ignore . and .. (on systems where 1027 readdir returns them). 1028 10292011-04-24 James Youngman <jay@gnu.org> 1030 Tell the user to run "bootstrap" instead of "autogen.sh". 1031 * README: "autogen.sh" has been replaced by "bootstrap". 1032 1033 Adopt Automake's "gnits" rules. 1034 * configure.ac: Use the "gnits" rules. 1035 * docs/CREDITS: Rename to THANKS to comply with the gnits rules. 1036 * docs/CREDITS.short.txt: Add missing final newline. 1037 1038 Modernise configure.ac initialisation. 1039 * configure.ac: Use the new-style Autoconf/Automake initialisation 1040 which passes the version number to AC_INIT rather than to 1041 AM_INIT_AUTOMAKE. 1042 1043 Update the version number. 1044 * configure.ac: Update version number to make a distinction 1045 between the tar file which results form "make dist" and the 1046 released 1.3.0 tar file. 1047 * NEWS: Similarly update the version number. 1048 1049 Fix SF bug #1300722 (prs succeeds even if the SID is not found). 1050 * tests/prs/wrongsid.sh: New file; tests for "prs -r" when the 1051 specified SID does not exist. 1052 * tests/prs/default.sh: New file; tests the default behaviour of 1053 prs, both with -d and with no options at all. 1054 * tests/prs/cutoff.sh: New file; tests for "prs -e" and "prs -l". 1055 * src/prs.cc (main): Add a comment pointing out that specifying -d 1056 changes the default behaviour around which deltas are selected. 1057 * src/sf-prs.cc (prs): return a failure status if a SID was 1058 specified but not matched. 1059 * NEWS: mention this bugfix. 1060 10612011-04-22 Yann Dirson <dirson@debian.org> (tiny change) 1062 1063 Fix SourceForge bug #1317916. 1064 * bsd/sccs.1: Avoid a groff warning in sccs.1 by removing some 1065 unnecessary blank lines. 1066 10672010-11-07 James Youngman <jay@gnu.org> 1068 1069 Prepare to release 1.3.0. 1070 * configure.ac (AM_INIT_AUTOMAKE): Update the version number. 1071 This release is otherwise identical to 1.3.0rc1. 1072 * NEWS: Mention this. 1073 10742010-05-16 James Youngman <jay@gnu.org> 1075 1076 Prepare to release 1.3.0rc1. 1077 * NEWS: Update version to 1.3.0rc1 1078 * configure.ac: Update version to 1.3.0rc1 1079 * docs/cssc.texi: Update VERSION, EDITION and last-update time. 1080 1081 Remove exceptions for now-deleted googletest/ files. 1082 * .x-sc_prohibit_empty_lines_at_EOF: Remove exceptions for 1083 nonexistent files. 1084 * .x-sc_prohibit_magic_number_exit: Likewise. 1085 * .x-sc_useless_cpp_parens: Likewise. 1086 * .x-sc_the_the: Likewise. 1087 * .x-sc_file_system: Likewise. 1088 * .x-sc_m4_quote_check: Delete this file, since the only entry in 1089 it has also been deleted. 1090 1091 Remove some trailing blanks. 1092 * src/file.cc (create): Remove trailing blanks. 1093 1094 Distribute ChangeLog.2. 1095 * Makefile.am (ACLOCAL_AMFLAGS): Set to -I m4 to avoid a warning. 1096 (EXTRA_DIST): Add ChangeLog.2, which previously wasn't 1097 distributed. 1098 1099 Don't use #pragma interface/implementation, they're not useful 1100 with GCC 2.7.2+. 1101 * src/quit.h, src/sccsdate.h, src/sccsname.h, src/sid_list.h, 1102 src/filediff.h, src/fileiter.h, src/filelock.h: Don't use #pragma 1103 interface. 1104 * src/file.cc, src/fileiter.cc, src/linebuf.cc, src/my-getopt.cc, 1105 src/my-getopt.h, src/quit.cc, src/sccsdate.cc, src/sccsname.cc, 1106 src/sf-get.cc, src/sf-kw.cc: Don't use #pragma implementation. 1107 1108 Remove support for CONFIG_MSDOS_FILES and lock methods other than 1109 CONFIG_PID_LOCKING. 1110 * src/fileiter.cc (sccs_file_iterator): Remove support for 1111 CONFIG_MSDOS_FILES. 1112 * src/sysdep.h: Remove support for CONFIG_MSDOS_FILES. 1113 * src/filelock.h (cleanup): Remove support for CONFIG_NO_LOCKING. 1114 * src/file.cc (create): Remove support for CONFIG_MSDOS_FILES. 1115 (create): Remove support for CONFIG_SHARE_LOCKING. 1116 (do_lock): Remove support for CONFIG_SHARE_LOCKING. 1117 * src/defaults.h: Remove support for types of locking other than 1118 CONFIG_PID_LOCKING. Remove support for CONFIG_MSDOS_FILES. 1119 * src/file.h (enum create_mode): Likewise. 1120 1121 Generate config.h.in by running bootstrap. 1122 * configure.ac: Call AC_CONFIG_HEADERS instead of the obsolete 1123 AM_CONFIG_HEADERS. This causes bootstrap to call autoheader, 1124 which needs to happen for config.h.in to be generated. 1125 1126 Eliminate stack.h and the stack<T> template, since it is not used. 1127 * unit-tests/Makefile.am (unit_tests): Remove test_stack. Also 1128 eliminate test_stack_SOURCES. 1129 * src/seqstate.h: Don't include stack.h. 1130 * src/stack.h: Remove. 1131 * unit-tests/test_stack.cc: Remove. 1132 * src/Makefile.am (noinst_HEADERS): Remove stack.h. 1133 11342010-05-15 James Youngman <jay@gnu.org> 1135 1136 Remove trailing blanks from most files. 1137 * .x-sc_trailing_blank: Remove trailing-blank exceptions for most 1138 files. 1139 * Makefile.am, NEWS, README, auxfiles/CSSC.spec.in, 1140 bsd/Makefile.bsd, bsd/sccs.1, bsd/sccs.c, configure.ac, docs/BUGS, 1141 docs/CREDITS, docs/Makefile.am, docs/Platforms, docs/TODO, 1142 docs/URLs, docs/cssc.texi, docs/mailing-list.txt, docs/style.txt, 1143 docs/tests-todo.txt, gl/Makefile.am, sccs-cgi/sccs.cgi, 1144 src/Makefile.am, src/admin.cc, src/bodyio.cc, src/bodyio.h, 1145 src/canonify.cc, src/cap.cc, src/cdc.cc, src/cleanup.h, 1146 src/cssc-assert.h, src/cssc.h, src/defaults.h, 1147 src/delta-iterator.cc, src/delta-iterator.h, src/delta-table.cc, 1148 src/delta-table.h, src/delta.cc, src/delta.h, src/dtbl-prepend.cc, 1149 src/encoding.cc, src/environment.cc, src/except.h, 1150 src/fatalsig.cc, src/fdclosed.cc, src/file.cc, src/file.h, 1151 src/filediff.cc, src/filediff.h, src/fileiter.cc, src/fileiter.h, 1152 src/filelock.h, src/filepos.h, src/fnsplit.cc, src/get.cc, 1153 src/ioerr.h, src/l-split.cc, src/linebuf.cc, src/linebuf.h, 1154 src/my-getopt.cc, src/my-getopt.h, src/mylist.h, src/myset.h, 1155 src/mystring.h, src/pf-add.cc, src/pf-del.cc, src/pfile.cc, 1156 src/pfile.h, src/prompt.cc, src/prs.cc, src/prt.cc, src/quit.cc, 1157 src/quit.h, src/rel_list.cc, src/rel_list.h, src/release.h, 1158 src/relvbr.h, src/rl-merge.cc, src/rmdel.cc, src/run.cc, 1159 src/run.h, src/sact.cc, src/sccs-delta.cc, src/sccsdate.cc, 1160 src/sccsdate.h, src/sccsdiff.sh.in, src/sccsfile.cc, 1161 src/sccsfile.h, src/sccsname.cc, src/sccsname.h, src/seqstate.cc, 1162 src/seqstate.h, src/sf-add.cc, src/sf-admin.cc, src/sf-cdc.cc, 1163 src/sf-chkid.cc, src/sf-chkmr.h, src/sf-delta.cc, src/sf-get.cc, 1164 src/sf-get2.cc, src/sf-get3.cc, src/sf-kw.cc, src/sf-prs.cc, 1165 src/sf-prt.cc, src/sf-rmdel.cc, src/sf-val.cc, src/sf-write.cc, 1166 src/showconfig.cc, src/sid.cc, src/sid.h, src/sid_list.h, 1167 src/sl-merge.h, src/stack.h, src/sysdep.h, src/unget.cc, 1168 src/val.cc, src/valcodes.h, src/version.h, src/what.cc, 1169 src/writesubst.cc, testutils/compare_gets.sh, 1170 testutils/condense-valgrind.pl, testutils/decompress_stdin.sh.in, 1171 testutils/ekko.c, testutils/gcov-util.sh, testutils/last-time.c, 1172 testutils/lndir.c, testutils/lndir.man, testutils/mogrify.awk, 1173 testutils/realpwd.cc, testutils/seeker.c, testutils/user.c, 1174 testutils/uu_decode.c, testutils/yammer.c, testutils/yes.c, 1175 unit-tests/Makefile.am, unit-tests/get-gtest.sh, 1176 unit-tests/test_bigfile.cc, unit-tests/test_delta-table.cc, 1177 unit-tests/test_delta.cc, unit-tests/test_encoding.cc, 1178 unit-tests/test_encoding2.cc, unit-tests/test_mylist.cc, 1179 unit-tests/test_myset.cc, unit-tests/test_rel_list.cc, 1180 unit-tests/test_release.cc, unit-tests/test_relvbr.cc, 1181 unit-tests/test_sccsdate.cc, unit-tests/test_sid.cc, 1182 unit-tests/test_sid_list.cc, unit-tests/test_stack.cc: Remove 1183 trailing blanks. 1184 1185 Eliminate some syntax-check warnings. 1186 * testutils/yes.c (main): Don't #define EXIT_FAILURE. 1187 * docs/borrowed-files.txt: Remove trailing blanks. 1188 * bsd/sccs.c: Don't define WEXITSTATUS, sys/wait.h does that. 1189 * tests/common/command-names: Convert TABs to spaces to avoid 1190 syntax-check warnings. 1191 11922010-05-14 James Youngman <jay@gnu.org> 1193 1194 Don't configure in unit-tests/googletest, it's gone. 1195 * configure.ac: remove call to 1196 AC_CONFIG_SUBDIRS(unit-tests/googletest). 1197 1198 Disable pthread support (since we don't use pthreads). 1199 * unit-tests/Makefile.am (AM_CPPFLAGS): Pass -DGTEST_HAS_PTHREAD=0. 1200 * configure.ac: Don't include 1201 unit-tests/googletest/m4/acx_pthread.m4. Remove --with-pthreads. 1202 * gl/lib/.gitignore: Remove gnulib.mk, dummy.c. 1203 1204 Update Google C++ Test Framework version at bootstrap time. 1205 * bootstrap.conf (bootstrap_epilogue): call get-gtest.sh at 1206 bootstrap time. 1207 1208 * unit-tests/get-gtest.sh: Use svn's --non-interactive option. 1209 1210 Configure and build googletest in our own configure/Makefile. 1211 * unit-tests/Makefile.am: Build the Google C++ Testing Framework 1212 code in this Makefile rather than forcing it to have its own 1213 configure. 1214 (EXTRA_DIST): Distribute the googletest copyright notice 1215 etc. too. 1216 (gtest_headers): List all the header files. 1217 (libgtest_a_SOURCES): List the source files separately, and the 1218 header files. 1219 (libgtest_main_a_SOURCES): List the header files too. 1220 * bootstrap.conf (bootstrap_epilogue): googletest now has no 1221 separate configure step, so no need to bootstrap in that directory 1222 either. 1223 * unit-tests/get-gtest.sh: Script for checking out the google unit 1224 test code. 1225 1226 Move googletest to unit-tests/googletest. 1227 * unit-tests/Makefile.am (SUBDIRS): Recurse into googletest. 1228 Update paths to liibgtest.la. 1229 * bootstrap.conf (bootstrap_epilogue): bootstrap in uni-tests/googletest. 1230 * configure.ac: Configure in unit-tests/googletest. 1231 * Makefile.am (SUBDIRS): Remove googletest (since we moved it). 1232 * googletest/*: move to unit-tests/googletest/. 1233 1234 Remove some redundant scripts and .cvsignore files. 1235 * scripts/rev-freq.sh: Remove unused file. 1236 * show-disp.sh: Remove unused file. 1237 * scripts/change-suffix: Remove unused file. 1238 * .cvsignore, auxfiles/.cvsignore, bsd/.cvsignore, 1239 docs/.cvsignore, sccs-cgi/.cvsignore, tests/.cvsignore, 1240 testutils/.cvsignore, unused/.cvsignore: Remove unused files. 1241 1242 Move CSSC source code to src/ subdirectory. 1243 * configure.ac: move CSSC source to subdirectory src/. 1244 * Makefile.am: rename to src/Makefile.am. The remaining makefile 1245 just sets SUBDIRS and EXTRA_DIST. 1246 * admin.cc: moved to src/admin.cc 1247 * bodyio.cc: moved to src/bodyio.cc 1248 * bodyio.h: moved to src/bodyio.h 1249 * canonify.cc: moved to src/canonify.cc 1250 * cap.cc: moved to src/cap.cc 1251 * cdc.cc: moved to src/cdc.cc 1252 * cleanup.h: moved to src/cleanup.h 1253 * cssc-assert.h: moved to src/cssc-assert.h 1254 * cssc.h: moved to src/cssc.h 1255 * defaults.h: moved to src/defaults.h 1256 * delta-iterator.cc: moved to src/delta-iterator.cc 1257 * delta-iterator.h: moved to src/delta-iterator.h 1258 * delta-table.cc: moved to src/delta-table.cc 1259 * delta-table.h: moved to src/delta-table.h 1260 * delta.cc: moved to src/delta.cc 1261 * delta.h: moved to src/delta.h 1262 * dtbl-prepend.cc: moved to src/dtbl-prepend.cc 1263 * encoding.cc: moved to src/encoding.cc 1264 * environment.cc: moved to src/environment.cc 1265 * except.h: moved to src/except.h 1266 * fatalsig.cc: moved to src/fatalsig.cc 1267 * fdclosed.cc: moved to src/fdclosed.cc 1268 * file.cc: moved to src/file.cc 1269 * file.h: moved to src/file.h 1270 * filediff.cc: moved to src/filediff.cc 1271 * filediff.h: moved to src/filediff.h 1272 * fileiter.cc: moved to src/fileiter.cc 1273 * fileiter.h: moved to src/fileiter.h 1274 * filelock.h: moved to src/filelock.h 1275 * filepos.h: moved to src/filepos.h 1276 * fnsplit.cc: moved to src/fnsplit.cc 1277 * get.cc: moved to src/get.cc 1278 * ioerr.h: moved to src/ioerr.h 1279 * l-split.cc: moved to src/l-split.cc 1280 * linebuf.cc: moved to src/linebuf.cc 1281 * linebuf.h: moved to src/linebuf.h 1282 * my-getopt.cc: moved to src/my-getopt.cc 1283 * my-getopt.h: moved to src/my-getopt.h 1284 * mylist.h: moved to src/mylist.h 1285 * myset.h: moved to src/myset.h 1286 * mystring.h: moved to src/mystring.h 1287 * pf-add.cc: moved to src/pf-add.cc 1288 * pf-del.cc: moved to src/pf-del.cc 1289 * pfile.cc: moved to src/pfile.cc 1290 * pfile.h: moved to src/pfile.h 1291 * prompt.cc: moved to src/prompt.cc 1292 * prs.cc: moved to src/prs.cc 1293 * prt.cc: moved to src/prt.cc 1294 * quit.cc: moved to src/quit.cc 1295 * quit.h: moved to src/quit.h 1296 * rel_list.cc: moved to src/rel_list.cc 1297 * rel_list.h: moved to src/rel_list.h 1298 * release.h: moved to src/release.h 1299 * relvbr.h: moved to src/relvbr.h 1300 * rl-merge.cc: moved to src/rl-merge.cc 1301 * rmdel.cc: moved to src/rmdel.cc 1302 * run.cc: moved to src/run.cc 1303 * run.h: moved to src/run.h 1304 * sact.cc: moved to src/sact.cc 1305 * sccs-delta.cc: moved to src/sccs-delta.cc 1306 * sccsdate.cc: moved to src/sccsdate.cc 1307 * sccsdate.h: moved to src/sccsdate.h 1308 * sccsdiff.sh.in: moved to src/sccsdiff.sh.in 1309 * sccsfile.cc: moved to src/sccsfile.cc 1310 * sccsfile.h: moved to src/sccsfile.h 1311 * sccsname.cc: moved to src/sccsname.cc 1312 * sccsname.h: moved to src/sccsname.h 1313 * seqstate.cc: moved to src/seqstate.cc 1314 * seqstate.h: moved to src/seqstate.h 1315 * sf-add.cc: moved to src/sf-add.cc 1316 * sf-admin.cc: moved to src/sf-admin.cc 1317 * sf-cdc.cc: moved to src/sf-cdc.cc 1318 * sf-chkid.cc: moved to src/sf-chkid.cc 1319 * sf-chkmr.h: moved to src/sf-chkmr.h 1320 * sf-delta.cc: moved to src/sf-delta.cc 1321 * sf-get.cc: moved to src/sf-get.cc 1322 * sf-get2.cc: moved to src/sf-get2.cc 1323 * sf-get3.cc: moved to src/sf-get3.cc 1324 * sf-kw.cc: moved to src/sf-kw.cc 1325 * sf-prs.cc: moved to src/sf-prs.cc 1326 * sf-prt.cc: moved to src/sf-prt.cc 1327 * sf-rmdel.cc: moved to src/sf-rmdel.cc 1328 * sf-val.cc: moved to src/sf-val.cc 1329 * sf-write.cc: moved to src/sf-write.cc 1330 * showconfig.cc: moved to src/showconfig.cc 1331 * sid.cc: moved to src/sid.cc 1332 * sid.h: moved to src/sid.h 1333 * sid_list.h: moved to src/sid_list.h 1334 * sl-merge.h: moved to src/sl-merge.h 1335 * stack.h: moved to src/stack.h 1336 * sysdep.h: moved to src/sysdep.h 1337 * unget.cc: moved to src/unget.cc 1338 * val.cc: moved to src/val.cc 1339 * valcodes.h: moved to src/valcodes.h 1340 * version.cc.in: moved to src/version.cc.in 1341 * version.h: moved to src/version.h 1342 * what.cc: moved to src/what.cc 1343 * writesubst.cc: moved to src/writesubst.cc 1344 * unit-tests/Makefile.am (LDADD): Fix relative path 1345 of libcssc.a. 1346 (test_bigfile_LDADD): Likewise. 1347 (AM_CPPFLAGS): Fix relative path to the include files. 1348 * tests/common/command-names (dir): Update relative path to the binaries. 1349 (sccsprog): Set a variable for the path to the sccs binary. 1350 (sccs): Correct the sccs command (use ${sccsprog}). 1351 13522010-05-13 James Youngman <jay@gnu.org> 1353 1354 Fix some compiler warnigns about shadowing names or integer conversions. 1355 * sf-delta.cc (add_delta): Rename some variables to avoid 1356 shadowing class members or other local variables.n 1357 * sf-prs.cc (get): Likewise. 1358 (print_delta): Likewise. 1359 (prs): Likewise. 1360 * sf-cdc.cc (cdc): Rename parameters to avoid shadowing the names 1361 of class members. 1362 * sf-admin.cc (admin): Remove unused variable which was causing 1363 shadowing warnings. 1364 * sccsdate.cc (sccs_date): Avoid warning about implicit cast from 1365 int to char, by using an explicit cast. 1366 * linebuf.cc (read_line): Avoid a compiler warning: explicitly 1367 cast the length parameter passed to fgets from size_t to int. 1368 * fileiter.h (s): Correct the type of pos (it's in index into 1369 mylist<mystring>, so use mylist<mystring>::size_type). 1370 * cdc.cc (plural): Fix warning about type conversion in call to plural(). 1371 * fileiter.cc (sccs_file_iterator): Avoid shadowoing a class member. 1372 * what.cc (xread): return ssize_t rather than int. 1373 (main): store the result of xread in a ssize_t variable, not an int. 1374 1375 Fix more compiler warnings. 1376 * sf-val.cc (validate_seq_lists): Use size_type for indexes into mylist, 1377 not int. 1378 (validate): Likewise. 1379 * sf-prs.cc (print_seq_list): Likewise. 1380 (print_string_list): Likewise. 1381 * sf-cdc.cc (inlist): Likewise. 1382 (process_mrs): Likewise. 1383 (sccs_file::cdc): Likewise. 1384 * sf-rmdel.cc (is_seqlist_member): Likewise. 1385 * sf-prt.cc (print_string_list): Likewise. 1386 (print_seq_list): Likewise. 1387 * delta.cc (delta_main): Make static. 1388 * sf-get2.cc (test_locks): Avoid shadowing a class member. 1389 * get.cc (print_id_list): Use size_type for indexes into mylist, 1390 not int. 1391 * showconfig.cc: Include version.h for the declarations of 1392 functions in this module. 1393 * quit.cc (v_errormsg_with_errno): Make static; nobody else uses it. 1394 * fnsplit.cc: Include file.h for declaration of split_filename, 1395 since we define it in this file. 1396 * sccsdate.cc (count_digits): Avoid casting argument of is_digit 1397 to unsigned char, since is_digit takes a char. 1398 * sid.cc (matches): Be more explicit about avoidingn signed overflow. 1399 1400 Fix warnings in file.cc. 1401 * file.cc (maybe_wait_a_bit): Fix type of first parameter to avoid 1402 a compiler warning. Also type of argument to sleep. 1403 (eaccess): Remove unused function. 1404 (unlink_file_if_present): Remove unused function. 1405 (create): Make this function static. 1406 1407 Fix some more compiler warnings. 1408 * bodyio.cc (body_insert_binary): Explicitly qualify 1409 ::check_id_keywords as being in the global namespace. 1410 * run.cc (operator+=): Change type of index variables to size_type 1411 to fix a compiler warning. 1412 (run_mr_checker): Likewise. 1413 * sf-write.cc (print_seqs): Likewise. 1414 (write_delta): Likewise. 1415 (rehack_encoded_flag): Avoid shadowing the name of a class member. 1416 * sccsfile.cc: Remove unused macro 'f'. 1417 (strict_atoul_idu): Remove unused variable 'c'. 1418 (read_line_param): Avoid shadowing the name of a class member. 1419 * rel_list.h (class release_list): Define typedef size_type. 1420 * rel_list.cc (member): Use size_type for index variables to avoid 1421 (justified) compiler warnings. 1422 (print): Likewise. 1423 * fileiter.cc (sccs_file_iterator): Use size_t to represent the 1424 result of strlen, not int. 1425 * file.cc (is_writable): Make static, it's not used elsewhere. 1426 (old_is_writable): Unused; remove. 1427 1428 * sf-chkid.cc (check_id_keywords): Assume we have memchr. Avoid 1429 possible access beyond the end of the string. 1430 * sf-kw.cc (no_id_keywords): Avoid shadowing the name of a class 1431 member. 1432 (check_keywords_in_file): Likewise. 1433 * l-split.cc: #include "sccsfile.h" to get declarations of the 1434 functions in this file. 1435 1436 Fix or minimise some compiler warnings. 1437 * sid_list.h (range_list): Avoid long-to-size_t compiler warning. 1438 * encoding.cc (encode): Move the function definition here from 1439 bodyio.h since it's only used in this file. 1440 (decode): Likewise. 1441 (decode_line): Be more explicit about casts between char and 1442 size_t in order to avoid compiler warnings. 1443 (encode_line): Likewise. 1444 * bodyio.h: Remove bodies of encode() and decode(). Declare 1445 encode and decode so that unit-tests/test_encoding can execute 1446 them. 1447 * sf-get3.cc (authorised): Change the types of 'len' and 'i' from 1448 int to size_type, because they are offsets into a list. Add FIXME 1449 comment for use of atoi. 1450 * bodyio.cc (body_insert_binary): Change the type of 'len' from 1451 int to size_t, because it is a length. 1452 1453 Separate EOF detection from SCCS-line-type detection. 1454 * sccsfile.h (sccs_file::read_line): Change prototype to separate 1455 EOF detection from detection of what type of line we just read. 1456 * sccsfile.cc (read_line): Update the implementation to match. 1457 (read_delta): Update caller. 1458 (sccs_file): Update caller. 1459 * sf-delta.cc (add_delta): Update caller. 1460 * sf-get.cc (get): Update caller. 1461 * sf-prs.cc (print_delta): Update caller. 1462 * sf-rmdel.cc (rmdel): Update caller. 1463 1464 Avoid issuing warnings for things in system headers. 1465 * configure.ac: Disable warnigns for system headers. 1466 1467 Fix some commpiler warnings. 1468 * bodyio.h (decode_line): return size_t, not int, for a length. 1469 (encode_line): take a size_t parameter, not int, for a length. 1470 * encoding.cc (decode_line): Use a size_t value for offsets in the 1471 buffer. 1472 * bodyio.cc (body_insert_text): Add casts where we know 1473 conversions are safe to avoid compiler warnings. 1474 (copy_data): Mark as a static function. 1475 14762010-05-12 James Youngman <jay@gnu.org> 1477 1478 Remove unused file list.cc. 1479 * Makefile.am (EXTRA_DIST): Remove list.cc, since it is unused. 1480 * list.cc: Delete. 1481 1482 Prune obsolete items in docs/TODO. 1483 * docs/TODO: Tests for sact and val exist. Remove that TODO item. 1484 1485 Some TODO housekeeping. 1486 * sf-prs.cc (print_delta): Explain more clearly what get do for 1487 :BD: in prs if we fail to seek to the body. 1488 * sccsfile.h (s): Add TODO comment suggesting we use something 1489 more efficient than mylist<string> for authoried users. 1490 (sccs_file::admin): Likewise for set_flags and unset_flags 1491 parameters to this method. 1492 1493 Remove mylist_delta_list; use more appropriate types for 1494 loop/length variables. 1495 * delta-table.h (mylist_delta_list::build_seq_table): Use more 1496 appropriate (i.e. matching) types for loop variables. 1497 Get rid of mylist_delta_list and abstract_delta_list. 1498 * delta-table.cc (delta_at_seq_exists): There is no need for a 1499 const qualifier for a bool return type; remove it. 1500 (next_seqno): Just increment the result rather than adding an 1501 unsigned int, as this simplifies the type combination. 1502 * sf-get.cc (prepare_seqstate_1): Use size_type types for indexes and 1503 length variables. 1504 1505 Use mylist<T>::size_type instead of int. 1506 * mylist.h (mylist): Introduce size_type, and use it in method 1507 parameters. 1508 * rl-merge.cc (merge): Use mylist<release>::size_type. 1509 1510 Avoid a 'local variable shadows class member' warning. 1511 * delta-table.h (abstract_delta_list): Avoid having a local shadow 1512 an instance variable, by renaming the local. 1513 1514 Weed out some warning options that make sense for C but not C++. 1515 * configure.ac (UNWANTED_WARNINGS): remove a bunch of warning 1516 options that don't make sense for C++. 1517 1518 Remove rundundant call to AC_PROG_RANLIB. 1519 * configure.ac: Don't call AC_PROG_RANLIB since we're using libtool. 1520 1521 Make more uses of sccs_pfile const (now that iterating won't 1522 mutate it). 1523 * pfile.h (sccs_pfile::find_locked): Make const. 1524 (sccs_pfile::is_locked): Make const. 1525 (sccs_pfile::find_to_be_created): Make const. 1526 (sccs_pfile::is_to_be_created): Make const. 1527 (sccs_pfile::print_lock_sid): Make const. 1528 (sccs_pfile::update): Make const. 1529 * pfile.cc (sccs_pfile::find_locked): Make const. 1530 (find_to_be_created): Make const. 1531 (print_lock_sid): Make const. 1532 * pf-del.cc (sccs_pfile::update): Make const. 1533 1534 Make some references to sccs_pfile const now that iterating 1535 doesn't mutate. 1536 * sccsfile.h (sccs_file::find_next_sid): take a const reference to 1537 sccs_pfile, since iterating over a sccs_pfile no longer needs to 1538 mutate the container. 1539 (sccs_file::sid_in_use): Likewise. 1540 * sf-get2.cc (sid_in_use): Make the corresponding change in the 1541 implementation. 1542 (find_next_sid): Likewise. 1543 1544 Remove the built-in sccs_pfile iterator. Use an STL iterator. 1545 * pfile.h (sccs_pfile::edit_locks): change type from 1546 mylist<edit_lock> to std::list<edit_lock> and remove the built-in 1547 iterator. 1548 (sccs_pfile::find_sid): Since there is no built-in iterator, 1549 return the position of the lock we found as the second half of a 1550 pair. 1551 * pf-del.cc (find_sid): Make the corresponding change to the 1552 implementation. 1553 (update): Use the STL iterator rather than sccs_pfile::pos. 1554 * delta.cc (delta_main): Update to the new signature of 1555 sccs_pfile::find_sid. 1556 * pfile.cc (sccs_pfile::sccs_pfile): Remove pos. 1557 (sccs_pfile): Use list::push_back() instead of mylist::add(). 1558 (find_to_be_created): Rename from is_to_be_created. Use the STL 1559 iterator. 1560 (find_locked): Rename from is_locked. Use the STL iterator. 1561 (print_lock_sid): Since there is no built-in position, take a 1562 const_iterator as an argument. 1563 * pf-add.cc (add_lock): Use list::empty() instead of 1564 checking mylist::length() for zero-ness. 1565 (add_lock): Use list::push_back() instead of mylist::add(). 1566 * rmdel.cc (is_locked): Use the STL iterator over sccs_pfile. 1567 * sact.cc (main): Likewise. 1568 * sccsfile.h (s): Now that iterating over the locks is not a 1569 mutating operation on sccs_pfile, sccsfile::test_locks can take a 1570 const reference to the sccs_pfile. 1571 (add_delta): Since there is no built-in iteration position in 1572 sccs_pfile, we also need to pass in an iterator. 1573 Also #include pfile.h for sccs_pfile::iterator. 1574 1575 * sf-delta.cc (add_delta): Make the correspondingn change to the 1576 implementation of sccs_file::add_delta. 1577 * sf-get2.cc (sid_in_use): Use an STL iterator. 1578 * unget.cc (main): Adapt to the new signature of 1579 sccs_pfile::find_sid. 1580 15812010-05-11 James Youngman <jay@gnu.org> 1582 1583 Fix some compilation warnings for val.o. 1584 * sccsfile.h (subst_parms::subst_parms): Change the type of the 1585 'l' parameter to avoid type conversion in the constructor. 1586 * configure.ac (UNWANTED_WARNINGS): we don't want -Wnested-externs 1587 since that is only useful for Objective C, which we are not using. 1588 * release.h (release::operator unsigned long): Ass that the data is 1589 non-negative before casting it. Include cssc-assert.h. 1590 15912010-05-09 James Youngman <jay@gnu.org> 1592 1593 Update to the current version of the Google C++ Testing Framework. 1594 * bootstrap.conf (bootstrap_epilogue): Run autotools in 1595 ./googletest once we're done bootstrapping in the top-level 1596 directory. 1597 * googletest/*: update to version 424 of the Google C++ Testing 1598 Framework. 1599 16002010-05-06 James Youngman <jay@gnu.org> 1601 1602 Mention some recent changes. 1603 * NEWS: Mention some recent changes. 1604 1605 Various updates in docs/* 1606 * docs/patches.txt: Modernise the diff-preparation instructions 1607 (to ask people to use git). 1608 * docs/Platforms: Mention the recent versions of Debian we've 1609 tested on. Change configure.in to configure.ac. Indicate that 1610 CSSC is known to work with GCC 4.4. 1611 * docs/FIXED: Remove. 1612 * docs/Makefile.am (EXTRA_DIST): Don't distribute docs/FIXED. 1613 * auxfiles/CSSC.spec.in (%files): Remove docs/FIXED. 1614 * docs/borrowed-files.txt: Mention that bootstrap is taken from 1615 coreutils. Mention that the GPL version is now 3. Don't mention 1616 -unused/move-if-change, since we removed it. 1617 16182010-05-05 James Youngman <jay@gnu.org> 1619 1620 Use the correct type in calls to release::release(). 1621 * sccsfile.cc (sccs_file): release floor and ceiling should be 1622 initialised from shorts not ints. 1623 * sf-admin.cc (admin): Likewise. 1624 1625 Make "make"'s idea of the m4 macro directory consistent with "bootstrap" 1626 * Makefile.am (ACLOCAL_AMFLAGS): m4 files are in ./m4. This is 1627 now consistent with what "bootstrap" thinks. 1628 * configure.ac: Likewise. 1629 1630 Fix a number of compiler warnings. 1631 * mylist.h (mylist): mylist::operator=() should return a reference 1632 to *this, so change it so that it does. 1633 (mylist): Make mylist::length() return a size_t rather than an int. 1634 * delta.h (delta::delta): List the initalisers in the order they 1635 are actually performed. 1636 * defaults.h (NORETURN): Don't define "NORETURN" to "volatile void". 1637 * configure.ac: Disable warnings about aggregate return types and 1638 missed inlined opportunities. 1639 * release.h (release::release(int)): Change parameter to a short 1640 int instead to avoid an implicit conversion. 1641 * relvbr.h (relvbr::relvbr): initialise from short ints, not 1642 regular ints, to avoid implicit casts. 1643 * sccsname.h (sccsname::valid): Avoid cast from size_t to int by 1644 changing the return type from int to bool. 1645 16462010-05-03 James Youngman <jay@gnu.org> 1647 1648 Enable many compiler warnings. 1649 * bootstrap.conf (gnulib_modules): Add warnings and manywarnings. 1650 * Makefile.am: Add WARN_CFLAGS to AM_CXXFLAGS. 1651 * configure.ac: Enable all the warnings available from 1652 gl_MANYWARN_ALL_GCC, except -Wundef -Wpadded -Wredundant-decls. 1653 1654 Assume the availability of strerror. 1655 * configure.ac: Don't check header files for declarations of 1656 sys_nerr or sys_errlist, since we no longer need those. 1657 1658 * quit.cc (print_err): Assume strerror is available. 1659 Don't include sysnerr.h. 1660 * Makefile.am (noinst_HEADERS): Remove sysnerr.h. 1661 * sysnerr.h: Delete. 1662 1663 Don't declare rename, remove. Include <cstdio> where we use it. 1664 * file.h: Avoid declaring rename and remove. 1665 * version.h: Include <cstdio> 1666 * prompt.cc: Likewise. 1667 * environment.cc: Likewise. 1668 * linebuf.cc: Likewise. 1669 * quit.cc: Likewise. 1670 * fileiter.cc: Likewise. 1671 * run.cc: Likewise. 1672 * showconfig.cc: Include <cstdio>. Update copyright year. 1673 1674 Avoid #if defined(FOO), use #if defined FOO instead. 1675 * .x-sc_useless_cpp_parens: Exempt files in the Google C++ Testing 1676 Framework. 1677 Also exempt ekko.c, since it's better to preserve the similarity 1678 with the code it was originally taken from. 1679 * defaults.h: Avoid #if defined(FOO), use #if defined FOO 1680 instead. 1681 * cssc.h: Likewise. 1682 * file.cc: Likewise. 1683 * filelock.h: Likewise. 1684 * quit.cc: Likewise. 1685 * quit.h: Likewise. 1686 * run.cc: Likewise. 1687 * run.h: Likewise. 1688 * sccsfile.cc: Likewise. 1689 * sf-write.cc: Likewise. 1690 * sysdep.h: Likewise. 1691 1692 Exempt programs that don't use error() from using error(). 1693 * .x-sc_unmarked_diagnostics: Exempt sccs.cgi and what.cc. 1694 1695 Skip sc_two_space_separator_in_usage for things that aren't code. 1696 * .x-sc_two_space_separator_in_usage: Don't check docs/Platforms, 1697 it's not a program. 1698 1699 Skip trailing-blank check, there are too many violations for now. 1700 * .x-sc_trailing_blank: Skip this test. 1701 1702 Correct "the the" to "the". 1703 * get.cc (main): correct "the the" to "the". 1704 * sf-prs.cc: Likewise. 1705 * docs/cssc.texi (@copying): Likewise. 1706 (Top): Likewise. 1707 (Delta Table): Likewise. 1708 (PROJECTDIR): Likewise. 1709 * .x-sc_the_the: Exempt googletest/src/gtest.cc. 1710 1711 Pacify the sc_makefile_TAB_only_indentation syntax check. 1712 * tests/Makefile.am: Replaced sequences of 8 spaces with a single 1713 TAB. 1714 1715 Remove obsolete replacements for missing library files. 1716 * strerror.c: Remove obsolete file. 1717 * strstr.c: Remove obsolete file. 1718 * configure.ac: Don't refer to strerror or strstr via 1719 AC_REPLACE_FUNCS. 1720 1721 Remove space-tab sequences. 1722 * .x-sc_space_tab: Exempt NEWS, ChangeLog files and 1723 tests/prt/all.expected.Z 1724 * docs/Platforms: Avoid space-tab sequences. 1725 * docs/TODO: Likewise. 1726 * docs/tests-todo.txt: Likewise. 1727 * pfile.h: Likewise. 1728 * sccsfile.cc: Likewise. 1729 * tests/Makefile.am: Likewise. 1730 * tests/common/test-common: Likewise. 1731 * tests/admin/flags.sh: Likewise. 1732 * tests/binary/auto.sh: Likewise. 1733 * tests/binary/binbasic.sh: Likewise. 1734 * unit-tests/test_bigfile.cc: Likewise. 1735 * unit-tests/test_myset.cc: Likewise. 1736 * tests/admin/locks.sh: Likewise. 1737 * tests/delta/nulldelta.sh: Likewise. 1738 * tests/delta/basic.sh: Likewise. 1739 * tests/delta/MRs.sh: Likewise. 1740 1741 Remove unused source files. 1742 * rename.c: Remove unused file. 1743 * remove.c: Remove unused file. 1744 * configure.ac: Don't refer to these files with AC_REPLACE_FUNCS. 1745 1746 Fix lint errors caused by failure to include <config.h>. 1747 * testutils/yes.c: Include <config.h> instead of "config.h". 1748 * testutils/ekko.c: Likewise. 1749 * testutils/lndir.c: Likewise. 1750 * testutils/seeker.c: Likewise. 1751 * testutils/user.c: Likewise. 1752 * testutils/uu_decode.c: Likewise. 1753 * testutils/yammer.c: Likewise. 1754 * testutils/last-time.c: Include <config.h> 1755 * rename.c: Likewise. 1756 * remove.c: Likewise. 1757 1758 Avoid non-portable [ x -a y ] test usage. 1759 * scripts/rev-freq.sh (scale): Change [ x -a y ] to [ x ] && [ y ]. 1760 * tests/make-links (common_files): Likewise. 1761 1762 Exempt ourselves from SRTEQ for all C and C++ files. 1763 * .x-sc_prohibit_strcmp: We don't want to use STREQ, so suppress 1764 this warning for C and C++ files. 1765 1766 Ignore existing instances of magic contstants in calls to exit. 1767 * .x-sc_prohibit_magic_number_exit: Ignore existing instances of 1768 magic contstants in calls to exit. 1769 1770 Remove trailing blank lines. 1771 * tests/admin/Makefile.am: Remove trailing blank lines. 1772 * tests/admin/abspath.sh: Likewise. 1773 * tests/admin/flags.sh: Likewise. 1774 * tests/admin/hardlinks.sh: Likewise. 1775 * tests/admin/i-option.sh: Likewise. 1776 * tests/admin/init-mr.sh: Likewise. 1777 * tests/admin/locks.sh: Likewise. 1778 * tests/admin/r-option.sh: Likewise. 1779 * tests/admin/t-option.sh: Likewise. 1780 * tests/admin/users.sh: Likewise. 1781 * tests/admin/y-flag.sh: Likewise. 1782 * tests/binary/auto.sh: Likewise. 1783 * tests/binary/binbasic.sh: Likewise. 1784 * tests/binary/diff.sh: Likewise. 1785 * tests/bsd-sccs/driver-basic.sh: Likewise. 1786 * tests/cdc/1general.sh: Likewise. 1787 * tests/cdc/2comment.sh: Likewise. 1788 * tests/cdc/3MRs.sh: Likewise. 1789 * tests/cdc/4order.sh: Likewise. 1790 * tests/common/not-root: Likewise. 1791 * tests/delta/MRs.sh: Likewise. 1792 * tests/delta/Makefile.am: Likewise. 1793 * tests/delta/basic.sh: Likewise. 1794 * tests/delta/errorcase.sh: Likewise. 1795 * tests/delta/nulldelta.sh: Likewise. 1796 * tests/delta/options.sh: Likewise. 1797 * tests/get/branch.sh: Likewise. 1798 * tests/get/create.sh: Likewise. 1799 * tests/get/defsid.sh: Likewise. 1800 * tests/get/errorcases.sh: Likewise. 1801 * tests/get/gg_get_ix.sh: Likewise. 1802 * tests/get/optorder.sh: Likewise. 1803 * tests/get/writable.sh: Likewise. 1804 * tests/initial/root.sh: Likewise. 1805 * tests/large/admin.sh: Likewise. 1806 * tests/make-links: Likewise. 1807 * tests/prs/Makefile.am: Likewise. 1808 * tests/prs/s_foo_bd_output.txt: Likewise. 1809 * tests/prt/TODO: Likewise. 1810 * tests/prt/all-512.sh: Likewise. 1811 * tests/prt/reportmr.sh: Likewise. 1812 * tests/rmdel/basic.sh: Likewise. 1813 * tests/rmdel/edit.sh: Likewise. 1814 * tests/sccsdiff/rap.sh: Likewise. 1815 * tests/unget/Makefile.am: Likewise. 1816 * tests/unget/exists.sh: Likewise. 1817 * tests/unget/output.sh: Likewise. 1818 * tests/val/Makefile.am: Likewise. 1819 * tests/what/Makefile.am: Likewise. 1820 * testutils/compare_gets.sh: Likewise. 1821 * testutils/last-time.c: Likewise. 1822 * testutils/lndir.c: Likewise. 1823 * testutils/realpwd.cc: Likewise. 1824 * testutils/user.c: Likewise. 1825 * testutils/uu_decode.c: Likewise. 1826 * testutils/yes.c: Likewise. 1827 * unit-tests/test_delta-table.cc: Likewise. 1828 * unit-tests/test_encoding2.cc: Likewise. 1829 * unit-tests/test_mylist.cc: Likewise. 1830 * unit-tests/test_sccsdate.cc: Likewise. 1831 * unit-tests/test_sid_list.cc: Likewise. 1832 * version.cc.in: Likewise. 1833 * version.h: Likewise. 1834 * AUTHORS: Likewise. 1835 * sid_list.h: Likewise. 1836 * tests/README: Likewise. 1837 * sid.h: Likewise. 1838 * seqstate.h: Likewise. 1839 * sccsdiff.sh.in: Likewise. 1840 * remove.c: Likewise. 1841 * bsd/sccs.c: Likewise. 1842 * bsd/Makefile.bsd: Likewise. 1843 * delta.cc: Likewise. 1844 * rel_list.h: Likewise. 1845 * release.h: Likewise. 1846 * docs/style.txt: Likewise. 1847 * docs/config-info.texi.in: Likewise. 1848 * docs/URLs: Likewise. 1849 * docs/Platforms: Likewise. 1850 * .x-sc_prohibit_empty_lines_at_EOF: Ignore trailing blank lines 1851 at EOF for files in the Google C++ Testing Framework. 1852 1853 Add temporary exceptions for atoi checks. 1854 * .x-sc_prohibit_atoi_atof: Temporary exemption for files where we 1855 still use atoi() and so on. Ignore atoi in ChangeLog. 1856 1857 Don't configure separately in testutils. 1858 * testutils/ekko.c: Include "config.h", don't use include guards. 1859 * testutils/lndir.c: Include "config.h", don't use include guards. 1860 (dodir): Don't use NAMLEN (since the replacement dirent.h does not 1861 define it). 1862 * testutils/seeker.c: Remove useless HAVE_FOO_H checks. Assume 1863 fseek is available (gnulib provides it). 1864 * testutils/user.c: Remove useless HAVE_FOO_H checks. 1865 * testutils/uu_decode.c: Remove useless HAVE_FOO_H checks. 1866 * testutils/yammer.c: Likewise. 1867 * testutils/yes.c: Likewise. 1868 * testutils/realpwd.cc: Likewise. 1869 * gl/lib/.gitignore: Ignore fseek.c, fseeko.c, lseek.c, stdio-impl.h. 1870 * testutils/configure.ac: Delete. 1871 * testutils/NEWS: Delete. 1872 * testutils/AUTHORS: Delete. 1873 * testutils/COPYING: Delete. 1874 * testutils/ChangeLog: Delete. 1875 * testutils/INSTALL: Delete. 1876 * configure.ac: Don't run configure in ./testutils. 1877 AC_CONFIG_FILES: generate testutils/Makefile. 1878 * bootstrap.conf (gnulib_modules): Use the fseek module. 1879 * testutils/Makefile.am: Search for headers and libraries in ../gl/lib. 1880 18812010-05-02 James Youngman <jay@gnu.org> 1882 1883 Remove redundant inclusion guards for unistd.h and string.h. 1884 * configure.ac: When deciding whether or not _POSIX_SAVED_IDS is 1885 defined, include unistd.h unconditionally, since if the inclusion 1886 fails, the answer will still be no. 1887 * cssc.h: Don't use ifdef HAVE_UNISTD_H. Since we're using 1888 gnulib's unistd.h module, we will be able to include <unistd.h> 1889 unconditionally. 1890 * rename.c: Likewise. 1891 * remove.c: Likewise. 1892 * strstr.c: Likewise for HAVE_STRING_H and <string.h>, since the 1893 latter is provided by gnulib's string module. 1894 1895 Disable some spurious errors about failure to call set_program_name. 1896 * .x-sc_program_name: Don't require the test tools to call 1897 set_program_name, since they don't link with gnulib. 1898 1899 Use the gnulib module progname. 1900 * bsd/sccs.c: Include progname.h. 1901 Remove unused variable MyName. 1902 (show_version): Use program_name not MyName. 1903 (usage): Likewise. 1904 (callprog): Likewise. 1905 (usrerr): Likewise. 1906 (syserr): Likewise. 1907 (main): Call set_program_name. 1908 1909 * bsd/Makefile.am: Link against gnulib. 1910 * bootstrap.conf (gnulib_name): Give the gnulib library a sensible 1911 name (instead of lib.a). 1912 (gnulib_modules): Import the progname module. 1913 * gl/lib/.gitignore: Ignore files from the progname module. 1914 1915 Use $(FOO) in Makefile.am rather than @FOO@. 1916 * tests/Makefile.am: Automake defines $(VALGRIND) from @VALGRIND@ 1917 automatically anyway. 1918 * cfg.mk (_makefile_at_at_check_exceptions): Exempt a couple of 1919 usages by the Google C++ Testing Framework. 1920 * Makefile.am: Use $(LIBOBJS) instead of @LIBOBJS@. 1921 * unit-tests/Makefile.am (AM_LIBS): Likewise for $(PTHREAD_LIBS). 1922 (AM_CXXFLAGS): Likewise for $(PTHREAD_CFLAGS). 1923 1924 Silence an error about m4 quoting in the Google C++ Testing Framework. 1925 * .x-sc_m4_quote_check: Silence error message about insufficient 1926 quoting in googletest/m4/acx_pthread.m4. We do this rather than 1927 fixing the quoting in order to avoid subsequent merge problems and 1928 spurious diffs. 1929 1930 Silence a spurious error about changing old NEWS entries. 1931 * cfg.mk (old_NEWS_hash): Set old_NEWS_hash to the md5sum of a 1932 zero-length input in order to silence a spurious error about 1933 changing old NEWS entries. 1934 1935 Standardise on the use of "file system" rather than "filesystem". 1936 * docs/cssc.texi (Filenames): Spell "filesystem" as "file system", 1937 following the example of the POSIX standard. 1938 * docs/Platforms: Likewise. 1939 * file.cc (atomic_nfs_create): Likewise. 1940 * tests/admin/hardlinks.sh: Likewise. 1941 * tests/admin/.x-sc_file_system: Exempt the Google Unit Test code 1942 from this requirement, since that will make later updates hard to 1943 merge. 1944 Also exempt ChangeLog files. 1945 1946 Ignore some maintainer-makefile lint complaints I don't plan to fix. 1947 * .x-sc_error_message_period: Avoid syntax-check errors for error 1948 messages ending in a full stop. Some error messages contain more 1949 than one sentence. 1950 * .x-sc_error_message_uppercase: Avoid syntax-check errors for 1951 error messages starting with a capital letter. 1952 1953 Fix a maintainer-makefile if-before-free lint issue. 1954 * bsd/sccs.c (set_prefix): Remove useless if-before-free. 1955 1956 Adopt the use of the gnulib maintainer-makefile module. 1957 (gnulib_modules): Add maintainer-makefile. 1958 1959 Update to GNU Free Documentation License, Version 1.3 (from 1.2). 1960 * docs/cssc.texi (@copying): Update from FDL 1.2 to FDL 1.3. 1961 * bootstrap.conf (gnulib_modules): Import module fdl. 1962 1963 * docs/fdl.texi: Symlink to ../gl/doc/fdl.texi. 1964 * NEWS: Mention this change. 1965 1966 Don't create a spurious directory. 1967 * bootstrap.conf (local_gl_dir): Don't create {m4_base}. Create 1968 ${m4_base} instead. 1969 1970 Remove obsolete file gnulib-tests/.gitignore. 1971 * gnulib-tests/.gitignore: Remove. 1972 1973 Clean up core files in the unit test directory. 1974 * unit-tests/Makefile.am (COREFILES): Clean up "vgcore.*" files 1975 for distclean. 1976 * unit-tests/testwrapper.sh.in: Clean up core files once the test 1977 is complete, unless the core file signals a valgrind failure. 1978 Also inhibit core file generation int he first place (though this 1979 probably won't work for valgrind). 1980 19812010-05-01 James Youngman <jay@gnu.org> 1982 1983 Put the gnulib code, etc. into ./gl 1984 * bootstrap.conf (doc_base): Override doc_base, m4_base, 1985 source_base, tests_base, local_gl_dir. 1986 (gnulib_mk): Use Makefile.am, not gnulib.mk. 1987 (gnulib_tool_option_extras): Tests are in gl/tests. 1988 (bootstrap_epilogue): Use gl/tests/Makefile.am, not gnulib-tests/gnulib.mk. 1989 1990 * configure.ac (SUBDIRS): Rename the gnulib source directory from 1991 lib to gl/lib. 1992 (AC_CONFIG_FILES): generate gl/Makefile gl/lib/Makefile 1993 gl/doc/Makefile gl/tests/Makefile. 1994 * Makefile.am (AM_CPPFLAGS): Pass -I gl/lib. 1995 * bsd/Makefile.am (AM_CPPFLAGS): Pass -I ../gl/lib. 1996 1997 Adopt the use of the first gnulib module: dirent. 1998 * gnulib-tests/.gitignore: Ignore gnulib test files (since they're 1999 imported rather than checked into git). 2000 * lib/.gitignore: Ignore gnulib source files (for the same reason). 2001 * configure.ac (AC_CONFIG_FILES): generate lib/Makefile.a 2002 * Makefile.am (SUBDIRS): Add "lib", which is where the gnulib code is. 2003 2004 * bsd/sccs.c: Remove HAVE_XXX_H header guards. 2005 Include dirent-safer.h. Remove the hand-hacked dirent portability 2006 macros (and remove NAMLEN as a side-effect). 2007 (do_clean): Don't assume the NAMLEN macro is defined. 2008 * file.cc: Include dirent-safer.h. Remove the hand-hacked dirent 2009 portability macros (and remove NAMLEN as a side-effect). 2010 (is_directory): Move this function here from fileiter.cc. 2011 * fileiter.cc: Include dirent-safer.h. Remove the hand-hacked 2012 dirent portability macros (and remove NAMLEN as a side-effect). 2013 2014 Show the value of $(VALGRIND) at the start of regression testing. 2015 * tests/Makefile.am (test-initial): echo $(VALGRIND). 2016 2017 Add unit test verifying that we don't read uninitialised data in encode. 2018 * unit-tests/test_encoding2.cc: New unit test file. Verifies that 2019 we don't read uninitialised data when we reach the end of the 2020 encoding input. 2021 * unit-tests/Makefile.am (unit_tests): Add test_encoding2. 2022 2023 Avoid reading uninitialised input. 2024 * encoding.cc (encode_line): Encode the tail of the input without 2025 running over the end of in[]. 2026 2027 Handling of directories in get is mandatory in POSIX, so remove CONFIG_NO_DIRECTORY. 2028 * fileiter.cc: don't define CONFIG_NO_DIRECTORY 2029 (sccs_file_iterator::sccs_file_iterator): don't check CONFIG_NO_DIRECTORY 2030 * fileiter.h (class sccs_file_iterator): Likewise. 2031 * file.cc: don't define CONFIG_NO_DIRECTORY 2032 20332010-04-29 James Youngman <jay@gnu.org> 2034 2035 Delete unused file split.cc. 2036 * split.cc: Delete unused file. 2037 * Makefile.am (libcssc_a_SOURCES): Remove split.cc. 2038 2039 Removed some unused code. 2040 * delta.cc (delta_main): Removed some unused '#if 0' code. 2041 * sf-write.cc (update_checksum): Likewise. 2042 * my-getopt.cc (reorder): Likewise. 2043 * file.cc (file_lock): Likewise. 2044 * sccsname.cc (valid_filename): Likewise. 2045 (create): Likewise. 2046 (sub_file): Likewise. 2047 (make_valid): Likewise. 2048 * seqstate.cc (decide_disposition): Likewise. 2049 * sf-get3.cc (authorised): Likewise. 2050 * sid.cc (invalid_range): Likewise. 2051 * what.cc (main): Likewise. 2052 20532010-04-28 James Youngman <jay@gnu.org> 2054 2055 Use STL to implement mylist<T>. 2056 * mylist.h (mylist): Implement mylist<T> as std::vector<T>. 2057 * delta-table.h (mylist<T>::select(i)): delegate to l[i]. 2058 * unit-tests/test_mylist.cc: Drop the requirement that the 2059 mylist<T> implementation does not need there to be a T::T(const 2060 T&) copy constructor. 2061 * mylist.h (mylist): Implement mylist<T>::operator==(const 2062 mylist<T>&) const, which the unit tests need. 2063 2064 Inline delta::removed(), for a small performance boost. 2065 * delta.h (class delta): Inline delta::removed(). 2066 * sccs-delta.cc: Remove the non-inline version. 2067 2068 Call strtoul to do the actual conversion, for a small performance boost. 2069 * sccsfile.cc (strict_atoul_idu): Call strtoul to perform the 2070 conversion itself. 2071 2072 Generate a larger test file. 2073 * unit-tests/test_bigfile.cc (main): Increase the number of deltas 2074 in the produced file to about 30,000. 2075 2076 Switch to using an STL data structure to represent the delta list. 2077 * delta-table.h (stl_delta_list): Reimplement delta_list using 2078 STL, reducing the time it takes to validate an SCCS file with 2079 30,000 deltas from 45s to 3s. Separate the cssc_delta_table 2080 class from the data structure (a typedef delta_list) for looser 2081 coupling. Retain the old data structure in the unused class 2082 mylist_delta_list. 2083 * delta-table.cc (delta_at_seq_exists): Delegate to the 2084 delta_list. 2085 (delta_at_seq): Likewise. 2086 (cssc_delta_table::~cssc_delta_table()): Since we no longer have a 2087 pointer member, the destructor no longer needs to do anything. 2088 (cssc_delta_table::build_seq_table): Push down into 2089 mylist_delta_list. 2090 (cssc_delta_table::add(const delta&)): Don't call update_highest 2091 since this work is done in delta_list::add(const delta&). 2092 (cssc_delta_table::update_highest): Remove obsolete function. 2093 * dtbl-prepend.cc (prepend): Don't call obsolete method 2094 update_highest, and use the correct (updated) type for the class 2095 member l (delta_list). 2096 2097 Performance improvement for val. 2098 * sf-val.cc (check_loop_free): Use an O(N) method of 2099 consistency-checking the delta graph, rather than the old O(N^2) 2100 method. 2101 * delta.h (class delta): Make accessor functions id(), date(), 2102 user(), seq() and prev_seq() inline. 2103 21042010-04-27 James Youngman <jay@gnu.org> 2105 2106 Avoid touching missing sequence numbers in 'get'. 2107 * sf-get2.cc (get): Don't call delta_table->delta_at_seq() for 2108 sequence numbers for which delta_table->delta_at_seq_exists() 2109 returns false. 2110 2111 When generating the test output file, set the checksum correctly. 2112 * unit-tests/test_bigfile.cc: Set the file's checksum correctly. 2113 21142010-04-26 James Youngman <jay@gnu.org> 2115 2116 Add a tool for creating (large) SCCS files. 2117 * unit-tests/Makefile.am: Build test_bigfile. 2118 * unit-tests/test_bigfile.cc: New test program; produces a large 2119 SCCS file. 2120 * sid.h (class sid): Make sid::sid(short,short,short,short) 2121 public, so that we can use it from one of the test programs. 2122 21232010-04-25 James Youngman <jay@gnu.org> 2124 2125 Allow the user to disable valgrind after running configure. 2126 * README (--enable-max-line-length): Document this configure 2127 option. Explain how to make the other formats of manual (PDF, 2128 HTML). Explain how to use CSSC_DISABLE_VALGRIND. 2129 * unit-tests/Makefile.am (TESTS_ENVIRONMENT): Invoke the unit 2130 tests via 'testwrapper.sh'. 2131 * unit-tests/testwrapper.sh.in: New file; used to invoke the unit 2132 tests. 2133 Make sure error tests don't pass if there is a valgrind problem; 2134 allow the user to disable valgrind. 2135 * tests/common/command-names: Allow the user to disable Valgrind 2136 by setting the environment variable CSSC_DISABLE_VALGRIND. 2137 * configure.ac: Make valgrind exit with status 10 when there is a 2138 problem, so tests which exercise failure cases in CSSC don't 2139 mistakenly pass when there is a valgrind problem. Create 2140 unit-tests/testwrapper.sh from unit-tests/testwrapper.sh.in. 2141 2142 Enable the y2k tests. 2143 * tests/Makefile.am (test-year-2000): Actually run the y2k tests. 2144 2145 Use valgrind for y2k tests. 2146 * tests/year-2000/ext.sh: Use valgrind. 2147 * tests/year-2000/prs-y2k.sh: Likewise. 2148 2149 Use valgrind for what tests. 2150 * tests/what/whatbasic.sh: Use valgrind. 2151 2152 Use valgrind for val tests. 2153 * tests/val/valbasic.sh: Use valgrind. 2154 * tests/val/y2k.sh: Likewise. 2155 2156 Use valgrind for unget tests. 2157 * tests/unget/exists.sh: Use valgrind. 2158 * tests/unget/output.sh: Likewise. 2159 2160 Use valgrind for sact tests. 2161 * tests/sact/sactbasic.sh: Use valgrind. 2162 * tests/sact/sf513800.sh: Likewise. 2163 2164 Use valgrind for rmdel tests. 2165 * tests/rmdel/basic.sh: Use valgrind. 2166 * tests/rmdel/exists.sh: Likewise. 2167 * tests/rmdel/edit.sh: Likewise. 2168 2169 Use valgrind for prt tests. 2170 * tests/prt/default.sh: Use valgrind. 2171 * tests/prt/nodel.sh: Likewise. 2172 * tests/prt/exists.sh: Likewise. 2173 * tests/prt/reportmr.sh: Likewise.n 2174 2175 Use valgrind for prs tests. 2176 * tests/prs/keywords.sh: Use valgrind. 2177 * tests/prs/format.sh: Likewise. 2178 * tests/prs/exists.sh: Likewise. 2179 * tests/prs/body.sh: Likewise. 2180 2181 Use valgrind for large tests. 2182 * tests/large/admin.sh: Use valgrind. 2183 2184 Use valgrind for get tests. 2185 * tests/get/annotate.sh: Use valgrind. 2186 * tests/get/a-option.sh: Likewise. 2187 * tests/get/branch.sh: Likewise. 2188 * tests/get/create.sh: Likewise. 2189 * tests/get/defsid.sh: Likewise. 2190 * tests/get/delta-summary.sh: Likewise. 2191 * tests/get/errorcases.sh: Likewise. 2192 * tests/get/excl_ig_1.sh: Likewise. 2193 * tests/get/excl_ig_2.sh: Likewise. 2194 * tests/get/gg_get_ix.sh: Likewise. 2195 * tests/get/included.sh: Likewise. 2196 * tests/get/middle-fail.sh: Likewise. 2197 * tests/get/no-sfile.sh: Likewise. 2198 * tests/get/only-one.sh: Likewise. 2199 * tests/get/optorder.sh: Likewise. 2200 * tests/get/removed-delta.sh: Likewise. 2201 * tests/get/sep_subst.sh: Likewise. 2202 * tests/get/sf111140.sh: Likewise. 2203 * tests/get/sf479916.sh: Likewise. 2204 * tests/get/sf664900.sh: Likewise. 2205 * tests/get/sf865422.sh: Likewise. 2206 * tests/get/sid-select.sh: Likewise. 2207 * tests/get/sid-select2.sh: Likewise. 2208 * tests/get/subst.sh: Likewise. 2209 * tests/get/t-option.sh: Likewise. 2210 2211 Use valgrind for delta tests. 2212 * tests/delta/basic.sh: Use valgrind. 2213 * tests/delta/errorcase.sh: Likewise. 2214 * tests/delta/n-option.sh: Likewise. 2215 * tests/delta/options.sh: Likewise. 2216 * tests/delta/nulldelta.sh: Likewise 2217 2218 Use valgrind for binary file tests, sccs tests and cdc tests. 2219 * tests/binary/auto.sh: Use valgrind. 2220 * tests/binary/binbasic.sh: Likewise. 2221 * tests/binary/eightbit.sh: Likewise. 2222 * tests/binary/seeking.sh: Likewise. 2223 * tests/bsd-sccs/sf595594.sh: Likewise. 2224 * tests/bsd-sccs/driver-basic.sh: Likewise. 2225 * tests/bsd-sccs/delsfile.sh: Likewise. 2226 * tests/cdc/1general.sh: Use valgrind. 2227 * tests/cdc/2comment.sh: Likewise. 2228 * tests/cdc/3MRs.sh: Likewise. 2229 * tests/cdc/4order.sh: Likewise. 2230 2231 Support running the regression tests under valgrind. 2232 * configure.ac: Allow the user to specify --without-valgrind. 2233 * tests/admin/admin-hz.sh: Use valgrind. 2234 * tests/admin/abspath.sh: Likewise. 2235 * tests/admin/comment.sh: Likewise. 2236 * tests/admin/flags.sh: Likewise. 2237 * tests/admin/hardlinks.sh: Likewise. 2238 * tests/admin/i-option.sh: Likewise. 2239 * tests/admin/init-mr.sh: Likewise. 2240 * tests/admin/locks.sh: Likewise. 2241 * tests/admin/r-option.sh: Likewise. 2242 * tests/admin/t-option.sh: Likewise. 2243 * tests/admin/users.sh: Likewise. 2244 * tests/admin/y-flag.sh: Likewise. 2245 * tests/common/command-names: Define vg_... versions of $admin, 2246 $get, etc. These invoke the named command under valgrind (it 2247 would be too slow to invoke everything under valgrind). 2248 * tests/Makefile.am (VALGRIND): substitute this variable and 2249 export it to the tests. 2250 2251 Run the unit tests under valgrind. 2252 * configure.ac: Check for the presence of valgrind. If we find 2253 it, use valgrind -q --trace-children=yes. 2254 2255 * unit-tests/Makefile.am (TESTS_ENVIRONMENT): Run the tests under 2256 valgrind. 2257 * tests/README: Explain that these are regression tests and point 2258 to the unit tests. 2259 2260 Remove explicit template instantiations. 2261 * admin.cc: Remove explicit template instantiations. 2262 * cap.cc: Likewise. 2263 * cdc.cc: Likewise. 2264 * delta.cc: Likewise. 2265 * dtbl-prepend.cc: Likewise. 2266 * fileiter.cc: Likewise. 2267 * get.cc: Likewise. 2268 * prs.cc: Likewise. 2269 * prt.cc: Likewise. 2270 * rel_list.cc: Likewise. 2271 * rmdel.cc: Likewise. 2272 * sact.cc: Likewise. 2273 * sccs-delta.cc: Likewise. 2274 * sccsfile.cc: Likewise. 2275 * sf-prs.cc: Likewise. 2276 * unget.cc: Likewise. 2277 * val.cc: Likewise. 2278 * filediff.cc: Trimmed some blank lines. 2279 * sf-kw.cc: Likewise. 2280 2281 Isolate directory-handling logic in fileiter.cc. 2282 * fileiter.cc: Move the complex logic around trying to include 2283 <dirent.h> out of fileiter.h and into fileiter.cc. 2284 * fileiter.h: Make the corresponding deletion and remove the 2285 #error trap which demanded that <cofnig.h> had been included. 2286 * delta.cc: Remove the now-obsolete explanatory comment. 2287 * file.cc: Move is_directory into fileiter.cc, since it also needs 2288 opendir. 2289 2290 Produce a compile failiure when config.h was not included before 2291 fileiter.h. Doing things the other way around produces a 2292 regression test failure. 2293 * fileiter.h: Force a compilation failure if config.h was not included. 2294 * delta.cc: Include config.h before fileiter.h. 2295 2296 Remove some obsolete preprocessor macros. 2297 * cssc.h (CONFIG_WAIT_IS_A_USELESS_MACRO): Remove obsolete macro. 2298 * sysdep.h: Assume wait is declared in sys/wait.h. 2299 * cssc.h (CONFIG_DJGPP): Remove obsolete macro. 2300 2301 Remove some obsolete manual declarations of functions. 2302 * file.cc: Don't manually declare stat. Likewise for getpwuid. 2303 * cssc.h: Don't undefine the TESTING macro; nobody defines it 2304 either. Don't undefine CONFIG_DECLARE_STAT, 2305 CONFIG_DECLARE_GETPWUID, CONFIG_DECLARE_TIMEZONE, 2306 CONFIG_DECLARE_TZSET, 2307 2308 2309 * sysdep.h: Don't manually declare fdopen. 2310 2311 Include cssc headers where they are needed, not in cssc.h. 2312 * my-getopt.cc: Include quit.h but not cssc.h. 2313 * linebuf.cc: Include ioerr.h. 2314 * writesubst.cc: Likewise. 2315 * sccsfile.cc: Likewise. 2316 * sf-add.cc: Likewise. 2317 * sid.cc: Likewise. 2318 * fileiter.cc: Include file.h and quit.h. 2319 * file.cc: Include quit.h and ioerr.h. 2320 * sccsdate.h: Likewise. 2321 * sf-write.cc: Likewise. 2322 * rel_list.cc: Likewise. 2323 * cdc.cc: Include file.h. 2324 * sf-csc.cc: Likewise. 2325 * sccsname.cc: Likewise. 2326 * sf-get3.cc: Likewise. 2327 * sf-delta.cc: Likewise. 2328 * val.cc: Likewise. 2329 * unget.cc: Likewise. 2330 * rmdel.cc: Likewise. 2331 * delta.cc: Likewise. 2332 * filediff.cc: Likewise. 2333 * pf-add.cc: Likewise. 2334 * pf-del.cc: Likewise. 2335 * sf-admin.cc: Likewise. 2336 * prompt.cc: Likewise. 2337 * fdclosed.cc: Include defaults.h. 2338 * run.cc: Include quit.h 2339 23402010-04-24 James Youngman <jay@gnu.org> 2341 2342 Include system headers where they are needed, not in cssc.h. 2343 * except.h: Add a multiple-include guard. #include <cstdlib>. 2344 * environment.cc: #include <cstdlib>, <cstring>, <cerrno> 2345 * bodyio.cc: #include <cstring>, ioerr.h, file.h. 2346 * fileiter.cc: Likewise. 2347 * linebuf.cc: Likewise. 2348 * prompt.cc: Likewise. 2349 * sccsdate.cc: Likewise. 2350 * fatalsig.cc: #include <cstdlib> 2351 * filepos.h: #include <cerrno>. 2352 * quit.cc: #include <cerrno> instead of <errno.h>. Include 2353 <cstring> also. 2354 * cssc.h: Don't include standard headers: stdio.h, stdlib.h, 2355 stddef.h, string.h, ctype.h, errno.h. 2356 Unconditionally include <config.h>. 2357 Don't include quit.h or file.h. 2358 2359 Further include-what-you-use fixes. 2360 * delta.cc: Include cleanup.h, and ioerr.h. Include delta.h earlier. 2361 2362 Run the uu(en|de)coding self-test as part of the unit tests. 2363 * bodyio.h: Move a couple of inline functions to here (out of 2364 encoding.cc) so that I can use them in the self-test. 2365 * encoding.cc: Make the corresponding deletion. Move the test 2366 code itself into test_encodingcc. 2367 * unit-tests/test_encoding.cc: Moved the encoding self-test to 2368 here instead of leaving it in encding.c, where it was not used. 2369 * unit-tests/Makefile.am (check_PROGRAMS): Add test_encoding. 2370 Also define test_encoding_SOURCES. Modify the usage semantics of 2371 the test program so that the default is to run the self-test. 2372 2373 Avoid redundant inclusion of cssc.h, sccsfile.h, delta.h. 2374 * dtbl-prepend.cc: Don't include cssc.h or sccsfile.h, since we 2375 don't use them. 2376 * delta-table.cc: Avoid including cssc.h, sccsfile.h, delta.h 2377 since we don't use them. 2378 2379 Various include-what-you-use fixes. 2380 * delta-iterator.cc: Don't include cssc.h, sccsfile.h or delta.h, 2381 since we don't use them. Do include cssc-assert.h, since we do 2382 use that. 2383 * delta-iterator.h: add forward declarations of cssc_delta_table 2384 and delta. 2385 * bodyio.cc: Include what you use; include bodyio.h first. 2386 * bodyio.h: Include <cstdio>. 2387 * canonify.cc: Don't include cssc.h. Include sccsname.h first. 2388 Include file.h. 2389 * cleanup.h: Move class cleanup into this separate file (out of quit.h). 2390 * quit.h: Don't declare class cleanup (we moved it). 2391 * filelock.h: Include cleanup.h. 2392 * sccsname.h: Include mystring.h and filelock.h. 2393 * cssc.h: Move declaration of split_filename into file.h. 2394 * file.h: Declare split_filename. 2395 * pfile.h: Include ioerr.h. 2396 2397 Include what you use; include sid_list.h first. 2398 * unit-tests/test_sid_list.cc: Include only what we use; don't 2399 include cssc.h or sid.h. 2400 2401 Include what you use; make it possible to include quit.h first or 2402 sccsdate.h first. 2403 * sccsdate.h: Include <cstdio> and mystring.h. 2404 * quit.h: Include cssc-assert.h (for ASSERT). 2405 * unit-tests/test_sccsdate.cc: Include sccsdate.h first. 2406 2407 Include what you use; make it possible to use class relvbr by 2408 including only relvbr.h. 2409 * unit-tests/test_relvbr.cc: Include relvbr.h first, don't include 2410 release.h or sid.h. 2411 * relvbr.h: Include <cstdio>. 2412 2413 Include what you use; make it possible to use class release by 2414 including only release.h and release_list by including only 2415 rel_list.h. 2416 * release.h: Include <cstdio>. 2417 * unit-tests/test_release.cc: Don't include cssc.h. 2418 * unit-tests/test_rel_list.cc: Likewise for rel_list.h. 2419 2420 Include what you use; include delta-table.h first in the unit test. 2421 * unit-tests/test_delta-table.cc: Include delta-table.h first. 2422 2423 Include what you use; make it possible to use delta by 2424 including only delta.h. 2425 * delta.h: Include sid.h, sccsdate.h, mystring.h, mylist.h. 2426 Move typedef of seq_no to here from cssc.h 2427 * cssc.h: Move typesef of seq_no from here to delta.h. 2428 * sccsfile.h: Include delta.h. 2429 * seqstate.h: Likewise. 2430 * unit-tests/test_delta.cc: Include delta.h first. Don't include cssc.h. 2431 2432 Include what you use; make it possible to use range_list<T> by 2433 including only sid_list.h. 2434 * unit-tests/test_sid.cc: Include sid.h first. Don't include cssc.h. 2435 * sid_list.h: Include cstdio, cstring, and qui.t.h (for ctor_fail). 2436 * sid.h: Include mystring.h. 2437 2438 Include what you use; make it possible to use stack<T> by 2439 including only stack.h. 2440 * unit-tests/test_stack.cc: Include what you use: include 2441 "stack.h" but not "cssc.h". 2442 2443 Include what you use; make it possible to use myset<T> by 2444 including only myset.h. 2445 * unit-tests/test_myset.cc: Include myset.h first. 2446 * myset.h: Include mylist.h since we use mylist<T>. 2447 2448 Include what you use; make it possible to use mylist<> by 2449 including only mylist.h. 2450 * cssc-assert.h: New file; defines the ASSERT macro. 2451 * quit.h: Delete old definition of ASSERT and declaration of 2452 assert_failed. 2453 * mylist.h: Include cssc-assert.h to define ASSERT, and 2454 <cstdlib> for NULL. 2455 * unit-tests/test_mylist.cc: Don't include "cssc.h" any more. 2456 * quit.cc: Include cssc-assert.h for ASSERT and declaration of assert_failed. 2457 * fatalsig.cc: Include cssc-assert.h since we use ASSERT. 2458 * file.cc: Likewise. 2459 * filediff.cc: Likewise. 2460 * fnsplit.cc: Likewise. 2461 * linebuf.cc: Likewise. 2462 * sccsdate.cc: Likewise. 2463 * sccsname.cc: Likewise. 2464 * sid.h: Likewise. 2465 * stack.h: Likewise. 2466 2467 Move CONFIG_LIST_CHUNK_SIZE from cssc.h to mylist.h. 2468 * cssc.h (CONFIG_LIST_CHUNK_SIZE): Move into mylist.h. 2469 * mylist.h (mylist): Relocate CONFIG_LIST_CHUNK_SIZE here from 2470 cssc.h, but convert it to an enum. 2471 2472 Add/correct some comments. 2473 * delta-table.cc: Correct the comment giving the location of 2474 dtbl-prepend.cc. 2475 * delta-table.h (class cssc_delta_table): Add a comment explaining 2476 why cssc_delta_table::delta_at_seq_exists and 2477 cssc_delta_table::delta_at_seq are not const. 2478 2479 Add unit tests for delta-table.h. 2480 * unit-tests/test_delta-table.cc: New file, contains unit tests 2481 for delta-table.h. 2482 * unit-tests/Makefile.am (test_delta_table_SOURCES): New 2483 variable. 2484 (check_PROGRAMS): Add test_delta-table. 2485 * unit-tests/TODO.txt: Remove delta-table.h; there are tests for 2486 it now. 2487 2488 Cosmetic fixes for stack.h. 2489 * stack.h: Remove obsolete version comment. 2490 (stack::operator=): Correct indentation. 2491 2492 Make the data members of struct delta private. 2493 * delta.h (delta): Make all the data members private and add 2494 accessor and mutator methods. Rename the data members to have a 2495 trailing underscore. 2496 (delta::id): Accessor for id_. 2497 (delta::set_id): Mutator for id_. 2498 (delta::date): Accessor for date_. 2499 (delta::set_date): Mutator for date_. 2500 (delta::user): Accessor for user_. 2501 (delta::set_user): Mutator for user_. 2502 (delta::seq): Accessor for seq_. 2503 (delta::set_seq): Mutator for set_seq. 2504 (delta::prev_seq): Accessor for prev_seq_. 2505 (delta::set_prev_seq): Mutator for prev_seq_. 2506 (delta::inserted): Accessor for inserted_. 2507 (delta::set_inserted): Mutator for inserted_. 2508 (delta::deleted): Accessor for deleted_ (there is no mutator). 2509 (delta::unchanged): Accessor for unchanged (there is no mutator). 2510 (delta::set_idu): Set inserted_, deleted_, unchanged_ all at once. 2511 (delta::increment_inserted): Increments inserted_. 2512 (delta::increment_deleted): Increments deleted_. 2513 (delta::increment_unchanged): Increments unchanged_. 2514 (delta::get_included_seqnos): Accessor for included_. 2515 (delta::get_excluded_seqnos): Accessor for excluded_. 2516 (delta::get_ignored_seqnos): Accessor for ignored_. 2517 (delta::has_includes): Accessor for have_includes_. 2518 (delta::set_has_includes): Mutator for have_includes_. 2519 (delta::add_include): Add an item to included_. 2520 (delta::has_excludes): Accessor for have_excludes_. 2521 (delta::set_has_excludes): Mutator for have_excludes_. 2522 (delta::add_exclude): Add an item to excluded_. 2523 (delta::has_ignores): Accessor for have_ignores_. 2524 (delta::set_has_ignores): Mutator for have_ignores_. 2525 (delta::add_ignore): Add an item to ignored_. 2526 (delta::mrs): Accessor for mrs_. 2527 (delta::set_mrs): Mutator for mrs_. 2528 (delta::add_mr): Add an item to mrs_. 2529 (delta::comments): Accessor for comments_. 2530 (delta::set_comments): Mutator for comments_. 2531 (delta::add_comment): Add an item to comments_. 2532 * unit-tests/test_delta.cc (DeltaTest.Constructor): Modify unit 2533 test to use the new accessor methods. 2534 (DeltaTest.Assignment): Likewise. 2535 (DeltaTest.Mutators): New unit test for the new mutator methods. 2536 * sccs-delta.cc (delta::operator=): Use the new member names. 2537 (removed): Likewise. 2538 * delta-table.cc: Use the new accessor functions. 2539 * sccsfile.cc: Likewise. 2540 * writesubst.cc: Likewise. 2541 * sf-add.cc: Likewise. 2542 * sf-admin.cc: Likewise. 2543 * sf-write.cc: Likewise. 2544 * sf-get.cc: Likewise. 2545 * sf-get2.cc: Likewise. 2546 * sf-get3.cc: Likewise. 2547 * sf-delta.cc: Likewise. 2548 (add_delta): Instead of zeroing inserted/deleted/unchanged counts, 2549 simply verify that the constructor did that. 2550 * sf-cdc.cc : Use the new accessor functions. 2551 (process_mrs): Since delta no longer offers access to a mutable 2552 list of MRs, modify process_mrs to return the updates list of MRs. 2553 The deleted flag which used to be the return value is now an 2554 output parameter. 2555 (cdc): Change the type of mrs_deleted from int to bool. 2556 * sf-prs.cc (print_delta): Use the new accessor functions. Also 2557 fix a typo in a comment. 2558 (prs): Use the new accessor functions. 2559 * sf-prt.cc (cutoff::excludes_delta): Use the new accessor functions. 2560 (cutoff::print): Likewise. 2561 (sccs_file::prt): Likewise. 2562 * sf-rmdel.cc (sccs_file::rmdel): Use the new accessor functions. 2563 * sf-val.cc (sccs_file::validate_seq_lists): Use the new accessor functions. 2564 (sccs_file::validate_isomorphism): Likewise. 2565 (validate): Likewise. 2566 * unit-tests/TODO.txt: delta.h has tests now, remove it from the 2567 TODO list. 2568 25692010-04-23 James Youngman <jay@gnu.org> 2570 2571 Rename delta::type to delta_type, make it private, validate it. 2572 * delta.h (struct delta): Rename the 'type' member to 'delta_type' 2573 and make it private, to support better data validation. 2574 (delta::delta()): Initialise delta_type to 'D' rather than leaving 2575 it uninitialised. Also initialise members id, seq and prev_seq. 2576 (delta::delta(...): Set have_includes and have_excludes to true if 2577 the relevant list is starting off non-empty. 2578 (delta::get_type, delta::set_type): New accessor/mutator methods. 2579 * unit-tests/test_delta.cc: Verify that have_includes and 2580 have_excludes are true if the delta was constructed with 2581 (respectively) includes or excludes. 2582 (DeltaDeathTest.Includes): verify that invalid delta types are 2583 diagnosed. 2584 (delta::is_valid_delta_type): new method, validates delta::delta_type. 2585 * sf-rmdel.cc (rmdel): Use the accessor method to access 2586 delta::delta_type. 2587 * sccsfile.cc (read_delta): Delegate delta type validation to 2588 delta::is_valid_delta_type. 2589 * sccs-delta.cc (delta::operator=): delta::type renamed to 2590 delta::delta_type. 2591 (delta::removed): Likewise. 2592 * sf-prs.cc (print_delta): Likewise. 2593 * sf-prt.cc (prt): Likewise. 2594 * sf-write.cc (write_delta): Likewise. 2595 * sf-val.cc (validate): There is no longer a need to validate 2596 delta::type, as this field is validater by the delta(...) 2597 constructors and by delta::set_type(). 2598 25992010-04-22 James Youngman <jay@gnu.org> 2600 2601 Add a unit test for delta.h. 2602 * unit-tests/test_delta.cc: New file. 2603 * unit-tests/Makefile.am (check_PROGRAMS): Add test_delta. 2604 2605 Implement equality test for mylist<T>. 2606 * mylist.h (operator==): Implement operator==. 2607 * unit-tests/test_mylist.cc (MylistTest): Add unit tests for 2608 operator==. 2609 2610 Remove some obsolete comments. 2611 * mylist.h: Remove a spurious extra "Local Variables" comment. 2612 2613 * sid_list.h: Remove some obsolete (and long commented-out) code. 2614 * relvbr.h (class relvbr): Likewise. 2615 * release.h (class release): Likewise. 2616 2617 Finish test_sccsdate.cc. 2618 * unit-tests/test_sccsdate.cc: Added unit tests for the remaining 2619 public methods of sccs_date. 2620 * unit-tests/TODO.txt: sccsdate.h has unit tests now, remove it 2621 from the TODO list. 2622 2623 Remove core files for "make distclean". 2624 * unit-tests/Makefile.am (DISTCLEANFILES): Remove core files. 2625 2626 * AUTHORS: Mention that googletest/CONTRIBUTORS enumerates the 2627 contributors to the Google C++ Testing Framework. 2628 2629 * googletest/Makefile.am (EXTRA_DIST): Distribute README.cssc. 2630 * unit-tests/Makefile.am (EXTRA_DIST): Distribute TODO.txt. 2631 2632 Add TODO list for unit tests we need to write. 2633 * unit-tests/TODO.txt: New file; a working list of what unit tests 2634 are still needed. 2635 2636 Add unit tests for sccsdate.h. 2637 * unit-tests/test_sccsdate.cc: New file. 2638 * unit-tests/Makefile.am (test_sccsdate_SOURCES): Add 2639 test_sccsdate.cc. 2640 (check_PROGRAMS): Add test_sccsdate. 2641 2642 Explain what the googletest directory is and how to run unit tests. 2643 * README (Testing): Expand to include a description of the unit 2644 tests and how to run them. 2645 * docs/borrowed-files.txt: Mention googletest/*. Also remove tghe 2646 out-of-date information about the last update to the files which 2647 autoconf updates. 2648 * googletest/README.cssc: Add README file explaining the 2649 relationship between the code in this directory and the rest of 2650 CSSC. 2651 26522010-04-21 James Youngman <jay@gnu.org> 2653 2654 Add unit test cases for ASSERT failures. 2655 * unit-tests/test_mylist.cc (MylistDeathTest): Various unit test 2656 cases for ASSERT failures. 2657 * unit-tests/test_sid.cc (SidTest.Successor): Verify that the null 2658 SID's successor is 1.1. 2659 2660 Unit test sid_list::merge and sid_list::remove 2661 * unit-tests/test_sid_list.cc: Enable unit tests for 2662 sid_list::merge and sid_list::remove. Include rl-merge.h since 2663 that file defines these methods. 2664 2665 Unit test release_list::merge and release_list::remove 2666 * unit-tests/test_rel_list.cc: Add unit tests for 2667 release_list::merge and release_list::remove. 2668 2669 Move rl-merge.cc into libcssc.a 2670 * Makefile.am (libcssc_a_SOURCES): Move rl-merge.cc into the library. 2671 (get_SOURCES): Remove rl-merge.cc. 2672 (admin_SOURCES): Likewise. 2673 * rel_list.h: Remove some unnecessary blank lines. 2674 2675 Add unit test for rel_list.h 2676 * unit-tests/test_rel_list.cc: New unit test. 2677 * unit-tests/Makefile.am (check_PROGRAMS): Add test_rel_list. 2678 (test_rel_list_SOURCES): Add test_rel_list.cc. 2679 2680 Add unit test for sid_list.h 2681 * unit-tests/test_sid_list.cc: New unit test; tests sid_list.h. 2682 * unit-tests/Makefile.am (check_PROGRAMS): Add test_sid_list. 2683 (test_sid_list_SOURCES): Add test_sid_list.cc. 2684 26852010-04-20 James Youngman <jay@gnu.org> 2686 2687 Add unit test for release.h. 2688 * unit-tests/Makefile.am (check_PROGRAMS): Add test_release. 2689 (test_release_SOURCES): Add test_release.cc. 2690 * unit-tests/test_release.cc: New unit test. 2691 2692 Add unit test for relvbr. 2693 * unit-tests/Makefile.am (check_PROGRAMS): Add test_relvbr. 2694 (test_relvbr_SOURCES): Add test_relvbr.cc. 2695 * unit-tests/test_relvbr.cc: New unit test. 2696 2697 Add unit test for sid.h. 2698 * unit-tests/test_sid.cc: New unit test. 2699 * unit-tests/Makefile.am (test_sid_SOURCES): Add this test. 2700 (check_PROGRAMS): Likewise. 2701 2702 * unit-tests/Makefile.am (TESTS): don't duplicate the contents of 2703 $(check_PROGRAMS), just use that variable. 2704 (LDADD): Add ../libcssc.a. 2705 (test_mylist_SOURCES): Don't list object files in libcssc.a. 2706 (test_myset_SOURCES): Don't list object files in libcssc.a. 2707 2708 New unit test for myset<T>. 2709 * unit-tests/Makefile.am (check_PROGRAMS): Add test_myset. 2710 (LDADD): Just use one LDADD variable for all unit tests. 2711 * unit-tests/test_myset.cc: New unit test. 2712 2713 Add a unit test. 2714 * unit-tests/test_mylist.cc: New file; unit test for mylist<T>. 2715 * unit-tests/Makefile.am: New file. 2716 * configure.ac: Call AC_LIBTOOL. Include 2717 googletest/m4/acx_pthread.m4. Add --with-pthreads so that our 2718 main build and googletest libraries are compatible. Add 2719 unit-tests/Makefile to AC_CONFIG_FILES. 2720 * autogen.sh: Run libtoolize in the top level and the googletest 2721 directories. 2722 * Makefile.am (SUBDIRS): Add unit-tests. 2723 2724 Include <errno.h> unconditionally where we need it. 2725 * admin.cc: Include <errno.h> instead of "err_no.h". 2726 * pfile.cc: Likewise. 2727 * cssc.h: Likewise. 2728 * file.cc: Likewise. 2729 * get.cc: Likewise. 2730 * run.cc: Likewise. 2731 * quit.cc: Likewise. 2732 * sccsfile.cc: Likewise. 2733 * sf-delta.cc: Likewise. 2734 * what.cc: Likewise. 2735 * err_no.h: Remove useless file. 2736 * Makefile.am (noinst_HEADERS): Remove err_no.h. 2737 2738 Instead of linking all objects explicitly, use a library. 2739 * Makefile.am (noinst_LIBRARIES): Build new library libcssc.a. 2740 (libcssc_a_SOURCES): list the source files for the library. 2741 (common_sources): Remove unused variable. 2742 (sname_srcs): Likewise. 2743 (sfile_srcs): Likewise. 2744 (mod_srcs): Likewise. 2745 (moddelta_srcs): Likewise. 2746 (newdelta_srcs): Likewise. 2747 (get_LDADD): Add the new library libcssc.a. 2748 (delta_LDADD): Likewise. 2749 (admin_LDADD): Likewise. 2750 (prs_LDADD): Likewise. 2751 (what_LDADD): Likewise. 2752 (unget_LDADD): Likewise. 2753 (sact_LDADD): Likewise. 2754 (cdc_LDADD): Likewise. 2755 (rmdel_LDADD): Likewise. 2756 (prt_LDADD): Likewise. 2757 (val_LDADD): Likewise. 2758 (what_SOURCES): Remove object files which are now in libcssc.a. 2759 (sact_SOURCES): Likewise. 2760 (unget_SOURCES): Likewise. 2761 (prt_SOURCES): Likewise. 2762 (prs_SOURCES): Likewise. 2763 (get_SOURCES): Likewise. 2764 (rmdel_SOURCES): Likewise. 2765 (cdc_SOURCES): Likewise. 2766 (admin_SOURCES): Likewise. 2767 (delta_SOURCES): Likewise. 2768 (val_SOURCES): Likewise. 2769 27702010-04-19 James Youngman <jay@gnu.org> 2771 2772 Actually configure in and recurse into the googletest directory. 2773 * configure.ac: Add googletest in the call to AC_CONFIG_SUBDIRS. 2774 * autogen.sh: Run libtoolize in googletest. 2775 * Makefile.am (SUBDIRS): Add googletest. 2776 2777 Implement myset<T> with std::set<T>. 2778 * myset.h (myset): Switch to implementing with std::set. This 2779 should reduce the O(N) operations to O(log(N)). 2780 2781 Use the standard string class. 2782 * mystring.h: Assume the availability of the <string> header, so 2783 that mystring is always a typedef for std::string. 2784 * mystring.cc: Delete. 2785 * Makefile.am (sname_srcs): Delete mystring.cc. 2786 2787 Assume support for the std namespace. 2788 * configure.ac: Don't check for the 'std' namespace. Don't 2789 #define STD_NAMESPACE. 2790 * mystring.h: Don't use STD_NAMESPACE. 2791 27922010-04-18 James Youngman <jay@gnu.org> 2793 2794 Assume exception support. 2795 * configure.ac: Don't detect exception support, assume it. 2796 * admin.cc: Require exception support. 2797 * bodyio.cc: Likewise. 2798 * cdc.cc: Likewise. 2799 * cssc.h: Likewise. 2800 * delta.cc: Likewise. 2801 * except.h: Likewise. 2802 * get.cc: Likewise. 2803 * pf-del.cc: Likewise. 2804 * prs.cc: Likewise. 2805 * prt.cc: Likewise. 2806 * quit.cc: Likewise. 2807 * rmdel.cc: Likewise. 2808 * sact.cc: Likewise. 2809 * sf-kw.cc: Likewise. 2810 * unget.cc: Likewise. 2811 * val.cc: Likewise. 2812 2813 Remove RCS keywords. 2814 * admin.cc: Remove RCS keywords (since we're using git now). 2815 * bodyio.h: Likewise. 2816 * cap.cc: Likewise. 2817 * cdc.cc: Likewise. 2818 * cssc.h: Likewise. 2819 * delta-iterator.cc: Likewise. 2820 * delta-iterator.h: Likewise. 2821 * delta-table.h: Likewise. 2822 * delta.cc: Likewise. 2823 * delta.h: Likewise. 2824 * dtbl-prepend.cc: Likewise. 2825 * environment.cc: Likewise. 2826 * fatalsig.cc: Likewise. 2827 * fdclosed.cc: Likewise. 2828 * file.cc: Likewise. 2829 * filediff.cc: Likewise. 2830 * fileiter.cc: Likewise. 2831 * filepos.h: Likewise. 2832 * get.cc: Likewise. 2833 * l-split.cc: Likewise. 2834 * linebuf.cc: Likewise. 2835 * my-getopt.cc: Likewise. 2836 * mystring.cc: Likewise. 2837 * mystring.h: Likewise. 2838 * pf-add.cc: Likewise. 2839 * pf-del.cc: Likewise. 2840 * pfile.cc: Likewise. 2841 * pfile.h: Likewise. 2842 * prompt.cc: Likewise. 2843 * prs.cc: Likewise. 2844 * prt.cc: Likewise. 2845 * quit.cc: Likewise. 2846 * rel_list.cc: Likewise. 2847 * rl-merge.cc: Likewise. 2848 * rmdel.cc: Likewise. 2849 * run.cc: Likewise. 2850 * sact.cc: Likewise. 2851 * sccs-delta.cc: Likewise. 2852 * sccsdate.cc: Likewise. 2853 * sccsfile.cc: Likewise. 2854 * sccsfile.h: Likewise. 2855 * sccsname.cc: Likewise. 2856 * seqstate.h: Likewise. 2857 * sf-add.cc: Likewise. 2858 * sf-admin.cc: Likewise. 2859 * sf-cdc.cc: Likewise. 2860 * sf-chkid.cc: Likewise. 2861 * sf-delta.cc: Likewise. 2862 * sf-get.cc: Likewise. 2863 * sf-get2.cc: Likewise. 2864 * sf-get3.cc: Likewise. 2865 * sf-prs.cc: Likewise. 2866 * sf-prt.cc: Likewise. 2867 * sf-rmdel.cc: Likewise. 2868 * sf-val.cc: Likewise. 2869 * sf-write.cc: Likewise. 2870 * showconfig.cc: Likewise. 2871 * sid.cc: Likewise. 2872 * sid_list.h: Likewise. 2873 * split.cc: Likewise. 2874 * unget.cc: Likewise. 2875 * val.cc: Likewise. 2876 * what.cc: Likewise. 2877 * writesubst.cc: Likewise. 2878 2879 Import gnulib modules for various standard headers. 2880 * bodyio.cc: Remove HAVE_STDIO_H guards for various standard 2881 headers which gnulib will provide/adjust. 2882 * bootstrap.conf: Likewise. 2883 * canonify.cc: Likewise. 2884 * configure.ac: Likewise. 2885 * cssc.h: Likewise. 2886 * environment.cc: Likewise. 2887 * err_no.h: Likewise. 2888 * fdclosed.cc: Likewise. 2889 * file.cc: Likewise. 2890 * filediff.cc: Likewise. 2891 * filepos.h: Likewise. 2892 * get.cc: Likewise. 2893 * my-getopt.cc: Likewise. 2894 * sccsfile.cc: Likewise. 2895 * sf-chkid.cc: Likewise. 2896 * sf-delta.cc: Likewise. 2897 * sf-prt.cc: Likewise. 2898 * showconfig.cc: Likewise. 2899 * sysdep.h: Likewise. 2900 * what.cc: Likewise. 2901 * gnulib-tests/.gitignore: Ignore various files imported by gnulib. 2902 * lib/.gitignore: Likewise. 2903 2904 Adopt the use of the "bootstrap" command. 2905 * bootstrap: New file (copied from coreutils). 2906 * bootstrap.conf: New file (adapted from coreutils; no modules are 2907 imported just now). 2908 * autogen.sh: Remove (obsoleted by bootstrap). 2909 * gnulib-tests/.gitignore: New file. 2910 * configure.ac: Use AC_CONFIG_AUX_DIR to select build-aux as the 2911 aux dir. 2912 * README-hacking: New file (copied from coreutils). 2913 * .gitmodules: New file. 2914 * .gitignore: New file. 2915 * docs/texinfo.tex: Remove. 2916 * docs/Makefile.am (EXTRA_DIST): Remove texinfo.tex, which is not 2917 in this directory any more. 2918 2919 * NEWS: Move on from CSSC-1.2.0 to CSSC-1.2.1-git. 2920 * configure.ac: Likewise. 2921 29222009-04-11 James Youngman <jay@gnu.org> 2923 2924 * configure.ac, NEWS: Prepare for release of version 1.2.0. 2925 2926 * INSTALL: Remove from the source repository; allow Automake to 2927 use its own copy. 2928 * missing: Likewise. 2929 * install-sh: Likewise. 2930 * docs/texinfo.tex: Likewise 2931 2932 * configure.ac (AC_CHECK_DECL_IN_HEADER): Quote the definition of 2933 the function. 2934 (AC_CHECK_GLOBAL): Likewise. 2935 29362009-01-03 Alain Williams <addw@phcomp.co.uk> (tiny change) 2937 2938 * auxfiles/CSSC.spec.in: Reflect changes in the RPM spec 2939 file format and requrements since 2003. 2940 (License): Changed "Copyright" tag to "License". 2941 (%makeinstall): Do not make the /usr/sccs symbolic link. 2942 (%files): Add various binaries to %files. 2943 29442008-01-18 James Youngman <jay@gnu.org> 2945 2946 * configure.ac: Prepare for release of version 1.1.1. 2947 * NEWS: Likewise. 2948 * docs/cssc.texi: Updated copyright year. Bumped the revision 2949 number and updated the VERSION macro. Updated the "UPDATED" 2950 variable to the current time. 2951 2952 * version.h (version): Don't show the RCS ID of the main program 2953 in the version output; just keep the existing CSSC release number. 2954 2955 * showconfig.cc: Updated copyright notice to GPL3. 2956 (show_system_line_max): Removed awkward line break. 2957 29582008-01-07 James Youngman <jay@gnu.org> 2959 2960 * sf-val.cc (validate_isomorphism): Warn if a delta has two 2961 derived deltas on the trunk. 2962 2963 * release.h: Fixed typo in the file header comment. 2964 2965 * delta-table.h (class cssc_delta_table): Don't initialise sid 2966 objects from NULL. 2967 2968 * fileiter.cc (sccs_file_iterator): Ignore subdirectories, even if 2969 they do start with "s.". 2970 * file.cc (is_directory): New function. 2971 * file.h: Declare is_directory. 2972 29732008-01-06 James Youngman <jay@gnu.org> 2974 2975 * sf-delta.cc (add_delta): Removed obsolete "XXX" comments. 2976 * sf-prs.cc (get): Likewise. 2977 * cdc.cc (main): Avoid initialising a sid object by assignment 2978 from NULL, because it's not quite clear what that is intended to 2979 do. Instead, use an assignment from sid::null_delta(). 2980 * sid.cc (null_sid): Implement the function. 2981 * sid.h (class sid): Declare sid::null_sid(). 2982 * get.cc (main): Avoid initialising a sid object by assignment 2983 from NULL. 2984 * delta.cc (delta_main): Likewise. 2985 * val.cc (main): Likewise. 2986 * rmdel.cc (main): Likewise. 2987 * unget.cc (main): Likewise. 2988 * sccsfile.cc (sccs_file::sccs_file): Likewise. 2989 * sf-admin.cc (admin): Likewise. 2990 * prs.cc (main): Likewise; also disable the -R option. 2991 2992 * sf-val.cc (validate_isomorphism): Extend the comment setting out 2993 the design for this method. The method is still unimplemented, 2994 though. 2995 2996 Various tidyings-up of TODO items. 2997 * prompt.cc (prompt_user): Now that this code is well tested, 2998 increase the allocation chunk size and remove the TODO item 2999 reminding me to do that. Use a small _initial_ chunk size to 3000 make sure that at least one reallocation takes place, for adequate 3001 code coverage. 3002 * mystring.cc: Removed TODO comments which actually don't need to 3003 be done. 3004 3005 * sf-admin.cc (admin): If all releases are locked ("admin -fla") 3006 and the user tries to unlock just one release, issue an error 3007 message (instead of just ignoring the attempt). 3008 * docs/cssc.texi (admin): Explain the (already existing) 3009 restriction and how to get around it. 3010 3011 Implement "get -l", "get -L" and "get -lp". 3012 * get.cc (main): Added options -l and -L for get. 3013 (main): Print the name of the s-file before the delta summary (for 3014 -l) and the gotten body (for -p). 3015 * tests/get/delta-summary.sh: New tests for the -L, -l and -lp 3016 options of get. 3017 * sccsname.h (class sccs_name): new method lfile(), returning the 3018 name of the l-file. 3019 * sccsname.cc (sccs_name::lfile): Implement it. 3020 * sccsfile.h (sccs_file::get): Take a parameter summary_file, 3021 being a FILE* pointer to which we should emit a delta summary if 3022 it's not NULL. 3023 * sf-get2.cc (sccs_file::get): Add the new summary_file parameter 3024 and, if it's not NULL, emit a delta summary. 3025 * docs/cssc.texi (get options): Document the options -l, -lp and 3026 -L. 3027 (Filenames): Mention the l-file. 3028 (prt usage): Mention that the delta summary file contains much the 3029 same information. 3030 * NEWS: Mention this change. 3031 30322008-01-05 James Youngman <jay@gnu.org> 3033 3034 * sf-prt.cc (sccs_file::prt): Fixed typo in comment. 3035 3036 * NEWS: Updated with changes for the early 0.02 releases by 3037 diffing the unpacked tar archives. 3038 30392007-12-19 James Youngman <jay@gnu.org> 3040 3041 * what.cc: String constants chould be const. 3042 3043 * sf-val.cc (validate_substituted_flags_list): Added missing 3044 return statement. 3045 3046 * sccsfile.cc (sccs_file): Specify the member initialisers in the 3047 order they will actually be executed. 3048 3049 * linebuf.h (class cssc_linebuf): Make buflen size_t rather than 3050 int. 3051 3052 * linebuf.cc (CONFIG_LINEBUF_CHUNK_SIZE): Avoid signed/unsigned 3053 issues by using an unsigned constant. 3054 (read_line): Ditto for constants in this function. 3055 3056 * file.cc (set_file_mode): Add missing return statement. 3057 3058 * bsd/sccs.c (makefile): Avoid signed/unsigned issues by using 3059 size_t to index into strings, rather than ints. 3060 (form_gname): Ditto. 3061 (gstrcat): Ditto for parameter 'length'. 3062 (gstrncat): Ditto for parameter 'length'. 3063 (gstrcpy): Ditto for parameter 'length'. 3064 (gstrncat): Ditto for parameter 'length'. 3065 30662007-12-18 James Youngman <jay@gnu.org> 3067 3068 * bsd/sccs.c (FBUFSIZ): Make unsigned. 3069 (cleanup_environment): Removed unused variable 'pfail'. 3070 (main): Avoid spurious warning about lack of return statement, by 3071 putting in return statements instead of calls to exit. 3072 3073 * uu_decode.c: #include <sys/stat.h>, for a declaration of chmod. 3074 (test_decode): Avoid compiler warnign about unused argument 'arg'. 3075 (test_all): Likewise. 3076 3077 * user.c: #include <stdlib.h> for a declaration of qsort and malloc. 3078 (do_groups): Removed unused variable 'duplicates'. 3079 3080 * realpwd.cc (main): Avoid compiler warning about unuised argc, argv. 3081 * seeker.c (do_unbuffered): Avoid compiler warning about unused 3082 argument NAME. 3083 (do_blockbuffered): Likewise 3084 (do_linebuffered): Likewise 3085 (do_nothing): Likewise 3086 30872007-12-17 James Youngman <jay@gnu.org> 3088 3089 3090 * docs/cssc.texi (Missing Features): Updated URLs to point to the 3091 GNU web site instead of SourceForge. 3092 * README: Likewise 3093 * auxfiles/CSSC.spec.in (URL): Likewise 3094 * docs/URLs: Likewise 3095 * docs/patches.txt: Likewise 3096 * docs/BUGS: Likewise 3097 3098 Migrate to GPL version 3. 3099 * COPYING, admin.cc, autogen.sh, bodyio.cc, bodyio.h, canonify.cc, 3100 cap.cc, cdc.cc, configure.ac, cssc.h, defaults.h, 3101 delta-iterator.cc, delta-iterator.h, delta-table.cc, 3102 delta-table.h, delta.cc, delta.h, depcomp, docs/Makefile.am, 3103 docs/cssc.texi, dtbl-prepend.cc, encoding.cc, environment.cc, 3104 err_no.h, except.h, fatalsig.cc, fdclosed.cc, file.cc, file.h, 3105 filediff.cc, filediff.h, fileiter.cc, fileiter.h, filelock.h, 3106 filepos.h, fnsplit.cc, get.cc, ioerr.h, l-split.cc, linebuf.cc, 3107 linebuf.h, list.cc, missing, my-getopt.cc, my-getopt.h, mylist.h, 3108 myset.h, mystring.cc, mystring.h, pf-add.cc, pf-del.cc, pfile.cc, 3109 pfile.h, prompt.cc, prs.cc, prt.cc, quit.cc, quit.h, rel_list.cc, 3110 rel_list.h, release.h, relvbr.h, remove.c, rename.c, rl-merge.cc, 3111 rmdel.cc, run.cc, run.h, sact.cc, sccs-cgi/sccs.cgi, 3112 sccs-cgi/sccs.cgi.text, sccs-delta.cc, sccsdate.cc, sccsdate.h, 3113 sccsdiff.sh.in, sccsfile.cc, sccsfile.h, sccsname.cc, sccsname.h, 3114 seqstate.cc, seqstate.h, sf-add.cc, sf-admin.cc, sf-cdc.cc, 3115 sf-chkid.cc, sf-chkmr.h, sf-delta.cc, sf-get.cc, sf-get2.cc, 3116 sf-get3.cc, sf-kw.cc, sf-prs.cc, sf-prt.cc, sf-rmdel.cc, 3117 sf-val.cc, sf-write.cc, show-disp.sh, showconfig.cc, sid.cc, 3118 sid.h, sid_list.h, sl-merge.h, split.cc, stack.h, strerror.c, 3119 strstr.c, sysdep.h, testutils/ekko.c, testutils/last-time.c, 3120 testutils/realpwd.cc, testutils/seeker.c, testutils/user.c, 3121 testutils/uu_decode.c, testutils/yammer.c, testutils/yes.c, 3122 unget.cc, val.cc, valcodes.h, version.h, what.cc, writesubst.cc, 3123 testutils/ekko.c, testutils/last-time.c, testutils/seeker.c, 3124 testutils/user.c, testutils/yammer.c, testutils/yes.c: 3125 Update license to GPL version 3. 3126 * NEWS: Mention this change. 3127 * docs/cssc.texi (Copying): Put the GPL in a separate, unnumbered, 3128 section. 3129 3130 * docs/cssc.texi: Change license to version 1.2 of the GNU Free 3131 Documentation License. 3132 * docs/Makefile.am (cssc_TEXINFOS): Depend on fdl.texi, so that it 3133 gets distributed. 3134 * NEWS: Mention this change. 3135 3136 * docs/Makefile.am (cssc_TEXINFOS): Don't depend on 3137 config-info.text, since we don't actually use it. This prevents 3138 us trying to rebuild the info file during "make distcheck", when 3139 the source directory is read-only anyway. 3140 * doc/texinfo.tex: Update to the version of texinfo.tex used in 3141 automake-1.8. Yo avoid future compatibility issues, it makes 3142 sense to remove this file from CVS in fact, but we won't do that 3143 just yet. 3144 3145 * tests/bsd-sccs/delsfile.sh (cleanup): Also clean up ./s.foo when 3146 we're finished. 3147 3148 Fix build problems caused by the fact that generating 3149 testutils/Makefile in the top level directory produces 3150 a Makefile that expects to use config.h, while we actually 3151 want to use DEFS in the testutils subdirectory. 3152 * configure.ac: Call AC_OUTPUT only once. Do not emit 3153 testutils/Makefile. 3154 * testutils/configure.ac: Fixed typo. 3155 3156 31572007-06-21 James Youngman <jay@gnu.org> 3158 3159 * bsd/sccs.c: Updated the copyright text to be consistent with the 3160 COPYING.bsd file (by removing the advertising clause). 3161 3162 * sccsfile.cc (print_subsituted_flags_list): Return true if 3163 nothing failed (as opposed to falling off the end of the 3164 function). This prevents spurious x-file write errors if the y 3165 flag is unset. 3166 3167 * cssc.h: Require exception support to compile. This is not 3168 strictly necessary for successful operation, but without exception 3169 support "get s.foo s.bar" will not process s.bar if we failed on 3170 s.foo. So exception support is required for full SCCS 3171 compatibility. 3172 31732007-06-20 James Youngman <jay@gnu.org> 3174 3175 * bsd/sccs.c (unedit): Fix "sccs unedit /tmp/SCCS/s.foo will 3176 cause ./s.foo to be unlinked" bug, by forming the g-file name 3177 from the p-file name, as opposed to the name of the file on the 3178 command line (because the file named on the command line gould be 3179 either the g-file or the s-file). 3180 * docs/BUGS: Mention the bugfix. 3181 * tests/bsd-sccs/delsfile.sh: New test, for this bug. 3182 3183 * .gitignore: Ignore Emacs editor backups. 3184 3185 * cap.cc, val.cc: Add explicit template instantiation directives to 3186 support compilation with GCC's -fno-implicit-templates option. 3187 * dtbl-prepend.cc, fileiter.cc, sccs-delta.cc: ditto 3188 * sccsfile.cc: Ditto. Also include "mylist.h" to get the method 3189 definitions for the templates. 3190 3191 * .gitignore, docs/.gitignore, testutils/.gitignore: New files. 3192 3193 * tests/common/test-common: Work around an apparent bug in Bash 3194 3.1.17(1) in which "$@$ac_c" expands to DEL${ac_c} when $1 is "". 3195 That broke echo_nonl, causing some tests to fail. 3196 31972007-06-19 James Youngman <jay@gnu.org> 3198 3199 * unused/configs/cf-bcc.h, unused/configs/cf-djgpp.h, 3200 unused/configs/cf-redhat.h, unused/configs/cf-sls.h, 3201 unused/configs/cf-xenix.h, unused/configs/mf-msdos.mak, 3202 unused/configs/mf-unix.mak, unused/Makefile.am, unused/README, 3203 unused/_chmod.cc, unused/configs/README, unused/dosfile.cc, 3204 unused/dummy.cc, unused/ffsync.cc, unused/fsync.cc, 3205 unused/linux.diffs, unused/move-if-change, unused/pipe.cc, 3206 unused/pipe.h, unused/sid_list.cc: Removed unused files. 3207 3208 Update or add various copyright notices. 3209 * sccs-cgi/sccs.cgi, testutils/ekko.c, testutils/last-time.c, 3210 testutils/realpwd.cc, testutils/seeker.c, testutils/user.c, 3211 testutils/uu_decode.c, testutils/yammer.c, testutils/yes.c, 3212 docs/gpl.texi, docs/texinfo.tex, sid_list.h, sl-merge.h, split.cc, 3213 stack.h, strstr.c, sysdep.h, unget.cc, val.cc, valcodes.h, 3214 what.cc, writesubst.cc, rel_list.h, release.h, relvbr.h, 3215 rl-merge.cc, rmdel.cc, run.cc, run.h, sact.cc, sccs-delta.cc, 3216 sccsdate.cc, sccsdate.h, sccsfile.cc, sccsfile.h, sccsname.cc, 3217 sccsname.h, seqstate.cc, seqstate.h, sf-add.cc, sf-admin.cc, 3218 sf-cdc.cc, sf-chkid.cc, sf-chkmr.h, sf-delta.cc, sf-get.cc, 3219 sf-get2.cc, sf-get3.cc, sf-kw.cc, sf-prs.cc, sf-prt.cc, 3220 sf-rmdel.cc, sf-val.cc, sf-write.cc, show-disp.sh, showconfig.cc, 3221 sid.cc, sid.h, cap.cc, cdc.cc, configure.ac, cssc.h, defaults.h, 3222 delta-iterator.cc, delta-iterator.h, delta-table.cc, 3223 delta-table.h, delta.cc, delta.h, depcomp, dtbl-prepend.cc, 3224 encoding.cc, environment.cc, err_no.h, except.h, fatalsig.cc, 3225 fdclosed.cc, file.cc, file.h, filediff.cc, filediff.h, 3226 fileiter.cc, fileiter.h, filelock.h, filepos.h, fnsplit.cc, 3227 get.cc, ioerr.h, l-split.cc, linebuf.cc, linebuf.h, list.cc, 3228 missing, my-getopt.cc, my-getopt.h, mylist.h, myset.h, 3229 mystring.cc, mystring.h, pf-add.cc, pf-del.cc, pfile.cc, pfile.h, 3230 prompt.cc, prs.cc, prt.cc, quit.cc, quit.h, rel_list.cc, 3231 Makefile.am, admin.cc, autogen.sh, bodyio.cc, bodyio.h, 3232 canonify.cc: Updated FSF address in source files 3233 * COPYING: Fixed the FSF address. 3234 * Makefile.am, remove.c, rename.c, sccsdiff.sh.in, strerror.c, 3235 version.h: Included copyright notices in some files where these 3236 were missing 3237 32382007-03-14 James Youngman <jay@gnu.org> 3239 3240 * NEWS, ChangeLog: Updated with (not very) recent changes. 3241 3242 * AUTHORS: Fixed typo 3243 3244 * get.cc, sf-get.cc: Fixed a typo in a comment 3245 32462007-03-14 James Youngman <jay@gnu.org> 3247 3248 * AUTHORS: Fixed typo 3249 3250 * get.cc, sf-get.cc: Fixed a typo in a comment 3251 32522006-07-13 James Youngman <jay@gnu.org> 3253 3254 * tests/prt/TODO: Updated email address 3255 32562005-12-04 James Youngman <jay@gnu.org> 3257 3258 * docs/cssc.texi: Corrected typo (tirivial change, from Alex Brincko) 3259 32602005-11-23 James Youngman <jay@gnu.org> 3261 3262 * configure.ac, sccsfile.cc, sccsfile.h, NEWS: 3263 Tolerate leading spaces in the counts of inserted/deleted/unchanged lines in the delta table; System III seems to produce/tolerate these (see Neil Mayhew's bug report regarding a pre-1985 file) 3264 32652005-06-18 James Youngman <jay@gnu.org> 3266 3267 * file.cc, filelock.h, quit.cc, quit.h: 3268 Applied Sourceforge patch 1223116, allowing CSSC to be compiled on Darwin. Darwin's version of GCC doesn't like #pragma implementation. 3269 32702005-04-06 James Youngman <jay@gnu.org> 3271 3272 * docs/Platforms: 3273 Indicate that under Cygwin, CSSC must be used on filesystems mounted 3274 in 'binary mode'. 3275 32762005-04-04 James Youngman <jay@gnu.org> 3277 3278 * pf-add.cc: Updated copyright year. 3279 3280 * pf-add.cc: 3281 Removed some unused code (which had already been disabled with #if 0). 3282 32832005-01-22 James Youngman <jay@gnu.org> 3284 3285 * configure.ac: CSSC release 1.0.1 3286 3287 * NEWS: Better description of the problem for SourceForge bug 865422 3288 3289 * docs/cssc.texi: Added 2005 top copyright years. 3290 3291 * docs/cssc.texi: Updated timestamp. 3292 3293 * ChangeLog: Indicated the release of 1.0.1. 3294 3295 * ChangeLog: Updated change log from CVS comments. 3296 3297 * NEWS: Added latest news. 3298 3299 * docs/cssc.texi: 3300 Ensured that the section names for cross-references which appear in 3301 the printed output actually bear the correct title for the section 3302 they refer to. 3303 33042004-10-17 James Youngman <jay@gnu.org> 3305 3306 * docs/Platforms: CSSC now builds under GCC-3.4. 3307 3308 * docs/cssc.texi: Updated edition/version. 3309 3310 * docs/cssc.texi: 3311 Indicate that "admin -h" performs the same checks as "val" as well as 3312 checking the checksum. 3313 3314 * Makefile.am, admin.cc: 3315 Fixed SourceForge bug 1043880: admin -h should invoke val 3316 3317 * sf-get2.cc, tests/get/sf865422.sh: 3318 Fixed SourceForge bug 865422: if a SID is listed in a pfile, that can force a branch 3319 3320 * sccsdiff.sh.in: 3321 Fixed SourceForge bug 966010, sccs sccsdiff -r cannot have space 3322 before revision number. We still will have similar problems 3323 elsewhere in the suite, I suspect. 3324 3325 * sf-prs.cc, sf-delta.cc: 3326 Fixed SourceForge bug 1045768: CSSC does not compile with gcc 3.4 3327 33282004-10-16 James Youngman <jay@gnu.org> 3329 3330 * docs/CREDITS, docs/CREDITS.short.txt: Added Yann Dirson. 3331 33322004-10-10 James Youngman <jay@gnu.org> 3333 3334 * ChangeLog: Updated from CVS log messages. 3335 3336 * README: Fixed typo 3337 3338 * docs/cssc.texi: Added missing full stop. 3339 3340 * configure.ac: 3341 Indicate that this is once again the CVS development version. 3342 3343 * configure.ac: This is release 1.00. 3344 3345 * docs/URLs: 3346 Added GNU FTP site URL in preparation for official 1.0 release. 3347 3348 * docs/TODO: Added disclaumer about the obsoleteness of the file. 3349 3350 * docs/tests-todo.txt: 3351 Removed a couple of entries for tests that now exist. 3352 3353 * docs/Platforms: Minor updates and corrections to typos. 3354 3355 * README: Updated the status of the release. 3356 3357 * NEWS, configure.ac, myset.h, sccsfile.cc, sccsfile.h, sf-admin.cc, sf-get.cc, sf-prs.cc, sf-prt.cc, sf-val.cc, sf-write.cc, writesubst.cc, ChangeLog: 3358 update copyright years 3359 3360 * docs/cssc.texi: 3361 The file was also changed in 2003 and 2004. Hence update the 3362 copyright years. 3363 3364 * docs/cssc.texi: Updated edition - to be released with CSSC 1.00! 3365 3366 * sf-prs.cc: 3367 SF bug 1040827: Solaris 9's "prs" does not produce any output for the 3368 "y" flag. Hence for compatibility nor should we. 3369 3370 * tests/admin/Makefile.am, tests/admin/hardlinks.sh, tests/admin/y-flag.sh, docs/cssc.texi, myset.h, sccsfile.cc, sccsfile.h, sf-admin.cc, sf-get.cc, sf-prs.cc, sf-prt.cc, sf-val.cc, sf-write.cc, writesubst.cc: 3371 Added support for the SCCS 'y' flag - SF bug 1040827 3372 33732004-10-03 James Youngman <jay@gnu.org> 3374 3375 * NEWS: Updated with new news. 3376 3377 * bsd/sccs.c: 3378 Fixed SourceForge bug 806715 (incompatibility of -d flag with the 3379 "sccs print" command). 3380 3381 * docs/cssc.texi: 3382 Be more specific about which version of SCO has the 'x' flag. 3383 3384 * docs/cssc.texi, file.cc, file.h, get.cc, my-getopt.cc, sccsfile.cc, sccsfile.h, sf-admin.cc, sf-delta.cc, sf-prt.cc, sf-write.cc: 3385 Implemented SCO SCCS's x flag; Sourceforge bug ID 969833 3386 33872004-04-25 James Youngman <jay@gnu.org> 3388 3389 * tests/common/command-names: 3390 Make sure we locate the "sccs" binary correctly now that $dir will 3391 normally not begin with "..". 3392 3393 * tests/common/command-names: 3394 Oops, make the tests work if you don't set the $dir variable. 3395 3396 * tests/common/command-names: 3397 Figure out the absolute pathname of the directory containing the CSSC tools. 3398 3399 * depcomp: depcomp - new file required by automake 3400 34012003-12-13 James Youngman <jay@gnu.org> 3402 3403 * tests/what/whatbasic.sh: 3404 Provide a more helpful error message when 'ekko' fails 3405 3406 * linebuf.cc, linebuf.h, sccsfile.cc: 3407 Resolve the strchr() problem pointed out bin SourceForge patch 857193 3408 34092003-12-10 James Youngman <jay@gnu.org> 3410 3411 * NEWS, bsd/sccs.c, my-getopt.cc: 3412 Some changes to eliminate compilation errors/warnings from Sun CC 5.5 3413 3414 * docs/CREDITS.short.txt, docs/CREDITS: Added Tom Duffy. 3415 34162003-12-09 James Youngman <jay@gnu.org> 3417 3418 * bsd/sccs.c, configure.ac, NEWS: 3419 pass through more options to diff (be it GNU diff or vanilla diff) 3420 3421 * bsd/sccs.1: 3422 Documented the extra options now passed to diff by "sccs diffs". 3423 3424 * bsd/sccs.c: 3425 Also pass through the w option (which is not GNU diff specific). 3426 3427 * bsd/sccs.c: 3428 Pass through the options aBdHpqsvy to diff (these are GNU diff options). 3429 3430 * bsd/sccs.c: Support "sccs diffs -u". 3431 34322003-12-08 James Youngman <jay@gnu.org> 3433 3434 * auxfiles/CSSC.spec.in: 3435 Handed over "Packager" status for Red Hat to Thomas Duffy. 3436 3437 * auxfiles/CSSC.spec.in: 3438 Applied SourceForge patch 856398, submitted by Thomas Duffy 3439 3440 * file.cc, file.h, get.cc: 3441 Various changes as suggested by Dick Streefland, relating to the setting/clearing of the DOS archive bit and to systems which lack CONFIG_UIDs 3442 3443 * tests/delta/errorcase.sh: 3444 Oops, this change should have been in 0.16alpha.pl0 3445 3446 * sact.cc: 3447 Fixed SF bug 768002, mismatch in output of sact between CSSC and SCCS when only one file name is given on the command line 3448 3449 * sf-write.cc: Fixed SF bug 856158, compilation error on CYGWIN 3450 34512003-12-07 James Youngman <jay@gnu.org> 3452 3453 * ChangeLog: Brought up to date (again). 3454 3455 * docs/Makefile.am: make mostlyclean should delete cssc.info. 3456 3457 * testutils/Makefile.am: 3458 make distclean should delete decompress_stdin.sh. 3459 3460 * tests/get/sf111140.sh, tests/get/sf479916.sh: 3461 Remove test files at the end of testing. 3462 3463 * tests/get/gg_get_ix.sh: 3464 Remove the working files at the end of the tests. 3465 3466 * ChangeLog: Brought up to date. 3467 3468 * docs/cssc.texi: Indicated the new version. 3469 3470 * configure.ac: Bumped the version number. 3471 3472 * NEWS: Fixed SourceForg bug 581740. 3473 3474 * bsd/Makefile.am, testutils/condense-valgrind.pl, file.cc, file.h, get.cc: 3475 Honour the user's choice of umask - fixes SpurceForge bug 581740 3476 3477 * docs/get-spec.txt: Removed the out of date file get-spec.txt 3478 3479 * docs/Makefile.am: Removed getspec.txt (since it is out of date). 3480 3481 * NEWS: 3482 On Red Hat Linux, info files live in /usr/share/info not /usr/info. 3483 3484 * auxfiles/CSSC.spec.in: 3485 infodir has moved from /usr/info to /usr/share/info. 3486 3487 * quit.cc: 3488 Fix SourceForge bug number 816679, which caused a coredump if 3489 cleanup::~cleanup() was called before there are any entries in the 3490 cleanup list. 3491 3492 * tests/bsd-sccs/driver-basic.sh, tests/bsd-sccs/sf595594.sh: 3493 Fixed SourceForge bug 806699: Make the test work even if the user had 3494 set $PROJECTDIR. 3495 3496 * NEWS, sf-get2.cc, tests/get/defsid.sh: 3497 Make "get -e" take account of the "d" flag. 3498 34992003-05-29 James Youngman <jay@gnu.org> 3500 3501 * sccsfile.cc: sccs_file::sccs_file(): Ensure that this->f is NULL when 3502 we return for mode CREATE (previously it was uninitialised). 3503 This fixes SourceForge bug 745608. 3504 3505 * sf-write.cc: 3506 CYGWIN: end_update: Only close the SCCS file if it is open (the FILE* 3507 is not NULL). On platforms other than CYGWIN, we don't close he file 3508 anyway. 3509 35102003-05-19 James Youngman <jay@gnu.org> 3511 3512 * docs/Platforms: Corrected email address for Clement T. Cole. 3513 35142003-05-18 James Youngman <jay@gnu.org> 3515 3516 * tests/common/test-common: 3517 Cope with the case where "remove" is called with no arguments. 3518 35192003-05-16 James Youngman <jay@gnu.org> 3520 3521 * Makefile.am: Also clean "sccsdiff" for "make clean". 3522 35232003-05-05 James Youngman <jay@gnu.org> 3524 3525 * sf-get2.cc: 3526 "get -e" now takes notice of the default SID when deciding the SID of the new delta. 3527 35282003-03-15 James Youngman <jay@gnu.org> 3529 3530 * README: Added pointer to docs/Platforms. 3531 3532 * docs/Platforms: Added MacOS X porting tip from Brad Crittenden. 3533 35342003-03-08 James Youngman <jay@gnu.org> 3535 3536 * tests/get/excl_ig_2.sh: Don't cat the s-file at the end! 3537 3538 * tests/get/t-option.sh: 3539 Added test for Sourceforge bug #699318 ("get -t s.foo" when foo 3540 contains only one SID, created by "admin -iX -r1.1.1.1 s.foo"). 3541 3542 * sccsfile.h, sf-get2.cc: 3543 Fixed Sourceforge bug #699318 ("get -t s.foo" when foo contains only 3544 one SID, created by "admin -iX -r1.1.1.1 s.foo"). 3545 3546 * sf-get2.cc: Simplified the matching code. 3547 3548 * sf-get2.cc: 3549 find_requested_sid(): separated the does-this-SID-match decision from 3550 the is-this-the-best-yet decision. 3551 35522003-03-01 james_youngman <jay@gnu.org> 3553 3554 * sf-write.cc, sccsfile.h: 3555 Recognise BitKeeper files by their different checksum lines, and 3556 accept also the BK-specific comment lines and extra flags (though 3557 don't accept them if the file is not a BK file). 3558 3559 * sccsfile.cc: Updated copyright years. 3560 3561 * sccsfile.h, sccsfile.cc: 3562 Recognise BitKeeper files by their different checksum lines, and 3563 accept also the BK-specific comment lines and extra flags (though 3564 don't accept them if the file is not a BK file). 3565 35662003-02-13 james_youngman <jay@gnu.org> 3567 3568 * tests/get/sf664900.sh, sf-get2.cc: 3569 One-line fix for SourceForge bug 664900 by Darren Warner. 3570 3571 * configure.ac, acconfig.h: 3572 Fix CSSC bug 650420 - warnings from autoconf/autoheader about obsolete usage 3573 of acconfig.h file. 3574 35752002-12-08 james_youngman <jay@gnu.org> 3576 3577 * testutils/Makefile.am: 3578 Include "decompress_stdin.sh.in" in the distribution. 3579 3580 * ChangeLog: Updated for 0.15pl0. 3581 3582 * configure.ac: Bumped to version 0.15pl0. 3583 3584 * NEWS: Added NEWS items for version 0.15pl0. 3585 35862002-11-02 james_youngman <jay@gnu.org> 3587 3588 * seqstate.cc, seqstate.h, sf-get2.cc, sf-get.cc: 3589 support for ignored deltas 3590 3591 * tests/get/excl_ig_2.sh: added new test script 3592 3593 * tests/get/excl_ig_1.sh: enabled test xg6 3594 3595 * docs/cssc.texi: 3596 Added section on included, excluded and ignored deltas. 3597 3598 * tests/get/middle-fail.sh: 3599 Tut - use ${admin} not "admin" as a command name - make sure we are 3600 testing the correct instance! 3601 3602 * tests/bsd-sccs/sf595594.sh: 3603 Tut - use ${sccs} not sccs as a command name - make sure we are 3604 testing the correct instance! 3605 3606 * delta.cc: 3607 Indicate the presence of the -p option in the usage message. 3608 3609 * configure.ac: 3610 Fixed SF bug 623164: you need to include <ctype.h> to use isdigit(). 3611 3612 * cssc.h: 3613 SF bug 623164: you need to include <ctype.h> to use isdigit(). 3614 3615 * get.cc: Updated copyright year. 3616 3617 * autogen.sh: Recurse into subdirectories where appropriate. 3618 3619 * tests/common/command-names: 3620 Corrected bug where more than one argument is passed to test (which 3621 now justifiably complains when you do this). 3622 36232002-10-04 James Youngman <jay@gnu.org> 3624 3625 * auxfiles/CSSC.spec.in: 3626 Change references to sccs.1 to sccs.1* because RPM v4 compresses all manpages. 3627 36282002-09-27 James Youngman <jay@gnu.org> 3629 3630 * docs/cssc.texi: 3631 Changed all instances of @url to @uref, except where that would 3632 produce a broken link. 3633 3634 * docs/cssc.texi: Updated the update timestamp. 3635 3636 * docs/cssc.texi: 3637 Applied changes suggested by Timothy Bedding (SourceForge bug ID 3638 589542). 3639 36402002-09-20 James Youngman <jay@gnu.org> 3641 3642 * docs/cssc.texi: Updated the "last update" time. 3643 3644 * docs/cssc.texi: Corrected typo. 3645 3646 * docs/cssc.texi: Re-ordered some paragraphs for clarity. 3647 3648 * docs/cssc.texi: 3649 Explain that the line length limits apply only to lines which will end 3650 up in the histry file - and that over-length lines already in the 3651 history file will be correctly coped with by "get". 3652 3653 * docs/cssc.texi: Corrected cross-reference. 3654 3655 * docs/cssc.texi: Explain how to figure out which diff command is used. 3656 3657 * docs/cssc.texi: 3658 Expanded the discussion of the (lack of) line length limits in CSSC. 3659 36602002-08-16 James Youngman <jay@gnu.org> 3661 3662 * get.cc: 3663 If we fail to set the mode on the g-file correctly, delete it and propagate the failure information 3664 3665 * tests/bsd-sccs/driver-basic.sh, tests/common/command-names, get.cc: 3666 SourceForge bug 595594 - all g-files processed after a failing file are deleted 3667 3668 * tests/get/middle-fail.sh: 3669 SourceForge bug 595594 fixed - if we failed to get a previous file, all g-files processed later are deleted even if they were successful 3670 3671 * tests/bsd-sccs/sf595594.sh: Initial version of test. 3672 36732002-07-26 James Youngman <jay@gnu.org> 3674 3675 * run.cc: Updated copyright year. 3676 3677 * run.cc: 3678 Fixed inappropriate boolean inversion on systems where HAVE_FORK is not defined 3679 3680 * testutils/configure.in, configure.in: 3681 Removed old configure.in files - replaced by configure.ac 3682 3683 * testutils/COPYING, testutils/ChangeLog, testutils/INSTALL, testutils/NEWS, testutils/configure.ac, testutils/ekko.c, testutils/lndir.c, testutils/realpwd.cc, testutils/seeker.c, testutils/user.c, testutils/yammer.c, testutils/yes.c, README, configure.ac, run.cc, testutils/AUTHORS: 3684 Updated configure.in to configure.ac - we can now use autoconf version 2.53 3685 36862002-04-07 James Youngman <jay@gnu.org> 3687 3688 * tests/delta/p-option.sh: 3689 Some initial tests for the "-p" option of delta. 3690 3691 * NEWS: New check of link count when opening SCCS file 3692 3693 * docs/cssc.texi, tests/admin/hardlinks.sh, configure.in, sccsfile.cc: 3694 It is not allowed to have hard links to an SCCS file (that is, the link count may not be greater than 1). Violating this rule now results in CSSC refusing to open that SCCS file 3695 3696 * scripts/rev-freq.sh: Corrected a shell syntax error 3697 36982002-04-05 James Youngman <jay@gnu.org> 3699 3700 * tests/admin/locks.sh, tests/admin/users.sh, tests/binary/auto.sh, tests/binary/seeking.sh, tests/common/need-prt, tests/prt/all-512.sh, tests/prt/default.sh, tests/prt/exists.sh, tests/prt/nodel.sh, tests/prt/reportmr.sh, NEWS, README, docs/cssc.texi, sf-prs.cc: 3701 Added support for running the test suite against versions of SCCS that lack a prt program 3702 37032002-04-04 James Youngman <jay@gnu.org> 3704 3705 * docs/cssc.texi: 3706 get -a now has test cases, so we no longer need to indicate that it is untested. 3707 3708 * get.cc, sccsfile.h, sf-get2.cc: support for the -a option of get 3709 3710 * sccsfile.cc, quit.h, sccsdate.cc, sf-kw.cc, sf-val.cc, sf-write.cc, admin.cc, quit.cc: 3711 Added global function 'warning' so that we don't have to issue warnings by calling 'errormsg' 3712 3713 * tests/get/gg_get_ix.sh: 3714 Removed redundant comment about tests that used to fail with CSSC (but 3715 no longer do so). 3716 3717 * tests/get/optorder.sh: Fixed typo 3718 3719 * tests/common/test-common: 3720 minor changes for the formatting of labels at the start of the lines of output of the tests - to preserve whitespace 3721 3722 * tests/get/a-option.sh: Tests for the "-a" option of "get". 3723 37242002-04-03 James Youngman <jay@gnu.org> 3725 3726 * configure.in: 3727 Updated the version number to indicate that any version someone checks 3728 out of CVS is from CVS (we use the suffix CVSDEVEL). 3729 3730 * configure.in: 3731 Up-date version number to 0.14alpha.pl0, prior to making the release 3732 3733 * Makefile.am: Added file myset.h to the distribution 3734 3735 * testutils/Makefile.am: 3736 Added some files missing from the distribution (notably mogrify.awk). 3737 3738 * ChangeLog: updated from log entries on other files 3739 3740 * docs/cssc.texi: enhancements to the sections on interoperability 3741 3742 * configure.in: 3743 Added HAVE_GNU_DIFF, which indicates if the diff command to be used s GNU diff 3744 3745 * showconfig.cc: 3746 Show the likely limit on the length of a line for the diff utility being used 3747 3748 * acconfig.h: 3749 Added HAVE_GNU_DIFF, which indicates if the diff command to be used s GNU diff 3750 3751 * environment.cc: 3752 Show the likely limit on the length of a line for the diff utility being used 3753 3754 * delta.cc, get.cc, tests/get/errorcases.sh: 3755 Invalid options produce a return value of 1 (on Solaris 2.6) not 2 3756 3757 * testutils/compare_gets.sh: 3758 Do not compare removes deltas - so do not pass -a to prs 3759 37602002-04-02 James Youngman <jay@gnu.org> 3761 3762 * NEWS: Corrected typos. 3763 3764 * tests/delta/options.sh: 3765 Unknown option error results in return value of 1, not 2. 3766 3767 * tests/delta/errorcase.sh, sf-delta.cc: 3768 A pre-existing d-file is not an error condition 3769 3770 * seqstate.cc, seqstate.h, sf-get.cc, sf-get2.cc, sf-get3.cc, tests/get/gg_get_ix.sh, tests/get/sf111140.sh: 3771 Do includes before excludes (except in the case of command-line includes) - fixes bug reported by gerry.green@cle.philips.com 3772 3773 * tests/get/sf111140_full.txt: test file 3774 3775 * tests/get/create.sh: Extra checks as we go along. 3776 37772002-03-28 James Youngman <jay@gnu.org> 3778 3779 * NEWS: Updated with the latest info 3780 3781 * docs/TESTING: added Gerry Green 3782 3783 * tests/get/gg_get_ix.sh, sccsfile.h, sf-delta.cc, sf-get.cc, sf-get2.cc, sf-get3.cc, sf-prs.cc, Makefile.am: 3784 Make sure everybody is using sccs_file::prepare_seqstate() in the same way 3785 3786 * tests/get/gg_get_ix.sh: new test script from Gerry Green 3787 37882002-03-26 James Youngman <jay@gnu.org> 3789 3790 * tests/get/errorcases.sh, docs/tests-todo.txt, get.cc: 3791 gcov fixes - invalid SIDs for get -i and get -x 3792 3793 * docs/.cvsignore: Ignore cssc.info-4 3794 3795 * sccs-cgi/.cvsignore: Ignore Makefile.in. 3796 3797 * docs/tests-todo.txt, tests/delta/errorcase.sh: 3798 Added extra 5test cases to increate test coverage 3799 3800 * sf-delta.cc: 3801 If the p-file indicates a SID which is not in the SCCS file, indicate 3802 which SID we have a problem with in the error message we produce. 3803 3804 * docs/tests-todo.txt: Removed todo items for the tests we've addded. 3805 3806 * testutils/user.c: Various enhancements for testing "delta". 3807 3808 * docs/cssc.texi: Comments about authorised user list 3809 38102002-03-25 James Youngman <jay@gnu.org> 3811 3812 * tests/delta/errorcase.sh: 3813 Extra test cases for the authorised user list. 3814 3815 * sf-get3.cc: Do not use '!' exclusion for authorised user list 3816 3817 * sccsfile.h, sf-get3.cc, sf-get2.cc, sf-delta.cc: 3818 delta should check that the invoking user is allowed to make deltas 3819 3820 * docs/cssc.texi: 3821 Made the SCCS file flags section headings reflect the contents better 3822 3823 * tests/delta/errorcase.sh: initial checkin 3824 3825 * tests/delta/MRs.sh: 3826 fixes to the tests - after testing against Solaris 2.6 3827 3828 * tests/delta/basic.sh: 3829 Added tests for the no-id-keywords-is-fatal flag 3830 3831 * testutils/user.c: 3832 added feature - 'tell me a group of which I am not a member' 3833 3834 * sccs-cgi/Makefile.am: initial version 3835 3836 * docs/tests-todo.txt: Removed the todo-items we've already done 3837 3838 * NEWS: We removed the -Y and -M options of delta 3839 3840 * Makefile.am: recurse into sccs-cgi also 3841 3842 * configure.in: generate sccs-cgi/Makefile in AC_OUTPUT 3843 3844 * val.cc: Fixed header comment which indicated what the file was for 3845 3846 * sccsfile.cc: 3847 Use v_unknown_feature_warning() instead of v_errormsg() since the latter is no longer exported from quit.cc 3848 3849 * my-getopt.cc: 3850 Produce usage message is the command line exhibits wrong usage of options 3851 3852 * tests/common/test-common: Added function rename() 3853 3854 * tests/delta/MRs.sh: 3855 Extra test - should not be able to check in file without specifying an MR if the v flag is set 3856 3857 * tests/delta/basic.sh: 3858 extra tests (deletion of lines, checking of -r option against p-file) 3859 3860 * tests/delta/n-option.sh: 3861 remove any test files we will need to control at the start 3862 3863 * quit.cc, quit.h: Don't export v_errormsg as a global function 3864 38652002-03-24 James Youngman <jay@gnu.org> 3866 3867 * testutils/gcov-util.sh: Put the title in <title>...</title>. 3868 3869 * testutils/gcov-util.sh: 3870 Define $NOW (date at which the summary was prepared). 3871 3872 * testutils/gcov-util.sh: 3873 Tool for slicing and dicing the results of gcov. 3874 3875 * docs/tests-todo.txt: 3876 Added list of tests to be written in tests-todo.txt 3877 3878 * delta.cc: Removed options -M and -Y (not in normal SCCS anyway) 3879 3880 * tests/delta/options.sh: 3881 Added tests for the various command-line options of delta. 3882 3883 * NEWS: Brought the NEWS fie up to date with the ChangeLog file. 3884 38852002-03-23 James Youngman <jay@gnu.org> 3886 3887 * docs/cssc.texi: Use @option for options, not @samp. 3888 3889 * configure.in: spell --disable-max-line-length correctly 3890 3891 * sf-prs.cc: 3892 Print sequence numbers in correct (reverse) order; don't include ignored deltas in :DI: (for Solaris 2.6 compatibility) 3893 3894 * docs/cssc.texi: 3895 Documented val. Included information about differences between the various SCCS versions 3896 38972002-03-22 James Youngman <jay@gnu.org> 3898 3899 * tests/prs/keywords.sh: Re-enabled all the tests... 3900 3901 * tests/prs/keywords.sh: 3902 Added test cases for having more than one SID in the included or 3903 excluded SID list. 3904 39052002-03-21 James Youngman <jay@gnu.org> 3906 3907 * sf-prs.cc: 3908 Backed out of the change made for previous revision - they should be 3909 shown as seq_nos after all... 3910 3911 * tests/prs/keywords.sh: :Dx: and friends should emit seq_no values. 3912 3913 * sf-prs.cc: 3914 For lists of included/excluded deltas, print the SID rather than the seq_no. 3915 3916 * myset.h, sf-delta.cc: 3917 Only list each included/excluded delta once in each include/exclude list. 3918 3919 * tests/prs/keywords.sh: Added tests for more keywords. 3920 39212002-03-20 James Youngman <jay@gnu.org> 3922 3923 * ChangeLog: Brought up to date with new log entries. 3924 39252002-03-19 James Youngman <jay@gnu.org> 3926 3927 * val.cc: 3928 Various fixes for the value returned in all sorts of validation-faulure cases 3929 3930 * tests/what/Makefile.am: 3931 We have a file whatbasic.sh but no keywords.sh 3932 3933 * tests/common/command-names: added val 3934 3935 * tests/Makefile.am: New test directory, 'val' 3936 3937 * tests/sact/sactbasic.sh, tests/val/Makefile.am, tests/val/valbasic.sh, tests/val/y2k.sh: 3938 reduced lines of untested code to 2083 - tests added for valand sact 3939 3940 * bsd/sccs.c: Fixed typos causing compilation errors 3941 3942 * bsd/sccs.c: 3943 Fixed SourceForge bug 531884, compiler warning on 64-bit systems 3944 3945 * file.cc: 3946 While trying to do atomic NFS file locking, sleep for a bit if we fail 3947 to make the hard link from nfslckNNNN to z.foobar. 3948 3949 * sf-delta.cc, filediff.cc, filediff.h: 3950 Fixed SourceForge bug 530969 - FILE* leak in fildiff.cc 3951 3952 * docs/Platforms: 3953 Updated following testing on the SourceForge compile farm 3954 3955 * README: Inform reader that GNU make is probably required. 3956 Removed the "stop press" which is now old news. 3957 39582002-03-18 James Youngman <jay@gnu.org> 3959 3960 * tests/what/whatbasic.sh, what.cc: 3961 Added an extra test (test w22) in whatbasic.sh to cover the whole of the print_what() function in what.cc. 3962 3963 * tests/Makefile.am: Added test-what. 3964 3965 * docs/cssc.texi, tests/Makefile.am, tests/what/Makefile.am, NEWS, my-getopt.cc, my-getopt.h, what.cc: 3966 Added tests for what - and therefore some bugfixes too 3967 3968 * tests/what/whatbasic.sh: 3969 On the other hand, this version passes when run against Solaris 2.6... 3970 3971 * tests/what/whatbasic.sh: 3972 This version passes for CSSC but has not been checked against SCCS. 3973 3974 * docs/Platforms: 3975 Works on Solaris 2.6 and Debian 3.0 as well as GCC version3 3976 3977 * docs/patches.txt: Corrected a typo 3978 39792002-03-17 James Youngman <jay@gnu.org> 3980 3981 * tests/common/config-data: 3982 Include binary file support tests on SunOS. Note that some tests are 3983 *still* disabled on SunOS, because they still fail (e.g. the ability 3984 to automatically revert to binary-mode when reading the initial body 3985 from stdin). 3986 3987 * bsd/sccs.c: 3988 Issue more helpful messages about the unimplemented comb and help commands. 3989 3990 * bsd/sccs.c: Corrected spelling error in warning message. 3991 3992 * bsd/sccs.c: 3993 Since we are not includeing <strings.h> and there is not need to 3994 depend on it, roll our own rindex() and index() functions from the 3995 functions provided by <string.h>. 3996 39972002-03-16 James Youngman <jay@gnu.org> 3998 3999 * tests/prs/body.sh, tests/prs/s_foo_bd_output.txt, tests/prs/sample_foo: 4000 Test the :BD: keyword of prs 4001 4002 * bodyio.cc: 4003 valgrind-detected bug: do keyword checking on the uuencoded version of the data 4004 4005 * docs/cssc.texi, tests/prs/body.sh: Tests for prs -d:GB: 4006 40072002-03-10 James Youngman <jay@gnu.org> 4008 4009 * prompt.cc, sccsdate.cc, sccsfile.cc, sccsfile.h, sf-delta.cc, sf-prs.cc: 4010 valgrind: don't use sccs_date(NULL) - previously we had an uninitialised variable sccs_date.second as a result of using sccs_date::sccs_date(NULL) 4011 40122002-03-04 James Youngman <jay@gnu.org> 4013 4014 * docs/cssc.texi: 4015 Added glossary; spelling corrections; updated copyright years 4016 40172002-03-03 James Youngman <jay@gnu.org> 4018 4019 * tests/sccsdiff/rap.sh: 4020 Fixed sourceforge bug 489311 (Locale settings cause test failure) 4021 40222002-02-25 James Youngman <jay@gnu.org> 4023 4024 * tests/Makefile.am, tests/sact/Makefile.am, tests/sact/sf513800.sh, tests/sact/sf513800_1.uue, tests/sact/sf513800_2.uue, sccsdate.cc: 4025 test for Sourceforge bug sf513800.sh and a fix for the same 4026 40272002-02-23 James Youngman <jay@gnu.org> 4028 4029 * ChangeLog, ChangeLog.2: 4030 Moved the changelog entries from ChangeLog into ChangeLog.2. New 4031 changeLog entries to go into ChangeLog, and the ChangeLog.1 and 4032 ChangeLog.2 files contain historical changelogs. 4033 40342001-12-04 James Youngman <jay@gnu.org> 4035 4036 * delta.cc: Fixed SourceForge bug 489005 4037 40382001-12-02 James Youngman <jay@gnu.org> 4039 4040 * NEWS, except.h, quit.cc, quit.h, sccsfile.cc, sccsfile.h, tests/prt/all-512.sh, tests/prt/default.sh, tests/prt/nodel.sh: 4041 Added warning when we see an excluded delta (since we are not certain 4042 we handle this correctly). The warnig includes a pointer tot he web 4043 page explaining what the user should do about this. 4044 40452001-12-01 James Youngman <jay@gnu.org> 4046 4047 * configure.in: 4048 bumped version - to avoid confusion with previous release 4049 4050 * NEWS, bodyio.cc, file.cc, file.h, filediff.cc, get.cc, sf-delta.cc, sf-kw.cc: 4051 Fixed sourceforge bugs 480136, 481519, 481707, 484278 - all related to setuid operation, and in fact all dupliactes of each other 4052 40532001-11-29 James Youngman <jay@gnu.org> 4054 4055 * docs/CREDITS, sccs-cgi/sccs.cgi, sccs-cgi/sccs.cgi.text, AUTHORS: 4056 Added Richard Kettlewell's sccs.cgi script. Updated AUTHORS and 4057 CREDITS files appropriately. 4058 4059 * quit.cc: 4060 Fixed compilation error ocurring when HAVE_EXCEPTIONS is not defined 4061 40622001-11-25 James Youngman <jay@gnu.org> 4063 4064 * configure.in: 4065 Set the language back to C after doing the check for broken printf 4066 macros in the glibc header files. (Also set up for a release). 4067 4068 * get.cc, sf-get2.cc, tests/common/command-names, tests/get/sf479916.sh: 4069 Fixed sourceforge bug #479916 - get -t problem 4070 4071 * sccsdiff.sh.in: Corrected a syntax error. 4072 4073 * NEWS: Fixed SF bug 450900. 4074 4075 * tests/get/removed-delta.sh: Test case for SourceForge bug 450900 4076 4077 * delta-table.cc: 4078 SF bug #450900 - if you try to check out a version for 4079 editing, and the SID that would ordinary be selected exists 4080 but is removed, we should indeed use it. 4081 4082 * ChangeLog: Updated with recent change log entries. 4083 4084 * Makefile.am, NEWS, configure.in: 4085 Fixed debian bug #120080 (sccsdiff cannot find get iuis /usr/sccs 4086 symlink is missing) 4087 4088 * sccsdiff.sh.in: 4089 fixed Debian Bug#120080: sccs sccsdiff doesn't work (sccsdiff assumes /usr/sccs symlink exists) 4090 4091 * bsd/sccs.c, tests/admin/comment.sh, tests/admin/init-mr.sh, tests/admin/locks.sh, tests/admin/t-option.sh, tests/admin/users.sh, tests/prs/exists.sh, tests/prs/keywords.sh, tests/prt/all-512.sh, tests/prt/all.expected.Z, tests/prt/expected/nodel.-u, tests/prt/expected/nodel.-u-f, tests/prt/expected/nodel.-u-f-t-b, NEWS, configure.in, sf-admin.cc, sf-prs.cc, sf-prt.cc: 4092 Brought test suite - and code - into line with Solaris 2.6 behaviour; largely changes for formatting of prt/prs output, but also a change to the behaviour of admin -fl 4093 4094 4095