]> granicus.if.org Git - python/commitdiff
Taught svneol to look at .c and .h files too, and
authorTim Peters <tim.peters@gmail.com>
Thu, 9 Mar 2006 01:59:27 +0000 (01:59 +0000)
committerTim Peters <tim.peters@gmail.com>
Thu, 9 Mar 2006 01:59:27 +0000 (01:59 +0000)
it found a bunch more in need of svn:eol-style.

PCbuild/make_buildinfo.c
Tools/scripts/svneol.py

index b7b7ebc2eb35c217811ccc5a5159d18bb2b0024a..9d2f9f0612a98e516fcfb5e2d2a64249bee63796 100644 (file)
@@ -1,89 +1,89 @@
-#include <windows.h>\r
-#include <sys/types.h>\r
-#include <sys/stat.h>\r
-#include <stdio.h>\r
-\r
-/* This file creates the getbuildinfo.o object, by first\r
-   invoking subwcrev.exe (if found), and then invoking cl.exe.\r
-   As a side effect, it might generate PCBuild\getbuildinfo2.c\r
-   also. If this isn't a subversion checkout, or subwcrev isn't\r
-   found, it compiles ..\\Modules\\getbuildinfo.c instead.\r
-\r
-   Currently, subwcrev.exe is found from the registry entries\r
-   of TortoiseSVN.\r
-\r
-   No attempt is made to place getbuildinfo.o into the proper\r
-   binary directory. This isn't necessary, as this tool is\r
-   invoked as a pre-link step for pythoncore, so that overwrites\r
-   any previous getbuildinfo.o.\r
-\r
-*/\r
-\r
-int make_buildinfo2()\r
-{\r
-       struct _stat st;\r
-       HKEY hTortoise;\r
-       char command[500];\r
-       DWORD type, size;\r
-       if (_stat(".svn", &st) < 0)\r
-               return 0;\r
-       if (RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\TortoiseSVN", &hTortoise) != ERROR_SUCCESS &&\r
-           RegOpenKey(HKEY_CURRENT_USER, "Software\\TortoiseSVN", &hTortoise) != ERROR_SUCCESS)\r
-               /* Tortoise not installed */\r
-               return 0;\r
-       command[0] = '"';  /* quote the path to the executable */\r
-       size = sizeof(command) - 1;\r
-       if (RegQueryValueEx(hTortoise, "Directory", 0, &type, command+1, &size) != ERROR_SUCCESS ||\r
-           type != REG_SZ)\r
-               /* Registry corrupted */\r
-               return 0;\r
-       strcat(command, "bin\\subwcrev.exe");\r
-       if (_stat(command+1, &st) < 0)\r
-               /* subwcrev.exe not part of the release */\r
-               return 0;\r
-       strcat(command, "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c");\r
-       puts(command); fflush(stdout);\r
-       if (system(command) < 0)\r
-               return 0;\r
-       return 1;\r
-}\r
-\r
-int main(int argc, char*argv[])\r
-{\r
-       char command[500] = "cl.exe -c -D_WIN32 -DUSE_DL_EXPORT -D_WINDOWS -DWIN32 -D_WINDLL ";\r
-       int do_unlink, result;\r
-       if (argc != 2) {\r
-               fprintf(stderr, "make_buildinfo $(ConfigurationName)\n");\r
-               return EXIT_FAILURE;\r
-       }\r
-       if (strcmp(argv[1], "Release") == 0) {\r
-               strcat(command, "-MD ");\r
-       }\r
-       else if (strcmp(argv[1], "Debug") == 0) {\r
-               strcat(command, "-D_DEBUG -MDd ");\r
-       }\r
-       else if (strcmp(argv[1], "ReleaseItanium") == 0) {\r
-               strcat(command, "-MD /USECL:MS_ITANIUM ");\r
-       }\r
-       else if (strcmp(argv[1], "ReleaseAMD64") == 0) {\r
-               strcat(command, "-MD ");\r
-               strcat(command, "-MD /USECL:MS_OPTERON ");\r
-       }\r
-       else {\r
-               fprintf(stderr, "unsupported configuration %s\n", argv[1]);\r
-               return EXIT_FAILURE;\r
-       }\r
-\r
-       if ((do_unlink = make_buildinfo2()))\r
-               strcat(command, "getbuildinfo2.c -DSUBWCREV ");\r
-       else\r
-               strcat(command, "..\\Modules\\getbuildinfo.c");\r
-       strcat(command, " -Fogetbuildinfo.o -I..\\Include -I..\\PC");\r
-       puts(command); fflush(stdout);\r
-       result = system(command);\r
-       if (do_unlink)\r
-               unlink("getbuildinfo2.c");\r
-       if (result < 0)\r
-               return EXIT_FAILURE;\r
-       return 0;\r
+#include <windows.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+
+/* This file creates the getbuildinfo.o object, by first
+   invoking subwcrev.exe (if found), and then invoking cl.exe.
+   As a side effect, it might generate PCBuild\getbuildinfo2.c
+   also. If this isn't a subversion checkout, or subwcrev isn't
+   found, it compiles ..\\Modules\\getbuildinfo.c instead.
+
+   Currently, subwcrev.exe is found from the registry entries
+   of TortoiseSVN.
+
+   No attempt is made to place getbuildinfo.o into the proper
+   binary directory. This isn't necessary, as this tool is
+   invoked as a pre-link step for pythoncore, so that overwrites
+   any previous getbuildinfo.o.
+
+*/
+
+int make_buildinfo2()
+{
+       struct _stat st;
+       HKEY hTortoise;
+       char command[500];
+       DWORD type, size;
+       if (_stat(".svn", &st) < 0)
+               return 0;
+       if (RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\TortoiseSVN", &hTortoise) != ERROR_SUCCESS &&
+           RegOpenKey(HKEY_CURRENT_USER, "Software\\TortoiseSVN", &hTortoise) != ERROR_SUCCESS)
+               /* Tortoise not installed */
+               return 0;
+       command[0] = '"';  /* quote the path to the executable */
+       size = sizeof(command) - 1;
+       if (RegQueryValueEx(hTortoise, "Directory", 0, &type, command+1, &size) != ERROR_SUCCESS ||
+           type != REG_SZ)
+               /* Registry corrupted */
+               return 0;
+       strcat(command, "bin\\subwcrev.exe");
+       if (_stat(command+1, &st) < 0)
+               /* subwcrev.exe not part of the release */
+               return 0;
+       strcat(command, "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c");
+       puts(command); fflush(stdout);
+       if (system(command) < 0)
+               return 0;
+       return 1;
+}
+
+int main(int argc, char*argv[])
+{
+       char command[500] = "cl.exe -c -D_WIN32 -DUSE_DL_EXPORT -D_WINDOWS -DWIN32 -D_WINDLL ";
+       int do_unlink, result;
+       if (argc != 2) {
+               fprintf(stderr, "make_buildinfo $(ConfigurationName)\n");
+               return EXIT_FAILURE;
+       }
+       if (strcmp(argv[1], "Release") == 0) {
+               strcat(command, "-MD ");
+       }
+       else if (strcmp(argv[1], "Debug") == 0) {
+               strcat(command, "-D_DEBUG -MDd ");
+       }
+       else if (strcmp(argv[1], "ReleaseItanium") == 0) {
+               strcat(command, "-MD /USECL:MS_ITANIUM ");
+       }
+       else if (strcmp(argv[1], "ReleaseAMD64") == 0) {
+               strcat(command, "-MD ");
+               strcat(command, "-MD /USECL:MS_OPTERON ");
+       }
+       else {
+               fprintf(stderr, "unsupported configuration %s\n", argv[1]);
+               return EXIT_FAILURE;
+       }
+
+       if ((do_unlink = make_buildinfo2()))
+               strcat(command, "getbuildinfo2.c -DSUBWCREV ");
+       else
+               strcat(command, "..\\Modules\\getbuildinfo.c");
+       strcat(command, " -Fogetbuildinfo.o -I..\\Include -I..\\PC");
+       puts(command); fflush(stdout);
+       result = system(command);
+       if (do_unlink)
+               unlink("getbuildinfo2.c");
+       if (result < 0)
+               return EXIT_FAILURE;
+       return 0;
 }
\ No newline at end of file
index 68814e4cc7f0db0adeefdaca8bc7841b59177fe0..9bab1750e020da24ab7ae7214fa14d622f0fc2a8 100644 (file)
@@ -3,8 +3,8 @@
 """
 SVN helper script.
 
-Try to set the svn:eol-style property to "native" on every .py and .txt file
-in the directory tree rooted at the current directory.
+Try to set the svn:eol-style property to "native" on every .py, .txt, .c and
+.h file in the directory tree rooted at the current directory.
 
 Files with the svn:eol-style property already set (to anything) are skipped.
 
@@ -30,16 +30,19 @@ and for a file with a binary mime-type property:
     svn: File 'Lib\test\test_pep263.py' has binary mime type property
 
 TODO:  This is slow, and especially on Windows, because it invokes a new svn
-command-line operation for every .py and .txt file.
+command-line operation for every file with the right extension.
 """
 
+import re
 import os
 
+possible_text_file = re.compile(r"\.([hc]|py|txt)$").search
+
 for root, dirs, files in os.walk('.'):
     if '.svn' in dirs:
         dirs.remove('.svn')
     for fn in files:
-        if fn.endswith('.py') or fn.endswith('.txt'):
+        if possible_text_file(fn):
             path = os.path.join(root, fn)
             p = os.popen('svn proplist "%s"' % path)
             guts = p.read()