QString RcsInterfaceTarDiff::properties(QString version) { QString command="tar -tzvf '"+repository+"' '"+version+"'"; QStringList result=system_string(command); return result.join("\n"); }
int main (int argc, char **argv) { char unameinfo[256]; char gccinfo[256]; system_string("uname -a", unameinfo, sizeof(unameinfo)); system_string("gcc -v 2>&1 | tail -1", gccinfo, sizeof(gccinfo)); printf ("void lnet_assert_wire_constants (void)\n" "{\n" " /* Wire protocol assertions generated by 'wirecheck'\n" " * running on %s\n" " * with %s */\n" "\n", unameinfo, gccinfo); BLANK_LINE (); COMMENT ("Constants..."); CHECK_DEFINE (LNET_PROTO_RA_MAGIC); CHECK_DEFINE (LNET_PROTO_TCP_MAGIC); CHECK_DEFINE (LNET_PROTO_TCP_VERSION_MAJOR); CHECK_DEFINE (LNET_PROTO_TCP_VERSION_MINOR); CHECK_VALUE (LNET_MSG_ACK); CHECK_VALUE (LNET_MSG_PUT); CHECK_VALUE (LNET_MSG_GET); CHECK_VALUE (LNET_MSG_REPLY); CHECK_VALUE (LNET_MSG_HELLO); check_lnet_handle_wire (); check_lnet_magicversion (); check_lnet_hdr (); printf ("}\n\n"); return (0); }
QStringList RcsInterfaceTarDiff::versions() { QString command="tar -tzf '"+repository+"'"; QStringList list; list=system_string(command); for(int i=0; i<list.size(); i++) { if(list[i]=="Properties.txt") { list.removeAt(i); } } return list; }
QString RcsInterfaceTarDiff::diff(QString version1, QString version2) { QString file1=temp_file(); QString file2=temp_file(); extract(file1, version1); extract(file2, version2); QStringList s1=read_file(file1); QStringList s2=read_file(file1); int len1=0, len2=0, len; for(int i=0;i<s1.size();i++) { if(len1<s1[i].size()) len1=s1[i].size(); } for(int i=0;i<s2.size();i++) { if(len2<s2[i].size()) len2=s2[i].size(); } len=len1+len2+10; QString command="diff -y -t -W "+QString::number(len)+" '"+file1+"' '"+file2+"'"; QStringList result=system_string(command); //printf("Ejecutado diff\n"); QFile::remove(file1); QFile::remove(file2); //Se construye la salida segĂșn los resultados de diff QString html; len2=len/2; html+="<html>" "<HEAD>" "<META HTTP-EQUIV='CONTENT-TYPE' CONTENT='text/html; charset=utf-8'>" "<TITLE>SimpleRcs</TITLE>" "</HEAD>" "<body>"; html+="<b>Showing differences between:</b><br>"; html+="<TABLE BORDER=1 BORDERCOLOR='#000000' CELLPADDING=3 CELLSPACING=0>" "<tr>" "<td></td>" "<td><b>"+version1+"</b></td>" "<td></td>" "<td></td>" "<td><b>"+version2+"</b></td>" "</tr>\n"; int size=result.size(); int line1_num=0; int line2_num=0; for(int i=0;i<size;i++) { QString line=result[i]; len=line.size(); QString ch; if(len2<len) { ch=line.mid(len1+2,5).trimmed(); } else { ch=line.right(2).trimmed(); } //printf("ch=%s\n", ch.toLocal8Bit().data()); QString line1=line.left(len2-1).trimmed(); QString line2=line.mid(len2+1).trimmed(); QString color; line1=line1.replace("&", "&"); line1=line1.replace("<", "<"); line1=line1.replace(">", ">"); line1=line1.replace(" ", " "); line1=line1.replace("\t", " "); line2=line2.replace("&", "&"); line2=line2.replace("<", "<"); line2=line2.replace(">", ">"); line2=line2.replace(" ", " "); line2=line2.replace("\t", " "); line=""; if( ch=="|" ) { color="#23ff23"; line1_num++; line2_num++; } else if(ch=="(" || ch==")" || ch=="/") { color="#ff0000"; line1_num++; line2_num++; } else if( ch=="<" ) { color="#ff0000"; line1_num++; ch="<"; } else if( ch==">" ) { color="#ffa000"; line2_num++; ch=">"; } else { color="#ffffff"; line1_num++; line2_num++; } line="<tr>" "<td BGCOLOR='"+color+"'>"+QString::number(line1_num)+"</td>" "<td BGCOLOR='"+color+"'>"+line1+"</td>" "<td BGCOLOR='"+color+"'>"+ch+"</td>" "<td BGCOLOR='"+color+"'>"+QString::number(line2_num)+"</td>" "<td BGCOLOR='"+color+"'>"+line2+"</td>" "</tr>"; html+=line+"\n"; } html+="</table></body></html>"; //printf("%s", html.toLocal8Bit().data()); return html; }