OSDN Git Service

キャラクター生成中やオプション設定中に'?'を押すとヘルプファイルの中の
[hengband/hengband.git] / src / files.c
index 0451c0f..d1a8092 100644 (file)
@@ -1040,46 +1040,6 @@ static cptr process_pref_file_expr(char **sp, char *fp)
 
 
 /*
- *  Process line for auto picker/destroyer.
- */
-static errr process_pickpref_file_line(char *buf)
-{
-       autopick_type entry;
-       int i;
-
-       if (max_autopick == MAX_AUTOPICK)
-               return 1;
-       
-       /* Nuke illegal char */
-       for(i = 0; buf[i]; i++)
-       {
-#ifdef JP
-               if (iskanji(buf[i]))
-               {
-                       i++;
-                       continue;
-               }
-#endif
-               if (isspace(buf[i]) && buf[i] != ' ')
-                       break;
-       }
-       buf[i] = 0;
-       
-       if (!autopick_new_entry(&entry, buf)) return 0;
-
-       /* Already has the same entry? */ 
-       for(i = 0; i < max_autopick; i++)
-               if(!strcmp(entry.name, autopick_list[i].name)
-                  && entry.flag[0] == autopick_list[i].flag[0]
-                  && entry.flag[1] == autopick_list[i].flag[1]) return 0;
-
-       autopick_list[max_autopick++] = entry;
-       return 0;
-}
-
-
-
-/*
  * Open the "user pref file" and parse it.
  */
 static errr process_pref_file_aux(cptr name, bool read_pickpref)
@@ -1632,7 +1592,7 @@ static struct
        {29,  5, 21, "Weight"},
        {29,  6, 21, "Social Class"},
        {29,  7, 21, "Align"},
-       {29, 14, 21, "Constraction"},
+       {29, 14, 21, "Construction"},
 };
 #endif
 
@@ -2797,7 +2757,6 @@ static void tim_player_flags(u32b flgs[TR_FLAG_SIZE], bool im_and_res)
 /* Mode flags for displaying player flags */
 #define DP_CURSE   0x01
 #define DP_IMM     0x02
-#define DP_ESP     0x04
 #define DP_WP      0x08
 
 
@@ -3004,35 +2963,6 @@ static void display_flag_aux(int row, int col, cptr header,
                         if ((mode & DP_CURSE) && (o_ptr->curse_flags & TRC_PERMA_CURSE))
                                 c_put_str(TERM_WHITE, "*", row, col);
                 }
-                else if (mode & DP_ESP)
-                {
-                        if (have_flag(flgs, TR_TELEPATHY))
-                                c_put_str(TERM_WHITE, "*", row, col);
-                        else if (have_flag(flgs, TR_ESP_EVIL))
-                                c_put_str(TERM_L_DARK, "*", row, col);
-                        else if (have_flag(flgs, TR_ESP_NONLIVING))
-                                c_put_str(TERM_BLUE, "+", row, col);
-                        else if (have_flag(flgs, TR_ESP_GOOD))
-                                c_put_str(TERM_WHITE, "+", row, col);
-                        else if (have_flag(flgs, TR_ESP_UNDEAD))
-                                c_put_str(TERM_L_DARK, "+", row, col);
-                        else if (have_flag(flgs, TR_ESP_DEMON))
-                                c_put_str(TERM_RED, "+", row, col);
-                        else if (have_flag(flgs, TR_ESP_DRAGON))
-                                c_put_str(TERM_GREEN, "+", row, col);
-                        else if (have_flag(flgs, TR_ESP_HUMAN))
-                                c_put_str(TERM_YELLOW, "+", row, col);
-                        else if (have_flag(flgs, TR_ESP_UNIQUE))
-                                c_put_str(TERM_VIOLET, "+", row, col);
-                        else if (have_flag(flgs, TR_ESP_ANIMAL))
-                                c_put_str(TERM_L_GREEN, "+", row, col);
-                        else if (have_flag(flgs, TR_ESP_ORC))
-                                c_put_str(TERM_L_UMBER, "+", row, col);
-                        else if (have_flag(flgs, TR_ESP_TROLL))
-                                c_put_str(TERM_SLATE, "+", row, col);
-                        else if (have_flag(flgs, TR_ESP_GIANT))
-                                c_put_str(TERM_ORANGE, "+", row, col);
-                }
                 else
                 {
                         if (have_flag(flgs, flag1))
@@ -3172,7 +3102,7 @@ display_flag_aux(row+0, col, "
 display_flag_aux(row+1, col, "ÂÑËãáã    :", TR_FREE_ACT, &f, 0);
 display_flag_aux(row+2, col, "Æ©ÌÀÂλëǧ:", TR_SEE_INVIS, &f, 0);
 display_flag_aux(row+3, col, "·Ð¸³ÃÍÊÝ»ý:", TR_HOLD_LIFE, &f, 0);
-display_flag_aux(row+4, col, "¥Æ¥ì¥Ñ¥·¡¼:", TR_TELEPATHY, &f, DP_ESP);
+display_flag_aux(row+4, col, "·Ù¹ð      :", TR_WARNING, &f, 0);
 display_flag_aux(row+5, col, "Ãپò½    :", TR_SLOW_DIGEST, &f, 0);
 display_flag_aux(row+6, col, "µÞ²óÉü    :", TR_REGEN, &f, 0);
 display_flag_aux(row+7, col, "ÉâÍ·      :", TR_FEATHER, &f, 0);
@@ -3183,7 +3113,7 @@ display_flag_aux(row+9, col, "
        display_flag_aux(row+1, col, "FreeAction:", TR_FREE_ACT, &f, 0);
        display_flag_aux(row+2, col, "SeeInvisi.:", TR_SEE_INVIS, &f, 0);
        display_flag_aux(row+3, col, "Hold Life :", TR_HOLD_LIFE, &f, 0);
-       display_flag_aux(row+4, col, "Telepathy :", TR_TELEPATHY, &f, DP_ESP);
+       display_flag_aux(row+4, col, "Warning   :", TR_WARNING, &f, 0);
        display_flag_aux(row+5, col, "SlowDigest:", TR_SLOW_DIGEST, &f, 0);
        display_flag_aux(row+6, col, "Regene.   :", TR_REGEN, &f, 0);
        display_flag_aux(row+7, col, "Levitation:", TR_FEATHER, &f, 0);
@@ -3215,7 +3145,7 @@ static void display_player_other_flag_info(void)
        /*** Set 1 ***/
 
        row = 3;
-       col = 2;
+       col = 1;
 
        display_player_equippy(row-2, col+12, DP_WP);
 
@@ -3297,7 +3227,7 @@ static void display_player_other_flag_info(void)
         display_flag_aux(row+ 3, col, "Á±ÎÉESP   :", TR_ESP_GOOD, &f, 0);
         display_flag_aux(row+ 4, col, "ÉÔ»àESP   :", TR_ESP_UNDEAD, &f, 0);
         display_flag_aux(row+ 5, col, "°­ËâESP   :", TR_ESP_DEMON, &f, 0);
-        display_flag_aux(row+ 6, col, "εESP     :", TR_ESP_DRAGON, &f, 0);
+        display_flag_aux(row+ 6, col, "ÎESP     :", TR_ESP_DRAGON, &f, 0);
         display_flag_aux(row+ 7, col, "¿Í´ÖESP   :", TR_ESP_HUMAN, &f, 0);
         display_flag_aux(row+ 8, col, "ưʪESP   :", TR_ESP_ANIMAL, &f, 0);
         display_flag_aux(row+ 9, col, "¥ª¡¼¥¯ESP :", TR_ESP_ORC, &f, 0);
@@ -3336,7 +3266,7 @@ static void display_player_other_flag_info(void)
        /*** Set 3 ***/
 
        row = 3;
-       col = col + 12 + 18;
+       col = col + 12 + 17;
 
        display_player_equippy(row-2, col+14, 0);
 
@@ -3352,11 +3282,11 @@ static void display_player_other_flag_info(void)
 
         display_flag_aux(row+ 7, col, "¾èÇÏ        :", TR_RIDING, &f, 0);
         display_flag_aux(row+ 8, col, "ÅêÚ³        :", TR_THROW, &f, 0);
-        display_flag_aux(row+ 9, col, "È¿¥Æ¥ì¥Ý¡¼¥È:", TR_NO_TELE, &f, 0);
-        display_flag_aux(row+10, col, "ȿËâË¡      :", TR_NO_MAGIC, &f, 0);
-        display_flag_aux(row+11, col, "¾ÃÈñËâÎϸº¾¯:", TR_DEC_MANA, &f, 0);
-        display_flag_aux(row+12, col, "·Ù¹ð        :", TR_WARNING, &f, 0);
-        display_flag_aux(row+13, col, "½ËÊ¡        :", TR_BLESSED, &f, 0);
+        display_flag_aux(row+ 9, col, "½ËÊ¡        :", TR_BLESSED, &f, 0);
+        display_flag_aux(row+10, col, "ȿ¥Æ¥ì¥Ý¡¼¥È:", TR_NO_TELE, &f, 0);
+        display_flag_aux(row+11, col, "È¿ËâË¡      :", TR_NO_MAGIC, &f, 0);
+        display_flag_aux(row+12, col, "¾ÃÈñËâÎϸº¾¯:", TR_DEC_MANA, &f, 0);
+
         display_flag_aux(row+14, col, "·Ð¸³Ã͸º¾¯  :", TR_DRAIN_EXP, &f, 0);
         display_flag_aux(row+15, col, "Íð¥Æ¥ì¥Ý¡¼¥È:", TR_TELEPORT, &f, 0);
         display_flag_aux(row+16, col, "È¿´¶        :", TR_AGGRAVATE, &f, 0);
@@ -3371,11 +3301,11 @@ static void display_player_other_flag_info(void)
 
         display_flag_aux(row+ 7, col, "Riding      :", TR_RIDING, &f, 0);
         display_flag_aux(row+ 8, col, "Throw       :", TR_THROW, &f, 0);
-        display_flag_aux(row+ 9, col, "No Teleport :", TR_NO_TELE, &f, 0);
-        display_flag_aux(row+10, col, "Anti Magic  :", TR_NO_MAGIC, &f, 0);
-        display_flag_aux(row+11, col, "Econom. Mana:", TR_DEC_MANA, &f, 0);
-        display_flag_aux(row+12, col, "Warning     :", TR_WARNING, &f, 0);
-        display_flag_aux(row+13, col, "Blessed     :", TR_BLESSED, &f, 0);
+        display_flag_aux(row+ 9, col, "Blessed     :", TR_BLESSED, &f, 0);
+        display_flag_aux(row+10, col, "No Teleport :", TR_NO_TELE, &f, 0);
+        display_flag_aux(row+11, col, "Anti Magic  :", TR_NO_MAGIC, &f, 0);
+        display_flag_aux(row+12, col, "Econom. Mana:", TR_DEC_MANA, &f, 0);
+
         display_flag_aux(row+14, col, "Drain Exp   :", TR_DRAIN_EXP, &f, 0);
         display_flag_aux(row+15, col, "Rnd.Teleport:", TR_TELEPORT, &f, 0);
         display_flag_aux(row+16, col, "Aggravate   :", TR_AGGRAVATE, &f, 0);
@@ -4017,6 +3947,28 @@ void display_player(int mode)
        }
 }
 
+static bool ang_sort_comp_quest_num(vptr u, vptr v, int a, int b)
+{
+       int *q_num = (int *)u;
+        quest_type *qa = &quest[q_num[a]];
+        quest_type *qb = &quest[q_num[b]];
+
+       if (qa->complev < qb->complev) return TRUE;
+       if (qa->complev > qb->complev) return FALSE;
+       if (qa->level <= qb->level) return TRUE;
+        return FALSE;
+}
+
+static void ang_sort_swap_quest_num(vptr u, vptr v, int a, int b)
+{
+       int *q_num = (int *)u;
+       int tmp;
+
+       tmp = q_num[a];
+       q_num[a] = q_num[b];
+       q_num[b] = tmp;
+}
+
 errr make_character_dump(FILE *fff)
 {
        int             i, x, y;
@@ -4027,6 +3979,8 @@ errr make_character_dump(FILE *fff)
        char            o_name[MAX_NLEN];
        char            buf[1024];
        int             total;
+       int             *quest_num;
+       int             dummy;
 
 #ifdef JP
        fprintf(fff, "  [ÊѶòÈÚÅÜ %d.%d.%d ¥­¥ã¥é¥¯¥¿¾ðÊó]\n\n",
@@ -4096,7 +4050,8 @@ errr make_character_dump(FILE *fff)
        }
 
        fprintf(fff, "\n");
-       /* Display history */
+
+       /* Display flags (part 1) */
        display_player(2);
 
        /* Dump part of the screen */
@@ -4125,6 +4080,37 @@ errr make_character_dump(FILE *fff)
                fprintf(fff, "%s\n", buf);
        }
 
+       fprintf(fff, "\n");
+
+       /* Display flags (part 2) */
+       display_player(3);
+
+       /* Dump part of the screen */
+       for (y = 1; y < 22; y++)
+       {
+               /* Dump each row */
+               for (x = 0; x < 79; x++)
+               {
+                       /* Get the attr/char */
+                       (void)(Term_what(x, y, &a, &c));
+
+                       /* Dump it (Ignore equippy tile graphic) */
+                       if (a < 128)
+                               buf[x] = c;
+                       else
+                               buf[x] = ' ';
+               }
+
+               /* End the string */
+               buf[x] = '\0';
+
+               /* Kill trailing spaces */
+               while ((x > 0) && (buf[x-1] == ' ')) buf[--x] = '\0';
+
+               /* End the row */
+               fprintf(fff, "%s\n", buf);
+       }
+
        for (i = 0; (unsigned int) i < (p_ptr->count / 80); i++)
                fprintf(fff, " ");
        fprintf(fff, "\n");
@@ -4165,9 +4151,9 @@ errr make_character_dump(FILE *fff)
        }
 
 #ifdef JP
-       fprintf(fff, "\n  [¥¯¥¨¥¹¥È¾ðÊó]        \n");
+       fprintf(fff, "\n  [¥¯¥¨¥¹¥È¾ðÊó]\n");
 #else
-       fprintf(fff, "\n  [Quest information]        \n");
+       fprintf(fff, "\n  [Quest information]\n");
 #endif
 
 #ifdef JP
@@ -4175,23 +4161,39 @@ errr make_character_dump(FILE *fff)
 #else
        fprintf(fff, "\n< Completed Quest >\n");
 #endif
+
+       /* Allocate Memory */
+       C_MAKE(quest_num, max_quests, int);
+
+       /* Sort by compete level */
+       for (i = 1; i < max_quests; i++)
+       {
+               quest_num[i] = i;
+       }
+       ang_sort_comp = ang_sort_comp_quest_num;
+       ang_sort_swap = ang_sort_swap_quest_num;
+       ang_sort(quest_num, &dummy, max_quests);
+
+       /* Dump Quest Information */
        total = 0;
        for (i = 1; i < max_quests; i++)
        {
+               int num = quest_num[i];
+
                /* No info from "silent" quests */
-               if (quest[i].flags & QUEST_FLAG_SILENT) continue;
+               if (quest[num].flags & QUEST_FLAG_SILENT) continue;
 
-               if (quest[i].status == QUEST_STATUS_FINISHED)
+               if (quest[num].status == QUEST_STATUS_FINISHED)
                {
                        int old_quest;
 
                        total++;
 
-                       if (i < MIN_RANDOM_QUEST)
+                       if (num < MIN_RANDOM_QUEST)
                        {
                                /* Set the quest number temporary */
                                old_quest = p_ptr->inside_quest;
-                               p_ptr->inside_quest = i;
+                               p_ptr->inside_quest = num;
 
                                /* Get the quest */
                                init_flags = INIT_ASSIGN;
@@ -4202,11 +4204,11 @@ errr make_character_dump(FILE *fff)
                                p_ptr->inside_quest = old_quest;
                        }
 
-                       if ((i >= MIN_RANDOM_QUEST) && quest[i].r_idx)
+                       if ((num >= MIN_RANDOM_QUEST) && quest[num].r_idx)
                        {
                                /* Print the quest info */
 
-                                if (quest[i].complev == 0)
+                                if (quest[num].complev == 0)
                                 {
                                         fprintf(fff, 
 #ifdef JP
@@ -4214,8 +4216,8 @@ errr make_character_dump(FILE *fff)
 #else
                                                 "  %s (Dungeon level: %d) - (Cancelled)\n",
 #endif
-                                                r_name+r_info[quest[i].r_idx].name,
-                                                quest[i].level);
+                                                r_name+r_info[quest[num].r_idx].name,
+                                                quest[num].level);
                                 }
                                 else
                                 {
@@ -4225,9 +4227,9 @@ errr make_character_dump(FILE *fff)
 #else
                                                 "  %s (Dungeon level: %d) - level %d\n",
 #endif
-                                                r_name+r_info[quest[i].r_idx].name,
-                                                quest[i].level,
-                                                quest[i].complev);
+                                                r_name+r_info[quest[num].r_idx].name,
+                                                quest[num].level,
+                                                quest[num].complev);
                                 }
                        }
                        else
@@ -4239,7 +4241,7 @@ errr make_character_dump(FILE *fff)
                                fprintf(fff, "  %s (Danger level: %d) - level %d\n",
 #endif
 
-                                       quest[i].name, quest[i].level, quest[i].complev);
+                                       quest[num].name, quest[num].level, quest[num].complev);
                        }
                }
        }
@@ -4257,20 +4259,22 @@ errr make_character_dump(FILE *fff)
        total = 0;
        for (i = 1; i < max_quests; i++)
        {
+               int num = quest_num[i];
+
                /* No info from "silent" quests */
-               if (quest[i].flags & QUEST_FLAG_SILENT) continue;
+               if (quest[num].flags & QUEST_FLAG_SILENT) continue;
 
-               if ((quest[i].status == QUEST_STATUS_FAILED_DONE) || (quest[i].status == QUEST_STATUS_FAILED))
+               if ((quest[num].status == QUEST_STATUS_FAILED_DONE) || (quest[num].status == QUEST_STATUS_FAILED))
                {
                        int old_quest;
 
                        total++;
 
-                       if (i < MIN_RANDOM_QUEST)
+                       if (num < MIN_RANDOM_QUEST)
                        {
                                /* Set the quest number temporary */
                                old_quest = p_ptr->inside_quest;
-                               p_ptr->inside_quest = i;
+                               p_ptr->inside_quest = num;
 
                                /* Get the quest text */
                                init_flags = INIT_ASSIGN;
@@ -4281,7 +4285,7 @@ errr make_character_dump(FILE *fff)
                                p_ptr->inside_quest = old_quest;
                        }
 
-                       if ((i >= MIN_RANDOM_QUEST) && quest[i].r_idx)
+                       if ((num >= MIN_RANDOM_QUEST) && quest[num].r_idx)
                        {
                                /* Print the quest info */
 #ifdef JP
@@ -4290,7 +4294,7 @@ errr make_character_dump(FILE *fff)
                                fprintf(fff, "  %s (Dungeon level: %d) - level %d\n",
 #endif
 
-                                       r_name+r_info[quest[i].r_idx].name, quest[i].level, quest[i].complev);
+                                       r_name+r_info[quest[num].r_idx].name, quest[num].level, quest[num].complev);
                        }
                        else
                        {
@@ -4301,10 +4305,11 @@ errr make_character_dump(FILE *fff)
                                fprintf(fff, "  %s (Danger level: %d) - level %d\n",
 #endif
 
-                                       quest[i].name, quest[i].level, quest[i].complev);
+                                       quest[num].name, quest[num].level, quest[num].complev);
                        }
                }
        }
+
 #ifdef JP
        if (!total) fprintf(fff, "  ¤Ê¤·\n");
 #else
@@ -4312,6 +4317,9 @@ errr make_character_dump(FILE *fff)
 #endif
        fprintf(fff, "\n");
 
+       /* Free Memory */
+       C_KILL(quest_num, max_quests, int);
+
        if (p_ptr->is_dead && !p_ptr->total_winner)
        {
 #ifdef JP
@@ -4327,7 +4335,7 @@ errr make_character_dump(FILE *fff)
        }
 
 #ifdef JP
-       fprintf(fff, "\n  [¤½¤Î¾¤Î¾ðÊó]        \n");
+       fprintf(fff, "\n  [¤½¤Î¾¤Î¾ðÊó]\n");
 #else
        fprintf(fff, "\n  [Miscellaneous information]\n");
 #endif
@@ -4786,6 +4794,12 @@ fprintf(fff, "  [ 
                fprintf(fff, "\n\n");
        }
 
+#ifdef JP
+        fprintf(fff, "  [¥Á¥§¥Ã¥¯¥µ¥à: \"%s\"]\n\n", get_check_sum());
+#else
+        fprintf(fff, "  [Check Sum: \"%s\"]\n\n", get_check_sum());
+#endif
+
        return 0;
 }
 
@@ -4823,14 +4837,14 @@ errr file_character(cptr name, bool full)
 
                /* Build query */
 #ifdef JP
-(void)sprintf(out_val, "¸½Â¸¤¹¤ë¥Õ¥¡¥¤¥ë %s ¤Ë¾å½ñ¤­¤·¤Þ¤¹¤«? ", buf);
+                (void)sprintf(out_val, "¸½Â¸¤¹¤ë¥Õ¥¡¥¤¥ë %s ¤Ë¾å½ñ¤­¤·¤Þ¤¹¤«? ", buf);
 #else
                (void)sprintf(out_val, "Replace existing file %s? ", buf);
 #endif
 
 
                /* Ask */
-               if (get_check(out_val)) fd = -1;
+               if (get_check_strict(out_val, CHECK_NO_HISTORY)) fd = -1;
        }
 
        /* Open the non-existing file */
@@ -4841,12 +4855,12 @@ errr file_character(cptr name, bool full)
        {
                /* Message */
 #ifdef JP
-msg_format("¥­¥ã¥é¥¯¥¿¾ðÊó¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­½Ð¤·¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡ª");
+                prt("¥­¥ã¥é¥¯¥¿¾ðÊó¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­½Ð¤·¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡ª", 0, 0);
 #else
-               msg_format("Character dump failed!");
+               prt("Character dump failed!", 0, 0);
 #endif
 
-               msg_print(NULL);
+                (void)inkey();
 
                /* Error */
                return (-1);
@@ -4874,57 +4888,6 @@ msg_print("
 }
 
 
-typedef struct file_tag
-{
-       char name[32];
-       int line_number;
-} file_tag;
-
-
-typedef struct file_tags
-{
-       file_tag tags[64];
-       int index;
-} file_tags;
-
-
-static void add_tag(file_tags *the_tags, cptr name, int line)
-{
-       if (the_tags->index < 64)
-       {
-               file_tag *tag = &(the_tags->tags[the_tags->index]);
-
-               /* Set the name and end it with '\0' */
-               strncpy(tag->name, name, 31);
-               tag->name[31] = '\0';
-
-               /* Set the line-number */
-               tag->line_number = line;
-
-               /* Increase the number of tags */
-               the_tags->index++;
-       }
-}
-
-
-static int get_line(file_tags *the_tags, cptr name)
-{
-       int i;
-
-       /* Search for the tag */
-       for (i = 0; i < the_tags->index; i++)
-       {
-               if (streq(the_tags->tags[i].name, name))
-               {
-                       return the_tags->tags[i].line_number;
-               }
-       }
-
-       /* Not found */
-       return 0;
-}
-
-
 /*
  * Recursive file perusal.
  *
@@ -4995,9 +4958,6 @@ bool show_file(bool show_version, cptr name, cptr what, int line, int mode)
        /* Sub-menu information */
        char hook[68][32];
 
-       /* Tags for in-file references */
-       file_tags tags;
-
        bool reverse = (line < 0);
 
        int wid, hgt, rows;
@@ -5020,9 +4980,6 @@ bool show_file(bool show_version, cptr name, cptr what, int line, int mode)
                hook[i][0] = '\0';
        }
 
-       /* No tags yet */
-       tags.index = 0;
-
        /* Copy the filename */
        strcpy(filename, name);
 
@@ -5166,7 +5123,7 @@ msg_format("'%s'
                        else if (str[6] == '<')
                        {
                                str[strlen(str) - 1] = '\0';
-                               add_tag(&tags, str + 7, next);
+                                if (tag && streq(str + 7, tag)) line = next;
                        }
 
                        /* Skip this */
@@ -5183,9 +5140,6 @@ msg_format("'%s'
        /* start from bottom when reverse mode */
        if (line == -1) line = ((size-1)/rows)*rows;
 
-       /* Go to the tagged line */
-       if (tag) line = get_line(&tags, tag);
-
        /* Display the file */
        while (TRUE)
        {