/* pager functionality by Joseph Spainhour" <spainhou (at) bellsouth.net> */
#include <ncurses.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
  int ch, prev, row, col;
  prev = EOF;
  FILE *fp;
  int y, x;
  if(argc != 2)
  {
    printf("Kullanım: %s <bir dosya adı>\n", argv[0]);
    exit(1);
  }
  fp = fopen(argv[1], "r");
  if(fp == NULL)
  {
    perror("Girdi dosyası açılamadı");
    exit(1);
  }
  initscr();                            /* Curses kipi başlangıcı    */
  getmaxyx(stdscr, row, col);           /* ekran sınırlarını bul     */
  while((ch = fgetc(fp)) != EOF)        /* dosyayı sonuna kadar oku  */
  {
    getyx(stdscr, y, x);                /* o anki imleç konumunu al  */
    if(y == (row - 1))                  /* ekranın sonunda mıyız?    */
    {
      printw("<-Bir tuşa basınız->");
                              /* kullanıcıya bir tuşa basmasını söyle */
      getch();
      clear();                          /* ekranı temizle */
      move(0, 0);                       /* ekranın başına git */
    }
    if(prev == '/' && ch == '*') /* Eğer sadece / ve * karakteri ise
                                         * koyu göstermeyi etkinleştir */
    {
      attron(A_BOLD);                   /* koyu gösterme etkin */
      getyx(stdscr, y, x);              /* imlecin o anki konumunu al */
      move(y, x - 1);                   /* bir karakter geri git */
      printw("%c%c", '/', ch);          /* esas görüntüleme burada yapılmakta */
    }
    else
      printw("%c", ch);
    refresh();
    if(prev == '*' && ch == '/')
      attroff(A_BOLD);                  /* eğer * ve / okunduysa *
                                         * koyu göstermeyi kapat */
    prev = ch;
  }
  endwin();                             /* curses kipi sonu */
  fclose(fp);
  return 0;
}