patch: fix -p -1 handling
authorDenis Vlasenko <vda.linux@googlemail.com>
Mon, 6 Aug 2007 13:34:10 +0000 (13:34 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Mon, 6 Aug 2007 13:34:10 +0000 (13:34 -0000)
checkstack.pl: add blackfin (by Alex Landau <landau_alex@yahoo.com>)

editors/patch.c
scripts/checkstack.pl

index 5f7f7d02885e2ebf292c99da4c9731d3f4ed7707..f071a0854feac30575a9fb13f90424fa3fa6bf09 100644 (file)
@@ -55,10 +55,12 @@ static char *extract_filename(char *line, int patch_level)
        int i;
 
        /* Terminate string at end of source filename */
-       temp = strchr(filename_start_ptr, '\t');
-       if (temp) *temp = 0;
+       temp = strchrnul(filename_start_ptr, '\t');
+       *temp = '\0';
 
-       /* skip over (patch_level) number of leading directories */
+       /* Skip over (patch_level) number of leading directories */
+       if (patch_level == -1)
+               patch_level = INT_MAX;
        for (i = 0; i < patch_level; i++) {
                temp = strchr(filename_start_ptr, '/');
                if (!temp)
index 41454ceb1bf3a69ea834b311a00c118c8bcefdb8..6f455241ac07f93f4939986c6b835b15fe380561 100755 (executable)
@@ -39,6 +39,9 @@ my (@stack, $re, $x, $xs);
        if ($arch eq 'arm') {
                #c0008ffc:      e24dd064        sub     sp, sp, #100    ; 0x64
                $re = qr/.*sub.*sp, sp, #(([0-9]{2}|[3-9])[0-9]{2})/o;
+       } elsif ($arch eq 'blackfin') {
+               #      52:       00 e8 03 00     LINK 0xc;
+               $re = qr/.*LINK (0x$x{1,5});$/o;
        } elsif ($arch =~ /^i[3456]86$/) {
                #c0105234:       81 ec ac 05 00 00       sub    $0x5ac,%esp
                $re = qr/^.*[as][du][db]    \$(0x$x{1,8}),\%esp$/o;