• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

GothenburgBitFactory / taskwarrior / 10152339701

29 Jul 2024 09:45PM UTC coverage: 84.437% (+0.07%) from 84.372%
10152339701

push

github

web-flow
Merge pull request #3566 from felixschurk/add-clang-format

Add clang-format to enforce style guide

12359 of 13760 new or added lines in 147 files covered. (89.82%)

123 existing lines in 42 files now uncovered.

19070 of 22585 relevant lines covered (84.44%)

19724.02 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

96.43
/src/commands/CmdCalc.cpp
1
////////////////////////////////////////////////////////////////////////////////
2
//
3
// Copyright 2006 - 2021, Tomas Babej, Paul Beckingham, Federico Hernandez.
4
//
5
// Permission is hereby granted, free of charge, to any person obtaining a copy
6
// of this software and associated documentation files (the "Software"), to deal
7
// in the Software without restriction, including without limitation the rights
8
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
// copies of the Software, and to permit persons to whom the Software is
10
// furnished to do so, subject to the following conditions:
11
//
12
// The above copyright notice and this permission notice shall be included
13
// in all copies or substantial portions of the Software.
14
//
15
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
16
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
// SOFTWARE.
22
//
23
// https://www.opensource.org/licenses/mit-license.php
24
//
25
////////////////////////////////////////////////////////////////////////////////
26

27
#include <CmdCalc.h>
28
#include <Context.h>
29
#include <Eval.h>
30
#include <Filter.h>
31

32
////////////////////////////////////////////////////////////////////////////////
33
CmdCalc::CmdCalc() {
4,389✔
34
  _keyword = "calc";
4,389✔
35
  _usage = "task          calc <expression>";
4,389✔
36
  _description = "Calculator";
4,389✔
37
  _read_only = true;
4,389✔
38
  _displays_id = false;
4,389✔
39
  _needs_gc = false;
4,389✔
40
  _uses_context = false;
4,389✔
41
  _accepts_filter = false;
4,389✔
42
  _accepts_modifications = false;
4,389✔
43
  _accepts_miscellaneous = true;
4,389✔
44
  _category = Command::Category::misc;
4,389✔
45
}
4,389✔
46

47
////////////////////////////////////////////////////////////////////////////////
48
int CmdCalc::execute(std::string& output) {
4✔
49
  // Configurable infix/postfix
50
  bool infix{true};
4✔
51
  if (Context::getContext().config.get("expressions") == "postfix") infix = false;
4✔
52

53
  // Create an evaluator with DOM access.
54
  Eval e;
4✔
55
  e.addSource(domSource);
4✔
56
  e.debug(Context::getContext().config.getBoolean("debug"));
4✔
57

58
  // Compile all the args into one expression.
59
  std::string expression;
4✔
60
  for (const auto& word : Context::getContext().cli2.getWords()) expression += word + ' ';
12✔
61

62
  // Evaluate according to preference.
63
  Variant result;
4✔
64
  if (infix)
4✔
65
    e.evaluateInfixExpression(expression, result);
4✔
66
  else
NEW
67
    e.evaluatePostfixExpression(expression, result);
×
68

69
  output = (std::string)result + '\n';
4✔
70
  return 0;
4✔
71
}
4✔
72

73
////////////////////////////////////////////////////////////////////////////////
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc