On 06/19/2018 03:36 AM, John Keeping wrote:
On Mon, Jun 18, 2018 at 10:58:15AM +0800, Andy Green wrote:
While listing the items in tree view, we collect a list
of any filenames that match any tree-readme entries from the
config file.

After the tree view has been shown, we iterate through any
collected readme files rendering them inline.

Signed-off-by: Andy Green <[email protected]>

A couple of minor style points below, but this looks good.  With or
without the style changes:

Reviewed-by: John Keeping <[email protected]>

+       render = get_render_for_filename(walk_tree_ctx->inline_path);
+       mimetype = render ? NULL : get_mimetype_for_filename(
+                               walk_tree_ctx->inline_path);
+
+       name = strrchr(walk_tree_ctx->inline_path, '/');

Isn't this impossible?   inline_path is a filename at a single level of
the tree and Git forbids directory separators there.

Yes... it gets copied from a var "pathname"... I changed the name to inline_filename to remove this confusion in the new code anyway. And I removed name here and just use walk_tree_ctx->inline_filename.

+       if (name)
+               name++;
+       else
+               name = walk_tree_ctx->inline_path;
+
+       htmlf("<h2>%s</h2>", name);
+       html("<div class=blob>&nbsp;</div>\n");
+
+       if (render || mimetype) {
+               if (render)
+                       render_buffer(render, name, buf, size);
+               else
+                       include_file(walk_tree_ctx->inline_path, mimetype);

We can lose a level of indentation here by writing it as:

        if (render)
                ...
        else if (mimetype)
                ...
        else
                ...

OK. Actually this was a modified cut-n-paste from your patch's implementation in print_object(). So I also changed that code to follow this scheme.

        if (use_render) {
                if (render)
                        render_buffer(render, basename, buf, size);
                else
                        include_file(path, mimetype);
        } else {
                print_buffer(basename, buf, size);
        }

became

        if (!use_render)
                print_buffer(basename, buf, size);
        else if (render)
                render_buffer(render, basename, buf, size);
        else
                include_file(path, mimetype);

-Andy
_______________________________________________
CGit mailing list
[email protected]
https://lists.zx2c4.com/mailman/listinfo/cgit

Reply via email to