Changeset 850fd32 in mainline for uspace/dist/src/c/demos/edit/edit.c


Ignore:
Timestamp:
2018-03-11T01:21:19Z (7 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
84239b1, f0e825d
Parents:
338d54a7
Message:

Fix mischievious semicolons.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/dist/src/c/demos/edit/edit.c

    r338d54a7 r850fd32  
    4848#include <macros.h>
    4949#include <clipboard.h>
     50#include <types/common.h>
    5051
    5152#include "sheet.h"
     
    131132static void pos_handle(pos_event_t *ev);
    132133
    133 static int file_save(char const *fname);
     134static errno_t file_save(char const *fname);
    134135static void file_save_as(void);
    135 static int file_insert(char *fname);
    136 static int file_save_range(char const *fname, spt_t const *spos,
     136static errno_t file_insert(char *fname);
     137static errno_t file_save_range(char const *fname, spt_t const *spos,
    137138    spt_t const *epos);
    138139static char *range_get_str(spt_t const *spos, spt_t const *epos);
     
    577578
    578579/** Save the document. */
    579 static int file_save(char const *fname)
     580static errno_t file_save(char const *fname)
    580581{
    581582        spt_t sp, ep;
     
    654655
    655656                        /* Handle key press. */
    656                         if (((kev->mods & KM_ALT) == 0) &&
    657                              (kev->mods & KM_CTRL) != 0) {
    658                                 ;
    659                         } else if ((kev->mods & (KM_CTRL | KM_ALT)) == 0) {
     657                        if ((kev->mods & (KM_CTRL | KM_ALT)) == 0) {
    660658                                switch (kev->key) {
    661659                                case KC_ESCAPE:
     
    696694 * of the caret.
    697695 */
    698 static int file_insert(char *fname)
     696static errno_t file_insert(char *fname)
    699697{
    700698        FILE *f;
     
    734732
    735733/** Save a range of text into a file. */
    736 static int file_save_range(char const *fname, spt_t const *spos,
     734static errno_t file_save_range(char const *fname, spt_t const *spos,
    737735    spt_t const *epos)
    738736{
     
    760758        } while (!spt_equal(&bep, epos));
    761759
    762         if (fclose(f) != EOK)
     760        if (fclose(f) < 0)
    763761                return EIO;
    764762
     
    954952        coord_t coord;
    955953        int last_row;
     954        char *fname;
     955        char *p;
     956        char *text;
     957        size_t n;
     958        int pos;
     959        size_t nextra;
     960        size_t fnw;
    956961
    957962        tag_get_pt(&pane.caret_pos, &caret_pt);
     
    960965        sheet_get_num_rows(doc.sh, &last_row);
    961966
    962         const char *fname = (doc.file_name != NULL) ? doc.file_name : "<unnamed>";
     967        if (doc.file_name != NULL) {
     968                /* Remove directory component */
     969                p = str_rchr(doc.file_name, '/');
     970                if (p != NULL)
     971                        fname = str_dup(p + 1);
     972                else
     973                        fname = str_dup(doc.file_name);
     974        } else {
     975                fname = str_dup("<unnamed>");
     976        }
     977
     978        if (fname == NULL)
     979                return;
    963980
    964981        console_set_pos(con, 0, scr_rows - 1);
    965982        console_set_style(con, STYLE_INVERTED);
    966         int n = printf(" %d, %d (%d): File '%s'. Ctrl-Q Quit  Ctrl-S Save  "
    967             "Ctrl-E Save As", coord.row, coord.column, last_row, fname);
    968 
    969         int pos = scr_columns - 1 - n;
     983
     984        /*
     985         * Make sure the status fits on the screen. This loop should
     986         * be executed at most twice.
     987         */
     988        while (true) {
     989                int rc = asprintf(&text, " %d, %d (%d): File '%s'. Ctrl-Q Quit  Ctrl-S Save  "
     990                    "Ctrl-E Save As", coord.row, coord.column, last_row, fname);
     991                if (rc < 0) {
     992                        n = 0;
     993                        goto finish;
     994                }
     995
     996                /* If it already fits, we're done */
     997                n = str_width(text);
     998                if (n <= scr_columns - 2)
     999                        break;
     1000
     1001                /* Compute number of excess characters */
     1002                nextra = n - (scr_columns - 2);
     1003                /** With of the file name part */
     1004                fnw = str_width(fname);
     1005
     1006                /*
     1007                 * If reducing file name to two characters '..' won't help,
     1008                 * just give up and print a blank status.
     1009                 */
     1010                if (nextra > fnw - 2)
     1011                        goto finish;
     1012
     1013                /* Compute position where we overwrite with '..\0' */
     1014                if (fnw >= nextra + 2) {
     1015                        p = fname + str_lsize(fname, fnw - nextra - 2);
     1016                } else {
     1017                        p = fname;
     1018                }
     1019
     1020                /* Shorten the string */
     1021                p[0] = p[1] = '.';
     1022                p[2] = '\0';
     1023
     1024                /* Need to format the string once more. */
     1025                free(text);
     1026        }
     1027
     1028        printf("%s", text);
     1029        free(text);
     1030        free(fname);
     1031finish:
     1032        /* Fill the rest of the line */
     1033        pos = scr_columns - 1 - n;
    9701034        printf("%*s", pos, "");
    9711035        console_flush(con);
     
    12161280
    12171281/* Search operations */
    1218 static int search_spt_producer(void *data, wchar_t *ret)
     1282static errno_t search_spt_producer(void *data, wchar_t *ret)
    12191283{
    12201284        assert(data != NULL);
     
    12251289}
    12261290
    1227 static int search_spt_reverse_producer(void *data, wchar_t *ret)
     1291static errno_t search_spt_reverse_producer(void *data, wchar_t *ret)
    12281292{
    12291293        assert(data != NULL);
     
    12341298}
    12351299
    1236 static int search_spt_mark(void *data, void **mark)
     1300static errno_t search_spt_mark(void *data, void **mark)
    12371301{
    12381302        assert(data != NULL);
Note: See TracChangeset for help on using the changeset viewer.