/* vim: set sw=4 ts=4 sts=4 et: */ #include "l4str.h" #include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <string.h> bool lbs_str_has_prefix (const char* str, const char* prefix) { int i; for (i = 0; str[i] != '\0' && prefix[i] != '\0'; i++) { if (str[i] != prefix[i]) { return false; } } if (str[i] == '\0' && prefix[i] == '\0') { return true; } if (str[i] == '\0') { return false; } return true; } bool lbs_str_has_suffix (const char* str, const char* suffix) { size_t len = strlen (str); size_t suflen = strlen (suffix); int i, j; for (i = len - 1, j = suflen - 1; i >= 0 && j >= 0; i--, j--) { if (str[i] != suffix[j]) { return false; } } if (i < 0 && j >= 0) { return false; } return true; } char* lbs_str_printf (const char* format, ...) { va_list ap; char* newstr; va_start (ap, format); newstr = lbs_str_vprintf (format, ap); va_end (ap); return newstr; } char* lbs_str_vprintf (const char* format, va_list ap) { va_list ap1, ap2; char* newstr; int len; va_copy (ap1, ap); len = vsnprintf (NULL, 0, format, ap1) + 1; va_end (ap1); newstr = xmalloc (len); va_copy (ap2, ap); vsnprintf (newstr, len, format, ap2); va_end (ap2); return newstr; } let-browser</a></td><td class='form'><form method='get'> <input type='hidden' name='id' value='db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'/><select name='h' onchange='this.form.submit();'> <option value='dependabot/npm_and_yarn/async-2.6.4'>dependabot/npm_and_yarn/async-2.6.4</option> <option value='dependabot/npm_and_yarn/cached-path-relative-1.1.0'>dependabot/npm_and_yarn/cached-path-relative-1.1.0</option> <option value='dependabot/npm_and_yarn/copy-props-2.0.5'>dependabot/npm_and_yarn/copy-props-2.0.5</option> <option value='dependabot/npm_and_yarn/css-what-2.1.3'>dependabot/npm_and_yarn/css-what-2.1.3</option> <option value='dependabot/npm_and_yarn/decode-uri-component-0.2.2'>dependabot/npm_and_yarn/decode-uri-component-0.2.2</option> <option value='dependabot/npm_and_yarn/eth-ledger-bridge-keyring-0.2.1'>dependabot/npm_and_yarn/eth-ledger-bridge-keyring-0.2.1</option> <option value='dependabot/npm_and_yarn/eventsource-1.1.1'>dependabot/npm_and_yarn/eventsource-1.1.1</option> <option value='dependabot/npm_and_yarn/express-4.18.2'>dependabot/npm_and_yarn/express-4.18.2</option> <option value='dependabot/npm_and_yarn/fast-json-patch-3.1.1'>dependabot/npm_and_yarn/fast-json-patch-3.1.1</option> <option value='dependabot/npm_and_yarn/follow-redirects-1.14.7'>dependabot/npm_and_yarn/follow-redirects-1.14.7</option> <option value='dependabot/npm_and_yarn/follow-redirects-1.14.8'>dependabot/npm_and_yarn/follow-redirects-1.14.8</option> <option value='dependabot/npm_and_yarn/handlebars-4.7.6'>dependabot/npm_and_yarn/handlebars-4.7.6</option> <option value='dependabot/npm_and_yarn/handlebars-4.7.7'>dependabot/npm_and_yarn/handlebars-4.7.7</option> <option value='dependabot/npm_and_yarn/hosted-git-info-2.8.9'>dependabot/npm_and_yarn/hosted-git-info-2.8.9</option> <option value='dependabot/npm_and_yarn/i-0.3.7'>dependabot/npm_and_yarn/i-0.3.7</option> <option value='dependabot/npm_and_yarn/jsdom-16.5.0'>dependabot/npm_and_yarn/jsdom-16.5.0</option> <option value='dependabot/npm_and_yarn/jszip-3.10.1'>dependabot/npm_and_yarn/jszip-3.10.1</option> <option value='dependabot/npm_and_yarn/karma-6.3.14'>dependabot/npm_and_yarn/karma-6.3.14</option> <option value='dependabot/npm_and_yarn/karma-6.3.16'>dependabot/npm_and_yarn/karma-6.3.16</option> <option value='dependabot/npm_and_yarn/lodash-es-4.17.21'>dependabot/npm_and_yarn/lodash-es-4.17.21</option> <option value='dependabot/npm_and_yarn/luxon-1.28.1'>dependabot/npm_and_yarn/luxon-1.28.1</option> <option value='dependabot/npm_and_yarn/luxon-2.5.2'>dependabot/npm_and_yarn/luxon-2.5.2</option> <option value='dependabot/npm_and_yarn/markdown-to-jsx-6.11.4'>dependabot/npm_and_yarn/markdown-to-jsx-6.11.4</option> <option value='dependabot/npm_and_yarn/merge-deep-3.0.3'>dependabot/npm_and_yarn/merge-deep-3.0.3</option> <option value='dependabot/npm_and_yarn/moment-2.29.2'>dependabot/npm_and_yarn/moment-2.29.2</option> <option value='dependabot/npm_and_yarn/moment-2.29.4'>dependabot/npm_and_yarn/moment-2.29.4</option> <option value='dependabot/npm_and_yarn/nested-object-assign-1.0.4'>dependabot/npm_and_yarn/nested-object-assign-1.0.4</option> <option value='dependabot/npm_and_yarn/node-sass-4.13.1'>dependabot/npm_and_yarn/node-sass-4.13.1</option> <option value='dependabot/npm_and_yarn/node-sass-7.0.0'>dependabot/npm_and_yarn/node-sass-7.0.0</option> <option value='dependabot/npm_and_yarn/path-parse-1.0.7'>dependabot/npm_and_yarn/path-parse-1.0.7</option> <option value='dependabot/npm_and_yarn/pathval-1.1.1'>dependabot/npm_and_yarn/pathval-1.1.1</option> <option value='dependabot/npm_and_yarn/qs-6.5.3'>dependabot/npm_and_yarn/qs-6.5.3</option> <option value='dependabot/npm_and_yarn/snyk-1.1024.0'>dependabot/npm_and_yarn/snyk-1.1024.0</option> <option value='dependabot/npm_and_yarn/ssri-6.0.2'>dependabot/npm_and_yarn/ssri-6.0.2</option> <option value='dependabot/npm_and_yarn/terser-4.8.1'>dependabot/npm_and_yarn/terser-4.8.1</option> <option value='dependabot/npm_and_yarn/thenify-3.3.1'>dependabot/npm_and_yarn/thenify-3.3.1</option> <option value='dependabot/npm_and_yarn/tree-kill-1.2.2'>dependabot/npm_and_yarn/tree-kill-1.2.2</option> <option value='dependabot/npm_and_yarn/ua-parser-js-0.7.28'>dependabot/npm_and_yarn/ua-parser-js-0.7.28</option> <option value='dependabot/npm_and_yarn/url-parse-1.5.1'>dependabot/npm_and_yarn/url-parse-1.5.1</option> <option value='dependabot/npm_and_yarn/url-parse-1.5.10'>dependabot/npm_and_yarn/url-parse-1.5.10</option> <option value='dependabot/npm_and_yarn/url-parse-1.5.3'>dependabot/npm_and_yarn/url-parse-1.5.3</option> <option value='dependabot/npm_and_yarn/url-parse-1.5.7'>dependabot/npm_and_yarn/url-parse-1.5.7</option> <option value='dependabot/npm_and_yarn/websocket-extensions-0.1.4'>dependabot/npm_and_yarn/websocket-extensions-0.1.4</option> <option value='dependabot/npm_and_yarn/xmldom-and-testem--removed'>dependabot/npm_and_yarn/xmldom-and-testem--removed</option> <option value='dependabot/npm_and_yarn/y18n-3.2.2'>dependabot/npm_and_yarn/y18n-3.2.2</option> <option value='master' selected='selected'>master</option> </select> <input type='submit' value='switch'/></form></td></tr> <tr><td class='sub'>Tangerine fork of MetaMask browser extension (https://github.com/tangerine-network/tangerine-wallet-browser)</td><td class='sub right'></td></tr></table> <table class='tabs'><tr><td> <a href='/~lantw44/cgit/tangerine-wallet-browser/about/'>about</a><a href='/~lantw44/cgit/tangerine-wallet-browser/'>summary</a><a href='/~lantw44/cgit/tangerine-wallet-browser/refs/?id=db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'>refs</a><a href='/~lantw44/cgit/tangerine-wallet-browser/log/ui/app/components/send/currency-display/tests/currency-display.test.js'>log</a><a href='/~lantw44/cgit/tangerine-wallet-browser/tree/ui/app/components/send/currency-display/tests/currency-display.test.js?id=db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'>tree</a><a href='/~lantw44/cgit/tangerine-wallet-browser/commit/ui/app/components/send/currency-display/tests/currency-display.test.js?id=db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'>commit</a><a class='active' href='/~lantw44/cgit/tangerine-wallet-browser/diff/ui/app/components/send/currency-display/tests/currency-display.test.js?id=db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'>diff</a><a href='/~lantw44/cgit/tangerine-wallet-browser/stats/ui/app/components/send/currency-display/tests/currency-display.test.js'>stats</a></td><td class='form'><form class='right' method='get' action='/~lantw44/cgit/tangerine-wallet-browser/log/ui/app/components/send/currency-display/tests/currency-display.test.js'> <input type='hidden' name='id' value='db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'/><select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/~lantw44/cgit/tangerine-wallet-browser/diff/?id=db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'>root</a>/<a href='/~lantw44/cgit/tangerine-wallet-browser/diff/ui?id=db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'>ui</a>/<a href='/~lantw44/cgit/tangerine-wallet-browser/diff/ui/app?id=db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'>app</a>/<a href='/~lantw44/cgit/tangerine-wallet-browser/diff/ui/app/components?id=db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'>components</a>/<a href='/~lantw44/cgit/tangerine-wallet-browser/diff/ui/app/components/send?id=db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'>send</a>/<a href='/~lantw44/cgit/tangerine-wallet-browser/diff/ui/app/components/send/currency-display?id=db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'>currency-display</a>/<a href='/~lantw44/cgit/tangerine-wallet-browser/diff/ui/app/components/send/currency-display/tests?id=db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'>tests</a>/<a href='/~lantw44/cgit/tangerine-wallet-browser/diff/ui/app/components/send/currency-display/tests/currency-display.test.js?id=db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'>currency-display.test.js</a></div><div class='content'><div class='cgit-panel'><b>diff options</b><form method='get'><input type='hidden' name='id' value='db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'/><table><tr><td colspan='2'/></tr><tr><td class='label'>context:</td><td class='ctrl'><select name='context' onchange='this.form.submit();'><option value='1'>1</option><option value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><div class='diffstat-header'><a href='/~lantw44/cgit/tangerine-wallet-browser/diff/?id=db30bbce4c0d977e4efe901fddc46fbe5a6aaac4'>Diffstat</a> (limited to 'ui/app/components/send/currency-display/tests/currency-display.test.js')</div><table summary='diffstat' class='diffstat'>