Changes in / [332:3f9f3550dbf5:323:94b832d461f7] in lemon-main
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/bfs.h
r329 r301 52 52 ///Instantiates a PredMap. 53 53 54 ///This function instantiates a PredMap. 54 ///This function instantiates a PredMap. 55 55 ///\param g is the digraph, to which we would like to define the 56 56 ///PredMap. … … 81 81 ///The type of the map that indicates which nodes are reached. 82 82 83 ///The type of the map that indicates which nodes are reached.///It must meet the \ref concepts::ReadWriteMap "ReadWriteMap" concept. 83 ///The type of the map that indicates which nodes are reached. 84 ///It must meet the \ref concepts::ReadWriteMap "ReadWriteMap" concept. 84 85 typedef typename Digraph::template NodeMap<bool> ReachedMap; 85 86 ///Instantiates a ReachedMap. -
lemon/list_graph.h
r329 r313 841 841 842 842 public: 843 operator Edge() const { 844 return id != -1 ? edgeFromId(id / 2) : INVALID; 843 operator Edge() const { 844 return id != -1 ? edgeFromId(id / 2) : INVALID; 845 845 } 846 846 -
lemon/smart_graph.h
r329 r313 465 465 466 466 public: 467 operator Edge() const { 468 return _id != -1 ? edgeFromId(_id / 2) : INVALID; 467 operator Edge() const { 468 return _id != -1 ? edgeFromId(_id / 2) : INVALID; 469 469 } 470 470 -
scripts/unify-sources.sh
r331 r208 4 4 HGROOT=`hg root` 5 5 6 # file enumaration modes 7 8 function all_files() { 9 hg status -a -m -c | 10 cut -d ' ' -f 2 | grep -E '(\.(cc|h|dox)$|Makefile\.am$)' | 11 while read file; do echo $HGROOT/$file; done 12 } 13 14 function modified_files() { 15 hg status -a -m | 16 cut -d ' ' -f 2 | grep -E '(\.(cc|h|dox)$|Makefile\.am$)' | 17 while read file; do echo $HGROOT/$file; done 18 } 19 20 function changed_files() { 21 { 22 if [ -n "$HG_PARENT1" ] 23 then 24 hg status --rev $HG_PARENT1:$HG_NODE -a -m 25 fi 26 if [ -n "$HG_PARENT2" ] 27 then 28 hg status --rev $HG_PARENT2:$HG_NODE -a -m 29 fi 30 } | cut -d ' ' -f 2 | grep -E '(\.(cc|h|dox)$|Makefile\.am$)' | 31 sort | uniq | 32 while read file; do echo $HGROOT/$file; done 33 } 34 35 function given_files() { 36 for file in $GIVEN_FILES 37 do 38 echo $file 39 done 40 } 41 42 # actions 43 44 function update_action() { 45 if ! diff -q $1 $2 >/dev/null 46 then 47 echo -n " [$3 updated]" 48 rm $2 49 mv $1 $2 50 CHANGED=YES 51 fi 52 } 53 54 function update_warning() { 55 echo -n " [$2 warning]" 56 WARNED=YES 57 } 58 59 function update_init() { 60 echo Update source files... 61 TOTAL_FILES=0 62 CHANGED_FILES=0 63 WARNED_FILES=0 64 } 65 66 function update_done() { 67 echo $CHANGED_FILES out of $TOTAL_FILES files has been changed. 68 echo $WARNED_FILES out of $TOTAL_FILES files triggered warnings. 69 } 70 71 function update_begin() { 72 ((TOTAL_FILES++)) 73 CHANGED=NO 74 WARNED=NO 75 } 76 77 function update_end() { 78 if [ $CHANGED == YES ] 79 then 80 ((++CHANGED_FILES)) 81 fi 82 if [ $WARNED == YES ] 83 then 84 ((++WARNED_FILES)) 85 fi 86 } 87 88 function check_action() { 89 if ! diff -q $1 $2 >/dev/null 90 then 91 echo 92 echo -n " $3 failed at line(s): " 93 echo -n $(diff $1 $2 | grep '^[0-9]' | sed "s/^\(.*\)c.*$/ \1/g" | 94 sed "s/,/-/g" | paste -s -d',') 95 FAILED=YES 96 fi 97 } 98 99 function check_warning() { 100 echo 101 if [ "$2" == 'long lines' ] 102 then 103 echo -n " $2 warning at line(s): " 104 echo -n $(grep -n -E '.{81,}' $1 | sed "s/^\([0-9]*\)/ \1\t/g" | 105 cut -f 1 | paste -s -d',') 106 else 107 echo -n " $2 warning" 108 fi 109 WARNED=YES 110 } 111 112 function check_init() { 113 echo Check source files... 114 FAILED_FILES=0 115 WARNED_FILES=0 116 TOTAL_FILES=0 117 } 118 119 function check_done() { 120 echo $FAILED_FILES out of $TOTAL_FILES files has been failed. 121 echo $WARNED_FILES out of $TOTAL_FILES files triggered warnings. 122 123 if [ $FAILED_FILES -gt 0 ] 124 then 125 return 1 126 elif [ $WARNED_FILES -gt 0 ] 127 then 128 if [ "$WARNING" == 'INTERACTIVE' ] 129 then 130 echo -n "Are the files with warnings acceptable? (yes/no) " 131 while read answer 132 do 133 if [ "$answer" == 'yes' ] 134 then 135 return 0 136 elif [ "$answer" == 'no' ] 137 then 138 return 1 139 fi 140 echo -n "Are the files with warnings acceptable? (yes/no) " 141 done 142 elif [ "$WARNING" == 'WERROR' ] 143 then 144 return 1 145 fi 146 fi 147 } 148 149 function check_begin() { 150 ((TOTAL_FILES++)) 151 FAILED=NO 152 WARNED=NO 153 } 154 155 function check_end() { 156 if [ $FAILED == YES ] 157 then 158 ((++FAILED_FILES)) 159 fi 160 if [ $WARNED == YES ] 161 then 162 ((++WARNED_FILES)) 163 fi 164 } 165 166 167 168 # checks 169 170 function header_check() { 171 if echo $1 | grep -q -E 'Makefile\.am$' 172 then 173 return 174 fi 175 6 function update_header() { 176 7 TMP_FILE=`mktemp` 8 FILE_NAME=$1 177 9 178 10 (echo "/* -*- mode: C++; indent-tabs-mode: nil; -*- … … 194 26 */ 195 27 " 196 28 awk 'BEGIN { pm=0; } 197 29 pm==3 { print } 198 30 /\/\* / && pm==0 { pm=1;} … … 200 32 /\*\// && pm==1 { pm=2;} 201 33 ' $1 202 34 ) >$TMP_FILE 203 35 204 "$ACTION"_action "$TMP_FILE" "$1" header 36 HEADER_CH=`diff -q $TMP_FILE $FILE_NAME >/dev/null&&echo NO||echo YES` 37 38 rm $FILE_NAME 39 mv $TMP_FILE $FILE_NAME 205 40 } 206 41 207 function tabs_check() { 208 if echo $1 | grep -q -v -E 'Makefile\.am$' 209 then 210 OLD_PATTERN=$(echo -e '\t') 211 NEW_PATTERN=' ' 212 else 213 OLD_PATTERN=' ' 214 NEW_PATTERN=$(echo -e '\t') 215 fi 42 function update_tabs() { 216 43 TMP_FILE=`mktemp` 217 cat $1 | sed -e "s/$OLD_PATTERN/$NEW_PATTERN/g" >$TMP_FILE44 FILE_NAME=$1 218 45 219 "$ACTION"_action "$TMP_FILE" "$1" 'tabs' 46 cat $1 | 47 sed -e 's/\t/ /g' >$TMP_FILE 48 49 TABS_CH=`diff -q $TMP_FILE $FILE_NAME >/dev/null&&echo NO||echo YES` 50 51 rm $FILE_NAME 52 mv $TMP_FILE $FILE_NAME 220 53 } 221 54 222 function spaces_check() {55 function remove_trailing_space() { 223 56 TMP_FILE=`mktemp` 224 cat $1 | sed -e 's/ \+$//g' >$TMP_FILE57 FILE_NAME=$1 225 58 226 "$ACTION"_action "$TMP_FILE" "$1" 'trailing spaces' 59 cat $1 | 60 sed -e 's/ \+$//g' >$TMP_FILE 61 62 SPACES_CH=`diff -q $TMP_FILE $FILE_NAME >/dev/null&&echo NO||echo YES` 63 64 rm $FILE_NAME 65 mv $TMP_FILE $FILE_NAME 227 66 } 228 67 229 function long_lines_check() { 230 if cat $1 | grep -q -E '.{81,}' 68 function long_line_test() { 69 cat $1 |grep -q -E '.{81,}' 70 } 71 72 function update_file() { 73 echo -n ' update' $i ... 74 75 update_header $1 76 update_tabs $1 77 remove_trailing_space $1 78 79 CHANGED=NO; 80 if [[ $HEADER_CH = YES ]]; 231 81 then 232 "$ACTION"_warning $1 'long lines' 82 echo -n ' [header updated]' 83 CHANGED=YES; 84 fi 85 if [[ $TABS_CH = YES ]]; 86 then 87 echo -n ' [tabs removed]' 88 CHANGED=YES; 89 fi 90 if [[ $SPACES_CH = YES ]]; 91 then 92 echo -n ' [trailing spaces removed]' 93 CHANGED=YES; 94 fi 95 if long_line_test $1 ; 96 then 97 echo -n ' [LONG LINES]' 98 ((LONG_LINE_FILES++)) 99 fi 100 echo 101 if [[ $CHANGED = YES ]]; 102 then 103 ((CHANGED_FILES++)) 233 104 fi 234 105 } 235 106 236 # process the file 237 238 function process_file() { 239 echo -n " $ACTION $1..." 240 241 CHECKING="header tabs spaces long_lines" 242 243 "$ACTION"_begin $1 244 for check in $CHECKING 107 CHANGED_FILES=0 108 TOTAL_FILES=0 109 LONG_LINE_FILES=0 110 if [ $# == 0 ]; then 111 echo Update all source files... 112 for i in `hg manifest|grep -E '\.(cc|h|dox)$'` 245 113 do 246 "$check"_check $1 114 update_file $HGROOT/$i 115 ((TOTAL_FILES++)) 247 116 done 248 "$ACTION"_end $1 117 echo ' done.' 118 else 119 for i in $* 120 do 121 update_file $i 122 ((TOTAL_FILES++)) 123 done 124 fi 125 echo $CHANGED_FILES out of $TOTAL_FILES files has been changed. 126 if [[ $LONG_LINE_FILES -gt 1 ]]; then 249 127 echo 250 } 251 252 function process_all { 253 "$ACTION"_init 254 while read file 255 do 256 process_file $file 257 done < <($FILES) 258 "$ACTION"_done 259 } 260 261 while [ $# -gt 0 ] 262 do 263 264 if [ "$1" == '--help' ] || [ "$1" == '-h' ] 265 then 266 echo -n \ 267 "Usage: 268 $0 [OPTIONS] [files] 269 Options: 270 --dry-run|-n 271 Check the files, but do not modify them. 272 --interactive|-i 273 If --dry-run is specified and the checker emits warnings, 274 then the user is asked if the warnings should be considered 275 errors. 276 --werror|-w 277 Make all warnings into errors. 278 --all|-a 279 Check all source files in the repository. 280 --modified|-m 281 Check only the modified (and new) source files. This option is 282 useful to check the modification before making a commit. 283 --changed|-c 284 Check only the changed source files compared to the parent(s) of 285 the current hg node. This option is useful as hg hook script. 286 To automatically check all your changes before making a commit, 287 add the following section to the appropriate .hg/hgrc file. 288 289 [hooks] 290 pretxncommit.checksources = scripts/unify-sources.sh -c -n -i 291 292 --help|-h 293 Print this help message. 294 files 295 The files to check/unify. If no file names are given, the modified 296 source files will be checked/unified (just like using the 297 --modified|-m option). 298 " 299 exit 0 300 elif [ "$1" == '--dry-run' ] || [ "$1" == '-n' ] 301 then 302 [ -n "$ACTION" ] && echo "Conflicting action options" >&2 && exit 1 303 ACTION=check 304 elif [ "$1" == "--all" ] || [ "$1" == '-a' ] 305 then 306 [ -n "$FILES" ] && echo "Conflicting target options" >&2 && exit 1 307 FILES=all_files 308 elif [ "$1" == "--changed" ] || [ "$1" == '-c' ] 309 then 310 [ -n "$FILES" ] && echo "Conflicting target options" >&2 && exit 1 311 FILES=changed_files 312 elif [ "$1" == "--modified" ] || [ "$1" == '-m' ] 313 then 314 [ -n "$FILES" ] && echo "Conflicting target options" >&2 && exit 1 315 FILES=modified_files 316 elif [ "$1" == "--interactive" ] || [ "$1" == "-i" ] 317 then 318 [ -n "$WARNING" ] && echo "Conflicting warning options" >&2 && exit 1 319 WARNING='INTERACTIVE' 320 elif [ "$1" == "--werror" ] || [ "$1" == "-w" ] 321 then 322 [ -n "$WARNING" ] && echo "Conflicting warning options" >&2 && exit 1 323 WARNING='WERROR' 324 elif [ $(echo x$1 | cut -c 2) == '-' ] 325 then 326 echo "Invalid option $1" >&2 && exit 1 327 else 328 [ -n "$FILES" ] && echo "Invalid option $1" >&2 && exit 1 329 GIVEN_FILES=$@ 330 FILES=given_files 331 break 332 fi 333 334 shift 335 done 336 337 if [ -z $FILES ] 338 then 339 FILES=modified_files 128 echo WARNING: $LONG_LINE_FILES files contains long lines! 129 echo 130 elif [[ $LONG_LINE_FILES -gt 0 ]]; then 131 echo 132 echo WARNING: a file contains long lines! 133 echo 340 134 fi 341 342 if [ -z $ACTION ]343 then344 ACTION=update345 fi346 347 process_all
Note: See TracChangeset
for help on using the changeset viewer.