>> Edit article
이름
제목
패스워드
: mplayer를 실행하면 좌측 상단에 시간이 표시되는데, 이게 화면을 가려서 : 눈에 거슬리네요. : 어떡하면 이걸 지울 수 있나요? : : 글구, 자막 기능 참 좋은 것 같습니다. : 저는 10pt짜리 small font를 쓰는데(hsfont라는 거 받았습니다.) : 그런데, 라인이 길면 앞뒤로 글자가 짤려 버리더군요. : 그래서 짤리지 않게, 길어지면 적당히 줄을 나누도록 subreader.c 파일을 : 수정해 보았습니다. : : ---------- subreader.c 파일에서 수정한 부분 ------------------ : : subtitle *sub_read_line_sami(FILE *fd, subtitle *current) { : static char line[1001]; : static char *s = NULL; : char text[1000], *p, *q; : int state;<font color=red> : int iChrCnt; /* added by jdy 2001.05.08 */ : int iHan = 0; /* added by jdy 2001.05.08 */</font> : : current->lines = current->start = current->end = 0; : state = 0; : : /* read the first line */ : if (!s) : if (!(s = fgets(line, 1000, fd))) return 0; : : do { : switch (state) { : : case 0: /* find "START=" */ : s = strstr (s, "Start="); : if (s) { : current->start = strtol (s + 6, &s, 0) / 10; : state = 1; continue; : } : break; : : case 1: /* find "<P" */ : if ((s = strstr (s, "<P"))) { s += 2; state = 2; continue; } : break; : : case 2: /* find ">" */ : if ((s = strchr (s, '>'))) { s++; state = 3; p = text; continue; } : break; : : case 3: /* get all text until '<' appears */ : if (*s == ' ') { break; } : <font color=red>/* added by jdy 2001.05.08 */ : else if (!strncasecmp (s, "<br>", 4)) { : *p = ' '; p = text; trail_space (text); : if (text[0] != ' ') : current->text[current->lines++] = strdup (text); : s += 4; : iChrCnt = 0; /* added by jdy 2001.05.08 */ : }</font> : else if (*s == '<') { : state = 4;<font color=red> : iChrCnt = 0; /* added by jdy 2001.05.08 */</font> : } : else if (!strncasecmp (s, " ", 6)) { : *p++ = ' '; s += 6; : : <font color=red>/* added by jdy 2001.05.08 */ : iChrCnt++; : if (iChrCnt >= 45) { : *(p-1) = ' '; p = text; trail_space (text); : if (text[0] != ' ') : current->text[current->lines++] = strdup (text); : iChrCnt = 0; : }</font> : } : else if (*s == ' ') { : s++;<font color=red> : iChrCnt++; /* 'iChrCnt' : added by jdy 2001.05.08 */ : </font> : }<font color=blue> : /* comment out by jdy 2001.05.08 : else if (!strncasecmp (s, "<br>", 4) || *s == '') { : *p = ' '; p = text; trail_space (text); : if (text[0] != ' ') : current->text[current->lines++] = strdup (text); : if (*s == '') s++; else s += 4; : } : */</font><font color=red> : /* added by jdy 2001.05.08 */ : else if (*s == '') { : *p = ' '; p = text; trail_space (text); : if (text[0] != ' ') : current->text[current->lines++] = strdup (text); : s++; : iChrCnt = 0; /* added by jdy 2001.05.08 */ : }</font> : else {<font color=red> : /* added by jdy 2001.05.08 : : * If the first bye of hangul, iHan = 1. : * the second byte, iHan = 2. : * english, iHan = 0. : */ : if (*s & 0x80) iHan = iHan%2 + 1; : else iHan = 0;</font> : : *p++ = *s++; : <font color=red> : /* added by jdy 2001.05.08 */ : iChrCnt++; : if (iChrCnt >= 45) { : if (iHan == 1) continue; : : *p = ' '; p = text; trail_space (text); : if (text[0] != ' ') : current->text[current->lines++] = strdup (text); : iChrCnt = 0; : }</font> : } : continue; : : case 4: /* get current->end or skip <TAG> */ : q = strstr (s, "Start="); : if (q) { : current->end = strtol (q + 6, &q, 0) / 10 - 1; : *p = ' '; trail_space (text); : if (text[0] != ' ') : current->text[current->lines++] = strdup (text); : if (current->lines > 0) { state = 99; break; } : state = 0; continue; : } : s = strchr (s, '>'); : if (s) { s++; state = 3; continue; } : break; : } : : /* read next line */ : if (state != 99 && !(s = fgets (line, 1000, fd))) return 0; : : <font color=red>/* added by jdy 2001.05.08 */ : iChrCnt = 0;</font> : : } while (state != 99); : : return current; : }--착하게살자
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved