aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/browser.cc50
-rw-r--r--src/main.cc17
2 files changed, 32 insertions, 35 deletions
diff --git a/src/core/browser.cc b/src/core/browser.cc
index 571783a..c4dbb08 100644
--- a/src/core/browser.cc
+++ b/src/core/browser.cc
@@ -412,30 +412,6 @@ void draw_view( const tui::Terminal& terminal,
std::cout.flush();
}
-std::string format_url( std::string input )
-{
- if ( input.empty() ) {
- return input;
- }
-
- if ( input.starts_with( "http://" ) || input.starts_with( "https://" ) ) {
- return input;
- }
-
- const bool is_domain = input.contains( '.' ) && !input.contains( ' ' );
- if ( is_domain ) {
- input.insert( 0, "https://" );
- return input;
- }
-
- for ( char& ch : input ) {
- if ( ch == ' ' ) {
- ch = '+';
- }
- }
- return "https://lite.duckduckgo.com/lite/?q=" + input;
-}
-
std::string get_url_input( const tui::Terminal& terminal )
{
auto [width, height] = terminal.get_size();
@@ -468,7 +444,7 @@ std::string get_url_input( const tui::Terminal& terminal )
}
terminal.show_cursor( false );
- return format_url( std::move( input ) );
+ return Browser::format_url( std::move( input ) );
}
// std::string get_link_input( const tui::Terminal& terminal )
@@ -1003,6 +979,30 @@ std::vector<std::string> wrap_lines( const std::vector<std::string>& original_li
} // namespace
+std::string Browser::format_url( std::string input )
+{
+ if ( input.empty() ) {
+ return input;
+ }
+
+ if ( input.starts_with( "http://" ) || input.starts_with( "https://" ) ) {
+ return input;
+ }
+
+ const bool is_domain = input.contains( '.' ) && !input.contains( ' ' );
+ if ( is_domain ) {
+ input.insert( 0, "https://" );
+ return input;
+ }
+
+ for ( char& ch : input ) {
+ if ( ch == ' ' ) {
+ ch = '+';
+ }
+ }
+ return "https://lite.duckduckgo.com/lite/?q=" + input;
+}
+
std::string Browser::get_configured_homepage()
{
std::ifstream file( get_config_path( "config.txt" ) );
diff --git a/src/main.cc b/src/main.cc
index 562861a..d27ab55 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -16,7 +16,6 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-#include <fstream>
#include <iostream>
#include <span>
#include <string_view>
@@ -42,13 +41,6 @@ int main( int argc, char* argv[] )
ricochet::core::print_license_notice();
- std::string start_url;
- if ( args.size() < 2 ) {
- start_url = ricochet::core::Browser::get_configured_homepage();
- } else {
- start_url = std::string( args[1] );
- }
-
if ( args.size() >= 2 && args[1] == "show" ) {
if ( args.size() >= 3 && args[2] == "w" ) {
ricochet::core::show_warranty();
@@ -63,10 +55,15 @@ int main( int argc, char* argv[] )
return 1;
}
- if ( !start_url.starts_with( "http://" ) && !start_url.starts_with( "https://" ) ) {
- start_url.insert( 0, "https://" );
+ std::string start_url;
+ if ( args.size() < 2 ) {
+ start_url = ricochet::core::Browser::get_configured_homepage();
+ } else {
+ start_url = std::string( args[1] );
}
+ start_url = ricochet::core::Browser::format_url( std::move( start_url ) );
+
try {
return ricochet::core::Browser::run( start_url );
} catch ( const std::exception& e ) {