# HG changeset patch # User Ludovic Chabant # Date 1406675231 25200 # Node ID 16fe881b8d759ea56cfea0525cea25a53408f885 # Parent e9d605753a8a25611ab78ee98d7fb7cfb8e20e6a Generate tags in a temp file first. This is because otherwise jumping to a tag while the tag file is being generated will result in a "tag file not sorted" warning. diff -r e9d605753a8a -r 16fe881b8d75 plat/unix/update_tags.sh --- a/plat/unix/update_tags.sh Wed Jul 23 17:04:47 2014 -0700 +++ b/plat/unix/update_tags.sh Tue Jul 29 16:07:11 2014 -0700 @@ -59,16 +59,19 @@ if [[ -f "$TAGS_FILE" ]]; then if [[ "$UPDATED_SOURCE" != "" ]]; then echo "Removing references to: $UPDATED_SOURCE" - echo "grep -v $UPDATED_SOURCE \"$TAGS_FILE\" > \"$TAGS_FILE.filter\"" - grep -v $UPDATED_SOURCE "$TAGS_FILE" > "$TAGS_FILE.filter" - mv "$TAGS_FILE.filter" "$TAGS_FILE" + echo "grep -v $UPDATED_SOURCE \"$TAGS_FILE\" > \"$TAGS_FILE.temp\"" + grep -v $UPDATED_SOURCE "$TAGS_FILE" > "$TAGS_FILE.temp" CTAGS_ARGS="$CTAGS_ARGS --append $UPDATED_SOURCE" fi fi echo "Running ctags" -echo "$CTAGS_EXE -R -f \"$TAGS_FILE\" $CTAGS_ARGS" -$CTAGS_EXE -R -f "$TAGS_FILE" $CTAGS_ARGS +echo "$CTAGS_EXE -R -f \"$TAGS_FILE.temp\" $CTAGS_ARGS" +$CTAGS_EXE -R -f "$TAGS_FILE.temp" $CTAGS_ARGS + +echo "Replacing tags file" +echo "mv -f \"$TAGS_FILE.temp\" \"$TAGS_FILE\"" +mv -f "$TAGS_FILE.temp" "$TAGS_FILE" echo "Unlocking tags file..." rm -f "$TAGS_FILE.lock" diff -r e9d605753a8a -r 16fe881b8d75 plat/win32/update_tags.cmd --- a/plat/win32/update_tags.cmd Wed Jul 23 17:04:47 2014 -0700 +++ b/plat/win32/update_tags.cmd Tue Jul 29 16:07:11 2014 -0700 @@ -66,17 +66,19 @@ if exist "%TAGS_FILE%" ( if not [%UPDATED_SOURCE%]==[] ( echo Removing references to: %UPDATED_SOURCE% >> %LOG_FILE% - echo type "%TAGS_FILE%" ^| findstr /V /C:"%UPDATED_SOURCE%" ^> "%TAGS_FILE%.filter" >> %LOG_FILE% - findstr /V /C:"%UPDATED_SOURCE%" "%TAGS_FILE%" > "%TAGS_FILE%.filter" - echo move /Y "%TAGS_FILE%.filter" "%TAGS_FILE%" >> %LOG_FILE% - move /Y "%TAGS_FILE%.filter" "%TAGS_FILE%" + echo type "%TAGS_FILE%" ^| findstr /V /C:"%UPDATED_SOURCE%" ^> "%TAGS_FILE%.temp" >> %LOG_FILE% + findstr /V /C:"%UPDATED_SOURCE%" "%TAGS_FILE%" > "%TAGS_FILE%.temp" set CTAGS_ARGS=--append %UPDATED_SOURCE% ) ) echo Running ctags >> %LOG_FILE% -echo "%CTAGS_EXE%" -R -f "%TAGS_FILE%" %CTAGS_ARGS% >> %LOG_FILE% -"%CTAGS_EXE%" -R -f "%TAGS_FILE%" %CTAGS_ARGS% +echo "%CTAGS_EXE%" -R -f "%TAGS_FILE%.temp" %CTAGS_ARGS% >> %LOG_FILE% +"%CTAGS_EXE%" -R -f "%TAGS_FILE%.temp" %CTAGS_ARGS% + +echo Replacing tags file >> %LOG_FILE% +echo move /Y "%TAGS_FILE%.temp" "%TAGS_FILE%" >> %LOG_FILE% +move /Y "%TAGS_FILE%.temp" "%TAGS_FILE%" >NUL 2>&1 echo Unlocking tags file... >> %LOG_FILE% del /F "%TAGS_FILE%.lock"