{"thread":{"id":"4962","subject":"[PATCH 4/4] gitweb.cgi: Centralize printing of the page path","startedAt":"2006-07-23T20:31:15Z","lastAt":"2006-07-23T20:31:15Z","messageCount":1,"participants":["Luben Tuikov"],"isPatch":true,"patchVersion":1,"patchTotal":4},"messages":[{"id":"24024","messageId":"20060723203115.40374.qmail@web31810.mail.mud.yahoo.com","threadId":"4962","inReplyTo":null,"subject":"[PATCH 4/4] gitweb.cgi: Centralize printing of the page path","fromName":"Luben Tuikov","fromEmail":"ltuikov@yahoo.com","sentAt":"2006-07-23T20:31:15Z","receivedAt":"2006-07-23T20:31:15Z","isPatch":true,"sender":{"key":"ltuikov@yahoo.com","avatar":null},"body":"Centralize printing of the page path so that\nif the entity is a blob, we can set the page path\nto be the link to the HEAD revision of the\n\"raw\" blob.\n\nSigned-off-by: Luben Tuikov <ltuikov@yahoo.com>\n---\n gitweb/gitweb.cgi |   41 +++++++++++++++++++++--------------------\n 1 files changed, 21 insertions(+), 20 deletions(-)\n\ndiff --git a/gitweb/gitweb.cgi b/gitweb/gitweb.cgi\nindex c04283b..4106cb8 100755\n--- a/gitweb/gitweb.cgi\n+++ b/gitweb/gitweb.cgi\n@@ -1199,6 +1199,20 @@ sub git_summary {\n \tgit_footer_html();\n }\n \n+sub git_print_page_path {\n+\tmy $name = shift;\n+\tmy $type = shift;\n+\n+\tif (!defined $name) {\n+\t\tprint \"<div class=\\\"page_path\\\"><b>/</b></div>\\n\";\n+\t} elsif ($type =~ \"blob\") {\n+\t\tprint \"<div class=\\\"page_path\\\"><b>\" .\n+\t\t\t$cgi->a({-href => \"$my_uri?\" . esc_param(\"p=$project;a=blob_plain;f=$file_name\")}, esc_html($name)) . \"</b><br/></div>\\n\";\n+\t} else {\n+\t\tprint \"<div class=\\\"page_path\\\"><b>\" . esc_html($name) . \"</b><br/></div>\\n\";\n+\t}\n+}\n+\n sub git_tag {\n \tmy $head = git_read_head($project);\n \tgit_header_html();\n@@ -1266,7 +1280,7 @@ sub git_blame {\n \t\t\"<div>\" .\n \t\t$cgi->a({-href => \"$my_uri?\" . esc_param(\"p=$project;a=commit;h=$hash_base\"), -class => \"title\"}, esc_html($co{'title'})) .\n \t\t\"</div>\\n\";\n-\tprint \"<div class=\\\"page_path\\\"><b>\" . esc_html($file_name) . \"</b></div>\\n\";\n+\tgit_print_page_path($file_name);\n \tprint \"<div class=\\\"page_body\\\">\\n\";\n \tprint <<HTML;\n <table class=\"blame\">\n@@ -1604,9 +1618,7 @@ sub git_blob {\n \t\t      \"<br/><br/></div>\\n\" .\n \t\t      \"<div class=\\\"title\\\">$hash</div>\\n\";\n \t}\n-\tif (defined $file_name) {\n-\t\tprint \"<div class=\\\"page_path\\\"><b>\" . esc_html($file_name) . \"</b></div>\\n\";\n-\t}\n+\tgit_print_page_path($file_name, \"blob\");\n \tprint \"<div class=\\\"page_body\\\">\\n\";\n \tmy $nr;\n \twhile (my $line = <$fd>) {\n@@ -1671,10 +1683,8 @@ sub git_tree {\n \t}\n \tif (defined $file_name) {\n \t\t$base = esc_html(\"$file_name/\");\n-\t\tprint \"<div class=\\\"page_path\\\"><b>/\" . esc_html($file_name) . \"</b></div>\\n\";\n-\t} else {\n-\t\tprint \"<div class=\\\"page_path\\\"><b>/</b></div>\\n\";\n \t}\n+\tgit_print_page_path($file_name);\n \tprint \"<div class=\\\"page_body\\\">\\n\";\n \tprint \"<table cellspacing=\\\"0\\\">\\n\";\n \tmy $alternate = 0;\n@@ -2132,9 +2142,7 @@ sub git_blobdiff {\n \t\t      \"<br/><br/></div>\\n\" .\n \t\t      \"<div class=\\\"title\\\">$hash vs $hash_parent</div>\\n\";\n \t}\n-\tif (defined $file_name) {\n-\t\tprint \"<div class=\\\"page_path\\\"><b>/\" . esc_html($file_name) . \"</b></div>\\n\";\n-\t}\n+\tgit_print_page_path($file_name, \"blob\");\n \tprint \"<div class=\\\"page_body\\\">\\n\" .\n \t      \"<div class=\\\"diff_info\\\">blob:\" .\n \t      $cgi->a({-href => \"$my_uri?\" . esc_param(\"p=$project;a=blob;h=$hash_parent;hb=$hash_base;f=$file_name\")}, $hash_parent) .\n@@ -2308,6 +2316,7 @@ sub git_history {\n \tif (!defined $hash_base) {\n \t\t$hash_base = git_read_head($project);\n \t}\n+\tmy $ftype;\n \tmy %co = git_read_commit($hash_base);\n \tif (!%co) {\n \t\tdie_error(undef, \"Unknown commit object.\");\n@@ -2330,18 +2339,9 @@ sub git_history {\n \t\t$hash = git_get_hash_by_path($hash_base, $file_name);\n \t}\n \tif (defined $hash) {\n-\t\tmy $ftype = git_get_type($hash);\n-\n-\t\tif ($ftype =~ \"blob\") {\n-\t\t    print \"<div class=\\\"page_path\\\"><b>/\" .\n-\t\t\t$cgi->a({-href => \"$my_uri?\" . esc_param(\"p=$project;a=blob_plain;f=$file_name\")}, esc_html($file_name)) . \"</b><br/></div>\\n\";\n-\t\t} else {\n-\t\t    print \"<div class=\\\"page_path\\\"><b>/\" . esc_html($file_name) . \"</b><br/></div>\\n\";\n-\t\t}\n-\t} else {\n-\t\tprint \"<div class=\\\"page_path\\\"><b>/\" . esc_html($file_name) . \"</b><br/></div>\\n\";\n+\t\t$ftype = git_get_type($hash);\n \t}\n+\tgit_print_page_path($file_name, $ftype);\n \n \topen my $fd, \"-|\",\n \t\t\"$GIT rev-list --full-history $hash_base -- \\'$file_name\\'\";\n-- \n1.4.2.rc1.g9b54\n\n"}]}