| | @@ -93,15 +93,12 @@ |
| 93 | 93 | zSrc = "Deleted from"; |
| 94 | 94 | }else { |
| 95 | 95 | zSrc = "Added to"; |
| 96 | 96 | } |
| 97 | 97 | if( strlen(zTarget)==UUID_SIZE && validate16(zTarget, UUID_SIZE) ){ |
| 98 | | - char zShort[20]; |
| 99 | | - memcpy(zShort, zTarget, 10); |
| 100 | | - zShort[10] = 0; |
| 101 | 98 | @ %s(zSrc) ticket <a href="%s(g.zTop)/tktview?name=%s(zTarget)"> |
| 102 | | - @ %s(zShort)</a> |
| 99 | + @ %S(zTarget)</a> |
| 103 | 100 | }else{ |
| 104 | 101 | @ %s(zSrc) wiki page <a href="%s(g.zTop)/wiki?name=%t(zTarget)"> |
| 105 | 102 | @ %h(zTarget)</a> |
| 106 | 103 | } |
| 107 | 104 | }else{ |
| | @@ -220,14 +217,16 @@ |
| 220 | 217 | zTargetType = mprintf("Wiki Page <a href=\"%s/wiki?name=%h\">%h</a>", |
| 221 | 218 | g.zTop, zPage, zPage); |
| 222 | 219 | }else{ |
| 223 | 220 | if( g.okApndTkt==0 || g.okAttach==0 ) login_needed(); |
| 224 | 221 | if( !db_exists("SELECT 1 FROM tag WHERE tagname='tkt-%q'", zTkt) ){ |
| 225 | | - fossil_redirect_home(); |
| 222 | + zTkt = db_text(0, "SELECT substr(tagname,5) FROM tag" |
| 223 | + " WHERE tagname GLOB 'tkt-%q*'", zTkt); |
| 224 | + if( zTkt==0 ) fossil_redirect_home(); |
| 226 | 225 | } |
| 227 | 226 | zTarget = zTkt; |
| 228 | | - zTargetType = mprintf("Ticket <a href=\"%s/tktview?name=%.10s\">%.10s</a>", |
| 227 | + zTargetType = mprintf("Ticket <a href=\"%s/tktview/%S\">%S</a>", |
| 229 | 228 | g.zTop, zTkt, zTkt); |
| 230 | 229 | } |
| 231 | 230 | if( zFrom==0 ) zFrom = mprintf("%s/home", g.zTop); |
| 232 | 231 | if( P("cancel") ){ |
| 233 | 232 | cgi_redirect(zFrom); |
| 234 | 233 | |