Changed all ereg references to preg_match("/regex/"... and eregi references to preg_match("/regex/i" to prevent php 5.3.0 from complaining
[gitphp.git] / include / display.git_rss.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
/*
 *  display.git_rss.php
 *  gitphp: A PHP git repository browser
 *  Component: Display - RSS feed
 *
 *  Copyright (C) 2008 Christopher Han <xiphux@gmail.com>
 */
 
 require_once('defs.constants.php');
 require_once('util.date_str.php');
 require_once('util.script_url.php');
 require_once('gitutil.git_read_head.php');
 require_once('gitutil.git_read_revlist.php');
 require_once('gitutil.git_read_commit.php');
 require_once('gitutil.git_diff_tree.php');
 
function git_rss($projectroot,$project)
{
        global $tpl;
        header("Content-type: text/xml; charset=UTF-8");
 
        $cachekey = sha1($project);
 
        if (!$tpl->is_cached('rss.tpl', $cachekey)) {
                $head = git_read_head($projectroot . $project);
                $revlist = git_read_revlist($projectroot . $project, $head, GITPHP_RSS_ITEMS);
                $tpl->assign("self",script_url());
 
                $commitlines = array();
                for ($i = 0; $i < count($revlist); $i++) {
                        $commit = $revlist[$i];
                        $co = git_read_commit($projectroot . $project, $commit);
                        if (($i >= 20) && ((time() - $co['committer_epoch']) > 48*60*60))
                                break;
                        $cd = date_str($co['committer_epoch']);
                        $difftree = array();
                        $diffout = git_diff_tree($projectroot . $project, $co['parent'] . " " . $co['id']);
                        $tok = strtok($diffout,"\n");
                        while ($tok !== false) {
                                if (ereg("^:([0-7]{6}) ([0-7]{6}) ([0-9a-fA-F]{40}) ([0-9a-fA-F]{40}) (.)([0-9]{0,3})\t(.*)$",$tok,$regs))
                                        $difftree[] = $regs[7];
                                $tok = strtok("\n");
                        }
                        $commitline = array();
                        $commitline["cdmday"] = $cd['mday'];
                        $commitline["cdmonth"] = $cd['month'];
                        $commitline["cdhour"] = $cd['hour'];
                        $commitline["cdminute"] = $cd['minute'];
                        $commitline["title"] = $co['title'];
                        $commitline["author"] = $co['author'];
                        $commitline["cdrfc2822"] = $cd['rfc2822'];
                        $commitline["commit"] = $commit;
                        $commitline["comment"] = $co['comment'];
                        $commitline["difftree"] = $difftree;
                        $commitlines[] = $commitline;
                }
                $tpl->assign("commitlines",$commitlines);
        }
        $tpl->display('rss.tpl', $cachekey);
}
 
?>
 
comments