| 1523 | constexpr int _pair(char a, char b) { return a*256 + b;} |
| 1524 | |
| 1525 | GitPlugin::ExtendedState GitPlugin::parseGitState(QStringView msg) |
| 1526 | { |
| 1527 | Q_ASSERT(msg.size()==1 || msg.size()==2); |
| 1528 | ExtendedState ret = GitInvalid; |
| 1529 | |
| 1530 | if(msg.contains(QLatin1Char('U')) || msg == QLatin1String("AA") || msg == QLatin1String("DD")) |
| 1531 | ret = GitConflicts; |
| 1532 | else switch(_pair(msg.at(0).toLatin1(), msg.at(1).toLatin1())) |
| 1533 | { |
| 1534 | case _pair(' ', ' '): |
| 1535 | ret = GitXX; |
| 1536 | break; |
| 1537 | case _pair(' ','T'): // Typechange |
| 1538 | case _pair(' ','M'): |
| 1539 | ret = GitXM; |
| 1540 | break; |
| 1541 | case _pair ( ' ','D' ) : |
| 1542 | ret = GitXD; |
| 1543 | break; |
| 1544 | case _pair ( ' ','R' ) : |
| 1545 | ret = GitXR; |
| 1546 | break; |
| 1547 | case _pair ( ' ','C' ) : |
| 1548 | ret = GitXC; |
| 1549 | break; |
| 1550 | case _pair ( 'T',' ' ) : // Typechange |
| 1551 | case _pair ( 'M',' ' ) : |
| 1552 | ret = GitMX; |
| 1553 | break; |
| 1554 | case _pair ( 'M','M' ) : |
| 1555 | ret = GitMM; |
| 1556 | break; |
| 1557 | case _pair ( 'M','D' ) : |
| 1558 | ret = GitMD; |
| 1559 | break; |
| 1560 | case _pair ( 'A',' ' ) : |
| 1561 | ret = GitAX; |
| 1562 | break; |
| 1563 | case _pair ( 'A','M' ) : |
| 1564 | ret = GitAM; |
| 1565 | break; |
| 1566 | case _pair ( 'A','D' ) : |
| 1567 | ret = GitAD; |
| 1568 | break; |
| 1569 | case _pair ( 'D',' ' ) : |
| 1570 | ret = GitDX; |
| 1571 | break; |
| 1572 | case _pair ( 'D','R' ) : |
| 1573 | ret = GitDR; |
| 1574 | break; |
| 1575 | case _pair ( 'D','C' ) : |
| 1576 | ret = GitDC; |
| 1577 | break; |
| 1578 | case _pair ( 'R',' ' ) : |
| 1579 | ret = GitRX; |
| 1580 | break; |
| 1581 | case _pair ( 'R','M' ) : |
| 1582 | ret = GitRM; |