Skip to content

Commit 8453b51

Browse files
committed
Fix build error on older compilers
#1046
1 parent 9a38015 commit 8453b51

File tree

9 files changed

+75
-312
lines changed

9 files changed

+75
-312
lines changed

changes/change.cpp

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -122,19 +122,12 @@ std::string changes_change (Webserver_Request& webserver_request)
122122

123123

124124
// Get notes for the passage.
125-
Database_Notes::selector selector {
125+
Database_Notes::Selector selector {
126126
.bibles = bibles,
127-
.book = passage.m_book, \
127+
.book = passage.m_book,
128128
.chapter = passage.m_chapter,
129129
.verse = filter::strings::convert_to_int (passage.m_verse),
130-
.passage_selector = Database_Notes::passage_selector::current_verse,
131-
.edit_selector = Database_Notes::edit_selector::at_any_time,
132-
.non_edit_selector = Database_Notes::non_edit_selector::any_time,
133-
.status_selectors = {},
134-
.assignment_selector = "",
135-
.subscription_selector = 0,
136-
.severity_selector = Database_Notes::severity_selector::any,
137-
.search_text = "",
130+
.passage_selector = Database_Notes::PassageSelector::current_verse,
138131
};
139132
std::vector<int> notes = database_notes.select_notes(selector);
140133

database/notes.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -596,7 +596,7 @@ int Database_Notes::store_new_note (const std::string& bible, int book, int chap
596596
}
597597

598598

599-
std::vector<int> Database_Notes::select_notes(const selector& selector)
599+
std::vector<int> Database_Notes::select_notes(const Selector& selector)
600600
{
601601
const std::string& username = m_webserver_request.session_logic ()->get_username ();
602602
std::vector <int> identifiers;
@@ -611,50 +611,50 @@ std::vector<int> Database_Notes::select_notes(const selector& selector)
611611
// Consider passage selector.
612612
std::string passage;
613613
switch (selector.passage_selector) {
614-
case passage_selector::current_verse:
614+
case PassageSelector::current_verse:
615615
// Select notes that refer to the current verse.
616616
// It means that the book, the chapter, and the verse, should match.
617617
passage = encode_passage (selector.book, selector.chapter, selector.verse);
618618
query.append (" AND passage LIKE '%" + passage + "%' ");
619619
break;
620-
case passage_selector::current_chapter:
620+
case PassageSelector::current_chapter:
621621
// Select notes that refer to the current chapter.
622622
// It means that the book and the chapter should match.
623623
passage = encode_passage (selector.book, selector.chapter, -1);
624624
query.append (" AND passage LIKE '%" + passage + "%' ");
625625
break;
626-
case passage_selector::current_book:
626+
case PassageSelector::current_book:
627627
// Select notes that refer to the current book.
628628
// It means that the book should match.
629629
passage = encode_passage (selector.book, -1, -1);
630630
query.append (" AND passage LIKE '%" + passage + "%' ");
631631
break;
632-
case passage_selector::any_passage:
632+
case PassageSelector::any_passage:
633633
default:
634634
// Select notes that refer to any passage: No constraint to apply here.
635635
break;
636636
}
637637
// Consider edit selector.
638638
int time { 0 };
639639
switch (selector.edit_selector) {
640-
case edit_selector::at_any_time:
640+
case EditSelector::at_any_time:
641641
default:
642642
// Select notes that have been edited at any time. Apply no constraint.
643643
time = 0;
644644
break;
645-
case edit_selector::during_last_30_days:
645+
case EditSelector::during_last_30_days:
646646
// Select notes that have been edited during the last 30 days.
647647
time = filter::date::seconds_since_epoch () - 30 * 24 * 3600;
648648
break;
649-
case edit_selector::during_last_7_days:
649+
case EditSelector::during_last_7_days:
650650
// Select notes that have been edited during the last 7 days.
651651
time = filter::date::seconds_since_epoch () - 7 * 24 * 3600;
652652
break;
653-
case edit_selector::since_yesterday:
653+
case EditSelector::since_yesterday:
654654
// Select notes that have been edited since yesterday.
655655
time = filter::date::seconds_since_epoch () - 1 * 24 * 3600 - filter::date::numerical_hour (filter::date::seconds_since_epoch ()) * 3600;
656656
break;
657-
case edit_selector::today:
657+
case EditSelector::today:
658658
// Select notes that have been edited today.
659659
time = filter::date::seconds_since_epoch () - filter::date::numerical_hour (filter::date::seconds_since_epoch ()) * 3600;
660660
break;
@@ -667,28 +667,28 @@ std::vector<int> Database_Notes::select_notes(const selector& selector)
667667
// Consider non-edit selector.
668668
int nonedit { 0 };
669669
switch (selector.non_edit_selector) {
670-
case Database_Notes::non_edit_selector::any_time:
670+
case Database_Notes::NonEditSelector::any_time:
671671
default:
672672
// Select notes that have not been edited at any time. Apply no constraint.
673673
nonedit = 0;
674674
break;
675-
case Database_Notes::non_edit_selector::a_day:
675+
case Database_Notes::NonEditSelector::a_day:
676676
// Select notes that have not been edited for a day.
677677
nonedit = filter::date::seconds_since_epoch () - 1 * 24 * 3600;
678678
break;
679-
case Database_Notes::non_edit_selector::two_days:
679+
case Database_Notes::NonEditSelector::two_days:
680680
// Select notes that have not been edited for two days.
681681
nonedit = filter::date::seconds_since_epoch () - 2 * 24 * 3600;
682682
break;
683-
case Database_Notes::non_edit_selector::a_week:
683+
case Database_Notes::NonEditSelector::a_week:
684684
// Select notes that have not been edited for a week.
685685
nonedit = filter::date::seconds_since_epoch () - 7 * 24 * 3600;
686686
break;
687-
case Database_Notes::non_edit_selector::a_month:
687+
case Database_Notes::NonEditSelector::a_month:
688688
// Select notes that have not been edited for a month.
689689
nonedit = filter::date::seconds_since_epoch () - 30 * 24 * 3600;
690690
break;
691-
case Database_Notes::non_edit_selector::a_year:
691+
case Database_Notes::NonEditSelector::a_year:
692692
// Select notes that have not been edited for a year.
693693
nonedit = filter::date::seconds_since_epoch () - 365 * 24 * 3600;
694694
break;
@@ -740,7 +740,7 @@ std::vector<int> Database_Notes::select_notes(const selector& selector)
740740
query.append (" %' ");
741741
}
742742
// Consider the note severity.
743-
if (selector.severity_selector != Database_Notes::severity_selector::any) {
743+
if (selector.severity_selector != Database_Notes::SeveritySelector::any) {
744744
query.append (" AND severity = ");
745745
query.append (std::to_string (static_cast<int>(selector.severity_selector)));
746746
query.append (" ");

database/notes.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,28 +70,28 @@ class Database_Notes
7070
int get_new_unique_identifier ();
7171

7272
public:
73-
enum class passage_selector : uint8_t {
73+
enum class PassageSelector : uint8_t {
7474
current_verse = 0,
7575
current_chapter = 1,
7676
current_book = 2,
7777
any_passage = 3
7878
};
79-
enum class edit_selector : uint8_t {
79+
enum class EditSelector : uint8_t {
8080
at_any_time = 0,
8181
during_last_30_days = 1,
8282
during_last_7_days = 2,
8383
since_yesterday = 3,
8484
today = 4,
8585
};
86-
enum class non_edit_selector : uint8_t {
86+
enum class NonEditSelector : uint8_t {
8787
any_time = 0,
8888
a_day = 1,
8989
two_days = 2,
9090
a_week = 3,
9191
a_month = 4,
9292
a_year = 5,
9393
};
94-
enum class severity_selector : int8_t {
94+
enum class SeveritySelector : int8_t {
9595
any = -1,
9696
wish = 0,
9797
minor = 1,
@@ -100,7 +100,7 @@ class Database_Notes
100100
major = 4,
101101
critical = 5,
102102
};
103-
struct selector {
103+
struct Selector {
104104
// Container of Bible names that is going to be searched.
105105
// Can contains all Bibles the user has read access to.
106106
// Or can contain one Bible to be searched.
@@ -111,26 +111,26 @@ class Database_Notes
111111
int book{};
112112
int chapter{};
113113
int verse{};
114-
passage_selector passage_selector{passage_selector::any_passage};
114+
PassageSelector passage_selector{PassageSelector::any_passage};
115115
// Optionally constrains selection based on modification time.
116116
// By default there's no constraint on modification time.
117-
edit_selector edit_selector{edit_selector::at_any_time};
118-
non_edit_selector non_edit_selector{non_edit_selector::any_time};
117+
EditSelector edit_selector{EditSelector::at_any_time};
118+
NonEditSelector non_edit_selector{NonEditSelector::any_time};
119119
// Optionally constrains selection based on list of note statuses.
120120
std::vector<std::string> status_selectors;
121121
// Optionally constrains the selection based on a note being assigned to somebody.
122122
std::string assignment_selector{};
123123
// Optionally limits the selection based on a note's subscription.
124124
bool subscription_selector{false};
125125
// Optionally limits the selection, based on a note's severity.
126-
severity_selector severity_selector{severity_selector::any};
126+
SeveritySelector severity_selector{SeveritySelector::any};
127127
// Optionally limits the selection to notes that contains certain text.
128128
// If the "search_text" is empty, it is not considered.
129129
std::string search_text{};
130130
// If given, it indicates the starting limit for the selection.
131131
std::optional<int> limit{};
132132
};
133-
std::vector<int> select_notes (const selector& selector);
133+
std::vector<int> select_notes (const Selector& selector);
134134
private:
135135
std::string notes_select_identifier ();
136136
std::string notes_optional_fulltext_search_relevance_statement (std::string search);

notes/bulk.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,13 @@ std::string notes_bulk (Webserver_Request& webserver_request)
7474
int book = Ipc_Focus::getBook (webserver_request);
7575
int chapter = Ipc_Focus::getChapter (webserver_request);
7676
int verse = Ipc_Focus::getVerse (webserver_request);
77-
Database_Notes::passage_selector passage_selector = static_cast<Database_Notes::passage_selector>(webserver_request.database_config_user()->get_consultation_notes_passage_selector());
77+
Database_Notes::PassageSelector passage_selector = static_cast<Database_Notes::PassageSelector>(webserver_request.database_config_user()->get_consultation_notes_passage_selector());
7878
int edit_selector = webserver_request.database_config_user()->get_consultation_notes_edit_selector();
79-
auto non_edit_selector = static_cast<Database_Notes::non_edit_selector>(webserver_request.database_config_user()->get_consultation_notes_non_edit_selector());
79+
auto non_edit_selector = static_cast<Database_Notes::NonEditSelector>(webserver_request.database_config_user()->get_consultation_notes_non_edit_selector());
8080
const std::vector<std::string> status_selectors = webserver_request.database_config_user()->get_consultation_notes_status_selectors();
8181
std::string assignment_selector = webserver_request.database_config_user()->get_consultation_notes_assignment_selector();
8282
bool subscription_selector = webserver_request.database_config_user()->get_consultation_notes_subscription_selector();
83-
auto severity_selector = static_cast<Database_Notes::severity_selector>(webserver_request.database_config_user()->get_consultation_notes_severity_selector());
83+
auto severity_selector = static_cast<Database_Notes::SeveritySelector>(webserver_request.database_config_user()->get_consultation_notes_severity_selector());
8484
const int text_selector = webserver_request.database_config_user()->get_consultation_notes_text_selector();
8585
const std::string search_text = text_selector ? webserver_request.database_config_user()->get_consultation_notes_search_text() : "";
8686

@@ -111,13 +111,13 @@ std::string notes_bulk (Webserver_Request& webserver_request)
111111
// This is done to remember them as long as this page is active.
112112
// Thus erroneous bulk operations on notes can be rectified somewhat easier.
113113
if (!subscribe && !unsubscribe && !assign && !unassign && !status && !severity && !bible && !erase) {
114-
Database_Notes::selector selector {
114+
Database_Notes::Selector selector {
115115
.bibles = bibles,
116116
.book = book,
117117
.chapter = chapter,
118118
.verse = verse,
119119
.passage_selector = passage_selector,
120-
.edit_selector = static_cast<Database_Notes::edit_selector>(edit_selector),
120+
.edit_selector = static_cast<Database_Notes::EditSelector>(edit_selector),
121121
.non_edit_selector = non_edit_selector,
122122
.status_selectors = status_selectors,
123123
.assignment_selector = assignment_selector,

notes/notes.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,13 @@ std::string notes_notes (Webserver_Request& webserver_request)
5656
int verse = Ipc_Focus::getVerse (webserver_request);
5757

5858

59-
Database_Notes::passage_selector passage_selector = static_cast<Database_Notes::passage_selector>(webserver_request.database_config_user()->get_consultation_notes_passage_selector());
59+
Database_Notes::PassageSelector passage_selector = static_cast<Database_Notes::PassageSelector>(webserver_request.database_config_user()->get_consultation_notes_passage_selector());
6060
int edit_selector = webserver_request.database_config_user()->get_consultation_notes_edit_selector();
61-
auto non_edit_selector = static_cast<Database_Notes::non_edit_selector>(webserver_request.database_config_user()->get_consultation_notes_non_edit_selector());
61+
auto non_edit_selector = static_cast<Database_Notes::NonEditSelector>(webserver_request.database_config_user()->get_consultation_notes_non_edit_selector());
6262
const std::vector<std::string> status_selectors = webserver_request.database_config_user()->get_consultation_notes_status_selectors();
6363
std::string assignment_selector = webserver_request.database_config_user()->get_consultation_notes_assignment_selector();
6464
bool subscription_selector = webserver_request.database_config_user()->get_consultation_notes_subscription_selector();
65-
auto severity_selector = static_cast<Database_Notes::severity_selector>(webserver_request.database_config_user()->get_consultation_notes_severity_selector());
65+
auto severity_selector = static_cast<Database_Notes::SeveritySelector>(webserver_request.database_config_user()->get_consultation_notes_severity_selector());
6666
const int text_selector = webserver_request.database_config_user()->get_consultation_notes_text_selector();
6767
const std::string search_text = text_selector ? webserver_request.database_config_user()->get_consultation_notes_search_text() : "";
6868
int passage_inclusion_selector = webserver_request.database_config_user()->get_consultation_notes_passage_inclusion_selector();
@@ -81,13 +81,13 @@ std::string notes_notes (Webserver_Request& webserver_request)
8181
if (webserver_request.session_logic ()->get_level () == roles::admin) bibles.clear ();
8282

8383

84-
Database_Notes::selector selector {
84+
Database_Notes::Selector selector {
8585
.bibles = bibles,
8686
.book = book,
8787
.chapter = chapter,
8888
.verse = verse,
8989
.passage_selector = passage_selector,
90-
.edit_selector = static_cast<Database_Notes::edit_selector>(edit_selector),
90+
.edit_selector = static_cast<Database_Notes::EditSelector>(edit_selector),
9191
.non_edit_selector = non_edit_selector,
9292
.status_selectors = status_selectors,
9393
.assignment_selector = assignment_selector,

notes/select.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -333,14 +333,14 @@ std::string notes_select (Webserver_Request& webserver_request)
333333
}
334334

335335

336-
const Database_Notes::passage_selector passage_selector = static_cast<Database_Notes::passage_selector>(webserver_request.database_config_user()->get_consultation_notes_passage_selector());
336+
const Database_Notes::PassageSelector passage_selector = static_cast<Database_Notes::PassageSelector>(webserver_request.database_config_user()->get_consultation_notes_passage_selector());
337337
const int edit_selector = webserver_request.database_config_user()->get_consultation_notes_edit_selector();
338-
const auto non_edit_selector = static_cast<Database_Notes::non_edit_selector>(webserver_request.database_config_user()->get_consultation_notes_non_edit_selector());
338+
const auto non_edit_selector = static_cast<Database_Notes::NonEditSelector>(webserver_request.database_config_user()->get_consultation_notes_non_edit_selector());
339339
const std::vector<std::string> status_selectors = webserver_request.database_config_user()->get_consultation_notes_status_selectors();
340340
const std::string bible_selector = webserver_request.database_config_user()->get_consultation_notes_bible_selector();
341341
const std::string assignment_selector = webserver_request.database_config_user()->get_consultation_notes_assignment_selector();
342342
const bool subscription_selector = webserver_request.database_config_user()->get_consultation_notes_subscription_selector();
343-
const auto severity_selector = static_cast<Database_Notes::severity_selector>(webserver_request.database_config_user()->get_consultation_notes_severity_selector());
343+
const auto severity_selector = static_cast<Database_Notes::SeveritySelector>(webserver_request.database_config_user()->get_consultation_notes_severity_selector());
344344

345345
const int text_selector = webserver_request.database_config_user()->get_consultation_notes_text_selector();
346346
const std::string search_text = text_selector ? webserver_request.database_config_user()->get_consultation_notes_search_text() : "";
@@ -362,13 +362,13 @@ std::string notes_select (Webserver_Request& webserver_request)
362362
const int book = Ipc_Focus::getBook (webserver_request);
363363
const int chapter = Ipc_Focus::getChapter (webserver_request);
364364
const int verse = Ipc_Focus::getVerse (webserver_request);
365-
Database_Notes::selector selector {
365+
Database_Notes::Selector selector {
366366
.bibles = bibles,
367367
.book = book,
368368
.chapter = chapter,
369369
.verse = verse,
370370
.passage_selector = passage_selector,
371-
.edit_selector = static_cast<Database_Notes::edit_selector>(edit_selector),
371+
.edit_selector = static_cast<Database_Notes::EditSelector>(edit_selector),
372372
.non_edit_selector = non_edit_selector,
373373
.status_selectors = status_selectors,
374374
.assignment_selector = assignment_selector,

public/notes.cpp

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,11 @@ std::string public_notes (Webserver_Request& webserver_request)
5151
const int chapter = filter::strings::convert_to_int (webserver_request.query ["chapter"]);
5252

5353

54-
Database_Notes::selector selector {
54+
Database_Notes::Selector selector {
5555
.bibles = {bible},
5656
.book = book,
5757
.chapter = chapter,
58-
.verse = 0,
59-
.passage_selector = Database_Notes::passage_selector::current_chapter,
60-
.edit_selector = Database_Notes::edit_selector::at_any_time,
61-
.non_edit_selector = Database_Notes::non_edit_selector::any_time,
62-
.status_selectors = {},
63-
.assignment_selector = "",
64-
.subscription_selector = false,
65-
.severity_selector = Database_Notes::severity_selector::any,
66-
.search_text = "",
58+
.passage_selector = Database_Notes::PassageSelector::current_chapter,
6759
};
6860
const std::vector<int> identifiers = database_notes.select_notes(selector);
6961

0 commit comments

Comments
 (0)