~qalculate/libqalculate/trunk

« back to all changes in this revision

Viewing changes to src/qalc.cc

  • Committer: Hanna K
  • Date: 2020-06-02 13:38:57 UTC
  • Revision ID: git-v1:011b071eee8890241e1aba7fb513810e38a39df5
Fix use of equals sign in qalc command line arguments (e.g. "qalc --base=16"); Update man page; Allow specification of color palette on command line (e.g. "qalc -c2")

Show diffs side-by-side

added added

removed removed

Lines of Context:
121
121
 
122
122
#ifdef _WIN32
123
123
#       define DO_FORMAT (force_color > 0 || (force_color != 0 && !cfile && colorize && interactive_mode))
124
 
#       define DO_COLOR (force_color > 0 || (force_color != 0 && !cfile && colorize && interactive_mode) ? (colorize == 2 ? 2 : 1) : 0)
125
124
#else
126
125
#       define DO_FORMAT (force_color > 0 || (force_color != 0 && !cfile && interactive_mode))
127
 
#       define DO_COLOR (force_color > 0 || (force_color != 0 && !cfile && colorize && interactive_mode) ? (colorize == 2 ? 2 : 1) : 0)
128
126
#endif
 
127
#define DO_COLOR (force_color >= 0 ? force_color : (!cfile && colorize && interactive_mode ? colorize : 0))
129
128
 
130
129
bool contains_unicode_char(const char *str) {
131
130
        for(int i = strlen(str) - 1; i >= 0; i--) {
1706
1705
                        calc_arg += " ";
1707
1706
                } else {
1708
1707
                        svar = argv[i];
1709
 
                        size_t i2 = svar.find_first_of(NUMBERS);
1710
 
                        if(i2 != string::npos && i2 != 0) {
1711
 
                                svalue = svar.substr(i2);
 
1708
                        size_t i2 = svar.find_first_of(NUMBERS "=");
 
1709
                        if(i2 != string::npos && i2 != 0 && svar[0] != '+' && (svar[i2] == '=' || i2 == 2) && (svar[i2] != '=' || i2 != svar.length() - 1)) {
 
1710
                                svalue = svar.substr(svar[i2] == '=' ? i2 + 1 : i2);
1712
1711
                                svar = svar.substr(0, i2);
1713
1712
                        }
1714
1713
                }
1776
1775
                        string set_base_str = "base ";
1777
1776
                        if(!svalue.empty()) {
1778
1777
                                set_base_str += svalue;
1779
 
                        } else {
 
1778
                        } else if(i + 1 < argc) {
1780
1779
                                i++;
1781
 
                                if(i < argc) {
1782
 
                                        set_base_str += argv[i];
1783
 
                                }
 
1780
                                set_base_str += argv[i];
1784
1781
                        }
1785
1782
                        set_option_strings.push_back(set_base_str);
1786
1783
                } else if(!calc_arg_begun && (svar == "-c" || svar == "-color" || svar == "--color")) {
1787
 
                        force_color = 1;
1788
 
                } else if(!calc_arg_begun && svar == "+c") {
1789
 
                        force_color = 0;
 
1784
                        if(!svalue.empty()) {
 
1785
                                force_color = s2i(svalue);
 
1786
                        } else {
 
1787
                                force_color = 1;
 
1788
                        }
1790
1789
                } else if(!calc_arg_begun && svar == "-p") {
1791
1790
                        programmers_mode = true;
1792
1791
                        string set_base_str = "base ";
1814
1813
                        return 0;
1815
1814
                } else if(!calc_arg_begun && (strcmp(argv[i], "-interactive") == 0 || strcmp(argv[i], "--interactive") == 0 || strcmp(argv[i], "-i") == 0)) {
1816
1815
                        interactive_mode = true;
1817
 
                } else if(!calc_arg_begun && (strcmp(argv[i], "-list") == 0 || strcmp(argv[i], "--list") == 0 || strcmp(argv[i], "-l") == 0)) {
 
1816
                } else if(!calc_arg_begun && (svar == "-list" || svar == "--list" || svar == "-l")) {
1818
1817
                        list_type = 0;
1819
 
                        if(i + 1 < argc && strlen(argv[i + 1]) > 0 && argv[i + 1][0] != '-' && argv[i + 1][0] != '+') {
 
1818
                        if(!svalue.empty()) {
 
1819
                                search_str = svalue;
 
1820
                                remove_blank_ends(search_str);
 
1821
                        } else if(i + 1 < argc && strlen(argv[i + 1]) > 0 && argv[i + 1][0] != '-' && argv[i + 1][0] != '+') {
1820
1822
                                i++;
1821
1823
                                search_str = argv[i];
1822
1824
                                remove_blank_ends(search_str);
1823
1825
                        }
1824
 
                } else if(!calc_arg_begun && strcmp(argv[i], "--list-functions") == 0) {
 
1826
                } else if(!calc_arg_begun && svar == "--list-functions") {
1825
1827
                        list_type = 'f';
1826
 
                        if(i + 1 < argc && strlen(argv[i + 1]) > 0 && argv[i + 1][0] != '-' && argv[i + 1][0] != '+') {
 
1828
                        if(!svalue.empty()) {
 
1829
                                search_str = svalue;
 
1830
                                remove_blank_ends(search_str);
 
1831
                        } else if(i + 1 < argc && strlen(argv[i + 1]) > 0 && argv[i + 1][0] != '-' && argv[i + 1][0] != '+') {
1827
1832
                                i++;
1828
1833
                                search_str = argv[i];
1829
1834
                                remove_blank_ends(search_str);
1830
1835
                        }
1831
 
                } else if(!calc_arg_begun && strcmp(argv[i], "--list-units") == 0) {
 
1836
                } else if(!calc_arg_begun && svar == "--list-units") {
1832
1837
                        list_type = 'u';
1833
 
                        if(i + 1 < argc && strlen(argv[i + 1]) > 0 && argv[i + 1][0] != '-' && argv[i + 1][0] != '+') {
 
1838
                        if(!svalue.empty()) {
 
1839
                                search_str = svalue;
 
1840
                                remove_blank_ends(search_str);
 
1841
                        } else if(i + 1 < argc && strlen(argv[i + 1]) > 0 && argv[i + 1][0] != '-' && argv[i + 1][0] != '+') {
1834
1842
                                i++;
1835
1843
                                search_str = argv[i];
1836
1844
                                remove_blank_ends(search_str);
1837
1845
                        }
1838
 
                } else if(!calc_arg_begun && strcmp(argv[i], "--list-variables") == 0) {
 
1846
                } else if(!calc_arg_begun && svar == "--list-variables") {
1839
1847
                        list_type = 'v';
1840
 
                        if(i + 1 < argc && strlen(argv[i + 1]) > 0 && argv[i + 1][0] != '-' && argv[i + 1][0] != '+') {
 
1848
                        if(!svalue.empty()) {
 
1849
                                search_str = svalue;
 
1850
                                remove_blank_ends(search_str);
 
1851
                        } else if(i + 1 < argc && strlen(argv[i + 1]) > 0 && argv[i + 1][0] != '-' && argv[i + 1][0] != '+') {
1841
1852
                                i++;
1842
1853
                                search_str = argv[i];
1843
1854
                                remove_blank_ends(search_str);
1854
1865
                        load_datasets = false;
1855
1866
                } else if(!calc_arg_begun && (strcmp(argv[i], "-nodefs") == 0 || strcmp(argv[i], "-n") == 0)) {
1856
1867
                        load_global_defs = false;
1857
 
                } else if(!calc_arg_begun && (strcmp(argv[i], "-time") == 0 || strcmp(argv[i], "--time") == 0 || strcmp(argv[i], "-m") == 0)) {
1858
 
                        i++;
1859
 
                        if(i < argc) {
 
1868
                } else if(!calc_arg_begun && (svar == "-time" || svar == "--time" || svar == "-m")) {
 
1869
                        if(!svalue.empty()) {
 
1870
                                i_maxtime += strtol(svalue.c_str(), NULL, 10);
 
1871
                                if(i_maxtime < 0) i_maxtime = 0;
 
1872
                        } else if(i + 1 < argc) {
 
1873
                                i++;
1860
1874
                                i_maxtime += strtol(argv[i], NULL, 10);
1861
1875
                                if(i_maxtime < 0) i_maxtime = 0;
1862
1876
                        }
1863
 
                } else if(!calc_arg_begun && (strcmp(argv[i], "-set") == 0 || strcmp(argv[i], "--set") == 0 || strcmp(argv[i], "-s") == 0)) {
1864
 
                        i++;
1865
 
                        if(i < argc) {
 
1877
                } else if(!calc_arg_begun && (svar == "-set" || svar == "--set" || svar == "-s")) {
 
1878
                        if(!svalue.empty()) {
 
1879
                                set_option_strings.push_back(svalue);
 
1880
                        } else if(i + 1 < argc) {
 
1881
                                i++;
1866
1882
                                set_option_strings.push_back(argv[i]);
1867
1883
                        } else {
1868
1884
                                puts(_("No option and value specified for set command."));
1869
1885
                        }
1870
 
                } else if(!calc_arg_begun && (strcmp(argv[i], "-file") == 0 || strcmp(argv[i], "-f") == 0 || strcmp(argv[i], "--file") == 0)) {
1871
 
                        i++;
1872
 
                        if(i < argc) {
 
1886
                } else if(!calc_arg_begun && (svar == "-file" || svar == "-f" || svar == "--file")) {
 
1887
                        if(!svalue.empty()) {
 
1888
                                command_file = svalue;
 
1889
                                remove_blank_ends(svalue);
 
1890
                        } else if(i + 1 < argc) {
 
1891
                                i++;
1873
1892
                                command_file = argv[i];
1874
1893
                                remove_blank_ends(command_file);
1875
1894
                        } else {