aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAakarsh Kashyap <[email protected]>2026-06-29 12:19:45 +0530
committerAakarsh Kashyap <[email protected]>2026-06-29 12:19:45 +0530
commit119e47338ef9b0adea7b584239f9f6911e4da5cb (patch)
tree89a91d60c68f0a2265fc2ccec753f98972908f98
parent19df8e77977f634064aed3c0332d1b0fc56e158b (diff)
Added screen centering feature
-rw-r--r--include/reader.h1
-rwxr-xr-xrunbin0 -> 57080 bytes
-rw-r--r--src/main.cpp3
-rw-r--r--src/reader.cpp16
4 files changed, 18 insertions, 2 deletions
diff --git a/include/reader.h b/include/reader.h
index 27b7a90..365500c 100644
--- a/include/reader.h
+++ b/include/reader.h
@@ -59,6 +59,7 @@ void init_editor(editor_cfg *cfg);
void die(const char *s);
void disable_raw(editor_cfg *cfg);
void enable_raw(editor_cfg *cfg);
+void window_size_callback(editor_cfg *cfg);
void editor_refresh_scrn(editor_cfg *cfg);
char editor_readkey();
diff --git a/run b/run
new file mode 100755
index 0000000..98ced72
--- /dev/null
+++ b/run
Binary files differ
diff --git a/src/main.cpp b/src/main.cpp
index 10c3df6..97e9dce 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,4 +1,4 @@
-#include "reader.h"
+#include "../include/reader.h"
int main(int argc, char *argv[]) {
try {
@@ -44,6 +44,7 @@ int main(int argc, char *argv[]) {
while(1) {
for (std::string &k: data) {
if (k.empty()) continue;
+ window_size_callback(cfg);
editor_refresh_scrn(cfg);
int mid = k.size() / 2;
diff --git a/src/reader.cpp b/src/reader.cpp
index 508205d..1d49d4e 100644
--- a/src/reader.cpp
+++ b/src/reader.cpp
@@ -1,5 +1,7 @@
-#include "reader.h"
+#include "../include/reader.h"
#include <csignal>
+#include <iostream>
+
void die(const char *s) {
write(STDOUT_FILENO, "\x1b[2J", 4);
@@ -103,6 +105,18 @@ int get_window_size(int *rows, int *cols) {
return 0;
}
+void window_size_callback(editor_cfg *cfg) {
+ int a{};
+ int b{};
+
+ if (get_window_size(&a, &b) != 0)
+ std::cout << "[err]: window_size_callback: get_window_size\n";
+ if ((cfg->screencols != a) || (cfg->screencols != b)) {
+ cfg->screenrows = a;
+ cfg->screencols = b;
+ }
+}
+
void editor_refresh_scrn(editor_cfg *cfg) {
append_buffer::instance().append("\x1b[2J", 4);
char buff[32];