亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? marker.java

?? A framework written in Java for implementing high-level and dynamic languages, compiling them into J
?? JAVA
字號:
package gnu.jemacs.buffer;import gnu.lists.*;import gnu.mapping.*;public final class Marker extends SeqPosition{  Buffer buffer;  /** Is this the special point marker? */  public final boolean isPoint() { return buffer != null && sequence == null; }  public Marker()  {  }  public Marker(Marker marker)  {    buffer = marker.buffer;    if (buffer != null)      {	if (marker.isPoint())	  set(buffer, buffer.getDot(), true);	else	  set(marker);      }  }  public Marker (Buffer buffer, int offset, boolean isAfter)  {    super(buffer, offset, isAfter);    this.buffer = buffer;  }  public int getOffset()  {    if (buffer == null)      return -1;    else if (isPoint())      return buffer.getDot();    return nextIndex();  }  public int getPoint()  {    return 1 + getOffset();  }  public Buffer getBuffer()  {    return buffer;  }  public void setDot(int newPosition)  {    set(buffer, newPosition);  }  public void set(Buffer newBuffer, int newPosition)  {    if (isPoint())      {        if (newBuffer != buffer)          {            String msg;            if (newBuffer == null)              msg = "Can't make point-marker point nowhere: ";            else              msg = "Can't change buffer of point-marker: ";            throw new Error(msg+this);          }	buffer.setDot(newPosition);      }    else      {        if (sequence != null)          release();	sequence = null;        if (newBuffer == null)          {            buffer = null;            return;          }        if (newPosition < 0)          newPosition = 0;        else          {            int newLength = newBuffer.length();            if (newPosition > newLength)              newPosition = newLength;          }	set(newBuffer, newPosition, false);      }  }  public void removeChar(int count)  {    if (isPoint())      buffer.removeChar(count);    else      buffer.removePos(ipos, count);  }  public void insert (char[] data, int off, int len, Object style)  {    int point = getOffset();    buffer.insert(data, off, len, style, ipos);    point += len;    setDot(point);  }  public void insert (String string, Object style)  {    int point = getOffset();    if (isPoint())      buffer.insert(string, style);    else      buffer.insert(string, style, ipos);    point += string.length();    setDot(point);  }  /** Insert count copies of ch at the current position. */  public void insert (char ch, int count, Object style)  {    if (count < 0)      return;    int n = count > 500 ? 500 : count;    StringBuffer sbuf = new StringBuffer(n);    for (int i = n;  --i >= 0; )      sbuf.append(ch);    String str = sbuf.toString();    for (;;)      {	insert(str, style);	count -= n;	if (count == 0)	  break;	if (count < 500)	  {	    n = count;	    sbuf.setLength(n);	    str = sbuf.toString();	  }      }  }  public void forwardChar(int i)  {    int point = getOffset();    int max = buffer.maxDot();    if (point + i > max)      {	point = max;	Signal.signal("End of buffer");      }    point += i;    setDot(point);  }  public void backwardChar(int i)  {    int point = getOffset();    if (point < i)      {	point = 0;	Signal.signal("Beginning of buffer");      }    point -= i;    setDot(point);  }  public int currentColumn()  {    return buffer.currentColumn(getOffset());  }  // force is currently ignored FIXME  public int moveToColumn(int column, boolean force)  {     int lineStart = buffer.lineStartOffset(getOffset());    InPort port = buffer.openReader(lineStart, buffer.maxDot() - lineStart);    int resultColumn = 0;    try      {	int offset = lineStart;	for (;;)	  {	    int ch = port.read();	    if (ch < 0 || ch == '\n')	      {		if (force)		  {		    // FIXME		  }		break;	      }	    int width = buffer.charWidth((char) ch, resultColumn);	    offset++;	    resultColumn += width;	    if (resultColumn >= column)	      {		if (resultColumn > column && force)		  {		    // FIXME		  }		break;	      }	  }	setDot(offset);	return resultColumn;      }    catch (java.io.IOException ex)      {	throw new WrappedException(ex);      }  }  public int forwardLine(int lines)  {    long value = buffer.forwardLine(lines, getOffset());    setDot((int) value);    return (int) (value >> 32);  }  /** Move to start of frame line COUNTs down.   * Assume window width is WIDTH.   * If LINES is negative, this is moving up. */  /*  public int verticalMotion(int count, int width)  {    if (count == 0)      {	moveToColumn ((currentColumn() / width) * width, false);	return 0;      }    if (count > 0)      {	int todo = count + currentColumn() / width;	endOfLine();	// The loop iterates over buffer lines;	// H is the number of screen lines in the current line, i.e.	// the ceiling of dividing the buffer line width by width.	for (;;)	  {	    int h = (currentColumn() + width - 1) / width;	    if (h <= 0) h = 1;	    if (h > todo)	      break;	    if (eobp())	      break;	    todo -= h;	    forwardChar(1);  // move past '\n'.	    endOfLine();  // and on to the end of the next line.	  }	if (todo >= h && todo > 0)	  return count - todo + h - 1; // Hit end of buffer.      }    else // count > 0 -- Similar algorithm, but for upward motion.      {	int todo = - count;	for (;;)	  {	    int h = (currentColumn() + width - 1) / width;	    if (h <= 0) h = 1;	    if (h > todo)	      break;	    beginningOfLine();	    if (bobp())	      break;	    todo -= h;	    backwardChar(1); // Move to end of previous line	  }	if (todo >= h && todo > 0)	  return count + todo - 1 + h; // Hit beginning of buffer.	todo = h - todo - 1;      }    moveToColumn(todo * width, false);    return count;  }  */  public boolean isBeginningOfLine()  {    int offset = getOffset();    return offset == 0 || buffer.charAt(offset - 1) == '\n';  }  public boolean isEndOfLine()  {    int offset = getOffset();    return offset == buffer.length() || buffer.charAt(offset) == '\n';  }  public int hashCode()  {    if (buffer == null)      return 0;    return buffer.hashCode() ^ getOffset();  }  public boolean equals (Object other)  {    if (! (other instanceof Marker))      return false;    Marker m2 = (Marker) other;    return buffer == m2.buffer && getOffset() == m2.getOffset();  }  public String toString()  {    if (buffer == null)      return "#<marker in no buffer>";    StringBuffer sbuf = new StringBuffer(80);    sbuf.append("#<marker at ");    sbuf.append(getPoint());    sbuf.append(" in ");    sbuf.append(buffer.getName());    sbuf.append('>');    return sbuf.toString();  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
|精品福利一区二区三区| 日韩影院精彩在线| 丁香另类激情小说| 国产欧美一区在线| 成人av网站在线观看免费| 1024亚洲合集| 91黄色免费网站| 午夜电影久久久| 欧美成人三级电影在线| 国产乱色国产精品免费视频| 国产欧美日韩不卡| 色成年激情久久综合| 日韩1区2区3区| 久久人人97超碰com| 99综合影院在线| 亚洲第一福利一区| 精品久久五月天| 97精品国产97久久久久久久久久久久 | 色婷婷精品大视频在线蜜桃视频| 亚洲精品中文字幕在线观看| 久久欧美一区二区| 91.com在线观看| 免费黄网站欧美| 国产亚洲精品久| 在线观看免费亚洲| 久久91精品久久久久久秒播| 国产精品久久久久久久蜜臀| 欧美日韩国产乱码电影| 国产91富婆露脸刺激对白| 亚洲一区免费观看| 国产偷国产偷亚洲高清人白洁| 色诱亚洲精品久久久久久| 久久99精品视频| 亚洲黄色av一区| 国产日韩在线不卡| 8v天堂国产在线一区二区| www.日韩av| 久久97超碰国产精品超碰| 亚洲老司机在线| 久久久精品影视| 欧美精品乱人伦久久久久久| 懂色av一区二区三区蜜臀| 日本在线不卡视频一二三区| 国产精品高潮久久久久无| 日韩欧美国产不卡| 欧美亚洲国产bt| 91香蕉国产在线观看软件| 极品少妇一区二区三区精品视频 | 26uuu亚洲| 欧美日韩免费一区二区三区| 成人丝袜视频网| 国产一区二区三区精品欧美日韩一区二区三区 | 久久精品免费在线观看| 欧美电影一区二区| 91福利国产精品| 91蝌蚪porny成人天涯| 亚洲成人免费观看| 日韩美女精品在线| 欧美日韩激情在线| 成人中文字幕合集| 黄色资源网久久资源365| 亚洲午夜久久久久中文字幕久| 国产精品天美传媒沈樵| 久久亚洲综合色| 日韩午夜在线观看视频| 欧美日韩精品免费观看视频| 日本韩国一区二区三区视频| 成人性视频免费网站| 国产尤物一区二区| 国产伦精品一区二区三区在线观看| 日韩精品91亚洲二区在线观看| 亚洲一区二区美女| 亚洲午夜在线观看视频在线| 亚洲卡通欧美制服中文| 亚洲免费观看高清完整版在线| 国产精品国产自产拍在线| 国产精品入口麻豆原神| 国产精品欧美精品| 国产精品美女久久福利网站| 国产欧美日产一区| 国产精品久久久久7777按摩| 国产精品人成在线观看免费| 国产精品毛片高清在线完整版| 国产人伦精品一区二区| 国产精品色一区二区三区| 成人欧美一区二区三区黑人麻豆| 亚洲欧洲精品一区二区精品久久久| 国产精品进线69影院| 亚洲图片你懂的| 亚洲亚洲精品在线观看| 日本不卡高清视频| 国产呦萝稀缺另类资源| 成人永久免费视频| 日本久久一区二区| 欧美另类久久久品| www亚洲一区| 国产精品入口麻豆九色| 玉足女爽爽91| 麻豆成人久久精品二区三区红| 国内一区二区视频| 99热99精品| 91精品国产综合久久久蜜臀粉嫩 | 日本久久电影网| 91麻豆精品国产91久久久资源速度| 欧美一区二区女人| 欧美国产精品一区| 亚洲在线视频免费观看| 美女视频免费一区| 99re热这里只有精品视频| 欧美日韩一区高清| 久久综合九色综合97婷婷| 亚洲日本va午夜在线影院| 三级影片在线观看欧美日韩一区二区| 久久99久久精品| 色中色一区二区| 欧美成人欧美edvon| 亚洲人成网站在线| 精品一区在线看| 91行情网站电视在线观看高清版| 欧美一区二区三区爱爱| 亚洲欧美综合在线精品| 人妖欧美一区二区| 色综合久久天天| 久久久久综合网| 午夜国产精品一区| 播五月开心婷婷综合| 日韩美女主播在线视频一区二区三区| 中文字幕在线观看不卡| 久久av老司机精品网站导航| 色综合天天性综合| 亚洲精品日产精品乱码不卡| 日韩av中文字幕一区二区三区 | 国产三级精品三级在线专区| 亚洲图片欧美一区| 播五月开心婷婷综合| 精品三级在线看| 亚洲自拍偷拍九九九| 高清成人在线观看| 精品少妇一区二区三区| 亚洲国产精品久久一线不卡| www.日韩av| 久久精品视频网| 秋霞电影网一区二区| 欧美亚洲动漫精品| 综合久久一区二区三区| 国产成人久久精品77777最新版本| 欧美人伦禁忌dvd放荡欲情| 又紧又大又爽精品一区二区| 国产91综合网| 久久亚洲精华国产精华液| 日av在线不卡| 91精品国产全国免费观看| 亚洲一区二区av在线| 色综合天天做天天爱| 国产精品高潮久久久久无| 国产成人欧美日韩在线电影| 日韩午夜激情电影| 日本三级亚洲精品| 欧美日韩一级视频| 亚洲午夜久久久久久久久电影院| 91麻豆国产福利在线观看| 综合久久久久久| 91欧美激情一区二区三区成人| 国产精品国产三级国产普通话99| 国产精品一区久久久久| 国产亚洲综合av| 国产精品综合av一区二区国产馆| 久久亚洲欧美国产精品乐播| 狠狠色综合色综合网络| 精品国产伦一区二区三区免费| 青青草国产精品97视觉盛宴| 日韩一区国产二区欧美三区| 日韩中文字幕不卡| 欧美大胆一级视频| 国产原创一区二区三区| 中文字幕精品综合| 94色蜜桃网一区二区三区| 亚洲激情在线播放| 欧美区一区二区三区| 美女性感视频久久| 国产亚洲福利社区一区| 成人免费va视频| 尤物av一区二区| 9191精品国产综合久久久久久| 美女一区二区三区| 国产婷婷色一区二区三区在线| 成人性生交大片免费看视频在线 | 精品视频1区2区| 日韩福利电影在线| ww亚洲ww在线观看国产| av男人天堂一区| 亚洲国产一区二区在线播放| 在线综合+亚洲+欧美中文字幕| 麻豆国产精品官网| 国产精品入口麻豆九色| 欧美午夜在线观看| 精品一区二区在线看| 国产精品视频在线看| 欧美日韩国产免费一区二区 | 亚洲第一在线综合网站|