author | Lars Hjemli <hjemli@gmail.com> | 2008-12-01 20:58:59 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2008-12-01 21:01:26 (UTC) |
commit | c57aceb1d2f1a7d9fd3218fc8c6e9ea01b2952d2 (patch) (unidiff) | |
tree | de7a4c97a83ac348b96052be358cfd414de4afbc /ui-shared.c | |
parent | 6596268576a4f5fe2f5c8a3238856b0fb205ff76 (diff) | |
download | cgit-c57aceb1d2f1a7d9fd3218fc8c6e9ea01b2952d2.zip cgit-c57aceb1d2f1a7d9fd3218fc8c6e9ea01b2952d2.tar.gz cgit-c57aceb1d2f1a7d9fd3218fc8c6e9ea01b2952d2.tar.bz2 |
ui-shared: shorten the sha1 printed by cgit_object_link
Such links was printed as the object type followed by the objects complete
sha1. We still use the complete sha1 in the link but we no longer show it
in all its glory; only the first 10 hex chars are printed.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | ui-shared.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/ui-shared.c b/ui-shared.c index c4a506e..9319881 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -320,111 +320,113 @@ void cgit_commit_link(char *name, char *title, char *class, char *head, | |||
320 | name[ctx.cfg.max_msg_len - 2] = '.'; | 320 | name[ctx.cfg.max_msg_len - 2] = '.'; |
321 | name[ctx.cfg.max_msg_len - 3] = '.'; | 321 | name[ctx.cfg.max_msg_len - 3] = '.'; |
322 | } | 322 | } |
323 | reporevlink("commit", name, title, class, head, rev, NULL); | 323 | reporevlink("commit", name, title, class, head, rev, NULL); |
324 | } | 324 | } |
325 | 325 | ||
326 | void cgit_refs_link(char *name, char *title, char *class, char *head, | 326 | void cgit_refs_link(char *name, char *title, char *class, char *head, |
327 | char *rev, char *path) | 327 | char *rev, char *path) |
328 | { | 328 | { |
329 | reporevlink("refs", name, title, class, head, rev, path); | 329 | reporevlink("refs", name, title, class, head, rev, path); |
330 | } | 330 | } |
331 | 331 | ||
332 | void cgit_snapshot_link(char *name, char *title, char *class, char *head, | 332 | void cgit_snapshot_link(char *name, char *title, char *class, char *head, |
333 | char *rev, char *archivename) | 333 | char *rev, char *archivename) |
334 | { | 334 | { |
335 | reporevlink("snapshot", name, title, class, head, rev, archivename); | 335 | reporevlink("snapshot", name, title, class, head, rev, archivename); |
336 | } | 336 | } |
337 | 337 | ||
338 | void cgit_diff_link(char *name, char *title, char *class, char *head, | 338 | void cgit_diff_link(char *name, char *title, char *class, char *head, |
339 | char *new_rev, char *old_rev, char *path) | 339 | char *new_rev, char *old_rev, char *path) |
340 | { | 340 | { |
341 | char *delim; | 341 | char *delim; |
342 | 342 | ||
343 | delim = repolink(title, class, "diff", head, path); | 343 | delim = repolink(title, class, "diff", head, path); |
344 | if (new_rev && strcmp(new_rev, ctx.qry.head)) { | 344 | if (new_rev && strcmp(new_rev, ctx.qry.head)) { |
345 | html(delim); | 345 | html(delim); |
346 | html("id="); | 346 | html("id="); |
347 | html_url_arg(new_rev); | 347 | html_url_arg(new_rev); |
348 | delim = "&"; | 348 | delim = "&"; |
349 | } | 349 | } |
350 | if (old_rev) { | 350 | if (old_rev) { |
351 | html(delim); | 351 | html(delim); |
352 | html("id2="); | 352 | html("id2="); |
353 | html_url_arg(old_rev); | 353 | html_url_arg(old_rev); |
354 | } | 354 | } |
355 | html("'>"); | 355 | html("'>"); |
356 | html_txt(name); | 356 | html_txt(name); |
357 | html("</a>"); | 357 | html("</a>"); |
358 | } | 358 | } |
359 | 359 | ||
360 | void cgit_patch_link(char *name, char *title, char *class, char *head, | 360 | void cgit_patch_link(char *name, char *title, char *class, char *head, |
361 | char *rev) | 361 | char *rev) |
362 | { | 362 | { |
363 | reporevlink("patch", name, title, class, head, rev, NULL); | 363 | reporevlink("patch", name, title, class, head, rev, NULL); |
364 | } | 364 | } |
365 | 365 | ||
366 | void cgit_object_link(struct object *obj) | 366 | void cgit_object_link(struct object *obj) |
367 | { | 367 | { |
368 | char *page, *rev, *name; | 368 | char *page, *shortrev, *fullrev, *name; |
369 | 369 | ||
370 | fullrev = sha1_to_hex(obj->sha1); | ||
371 | shortrev = xstrdup(fullrev); | ||
372 | shortrev[10] = '\0'; | ||
370 | if (obj->type == OBJ_COMMIT) { | 373 | if (obj->type == OBJ_COMMIT) { |
371 | cgit_commit_link(fmt("commit %s", sha1_to_hex(obj->sha1)), NULL, NULL, | 374 | cgit_commit_link(fmt("commit %s...", shortrev), NULL, NULL, |
372 | ctx.qry.head, sha1_to_hex(obj->sha1)); | 375 | ctx.qry.head, fullrev); |
373 | return; | 376 | return; |
374 | } else if (obj->type == OBJ_TREE) | 377 | } else if (obj->type == OBJ_TREE) |
375 | page = "tree"; | 378 | page = "tree"; |
376 | else if (obj->type == OBJ_TAG) | 379 | else if (obj->type == OBJ_TAG) |
377 | page = "tag"; | 380 | page = "tag"; |
378 | else | 381 | else |
379 | page = "blob"; | 382 | page = "blob"; |
380 | rev = sha1_to_hex(obj->sha1); | 383 | name = fmt("%s %s...", typename(obj->type), shortrev); |
381 | name = fmt("%s %s", typename(obj->type), rev); | 384 | reporevlink(page, name, NULL, NULL, ctx.qry.head, fullrev, NULL); |
382 | reporevlink(page, name, NULL, NULL, ctx.qry.head, rev, NULL); | ||
383 | } | 385 | } |
384 | 386 | ||
385 | void cgit_print_date(time_t secs, char *format, int local_time) | 387 | void cgit_print_date(time_t secs, char *format, int local_time) |
386 | { | 388 | { |
387 | char buf[64]; | 389 | char buf[64]; |
388 | struct tm *time; | 390 | struct tm *time; |
389 | 391 | ||
390 | if (!secs) | 392 | if (!secs) |
391 | return; | 393 | return; |
392 | if(local_time) | 394 | if(local_time) |
393 | time = localtime(&secs); | 395 | time = localtime(&secs); |
394 | else | 396 | else |
395 | time = gmtime(&secs); | 397 | time = gmtime(&secs); |
396 | strftime(buf, sizeof(buf)-1, format, time); | 398 | strftime(buf, sizeof(buf)-1, format, time); |
397 | html_txt(buf); | 399 | html_txt(buf); |
398 | } | 400 | } |
399 | 401 | ||
400 | void cgit_print_age(time_t t, time_t max_relative, char *format) | 402 | void cgit_print_age(time_t t, time_t max_relative, char *format) |
401 | { | 403 | { |
402 | time_t now, secs; | 404 | time_t now, secs; |
403 | 405 | ||
404 | if (!t) | 406 | if (!t) |
405 | return; | 407 | return; |
406 | time(&now); | 408 | time(&now); |
407 | secs = now - t; | 409 | secs = now - t; |
408 | 410 | ||
409 | if (secs > max_relative && max_relative >= 0) { | 411 | if (secs > max_relative && max_relative >= 0) { |
410 | cgit_print_date(t, format, ctx.cfg.local_time); | 412 | cgit_print_date(t, format, ctx.cfg.local_time); |
411 | return; | 413 | return; |
412 | } | 414 | } |
413 | 415 | ||
414 | if (secs < TM_HOUR * 2) { | 416 | if (secs < TM_HOUR * 2) { |
415 | htmlf("<span class='age-mins'>%.0f min.</span>", | 417 | htmlf("<span class='age-mins'>%.0f min.</span>", |
416 | secs * 1.0 / TM_MIN); | 418 | secs * 1.0 / TM_MIN); |
417 | return; | 419 | return; |
418 | } | 420 | } |
419 | if (secs < TM_DAY * 2) { | 421 | if (secs < TM_DAY * 2) { |
420 | htmlf("<span class='age-hours'>%.0f hours</span>", | 422 | htmlf("<span class='age-hours'>%.0f hours</span>", |
421 | secs * 1.0 / TM_HOUR); | 423 | secs * 1.0 / TM_HOUR); |
422 | return; | 424 | return; |
423 | } | 425 | } |
424 | if (secs < TM_WEEK * 2) { | 426 | if (secs < TM_WEEK * 2) { |
425 | htmlf("<span class='age-days'>%.0f days</span>", | 427 | htmlf("<span class='age-days'>%.0f days</span>", |
426 | secs * 1.0 / TM_DAY); | 428 | secs * 1.0 / TM_DAY); |
427 | return; | 429 | return; |
428 | } | 430 | } |
429 | if (secs < TM_MONTH * 2) { | 431 | if (secs < TM_MONTH * 2) { |
430 | htmlf("<span class='age-weeks'>%.0f weeks</span>", | 432 | htmlf("<span class='age-weeks'>%.0f weeks</span>", |