From tkato432@yahoo.com  Mon Dec 16 18:04:40 2013
Return-Path: <tkato432@yahoo.com>
Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115])
	(using TLSv1 with cipher ADH-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by hub.freebsd.org (Postfix) with ESMTPS id 38F933AF
	for <FreeBSD-gnats-submit@FreeBSD.org>; Mon, 16 Dec 2013 18:03:50 +0000 (UTC)
Received: from omta01.auone-net.jp (mail-or2-f145.auone-net.jp [111.87.219.145])
	by mx1.freebsd.org (Postfix) with ESMTP id EEC351878
	for <FreeBSD-gnats-submit@FreeBSD.org>; Mon, 16 Dec 2013 18:03:49 +0000 (UTC)
Received: from coppermine.my.domain (ZT030106.ppp.dion.ne.jp [59.128.30.106])
	by omta01.auone-net.jp (au one net mail) with ESMTP id 42D1598017C
	for <FreeBSD-gnats-submit@FreeBSD.org>; Tue, 17 Dec 2013 03:03:44 +0900 (JST)
Message-Id: <20131217024856.2eff951786b2b4c49e6bb008@yahoo.com>
Date: Tue, 17 Dec 2013 02:48:56 +0900
From: KATO Tsuguru <tkato432@yahoo.com>
To: FreeBSD-gnats-submit@FreeBSD.org
Subject: games/xdigger: Fix build with clang

>Number:         184867
>Category:       ports
>Synopsis:       games/xdigger: Fix build with clang
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pawel
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Dec 16 18:10:18 UTC 2013
>Closed-Date:    Fri Dec 20 17:03:59 UTC 2013
>Last-Modified:  Fri Dec 20 17:30:01 UTC 2013
>Originator:     KATO Tsuguru
>Release:        FreeBSD 8.4-RELEASE-p4 i386
>Organization:
>Environment:
>Description:
- Fix build with clang
- Add DESKTOP_ENTRIES

New file:
files/patch-runleves.c

>How-To-Repeat:
>Fix:

diff -urN /usr/ports/games/xdigger/Makefile games/xdigger/Makefile
--- /usr/ports/games/xdigger/Makefile	2013-11-06 22:01:10.000000000 +0900
+++ games/xdigger/Makefile	2013-12-17 00:00:00.000000000 +0900
@@ -5,8 +5,7 @@
 PORTVERSION=	1.0.10
 PORTREVISION=	2
 CATEGORIES=	games
-MASTER_SITES=	${MASTER_SITE_SUNSITE}
-MASTER_SITE_SUBDIR=	games/arcade
+MASTER_SITES=	SUNSITE/games/arcade
 EXTRACT_SUFX=	.tgz
 
 MAINTAINER=	ports@FreeBSD.org
@@ -14,23 +13,18 @@
 
 USES=		imake
 USE_XORG=	x11 xext
-MAN6=		xdigger.6
 
-NO_STAGE=	yes
+DESKTOP_ENTRIES="XDigger" "" "" "${PORTNAME}" "" ""
+
 .include <bsd.port.options.mk>
 
 post-patch:
 	@${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" ${WRKSRC}/configure.h
 
 post-install:
-	@${CHMOD} 2755 ${PREFIX}/bin/xdigger
-	@${CHOWN} root:games ${PREFIX}/bin/xdigger
-	@${CHMOD} 664 ${PREFIX}/share/xdigger/xdigger.hiscore
-	@${CHOWN} root:games ${PREFIX}/share/xdigger/xdigger.hiscore
-.if ${PORT_OPTIONS:MDOCS}
-	@${MKDIR} ${DOCSDIR}
-	@${INSTALL_DATA} ${WRKSRC}/ChangeLog ${DOCSDIR}
-	@${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
-.endif
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}
+.for i in ChangeLog README
+	(cd ${WRKSRC} && ${INSTALL_DATA} ${i} ${STAGEDIR}${DOCSDIR})
+.endfor
 
 .include <bsd.port.mk>
diff -urN /usr/ports/games/xdigger/files/patch-ad games/xdigger/files/patch-ad
--- /usr/ports/games/xdigger/files/patch-ad	2013-11-06 22:01:10.000000000 +0900
+++ games/xdigger/files/patch-ad	2013-12-17 00:00:00.000000000 +0900
@@ -16,7 +16,7 @@
  
  #ifdef SOUND_RPLAY
  RPLAYLIB = -lrplay
-@@ -23,12 +23,10 @@
+@@ -23,15 +23,13 @@
  
  ComplexProgramTarget(xdigger)
  InstallNonExecFile(xdigger.level,XDIGGER_LIB_DIR)
@@ -30,3 +30,9 @@
  /* InstallNonExecFileNoClobber(xdigger.hiscore,XDIGGER_HISCORE_DIR) */
  
  install::
+-	$(MKDIRHIER) XDIGGER_HISCORE_DIR
+-	touch XDIGGER_HISCORE_DIR/xdigger.hiscore
+-	chmod a+w XDIGGER_HISCORE_DIR/xdigger.hiscore
++	$(MKDIRHIER) $(DESTDIR)XDIGGER_HISCORE_DIR
++	touch $(DESTDIR)XDIGGER_HISCORE_DIR/xdigger.hiscore
++	chmod a+w $(DESTDIR)XDIGGER_HISCORE_DIR/xdigger.hiscore
diff -urN /usr/ports/games/xdigger/files/patch-runleves.c games/xdigger/files/patch-runleves.c
--- /usr/ports/games/xdigger/files/patch-runleves.c	1970-01-01 09:00:00.000000000 +0900
+++ games/xdigger/files/patch-runleves.c	2013-12-17 00:00:00.000000000 +0900
@@ -0,0 +1,201 @@
+--- runlevels.c.orig
++++ runlevels.c
+@@ -672,6 +672,20 @@
+     }
+ } /* DiggerHalfStep() */
+ 
++typedef struct
++{
++  unsigned char x, y, id, type;
++} TMerk;
++  
++void Merke(unsigned char type, int x, int y, int *merkidx, TMerk *merk)
++{
++  merk[*merkidx].x = x;
++  merk[*merkidx].y = y;
++  merk[*merkidx].id = field[x][y].id & 7;
++  merk[*merkidx].type = type;
++  *merkidx++;   
++}  
++
+ void StoneDiamondStep()
+ {
+ 
+@@ -680,24 +694,10 @@
+ #define SF_LEFTDOWN  2
+ #define SF_CHANGER   3
+   
+-  typedef struct
+-  {
+-    unsigned char x, y, id, type;
+-  } TMerk;
+-  
+   TMerk merk[140], ghosts_todie[17];
+   int i, x, y, dx, dy, merkidx, ghosts_todie_idx;
+   Bool digger_todie = False;  
+-  
+-  void Merke(unsigned char type)
+-    {
+-      merk[merkidx].x = x;
+-      merk[merkidx].y = y;
+-      merk[merkidx].id = field[x][y].id & 7;
+-      merk[merkidx].type = type;
+-      merkidx++;   
+-    }  
+-  
++
+   /* Schritt 1  (nur markieren) : */
+   merkidx = 0; ghosts_todie_idx = 0;
+   
+@@ -708,19 +708,19 @@
+         (field[x][y].id == ID_IVDIAMOND))
+     {
+       if (field[x][y+1].id == ID_NOTHING)
+-        Merke(SF_DOWN);
++        Merke(SF_DOWN, x, y, &merkidx, merk);
+       else
+         if ((field[x][y+1].id == ID_STONE) ||
+             (field[x][y+1].id == ID_DIAMOND))
+         {
+           if ((field[x-1][y].id == ID_NOTHING) &&
+               (field[x-1][y+1].id == ID_NOTHING))
+-            Merke(SF_LEFTDOWN);
++            Merke(SF_LEFTDOWN, x, y, &merkidx, merk);
+           else
+             if ((field[x+1][y].id == ID_NOTHING) &&
+                 (field[x+1][y+1].id == ID_NOTHING))
+             {          
+-              Merke(SF_RIGHTDOWN);
++              Merke(SF_RIGHTDOWN, x, y, &merkidx, &merk);
+               field[x+1][y+1].id = ID_FSTODMD;
+             }        
+         }
+@@ -729,7 +729,7 @@
+                (field[x][y].id == ID_IVSTONE)) &&
+               (field[x][y+1].id == ID_CHANGER) &&
+               (field[x][y+2].id == ID_NOTHING))
+-            Merke(SF_CHANGER);
++            Merke(SF_CHANGER, x, y, &merkidx, &merk);
+     }
+   merk[merkidx].x = 0;
+   merk[merkidx].y = 0;
+@@ -1573,6 +1573,50 @@
+ 
+ /*---------------------------------------------------------------------------*/
+ 
++void Save_Ghost(int flags, int *id, int *d, unsigned char *file_daten)
++{
++  switch (flags & F_GHOST_TYPEMASK)
++  {
++  case F_GHOST_TYPE180:
++    *id = 3;
++    break;
++  case F_GHOST_TYPEL:
++    *id = 7;
++    break;
++  case F_GHOST_TYPER:
++    *id = 15;
++    break;
++  case F_GHOST_TYPELR:
++    *id = 11;
++    break;
++  }
++  switch (flags & F_GHOST_MOVEMASK)
++  {
++  case F_GHOST_DOWN:
++    *d = 0;
++    break;
++  case F_GHOST_UP:
++    *d = 1;
++    break;
++  case F_GHOST_RIGHT:
++    *d = 2;
++    break;
++  case F_GHOST_LEFT:
++    *d = 3;
++    break;
++  }
++  if (number_ghosts < MAX_GHOSTS)
++  {
++    if (number_ghosts & 1)
++      file_daten[0x94 + number_ghosts/2] =
++        (file_daten[0x94 + number_ghosts/2] & 0xf0) | (*d);
++    else
++      file_daten[0x94 + number_ghosts/2] =
++        (file_daten[0x94 + number_ghosts/2] & 0x0f) | (*d << 4);
++    number_ghosts++;
++  }
++}
++
+ void Edit_SaveLevel(int level_number)
+ {
+ /*   char filename[256]; */
+@@ -1580,50 +1624,6 @@
+   int x, y, id, flags, i, d;
+   FILE *filehandle;
+   
+-  void Save_Ghost()
+-  {
+-    switch (flags & F_GHOST_TYPEMASK)
+-    {
+-    case F_GHOST_TYPE180:
+-      id = 3;
+-      break;
+-    case F_GHOST_TYPEL:
+-      id = 7;
+-      break;
+-    case F_GHOST_TYPER:
+-      id = 15;
+-      break;
+-    case F_GHOST_TYPELR:
+-      id = 11;
+-      break;
+-    }
+-    switch (flags & F_GHOST_MOVEMASK)
+-    {
+-    case F_GHOST_DOWN:
+-      d = 0;
+-      break;
+-    case F_GHOST_UP:
+-      d = 1;
+-      break;
+-    case F_GHOST_RIGHT:
+-      d = 2;
+-      break;
+-    case F_GHOST_LEFT:
+-      d = 3;
+-      break;
+-    }
+-    if (number_ghosts < MAX_GHOSTS)
+-    {
+-      if (number_ghosts & 1)
+-        file_daten[0x94 + number_ghosts/2] =
+-          (file_daten[0x94 + number_ghosts/2] & 0xf0) | (d);
+-      else
+-        file_daten[0x94 + number_ghosts/2] =
+-          (file_daten[0x94 + number_ghosts/2] & 0x0f) | (d << 4);
+-      number_ghosts++;
+-    }
+-  }
+-  
+   bzero(file_daten, sizeof(file_daten));
+   number_ghosts = 0;
+   c = file_daten;
+@@ -1637,7 +1637,7 @@
+             diggerposy = y;
+         }
+         if (id == ID_GHOST)
+-          Save_Ghost();
++          Save_Ghost(flags, &id, &d, file_daten);
+         *c = (*c & 0x0f) | (id << 4);
+ 
+   /* ------------------------------------------------------------------ */
+@@ -1650,7 +1650,7 @@
+             diggerposy = y;
+         }
+         if (id == ID_GHOST)
+-          Save_Ghost();
++          Save_Ghost(flags, &id, &d, file_daten);
+         *c = (*c & 0xf0) | id;
+     }
+   c += 3; 
diff -urN /usr/ports/games/xdigger/pkg-plist games/xdigger/pkg-plist
--- /usr/ports/games/xdigger/pkg-plist	2013-11-06 22:01:10.000000000 +0900
+++ games/xdigger/pkg-plist	2013-12-17 00:00:00.000000000 +0900
@@ -1,10 +1,19 @@
+@mode 2755
+@group games
 bin/xdigger
-%%PORTDOCS%%share/doc/xdigger/ChangeLog
-%%PORTDOCS%%share/doc/xdigger/README
-share/xdigger/diamond.au
-share/xdigger/step.au
-share/xdigger/stone.au
-share/xdigger/xdigger.hiscore
-share/xdigger/xdigger.level
-%%PORTDOCS%%@dirrm share/doc/xdigger
-@dirrm share/xdigger
+@group
+@mode
+man/man6/xdigger.6.gz
+%%PORTDOCS%%%%DOCSDIR%%/ChangeLog
+%%PORTDOCS%%%%DOCSDIR%%/README
+%%DATADIR%%/diamond.au
+%%DATADIR%%/step.au
+%%DATADIR%%/stone.au
+@mode 644
+@group games
+%%DATADIR%%/xdigger.hiscore
+@group
+@mode
+%%DATADIR%%/xdigger.level
+@dirrm %%DATADIR%%
+%%PORTDOCS%%@dirrm %%DOCSDIR%%
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->pawel 
Responsible-Changed-By: pawel 
Responsible-Changed-When: Fri Dec 20 16:47:28 UTC 2013 
Responsible-Changed-Why:  
I'll take it. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=184867 
State-Changed-From-To: open->closed 
State-Changed-By: pawel 
State-Changed-When: Fri Dec 20 17:03:59 UTC 2013 
State-Changed-Why:  
Committed, with minor changes. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=184867 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/184867: commit references a PR
Date: Fri, 20 Dec 2013 17:03:57 +0000 (UTC)

 Author: pawel
 Date: Fri Dec 20 17:03:44 2013
 New Revision: 337040
 URL: http://svnweb.freebsd.org/changeset/ports/337040
 
 Log:
   - Fix build with clang
   - Add desktop entry file
   - Support staging
   
   PR:		ports/184867
   Submitted by:	KATO Tsuguru <tkato432@yahoo.com>
 
 Added:
   head/games/xdigger/files/patch-runleves.c   (contents, props changed)
 Modified:
   head/games/xdigger/Makefile   (contents, props changed)
   head/games/xdigger/files/patch-ad   (contents, props changed)
   head/games/xdigger/pkg-plist   (contents, props changed)
 
 Modified: head/games/xdigger/Makefile
 ==============================================================================
 --- head/games/xdigger/Makefile	Fri Dec 20 16:43:48 2013	(r337039)
 +++ head/games/xdigger/Makefile	Fri Dec 20 17:03:44 2013	(r337040)
 @@ -3,10 +3,9 @@
  
  PORTNAME=	xdigger
  PORTVERSION=	1.0.10
 -PORTREVISION=	2
 +PORTREVISION=	3
  CATEGORIES=	games
 -MASTER_SITES=	${MASTER_SITE_SUNSITE}
 -MASTER_SITE_SUBDIR=	games/arcade
 +MASTER_SITES=	SUNSITE/games/arcade
  EXTRACT_SUFX=	.tgz
  
  MAINTAINER=	ports@FreeBSD.org
 @@ -14,23 +13,16 @@ COMMENT=	Boulderdash-like KC85 Digger fo
  
  USES=		imake
  USE_XORG=	x11 xext
 -MAN6=		xdigger.6
  
 -NO_STAGE=	yes
 -.include <bsd.port.options.mk>
 +DESKTOP_ENTRIES="XDigger" "" "" "${PORTNAME}" "" ""
  
  post-patch:
  	@${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" ${WRKSRC}/configure.h
  
  post-install:
 -	@${CHMOD} 2755 ${PREFIX}/bin/xdigger
 -	@${CHOWN} root:games ${PREFIX}/bin/xdigger
 -	@${CHMOD} 664 ${PREFIX}/share/xdigger/xdigger.hiscore
 -	@${CHOWN} root:games ${PREFIX}/share/xdigger/xdigger.hiscore
 -.if ${PORT_OPTIONS:MDOCS}
 -	@${MKDIR} ${DOCSDIR}
 -	@${INSTALL_DATA} ${WRKSRC}/ChangeLog ${DOCSDIR}
 -	@${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
 -.endif
 +	@${MKDIR} ${STAGEDIR}${DOCSDIR}
 +.for i in ChangeLog README
 +	(cd ${WRKSRC} && ${INSTALL_DATA} ${i} ${STAGEDIR}${DOCSDIR})
 +.endfor
  
  .include <bsd.port.mk>
 
 Modified: head/games/xdigger/files/patch-ad
 ==============================================================================
 --- head/games/xdigger/files/patch-ad	Fri Dec 20 16:43:48 2013	(r337039)
 +++ head/games/xdigger/files/patch-ad	Fri Dec 20 17:03:44 2013	(r337040)
 @@ -16,7 +16,7 @@
   
   #ifdef SOUND_RPLAY
   RPLAYLIB = -lrplay
 -@@ -23,12 +23,10 @@
 +@@ -23,15 +23,13 @@
   
   ComplexProgramTarget(xdigger)
   InstallNonExecFile(xdigger.level,XDIGGER_LIB_DIR)
 @@ -30,3 +30,9 @@
   /* InstallNonExecFileNoClobber(xdigger.hiscore,XDIGGER_HISCORE_DIR) */
   
   install::
 +-	$(MKDIRHIER) XDIGGER_HISCORE_DIR
 +-	touch XDIGGER_HISCORE_DIR/xdigger.hiscore
 +-	chmod a+w XDIGGER_HISCORE_DIR/xdigger.hiscore
 ++	$(MKDIRHIER) $(DESTDIR)XDIGGER_HISCORE_DIR
 ++	touch $(DESTDIR)XDIGGER_HISCORE_DIR/xdigger.hiscore
 ++	chmod a+w $(DESTDIR)XDIGGER_HISCORE_DIR/xdigger.hiscore
 
 Added: head/games/xdigger/files/patch-runleves.c
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/games/xdigger/files/patch-runleves.c	Fri Dec 20 17:03:44 2013	(r337040)
 @@ -0,0 +1,201 @@
 +--- runlevels.c.orig
 ++++ runlevels.c
 +@@ -672,6 +672,20 @@
 +     }
 + } /* DiggerHalfStep() */
 + 
 ++typedef struct
 ++{
 ++  unsigned char x, y, id, type;
 ++} TMerk;
 ++  
 ++void Merke(unsigned char type, int x, int y, int *merkidx, TMerk *merk)
 ++{
 ++  merk[*merkidx].x = x;
 ++  merk[*merkidx].y = y;
 ++  merk[*merkidx].id = field[x][y].id & 7;
 ++  merk[*merkidx].type = type;
 ++  *merkidx++;   
 ++}  
 ++
 + void StoneDiamondStep()
 + {
 + 
 +@@ -680,24 +694,10 @@
 + #define SF_LEFTDOWN  2
 + #define SF_CHANGER   3
 +   
 +-  typedef struct
 +-  {
 +-    unsigned char x, y, id, type;
 +-  } TMerk;
 +-  
 +   TMerk merk[140], ghosts_todie[17];
 +   int i, x, y, dx, dy, merkidx, ghosts_todie_idx;
 +   Bool digger_todie = False;  
 +-  
 +-  void Merke(unsigned char type)
 +-    {
 +-      merk[merkidx].x = x;
 +-      merk[merkidx].y = y;
 +-      merk[merkidx].id = field[x][y].id & 7;
 +-      merk[merkidx].type = type;
 +-      merkidx++;   
 +-    }  
 +-  
 ++
 +   /* Schritt 1  (nur markieren) : */
 +   merkidx = 0; ghosts_todie_idx = 0;
 +   
 +@@ -708,19 +708,19 @@
 +         (field[x][y].id == ID_IVDIAMOND))
 +     {
 +       if (field[x][y+1].id == ID_NOTHING)
 +-        Merke(SF_DOWN);
 ++        Merke(SF_DOWN, x, y, &merkidx, merk);
 +       else
 +         if ((field[x][y+1].id == ID_STONE) ||
 +             (field[x][y+1].id == ID_DIAMOND))
 +         {
 +           if ((field[x-1][y].id == ID_NOTHING) &&
 +               (field[x-1][y+1].id == ID_NOTHING))
 +-            Merke(SF_LEFTDOWN);
 ++            Merke(SF_LEFTDOWN, x, y, &merkidx, merk);
 +           else
 +             if ((field[x+1][y].id == ID_NOTHING) &&
 +                 (field[x+1][y+1].id == ID_NOTHING))
 +             {          
 +-              Merke(SF_RIGHTDOWN);
 ++              Merke(SF_RIGHTDOWN, x, y, &merkidx, &merk);
 +               field[x+1][y+1].id = ID_FSTODMD;
 +             }        
 +         }
 +@@ -729,7 +729,7 @@
 +                (field[x][y].id == ID_IVSTONE)) &&
 +               (field[x][y+1].id == ID_CHANGER) &&
 +               (field[x][y+2].id == ID_NOTHING))
 +-            Merke(SF_CHANGER);
 ++            Merke(SF_CHANGER, x, y, &merkidx, &merk);
 +     }
 +   merk[merkidx].x = 0;
 +   merk[merkidx].y = 0;
 +@@ -1573,6 +1573,50 @@
 + 
 + /*---------------------------------------------------------------------------*/
 + 
 ++void Save_Ghost(int flags, int *id, int *d, unsigned char *file_daten)
 ++{
 ++  switch (flags & F_GHOST_TYPEMASK)
 ++  {
 ++  case F_GHOST_TYPE180:
 ++    *id = 3;
 ++    break;
 ++  case F_GHOST_TYPEL:
 ++    *id = 7;
 ++    break;
 ++  case F_GHOST_TYPER:
 ++    *id = 15;
 ++    break;
 ++  case F_GHOST_TYPELR:
 ++    *id = 11;
 ++    break;
 ++  }
 ++  switch (flags & F_GHOST_MOVEMASK)
 ++  {
 ++  case F_GHOST_DOWN:
 ++    *d = 0;
 ++    break;
 ++  case F_GHOST_UP:
 ++    *d = 1;
 ++    break;
 ++  case F_GHOST_RIGHT:
 ++    *d = 2;
 ++    break;
 ++  case F_GHOST_LEFT:
 ++    *d = 3;
 ++    break;
 ++  }
 ++  if (number_ghosts < MAX_GHOSTS)
 ++  {
 ++    if (number_ghosts & 1)
 ++      file_daten[0x94 + number_ghosts/2] =
 ++        (file_daten[0x94 + number_ghosts/2] & 0xf0) | (*d);
 ++    else
 ++      file_daten[0x94 + number_ghosts/2] =
 ++        (file_daten[0x94 + number_ghosts/2] & 0x0f) | (*d << 4);
 ++    number_ghosts++;
 ++  }
 ++}
 ++
 + void Edit_SaveLevel(int level_number)
 + {
 + /*   char filename[256]; */
 +@@ -1580,50 +1624,6 @@
 +   int x, y, id, flags, i, d;
 +   FILE *filehandle;
 +   
 +-  void Save_Ghost()
 +-  {
 +-    switch (flags & F_GHOST_TYPEMASK)
 +-    {
 +-    case F_GHOST_TYPE180:
 +-      id = 3;
 +-      break;
 +-    case F_GHOST_TYPEL:
 +-      id = 7;
 +-      break;
 +-    case F_GHOST_TYPER:
 +-      id = 15;
 +-      break;
 +-    case F_GHOST_TYPELR:
 +-      id = 11;
 +-      break;
 +-    }
 +-    switch (flags & F_GHOST_MOVEMASK)
 +-    {
 +-    case F_GHOST_DOWN:
 +-      d = 0;
 +-      break;
 +-    case F_GHOST_UP:
 +-      d = 1;
 +-      break;
 +-    case F_GHOST_RIGHT:
 +-      d = 2;
 +-      break;
 +-    case F_GHOST_LEFT:
 +-      d = 3;
 +-      break;
 +-    }
 +-    if (number_ghosts < MAX_GHOSTS)
 +-    {
 +-      if (number_ghosts & 1)
 +-        file_daten[0x94 + number_ghosts/2] =
 +-          (file_daten[0x94 + number_ghosts/2] & 0xf0) | (d);
 +-      else
 +-        file_daten[0x94 + number_ghosts/2] =
 +-          (file_daten[0x94 + number_ghosts/2] & 0x0f) | (d << 4);
 +-      number_ghosts++;
 +-    }
 +-  }
 +-  
 +   bzero(file_daten, sizeof(file_daten));
 +   number_ghosts = 0;
 +   c = file_daten;
 +@@ -1637,7 +1637,7 @@
 +             diggerposy = y;
 +         }
 +         if (id == ID_GHOST)
 +-          Save_Ghost();
 ++          Save_Ghost(flags, &id, &d, file_daten);
 +         *c = (*c & 0x0f) | (id << 4);
 + 
 +   /* ------------------------------------------------------------------ */
 +@@ -1650,7 +1650,7 @@
 +             diggerposy = y;
 +         }
 +         if (id == ID_GHOST)
 +-          Save_Ghost();
 ++          Save_Ghost(flags, &id, &d, file_daten);
 +         *c = (*c & 0xf0) | id;
 +     }
 +   c += 3; 
 
 Modified: head/games/xdigger/pkg-plist
 ==============================================================================
 --- head/games/xdigger/pkg-plist	Fri Dec 20 16:43:48 2013	(r337039)
 +++ head/games/xdigger/pkg-plist	Fri Dec 20 17:03:44 2013	(r337040)
 @@ -1,10 +1,19 @@
 +@mode 2755
 +@group games
  bin/xdigger
 -%%PORTDOCS%%share/doc/xdigger/ChangeLog
 -%%PORTDOCS%%share/doc/xdigger/README
 -share/xdigger/diamond.au
 -share/xdigger/step.au
 -share/xdigger/stone.au
 -share/xdigger/xdigger.hiscore
 -share/xdigger/xdigger.level
 -%%PORTDOCS%%@dirrm share/doc/xdigger
 -@dirrm share/xdigger
 +@group
 +@mode
 +man/man6/xdigger.6.gz
 +%%PORTDOCS%%%%DOCSDIR%%/ChangeLog
 +%%PORTDOCS%%%%DOCSDIR%%/README
 +%%DATADIR%%/diamond.au
 +%%DATADIR%%/step.au
 +%%DATADIR%%/stone.au
 +@mode 644
 +@group games
 +%%DATADIR%%/xdigger.hiscore
 +@group
 +@mode
 +%%DATADIR%%/xdigger.level
 +@dirrm %%DATADIR%%
 +%%PORTDOCS%%@dirrm %%DOCSDIR%%
 _______________________________________________
 svn-ports-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-ports-all
 To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/184867: commit references a PR
Date: Fri, 20 Dec 2013 17:26:44 +0000 (UTC)

 Author: mat
 Date: Fri Dec 20 17:26:34 2013
 New Revision: 337047
 URL: http://svnweb.freebsd.org/changeset/ports/337047
 
 Log:
   MFH: r337040
   
   - Fix build with clang
   - Add desktop entry file
   - Support staging
   
   PR:		ports/184867
   Submitted by:	KATO Tsuguru <tkato432@yahoo.com>
   Approved by:	portmgr (implicit)
 
 Added:
   branches/2014Q1/games/xdigger/files/patch-runleves.c
      - copied unchanged from r337040, head/games/xdigger/files/patch-runleves.c
 Modified:
   branches/2014Q1/games/xdigger/Makefile   (contents, props changed)
   branches/2014Q1/games/xdigger/files/patch-ad   (contents, props changed)
   branches/2014Q1/games/xdigger/pkg-plist   (contents, props changed)
 Directory Properties:
   branches/2014Q1/   (props changed)
 
 Modified: branches/2014Q1/games/xdigger/Makefile
 ==============================================================================
 --- branches/2014Q1/games/xdigger/Makefile	Fri Dec 20 17:25:40 2013	(r337046)
 +++ branches/2014Q1/games/xdigger/Makefile	Fri Dec 20 17:26:34 2013	(r337047)
 @@ -3,10 +3,9 @@
  
  PORTNAME=	xdigger
  PORTVERSION=	1.0.10
 -PORTREVISION=	2
 +PORTREVISION=	3
  CATEGORIES=	games
 -MASTER_SITES=	${MASTER_SITE_SUNSITE}
 -MASTER_SITE_SUBDIR=	games/arcade
 +MASTER_SITES=	SUNSITE/games/arcade
  EXTRACT_SUFX=	.tgz
  
  MAINTAINER=	ports@FreeBSD.org
 @@ -14,23 +13,16 @@ COMMENT=	Boulderdash-like KC85 Digger fo
  
  USES=		imake
  USE_XORG=	x11 xext
 -MAN6=		xdigger.6
  
 -NO_STAGE=	yes
 -.include <bsd.port.options.mk>
 +DESKTOP_ENTRIES="XDigger" "" "" "${PORTNAME}" "" ""
  
  post-patch:
  	@${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" ${WRKSRC}/configure.h
  
  post-install:
 -	@${CHMOD} 2755 ${PREFIX}/bin/xdigger
 -	@${CHOWN} root:games ${PREFIX}/bin/xdigger
 -	@${CHMOD} 664 ${PREFIX}/share/xdigger/xdigger.hiscore
 -	@${CHOWN} root:games ${PREFIX}/share/xdigger/xdigger.hiscore
 -.if ${PORT_OPTIONS:MDOCS}
 -	@${MKDIR} ${DOCSDIR}
 -	@${INSTALL_DATA} ${WRKSRC}/ChangeLog ${DOCSDIR}
 -	@${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
 -.endif
 +	@${MKDIR} ${STAGEDIR}${DOCSDIR}
 +.for i in ChangeLog README
 +	(cd ${WRKSRC} && ${INSTALL_DATA} ${i} ${STAGEDIR}${DOCSDIR})
 +.endfor
  
  .include <bsd.port.mk>
 
 Modified: branches/2014Q1/games/xdigger/files/patch-ad
 ==============================================================================
 --- branches/2014Q1/games/xdigger/files/patch-ad	Fri Dec 20 17:25:40 2013	(r337046)
 +++ branches/2014Q1/games/xdigger/files/patch-ad	Fri Dec 20 17:26:34 2013	(r337047)
 @@ -16,7 +16,7 @@
   
   #ifdef SOUND_RPLAY
   RPLAYLIB = -lrplay
 -@@ -23,12 +23,10 @@
 +@@ -23,15 +23,13 @@
   
   ComplexProgramTarget(xdigger)
   InstallNonExecFile(xdigger.level,XDIGGER_LIB_DIR)
 @@ -30,3 +30,9 @@
   /* InstallNonExecFileNoClobber(xdigger.hiscore,XDIGGER_HISCORE_DIR) */
   
   install::
 +-	$(MKDIRHIER) XDIGGER_HISCORE_DIR
 +-	touch XDIGGER_HISCORE_DIR/xdigger.hiscore
 +-	chmod a+w XDIGGER_HISCORE_DIR/xdigger.hiscore
 ++	$(MKDIRHIER) $(DESTDIR)XDIGGER_HISCORE_DIR
 ++	touch $(DESTDIR)XDIGGER_HISCORE_DIR/xdigger.hiscore
 ++	chmod a+w $(DESTDIR)XDIGGER_HISCORE_DIR/xdigger.hiscore
 
 Copied: branches/2014Q1/games/xdigger/files/patch-runleves.c (from r337040, head/games/xdigger/files/patch-runleves.c)
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ branches/2014Q1/games/xdigger/files/patch-runleves.c	Fri Dec 20 17:26:34 2013	(r337047, copy of r337040, head/games/xdigger/files/patch-runleves.c)
 @@ -0,0 +1,201 @@
 +--- runlevels.c.orig
 ++++ runlevels.c
 +@@ -672,6 +672,20 @@
 +     }
 + } /* DiggerHalfStep() */
 + 
 ++typedef struct
 ++{
 ++  unsigned char x, y, id, type;
 ++} TMerk;
 ++  
 ++void Merke(unsigned char type, int x, int y, int *merkidx, TMerk *merk)
 ++{
 ++  merk[*merkidx].x = x;
 ++  merk[*merkidx].y = y;
 ++  merk[*merkidx].id = field[x][y].id & 7;
 ++  merk[*merkidx].type = type;
 ++  *merkidx++;   
 ++}  
 ++
 + void StoneDiamondStep()
 + {
 + 
 +@@ -680,24 +694,10 @@
 + #define SF_LEFTDOWN  2
 + #define SF_CHANGER   3
 +   
 +-  typedef struct
 +-  {
 +-    unsigned char x, y, id, type;
 +-  } TMerk;
 +-  
 +   TMerk merk[140], ghosts_todie[17];
 +   int i, x, y, dx, dy, merkidx, ghosts_todie_idx;
 +   Bool digger_todie = False;  
 +-  
 +-  void Merke(unsigned char type)
 +-    {
 +-      merk[merkidx].x = x;
 +-      merk[merkidx].y = y;
 +-      merk[merkidx].id = field[x][y].id & 7;
 +-      merk[merkidx].type = type;
 +-      merkidx++;   
 +-    }  
 +-  
 ++
 +   /* Schritt 1  (nur markieren) : */
 +   merkidx = 0; ghosts_todie_idx = 0;
 +   
 +@@ -708,19 +708,19 @@
 +         (field[x][y].id == ID_IVDIAMOND))
 +     {
 +       if (field[x][y+1].id == ID_NOTHING)
 +-        Merke(SF_DOWN);
 ++        Merke(SF_DOWN, x, y, &merkidx, merk);
 +       else
 +         if ((field[x][y+1].id == ID_STONE) ||
 +             (field[x][y+1].id == ID_DIAMOND))
 +         {
 +           if ((field[x-1][y].id == ID_NOTHING) &&
 +               (field[x-1][y+1].id == ID_NOTHING))
 +-            Merke(SF_LEFTDOWN);
 ++            Merke(SF_LEFTDOWN, x, y, &merkidx, merk);
 +           else
 +             if ((field[x+1][y].id == ID_NOTHING) &&
 +                 (field[x+1][y+1].id == ID_NOTHING))
 +             {          
 +-              Merke(SF_RIGHTDOWN);
 ++              Merke(SF_RIGHTDOWN, x, y, &merkidx, &merk);
 +               field[x+1][y+1].id = ID_FSTODMD;
 +             }        
 +         }
 +@@ -729,7 +729,7 @@
 +                (field[x][y].id == ID_IVSTONE)) &&
 +               (field[x][y+1].id == ID_CHANGER) &&
 +               (field[x][y+2].id == ID_NOTHING))
 +-            Merke(SF_CHANGER);
 ++            Merke(SF_CHANGER, x, y, &merkidx, &merk);
 +     }
 +   merk[merkidx].x = 0;
 +   merk[merkidx].y = 0;
 +@@ -1573,6 +1573,50 @@
 + 
 + /*---------------------------------------------------------------------------*/
 + 
 ++void Save_Ghost(int flags, int *id, int *d, unsigned char *file_daten)
 ++{
 ++  switch (flags & F_GHOST_TYPEMASK)
 ++  {
 ++  case F_GHOST_TYPE180:
 ++    *id = 3;
 ++    break;
 ++  case F_GHOST_TYPEL:
 ++    *id = 7;
 ++    break;
 ++  case F_GHOST_TYPER:
 ++    *id = 15;
 ++    break;
 ++  case F_GHOST_TYPELR:
 ++    *id = 11;
 ++    break;
 ++  }
 ++  switch (flags & F_GHOST_MOVEMASK)
 ++  {
 ++  case F_GHOST_DOWN:
 ++    *d = 0;
 ++    break;
 ++  case F_GHOST_UP:
 ++    *d = 1;
 ++    break;
 ++  case F_GHOST_RIGHT:
 ++    *d = 2;
 ++    break;
 ++  case F_GHOST_LEFT:
 ++    *d = 3;
 ++    break;
 ++  }
 ++  if (number_ghosts < MAX_GHOSTS)
 ++  {
 ++    if (number_ghosts & 1)
 ++      file_daten[0x94 + number_ghosts/2] =
 ++        (file_daten[0x94 + number_ghosts/2] & 0xf0) | (*d);
 ++    else
 ++      file_daten[0x94 + number_ghosts/2] =
 ++        (file_daten[0x94 + number_ghosts/2] & 0x0f) | (*d << 4);
 ++    number_ghosts++;
 ++  }
 ++}
 ++
 + void Edit_SaveLevel(int level_number)
 + {
 + /*   char filename[256]; */
 +@@ -1580,50 +1624,6 @@
 +   int x, y, id, flags, i, d;
 +   FILE *filehandle;
 +   
 +-  void Save_Ghost()
 +-  {
 +-    switch (flags & F_GHOST_TYPEMASK)
 +-    {
 +-    case F_GHOST_TYPE180:
 +-      id = 3;
 +-      break;
 +-    case F_GHOST_TYPEL:
 +-      id = 7;
 +-      break;
 +-    case F_GHOST_TYPER:
 +-      id = 15;
 +-      break;
 +-    case F_GHOST_TYPELR:
 +-      id = 11;
 +-      break;
 +-    }
 +-    switch (flags & F_GHOST_MOVEMASK)
 +-    {
 +-    case F_GHOST_DOWN:
 +-      d = 0;
 +-      break;
 +-    case F_GHOST_UP:
 +-      d = 1;
 +-      break;
 +-    case F_GHOST_RIGHT:
 +-      d = 2;
 +-      break;
 +-    case F_GHOST_LEFT:
 +-      d = 3;
 +-      break;
 +-    }
 +-    if (number_ghosts < MAX_GHOSTS)
 +-    {
 +-      if (number_ghosts & 1)
 +-        file_daten[0x94 + number_ghosts/2] =
 +-          (file_daten[0x94 + number_ghosts/2] & 0xf0) | (d);
 +-      else
 +-        file_daten[0x94 + number_ghosts/2] =
 +-          (file_daten[0x94 + number_ghosts/2] & 0x0f) | (d << 4);
 +-      number_ghosts++;
 +-    }
 +-  }
 +-  
 +   bzero(file_daten, sizeof(file_daten));
 +   number_ghosts = 0;
 +   c = file_daten;
 +@@ -1637,7 +1637,7 @@
 +             diggerposy = y;
 +         }
 +         if (id == ID_GHOST)
 +-          Save_Ghost();
 ++          Save_Ghost(flags, &id, &d, file_daten);
 +         *c = (*c & 0x0f) | (id << 4);
 + 
 +   /* ------------------------------------------------------------------ */
 +@@ -1650,7 +1650,7 @@
 +             diggerposy = y;
 +         }
 +         if (id == ID_GHOST)
 +-          Save_Ghost();
 ++          Save_Ghost(flags, &id, &d, file_daten);
 +         *c = (*c & 0xf0) | id;
 +     }
 +   c += 3; 
 
 Modified: branches/2014Q1/games/xdigger/pkg-plist
 ==============================================================================
 --- branches/2014Q1/games/xdigger/pkg-plist	Fri Dec 20 17:25:40 2013	(r337046)
 +++ branches/2014Q1/games/xdigger/pkg-plist	Fri Dec 20 17:26:34 2013	(r337047)
 @@ -1,10 +1,19 @@
 +@mode 2755
 +@group games
  bin/xdigger
 -%%PORTDOCS%%share/doc/xdigger/ChangeLog
 -%%PORTDOCS%%share/doc/xdigger/README
 -share/xdigger/diamond.au
 -share/xdigger/step.au
 -share/xdigger/stone.au
 -share/xdigger/xdigger.hiscore
 -share/xdigger/xdigger.level
 -%%PORTDOCS%%@dirrm share/doc/xdigger
 -@dirrm share/xdigger
 +@group
 +@mode
 +man/man6/xdigger.6.gz
 +%%PORTDOCS%%%%DOCSDIR%%/ChangeLog
 +%%PORTDOCS%%%%DOCSDIR%%/README
 +%%DATADIR%%/diamond.au
 +%%DATADIR%%/step.au
 +%%DATADIR%%/stone.au
 +@mode 644
 +@group games
 +%%DATADIR%%/xdigger.hiscore
 +@group
 +@mode
 +%%DATADIR%%/xdigger.level
 +@dirrm %%DATADIR%%
 +%%PORTDOCS%%@dirrm %%DOCSDIR%%
 _______________________________________________
 svn-ports-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-ports-all
 To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
 
>Unformatted:
